小编Dan*_*ley的帖子

Puppet 安全和网络拓扑

背景:

我终于留出一些时间加入 21 世纪,看看 Puppet。

就目前而言,我们在办公室内部保存的存储库中对所有服务器配置进行版本控制。当需要进行更新时,更改会被检回存储库并手动推送到有问题的机器上。这通常意味着 SFTP 到远程机器,然后将文件从 shell 移动到具有相关权限的位置。

所以我希望 Puppet 将成为我们已有的简单而惊人的扩展。

现在我考虑我们目前必须合理安全的流程。假设我们的内部网络总是比我们数据中心的公共网络相对更安全。

  • 过程总是一种方式。变化从安全的环境到不安全的环境,而不会反过来。

  • 主存储在最安全的地方。通过窃取配置或发送恶意修改的危害风险大大降低。

题:

根据我对 Puppet 服务器/客户端模型的理解,客户端直接从服务器轮询和拉取更新。流量是 SSL 包装的,因此不能被拦截或欺骗。但它与我们目前所做的不同,因为 Puppet 服务器 [s] 需要托管在公共位置。要么集中,要么针对我们维护的每个数据中心站点。

所以我想知道:

  • 我是否对从推到拉的变化感到不必要的偏执?

  • 我是否对在公共网络上集中存储所有这些信息感到不必要的偏执?

  • 其他人如何维护多个网络——每个站点都有单独的服务器?


09 年 7 月 30 日更新:

我想我的另一个问题是必须信任一台机器。puppetmaster(s) 将被防火墙保护,安全等。但即便如此,任何具有侦听服务的公共机器都有一定规模的攻击面。

据推测,如果 master 有权更新任何一个 puppet 客户端上的任何文件,那么它的妥协最终会导致其所有客户端的妥协。可以说是“国王到王国”。

  • 这个假设正确吗?

  • 有什么办法可以缓解吗?

networking security puppet

26
推荐指数
2
解决办法
2926
查看次数

配置管理:跨机依赖

我使用过像 puppet 这样的工具来管理单个系统,通常取得了很高的成功。puppet 失败的地方在于它不擅长管理单个服务器之外的依赖项。

例如,在 MySQL 服务器上,我将 puppet 配置为执行以下操作:

  • 在机器上配置身份验证以访问我的 LDAP 服务器
  • 配置 apt 以使用我的本地存储库镜像
  • 安装 MySQL 包
  • 写我的.cnf
  • 启动 MySQL
  • 在数据库中创建用户

在这组步骤中,解决了许多依赖项 - 例如,除非我安装了软件包,否则我无法启动数据库服务,除非正确配置了 apt 存储库,否则我无法启动。

这个 MySQL 服务器是 master->master 复制设置中的一个盒子。在理想的世界中,puppet(或其他类似工具)会让我表示服务器 B 需要等到服务器 A 可用,然后尝试与其建立复制关系的事实。

这里有很多文字 - 基本上我要问的是:有没有像 puppet 这样的工具可以像这样管理机器间的依赖关系?

automation puppet

8
推荐指数
1
解决办法
840
查看次数

如何计算目录中的所有子文件夹?

如何计算特定文件夹下有多少个文件夹(包括子文件夹)?

linux find directory count

6
推荐指数
1
解决办法
1万
查看次数

名称服务器 4.2.2.2 属于谁?

有人知道名称服务器 4.2.2.2 的所有者是谁吗?我找到了 whois,但我不知道该组织。有人知道吗?

以前有人搜索过吗?

谢谢你的帮助!

internet whois nameserver

6
推荐指数
2
解决办法
1万
查看次数

为什么 rpc.lockd 从 netstat/lsof 输出中被遮挡?

序幕:

在许多恰好充当 NFS 客户端的机器上,netstat报告两个打开的端口,但没有列出关联守护程序的 PID。通常这可能有点令人担忧。

# netstat -lnp | egrep -- '- +$'
tcp        0      0 0.0.0.0:57448           0.0.0.0:*               LISTEN     -
udp        0      0 0.0.0.0:48933           0.0.0.0:*                          -
Run Code Online (Sandbox Code Playgroud)

另外netcat确认 TCP 端口确实是打开的。

# nc -v localhost 57448
localhost [127.0.0.1] 57448 (?) open
^C
Run Code Online (Sandbox Code Playgroud)

然而lsof,这两个端口没有报告任何内容。阴谋增长。

# lsof -i TCP:57448 -i UDP:48933
Run Code Online (Sandbox Code Playgroud)

然而,rpcinfo最终为我们指明了正确的方向。它由nlockmgr,又名lockdNFS保持开放。取消搜索。

# rpcinfo -p | egrep '57448|48933'
    100021    1   udp  48933  nlockmgr
    100021    3   udp  48933  nlockmgr
    100021    4   udp  48933 …
Run Code Online (Sandbox Code Playgroud)

linux nfs rpc netstat lsof

5
推荐指数
1
解决办法
957
查看次数

Bash - 如何将两个命令输出到文件?

我想将两个命令输出到一个文件。我希望每 5 分钟将准确的时间(日期)和温度(传感器)归档。我知道如何将一个命令输出到一个文件,但是两个呢?这样的脚本怎么写?

scripting bash

3
推荐指数
3
解决办法
3372
查看次数

如何正确验证 SSL 证书?(有问题)

我完成了以下步骤来生成我的 SSL 证书请求:

openssl genrsa -out key 2048
openssl req -new -key key -out csr
Run Code Online (Sandbox Code Playgroud)

然后我将我的 csr 提交给我的签名机构,并取回了我的证书。

我放入了一个名为“cert”的文件

现在我想验证证书是否正确。

openssl verify cert
Run Code Online (Sandbox Code Playgroud)

我得到了原始的 O 和 OU 结果,但另外我收到以下错误:

error 20 at 0 depth lookup:unable to get local issuer certificate
Run Code Online (Sandbox Code Playgroud)

我是否正确验证了证书,如果是,为什么会出现此错误?如果没有,我做错了什么?

openssl

3
推荐指数
1
解决办法
4657
查看次数

千兆组合或绑定

我正在使用带有 RHEL 5.3 和 XEN 内核默认值的戴尔 2950 服务器,我需要绑定我的 2 giga nic,我正在使用以下脚本之一:

ifcfg-bond0

DEVICE=bond0
BOOTPROTO=none
ONBOOT=yes
NETWORK=192.168.2.0
NETMASK=255.255.255.0
IPADDR=192.168.1.1
USERCTL=no
Run Code Online (Sandbox Code Playgroud)

ifcfg-eth0

DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
USERCTL=no
Run Code Online (Sandbox Code Playgroud)

ifcfg-eth1

DEVICE=eth1
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
USERCTL=no
Run Code Online (Sandbox Code Playgroud)

/etc/modprobe.conf

alias bond0 bonding
alias eth0 e100
alias eth1 e100
options bonding mode=0 miimon=100
Run Code Online (Sandbox Code Playgroud)

/etc/xen/xend-config.sxp
(净*将 eth0 更改为 bond0)

但是我得到了 16MB/s 并且我有千兆交换机和 cat6 网络...如果有人告诉我如何在我的网络上获得更高的速度以将服务器上的 500GB 复制到其他...

谢谢

networking linux redhat bonding

2
推荐指数
1
解决办法
2180
查看次数