Articles of linux

去除perl rootkit的痛苦

所以,我们在办公室里托pipe了一个地理服务器的网站服务器。 有人显然闯入这个盒子(可能通过FTP或SSH),并把一些ircpipe理的rootkit的东西。 现在我试图清理整个事情,我发现了试图通过IRC连接的进程PID,但我不知道谁是调用进程(已经用ps,pstree,lsof查看)进程是一个perl由www用户拥有的脚本,但ps aux | grep在最后一列显示假文件path。 有没有另外一种方法来追踪该pid并捕获调用者? 忘了提及:内核是2.6.23,这是可以利用的根,但我不能碰这台机器太多,所以我不能升级内核 编辑:LSF可能会帮助: lsof -p 9481 命令PID用户FDtypes设备大小节点名称 perl 9481 www cwd DIR 8,2 608 2 / ss perl 9481 www rtd DIR 8,2 608 2 / ss perl 9481 www txt REG 8,2 1168928 38385 /usr/bin/perl5.8.8ss perl 9481 www mem reg 8,2 135348 23286 /lib64/ld-2.5.soss perl 9481 www mem […]

将多个unix命令组合成一个输出

我需要在我们的邮件日志中search特定的电子邮件地址。 我们保存一个名为maillog的当前文件以及一个星期的.bz2文件在同一个文件夹中。 目前,我运行以下命令来search文件: grep [email protected] maillog bzgrep [email protected] *.bz2 有没有办法将grep和bzgrep命令组合成一个输出? 这样,我可以将组合的结果输送到单个电子邮件或单个文件。

如何自动执行vhosts的zabbix web场景?

我是Zabbix和企业监控的新手。 我刚刚安装了Zabbix 2.4。 我试图监视所有我们的vhosts在不同的服务器上错位的状态。 到目前为止,我想出的唯一解决scheme是为每个要监视的vhost主机手动添加一个Web scenario到Zabbix服务器主机。 但它并不那么方便。 四处搜寻我find了一个具有部分function的论坛主题:使用从目标服务器读取所有vhosts (通过macro )的template ,并为每个vhost创build一个Web scenario 。 编辑 :此解决scheme(基于Zabbix 2.2)不起作用,因为不可能使用LLD(低级别发现)与Web scenarios 。 自从11月14日以来,有一个function请求在Web scenarios实现LLD 。 题 问题是如果在等待function实现的时候如何解决这个问题,或者我的方法是完全错误的,那么是否有一些解决scheme或者build议。

如何通过单个端口处理encryption和未encryption的http连接

请看下面的图表。 替代文字http://i30.tinypic.com/8wk4tt.png 这个怎么工作? 当远程请求http:// myhost.com:8080/*时,请求应该被转发到监听回送接口的8008端口的http服务器。 这是简单的部分。 当远程用户请求http:// myhost.com:8080/specialurl … 充当应用程序级别网关的程序应该能够将连接升级到encryption会话( 不更改端口 ) 在与远程浏览器build立encryption会话之后,它应该将请求转发到C程序,该程序侦听回送接口的8000端口 我的问题是 : 你有没有在生产环境中部署这样的解决scheme? 如果你有… 你用什么产品作为应用程序网关? 你能提供一个configuration例子吗? 硬限制 : 我没有防火墙的控制权 ,通过它我可以获得外部stream量进入内部服务器的唯一端口是8080.端口号是无关紧要的,只是有一个端口在防火墙级别打开,转发传入stream量到内部服务器。 内部服务器必须运行Linux(目前正在运行Debian Lenny) 远程用户只需要使用当前的Web浏览器和Internet连接即可访问此服务器。 这意味着通过SSH的反向端口转发不是一个选项。 我需要一个经过生产testing的产品,并且可以很容易地部署。 我不打算开发自己的应用程序网关 (如果是这样的话,我想我会问在堆栈溢出这个问题,而不是在服务器故障问)。 软限制 : 我想避免将Apache作为应用程序网关(尽pipe如果这是唯一可能的select,我愿意这样做) 如果可能的话,应用程序网关应该是一个成熟的开源软件产品。 产品尝试到应用程序网关 (没有成功) nginx的 lighttpd的 磅 相关的RFC RFC2817(… 解释了如何使用HTTP / 1.1中的升级机制来通过现有的TCP连接启动传输层安全性(TLS),这使得不安全和安全的HTTPstream量可以共享相同的已知端口 …) RFC2818(… 描述了如何使用TLS来保护通过Internet的HTTP连接。目前的做法是将HTTP over SSL(TLS的前身)分层,通过使用不同的服务器端口来区分安全stream量和不安全stream量 。 ) 在此先感谢,亚历克斯

思科和Linux和Vlans

我似乎对Linux如何在VLAN上工作有一些基本的误解,我希望这里的好人能够教育我。 演员:一个思科3560,一个VLAN和一个Linux机器[1]。 Cisco ————— Linux ge0/1 eth0 思科有一个Vlan 37接口,IP地址为10.40.37.252/24。 我想把10.40.37.1/24放在Linux机器上。 当思科解封装vlan 37时,一切正常[2]: # Cisco interface Vlan37 ip address 10.40.37.252/24 interface GigabitEthernet 0/1 switchport mode access switchport access vlan 37 # Linux ip link set eth0 up ip addr add 10.40.37.1/24 dev eth0 $ ping 10.40.37.252 && echo It works 但是,当我将端口设置为中继并在Linux端分配vlan 37时,它停止工作: # Cisco interface GigabitEthernet […]

使用Kerberos和AD挂载NFS3

我有一台Linux服务器(Centos 5.6),需要使用Kerberos从Windows(Server 2008)NFS共享中自动安装主目录。 如果身份validation处于closures状态,共享将与无人用户和组一起安装。 但是,如果传递了-o sec=krb5标志,则会得到mount.nfs: permission denied 。 作为root用户,我使用kinit获得一张票,而klist告诉我这是一个有效的票。 谷歌search错误没有太多,因为它似乎是一个全面的。 在我查看的任何日志中找不到任何有用的信息。根访问权限设置为允许Windows共享。 由于Windows的共享,很多说改变服务器设置的资源不能直接应用。 任何想法得到这个工作?

Postmaster使用过多的CPU和磁盘写入

使用PostgreSQL 9.1.2 我看到过多的CPU使用率和大量的从postmaster任务写入磁盘。 即使我的应用程序几乎没有任何操作(每分钟10秒的插入),也会发生这种情况。 有一个合理的连接数打开然而。 我一直在试图确定什么在我的应用程序造成这一点。 我用postgresql很漂亮,到目前为止还没有到任何地方。 我已经在我的configuration文件中打开了一些日志logging选项,并查看了pg_stat_activity表中的连接,但是它们都是空闲的。 然而,每个连接消耗约50%的CPU,并且正在向磁盘写入〜15M / s(不读取任何内容)。 我基本上使用股票postgresql.conf很小的调整。 我很感激任何意见或指示我可以做什么来跟踪这个。 以下是top / iotop向我展示的样本: Cpu(s): 18.9%us, 14.4%sy, 0.0%ni, 53.4%id, 11.8%wa, 0.0%hi, 1.5%si, 0.0%st Mem: 32865916k total, 7263720k used, 25602196k free, 575608k buffers Swap: 16777208k total, 0k used, 16777208k free, 4464212k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND […]

Linux的iptables / conntrack性能问题

我有一个testing设置在实验室与4台机器: 2台旧P4机器(t1,t2) 1至强5420 DP 2.5 GHz 8 GB RAM(t3)Intel e1000 1至强5420 DP 2.5 GHz 8 GB RAM(t4)Intel e1000 testinglinux防火墙的性能,因为在过去的几个月里,我们被一些syn-flood攻击所困扰。 所有机器运行Ubuntu 12.04 64位。 t1,t2,t3通过1GB / s交换机相互连接,t4通过额外接口与t3相连。 所以t3模拟防火墙,t4是目标,t1,t2发挥攻击者生成的分组风暴(192.168.4.199是t4): hping3 -I eth1 –rand-source –syn –flood 192.168.4.199 -p 80 t4会丢弃所有传入的数据包,以避免与网关混淆,t4等性能问题。我观察iptraf中的数据包统计信息。 我已经configuration了防火墙(t3),如下所示: 股票3.2.0-31 – 通用#50 – Ubuntu的SMP内核 rhash_entries = 33554432作为内核参数 sysctl如下: net.ipv4.ip_forward = 1 net.ipv4.route.gc_elasticity = 2 net.ipv4.route.gc_timeout = 1 […]

如果强制ZFS分离没有有效副本的热备份,会发生什么情况?

我有一个由6个RAIDZ构成的ZFS池。 其中一个RAIDZ会降级,原因是单个RAIDZ中的两个磁盘相距足够近,导致ZFS在第二个磁盘发生故障之前无法从第一个故障中恢复。 以下是重启后不久“zpool status”的输出: pool: pod2 state: DEGRADED status: One or more devices has experienced an error resulting in data corruption. Applications may be affected. action: Restore the file in question if possible. Otherwise restore the entire pool from backup. see: http://www.sun.com/msg/ZFS-8000-8A scrub: resilver in progress for 0h6m, 0.05% done, 237h17m to go config: NAME […]

在线时使用NTP同步时钟,在离线时使用RTC?

是否有一个现有的机制,可以在线同步一个linux系统与NTP,并且在离线状态下可预测漂移RTC? 我们操作远程“收集器”:收集传感器数据并对其进行时间标记的embedded式Linux系统。 我们需要他们的时钟错误保持合理的小,比如5秒以内。 通常我们使用NTP来同步他们的时钟,并且工作正常 – 只要系统在线。 问题是一些collections家有非常糟糕的上行链路,可能会下降数小时,数天甚至数周。 这并不能阻止本地数据收集,但是如果没有NTP,Linux系统时钟会发生严重的漂移,并且相当不可预测。 OTOH,硬件的RTC漂移也很厉害,但速度不变。 RTC漂移率因板而异,但每块板不变,可以测量。 我想我们需要的是一个机制,做到以下几点: 在部署之前测量电路板的RTC漂移率 如有可能,通过NTP定期调整系统时间 当NTP不可用时,定期从RTC调整系统时间。 考虑已知的RTC漂移率。 可选:测量并logging在线时正在进行的RTC漂移率(1) 对于“机制”,我的意思是一些维护良好,logging在案的软件和/或configuration可以处理“在线”与“离线”两种状态,确保系统时钟与正确的时间源同步(ntp vs. rtc),检测状态变化,并校正RTC漂移。 不pipe它是作为一个特殊的ntpdconfiguration/插件,作为单独的守护进程,还是作为一个cron作业来实现,都没关系。 我看了一下Chrony ,但是根据它的文档,它试图预测系统时钟的漂移,在我们的例子中漂移比RTC漂移更加不可预测。 Chrony似乎只使用RTC来保持重新启动的时间。 (1)注意ntpd激活内核的“11分钟模式”(每隔11分钟从系统时钟更新rtc)。 目前的内核和ntpd似乎没有办法阻止11分钟的模式。 因此,当ntpd正在运行(thx @billthor)时,任何rtc漂移信息都会丢失。 更新/编辑: 我们正在考虑通过USB或串行为MSF或DCF77信号(我们位于欧洲)添加一个外部无线电时钟。 但我们宁愿保持硬件精益。 我们的collections家位于室内,通常在地下室。 所以添加GPS时钟将无济于事。 我们使用Debian 7.这意味着来自util-linux-2.20.1的hwclock,来自ntp-4.2.6.p5的ntpdate-4.2.6p5,ntpd,chrony-1.24(可能是1.30)。 请注意,我们的问题不是我们不知道如何使用ntpdate(8) , hwclock(8) , date(1)等。请参阅斜体添加的部分关于我的意思是“机制”。 增加了关于“11分钟模式”的脚注 这是一个关于离线同步和RTC漂移的非常有趣的讨论