总结:真实服务器维护常用命令一览
1、查看SYN连接数量:(syn行超过10就要注意,50以上就是有攻击了)
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a S[a]}'
netstat -na | grep SYN_RECV //查看 syn的链接
2、查看 httpd 进程数
ps -ef | grep httpd | wc -l //共享ip超过500要注意了
tcpdump -i eth1 dst port 80 -A -s0 |grep 'Host: ' // 查看被请求多的域名,可能就是被攻击了。
curl http://127.0.0.1/whm-server-status|grep 7yiku.com|wc -l // 查某个用户的进程数(超过200可能就是有攻击了)
3、查看被攻击IP(列出服务器上每个 ip的连接数)
netstat -plan |grep :80 | awk '{print $4}' | cut -d: -f1 | sort | uniq -c | sort -n (100) //共享ip超过500要注意了,独立ip超300既要注意
netstat -anpl|grep :80|awk {'print $5'}|cut -d":" -f1|sort|uniq -c|sort -n (60) // 查看攻击者IP(列出连接服务器的每个 ip的连接数) (查看攻击IP的)
4、查看流量
iftop -i eth1 iftop -ni eth1
iptraf -d eth1
这个前提是服务器安装了iftop工具。
IPTraf是一个使用简单的网络状况监视工具。这样我们在远程管理中就可以使用#iptraf -d eth1 查看服务的流量了
yum install iptraf
5、查看服务器负载:
W 也可以用top命令
Top会列出更多信息,如主机持续时间,负载状况,典型的进程,cpu和内存的负载等信息。Top进行平均超过10要注意了。当然top命令下也可以终止进程,方法就是按k,然后选择一个kill级别一般为9强制级别,也可以选择15,然后输入kill的pid即可。
6、查看 inodes数量:
repquota -a | sort -nk6 | tail //倒数第三列为文件数
repquota -a | sort -nk6 | tail -25(任意) | grep 用户名
查特定的目录文件数:
cd /home/user
find . -printf "%i\n" | sort -u | wc –l
7、僵尸php进程查看:
ps -aux | grep 'php' //Z就是僵尸进程
ps -aux | grep 'Z' //僵尸Apache进程查看
如果某个用户产生大量的僵尸进程要注意观察了。
8、禁某个IP
csf -d IP_Address
vi /etc/csf/csf.deny // 查看被禁的IP
当然前提是安装了csf防火墙软件,禁止了ip只有经过service csf restart 才会生效。
Csf是一个可以极大提高独立主机和虚拟专用主机安全的一个应用广泛的程序,cpanel默认是不安装的,需要安装然后才会出现在插件里
CSF安装
rm -fv csf.tgzwget http://www.configserver.com/free/csf.tgztar -xzf csf.tgzcd csfsh install.sh
CSF设置
安装csf后进入需要编辑配置文件,执行下面的路径修改以下内容:
Vi/etc/csf/csf.conf
TESTING = 0
TCP_IN = 增加 30000:35000
ICMP_IN_RATE = 2/s
LF_ALERT_TO = [email protected]
CT_LIMIT = 150CT_SKIP_TIME_WAIT = 1CT_PORTS = 80
LF_SELECT = 1LF_FTPD_PERM = 900LF_SMTPAUTH_PERM = 900LF_IMAPD_PERM = 900LF_HTACCESS = 0LF_CPANEL_PERM = 900LF_MODSEC = 0
csf.allow 中添加:
192.168.10.1/24
PureFTP 设置
CSF的 TCP_IN 增加端口 30000:35000
编辑 Pure FTP设置:
vi /etc/pure-ftpd.confPassivePortRange 30000 35000
service pure-ftpd restart
测试csf:#perl /etc/csf/csftest.pl
9、清除本地的dns ipconfig /flushdns
查看DNS缓存的内容 ipconfig /displaydns
10、查看 Apache日志:
tail -50 /usr/local/apache/logs/error_log
11.显示消耗内存/CPU最多的10个进程
ps aux | sort -nk +4 | tail
ps aux | sort -nk +3 | tail
12.把目录下*.sh文件改名为*.SH
find . -name “*.sh” | sed ’s/\(.*\)\.sh/mv \0 \1.SH/’ |sh
find . -name “*.sh” | sed ’s/\(.*\)\.sh/mv & \1.SH/’|sh (跟上面那个效果一样)
13、批量修改文件
Find / -name *.txt |xargs rm -rf
14、同步文件
rsync -auvz /olddir/* /newdir //本台主机文件同步
Rsync -auvz -e ssh root@ip1:/filedir . //不同主机文件同步
前提建立rsync服务器\
15、查看磁盘的文件占用以及查找大文件的目录
Df -h //查看磁盘占用
du -S|sort -n //找到资源占用大的目录,然后就可以根据情况进行删除无关的磁盘占用了
16、当然日常的运维还会涉及比如linux用户管理,各种服务管理,mysql数据库管理和系统软件的安装和升级,以及系统故障的排除等许多问题,所以这需要运维人员多多学习总结,不断提高,才能更好的完成服务器的管理。相信本专题的制作,对于普通运维人员或对shell变成有兴趣的朋友可以进行简单的shell编程并且看懂一些复杂的shell程序会有帮助,这里仅是抛砖引玉。