Articles of linux

转发对ssh-agent标识符子集的访问

我为两家公司工作(让我们叫他们RedCorp和BlueCorp)。 他们都信任我,但他们互相不相信,我不想把对方的秘密泄露给对方。 我的笔记本电脑的ssh-agent有两个私钥,一个用于访问每个公司。 我可以跑: ssh – 一个redcorp-server1 并从那里访问所有redcorp的其他服务器,凭借我转发的代理连接。 同样,我可以运行: ssh -A bluecorp-server1 并从那里访问所有bluecorp的其他服务器。 问题是,无论何时login到redcorp-server1,root用户都可以将他的$ SSH_AUTH_SOCK设置为指向我转发的代理连接,并滥用我的其他身份以破解BlueCorp。 我怎样才能防止呢? SSH的IdentitiesOnly选项不会做我想要的。 这只能控制我对redcorp-server1进行身份validation时提供的密钥; 它不会改变我的转发的代理程序连接允许redcorp-server1上的ssh进程使用我的任何身份进行身份validation的事实。 我find的唯一的解决scheme是运行两个独立的ssh代理,并只加载一个密钥到他们每个人。 这是一个巨大的痛苦:ssh_config节没有办法指定我连接到给定主机时应使用哪个代理。 相反,我必须在我的笔记本电脑上为两个军团中的每一个制作shell别名,在运行ssh之前将$ SSH_AUTH_SOCK指向正确的代理。 另外,我使用rsync和其他一些使用ssh作为传输工具的工具,并且每个工具都必须使用不同的语法来configuration,以便以特殊的方式调用ssh。 有一个更好的方法吗?

Heartbeat和Corosync在openSUSE上的关系

我正在将Heartbeat + Pacemaker安装到openSUSE 12.1。 事实certificate,Heartbeat 不再支持这个平台,因此它不能从官方回购。 切换到Corosync不是一个真正的问题,但我很好奇为什么做出这个特定的决定。 是心跳折旧还是这是一个发行特定的维护问题? 在HA环境中使用Corosync作为消息传递层有什么好处?

常规用户帐户之间的su以“su:不正确的密码”

user1想要su到user2(都是非root用户)。 当user1运行su – user2 ,系统会按照预期提示inputuser2的密码,但密码永远不会被接受。 user1@host $ su – user2 (switch from user1 to user2) Password: su: incorrect password user1@host $ user2是在/etc/passwd指定的具有真实shell的有效的未locking帐户。 您可以SSH作为user2到该框( ssh user2@host )。 此外,在我的testing中,user1和user2具有相同的密码,所以这不是密码不匹配的问题(当user1需要时提供user2的密码,反之亦然)。 奇怪的是, pam_tally2递增user2的login失败,但没有任何logging到/var/log/secure 。 对于这个问题,在/var/log中也没有任何东西被logging到其他地方。 我可以通过添加这条线给sudoers来解决这个问题: user1 ALL=(ALL) /bin/su …和sudo运行命令: user1@host $ sudo su – user2 不过,我想知道为什么我不能跑su。 这是一个RHEL5盒子,它自动应用了Aqueduct的STIG,所以我不确定在/etc/pam.d会有什么改变。

由于ICMP主机不可达,Linux ping命令提前退出

一个自动脚本shutdown -r now在一台机器上运行shutdown -r now ,在延迟30秒后,使用ping来确定机器何时可用。 我最近将操作系统从Centos 5切换到Oracle Linux 6,发现ping的行为已经改变。 我使用ping(count)(-c10),截止date(-w360)和延迟(-W1),这应该等待最多五分钟,以便从机器发出十次成功的回复。 我观察到我自己的机器在30秒Destination Host Unreachable消息,导致3次错误之后即会退出。 远在我期望的期限值之前。 例如〜37秒后退出: [cs@bst1 ~]# time ping -c10 -w360 -W1 hostother; echo $? PING hostother (10.210.51.155) 56(84) bytes of data. From bst1 (10.210.51.139) icmp_seq=36 Destination Host Unreachable From bst1 (10.210.51.139) icmp_seq=37 Destination Host Unreachable From bst1 (10.210.51.139) icmp_seq=38 Destination Host Unreachable — […]

如何得到mdadm RAID问题的通知?

我正在运行Ubuntu 12.04 LTS。 昨天我在我的邮箱中发现一条消息,说我的服务器已closures。 我开始重新启动系统,但在几分钟后没有出现,而且我没有一个硬件KVM系统来查看内核打印到terminal的内容。 所以我重新启动系统到一个Linux救援图像,我看到软件RAID 1arrays不同步。 救援系统也开始重buildRAIDarrays。 到目前为止,没有证据表明任何磁盘都有硬件错误。 到目前为止,SMART状态看起来不错。 尽pipe电子邮件通知是在/etc/mdadm/mdadm.conf中打开的,但我从未收到过mdadm的电子邮件通知。 这台服务器也被configuration为将所有系统日志消息转发到日志主机,所以我检查了我的日志主机。 相关部分是: 5月20日15:38:40内核:[1.869825] md0:检测到的容量从0变为536858624 5月20日15:38:40内核:[1.870687] md0:未知的分区表 5月20日15:38:40内核:[1.877412] md:bind 5月20日15:38:40内核:[1.878337] md / raid1:md1:不干净 – 开始后台重build 5月20日15:38:40内核:[1.878376] md / raid1:md1:2镜像中有2镜像处于活动状态 5月20日15:38:40内核:[1.878418] md1:检测到容量从0变到3000052808704 5月20日15:38:40内核:[1.878575] md:RAIDarraysmd1的重新同步 [剪断] 5月20日15:52:33内核:内核日志logging(proc)停止。 5月20日15:52:33 rsyslogd:[source software =“rsyslogd”swVersion =“5.8.6”x-pid =“845”x-info =“http://www.rsyslog.com”]信号15退出。 正如您所看到的,系统(正常系统,而不是救援系统)已经在系统启动过程中检测到RAIDarrays出现问题。 然后,不久之后,一些(而不是我)停止了系统。 所以我的问题是: 什么可能导致磁盘突然变得不同步? 为什么我没有通过电子邮件通知? 为什么在停止系统之前错误没有正确logging到系统日志? 可能是系统试图login到系统日志,但在停止系统日志守护进程之后呢? 如果是的话,我能做些什么来防止呢? 我能做些什么来了解发生了什么? 或者,如果现在没有办法了解发生了什么事情,我该如何改进日志logging和通知,以便下一次能够更好地进行验尸? 我的问题不是正确的备份做法。 我已经知道RAID不是备份等。我的问题仅仅是关于通知和诊断。

如何获得百胜的交易logging?

我想知道如何获得yum的交易历史(即获取安装,删除等),希望从大多数到最近sorting。 有没有办法做到这一点?

rsync复制整个文件,而不是差异

我有2个远程文件夹包含几个文件。 我正在使用rsync来同步2.问题是,在第一台服务器上,每天都严格按照新的数据进行附加操作。 当我调用rsync时候,我觉得它再次复制整个文件。 我的电话是否正确? rsync -rtvu src_fld/ user@myserver:/opt/dst_fldr/ 我的理解是, rsync能够计算2个文件之间的差异,所以我期待着一个非常快速的更新。

Net-SNMP中缺lessCPU内核

我有一台运行OEL ( RHEL )的双Intel Xeon E5-2667 CPU(6核+ HT)的服务器6.4由于某种原因snmp查询显示只有一个CPU的内核。 这里是输出sensors命令。 [root@host log]# sensors coretemp-isa-0000 Adapter: ISA adapter Physical id 0: +56.0°C (high = +96.0°C, crit = +102.0°C) Core 0: +55.0°C (high = +96.0°C, crit = +102.0°C) Core 1: +50.0°C (high = +96.0°C, crit = +102.0°C) Core 2: +52.0°C (high = +96.0°C, crit = +102.0°C) Core 3: […]

如何将所有stream量转发/ NAT到一个接口/ IP到远程IP?

我有一个“服务器A”有多个IP连接到它,如下所示: eth0:0 1.1.1.1 eth0:1 1.1.1.2 eth0:2 1.1.1.3 我有另一个“服务器B”,也有多个IP连接到它,如下所示: eth0:0 2.2.2.1 eth0:1 2.2.2.2 eth0:2 2.2.2.3 现在,我想在“服务器A”上设置iptables,将“eth0:2”上的所有inputstream量转发/ NAT到“服务器B”上的IP 2.2.2.3。 我已经validation了“服务器A”能够在IP 2.2.2.3上“通话”到“服务器B”。 Ping和Telnet打开端口工作得很好,我打开了前进标志(net.ipv4.ip_forward = 1) 我已经尝试了多种不同的方式,DNAT,SNAT,MASQUERADE等,但是我什么都不能工作。 如果我尝试在同一服务器上的IP之间转发stream量,此线路正常工作: iptables -t nat -A PREROUTING -d 1.1.1.3 -j DNAT –to-destination 1.1.1.2 但是如果我把“2.2.2.3”中的“1.1.1.2”换掉,那就不起作用了。 我假设我需要第二个iptable规则来解决它。 我没有任何运气(不是在同一时间)尝试了以下POSTROUTING规则: iptables -t nat -A POSTROUTING -d 2.2.2.3 -j MASQUERADE iptables -t nat -A POSTROUTING -d 2.2.2.3 -j […]

使用logstash将TTL添加到elasticsearch

我无法弄清楚如何将这个文件http://www.elasticsearch.org/guide/reference/mapping/ttl-field/应用到logstash。 具体来说,我不知道使用哪些键(而不是“鸣叫”等)。 目标是通过日志存储将所有日志发送到elasticsearch X日后过期。