服务器被攻击后的处理办法

转自   https://www.aliyun.com/jiaocheng/131245.html


服务器被攻击状态:不定时向外发送大量数据包,导致整体网络丢包严重。

1.先做一条策略禁止新的IP连接服务器:

root# service iptables restart

iptables -F

iptables -A INPUT -i eth0 -j DROP

2.然后用命令 netstat -anpt 查看哪些IP连接着我的服务器,同时可以查看到相应的进程和PID,记录那些可疑IP和可疑进程。

怀疑某个特殊进程后可以用以下命令查看进程的完整路径:

pidof 进程名称 -----或者用 ps -ef | grep 进程名称

ls -al /proc/进程号/exe ----这就可以查出完全路径了

ls -al /proc/进程号/fd -----查看文件的句柄

3.用命令 w 或者 last 查看可疑用户,将可疑用户锁定后强行下线

passwd -l 用户名 ------ -u 是解锁

ps -ef | grep @pts/3

kill -9 进程号

4.接下来把可疑进程杀掉: -------------------我发现的可疑进程有3个:pphp6,netns,profs 查出的路径在部署的nagios目录里面,所以断定是外来文件。

kill -9 进程号 --------------杀完,网络明显好转。

5. 查看是否有执行计划:

crontab -l 有其他用户也看下 crontab -u 用户名 -l

如果有很多不知道的任务计划,一般会出现非常多注释,然后有用的夹杂在里面,列如service iptables stop , get ..... put .... cat 日志发送给远端服务器等等。

6. 接下来备份数据

我用的CRT 传输数据

7.接下来再仔细查看系统日志去发现可疑行踪,或者有可疑文件:

tail -3000 /var/log/messages ------查看进程启停状态以及连接状态 属于一般的消息日志

tail -3000 /var/log/secure ------本机安全有关的消息,列如用户再试探密码

tail -3000 /var/log/wtmp ------查看用户的登入信息

查看各用户目录下是否存在隐藏脚本,各用户的 .bash_profile .bashrc .bash_logout .bash_history

比如 cd /root/

ls -a

cat .bash_profile ------su 切换的时候执行

cat .bashrc -----登入的时候执行

cat .bash_logout -----登出的时候执行

cat .bash_history -----保留的历史命令

同时也要查看 /etc/目录下的这几个文件里面是否加入了什么命令或脚本,有些黑客会加入 iptables -F 或者 service iptables stop ,那样你一开始做的策略就没有用了。

ps:一般在 .bash_history 里面会加入 history -c rm -rf /var/log/wtmp

确定完这些以后,该锁定的用户锁定,该删除的文件删除(有些文件被故意锁定了无法删除,可以用 “lsattr 文件名 ” 查看权限, 用 “ chattr -i 文件名 ” 解锁文件,

“ chattr +i 文件名” 锁定文件 ),.bash_profile等文件也确认里面是否有添加其他可以命令,同时也查看下服务器自启动的程序。

chkconfig --list ----查看服务

chkconfig 服务 off -----关闭自启动

8.已经清理差不多了就可以做策略允许被访问的端口,打开外网(其实最好就是重做系统,因为你不知道你的服务器是否中了 rootkit,命令文件是否被替换或者被感染,而现在你还要确认下你是否打了bash的补丁,最新的linux安全漏洞,也可以用chkrootkit、rkhunter、lynis、antivir等工具检查下linux文件,必要时可以从安全的服务器上拷贝命令过来使用),最好是重装系统

我做的策略是允许特定的端口,拒绝所有,允许被ping:

iptables -I INPUT -i eth0 -p tcp --dport 80 -j ACCEPT

iptables -I INPUT -i eth0 -p tcp --dport 25 -j ACCEPT

iptables -I INPUT -i eth0 -p tcp --dport 5666 -j ACCEPT

iptables -I INPUT -p icmp -i eth0 -j ACCEPT

iptables -I INPUT -p all -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A INPUT -i eth0 -j DROP

service iptables save

如果不允许被别人ping的话:

#不允许别人ping自己,自己可以ping别人

iptables -I INPUT -p icmp -j DROP

iptables -I OUTPUT -p icmp --icmp-type 8 -j ACCEPT

iptables -I INPUT -p icmp --icmp-type 0 -j ACCEPT

iptables -I INPUT -p icmp --icmp-type 3 -j ACCEPT

然后开启网卡 : ifup eth0

9.进行监控观察流量和进程。

后言:

其实服务器刚刚安装好的时候就应该对其做基本的安全修改,比如账户的修剪和账号策略,关闭不必要的服务和端口,关闭root远程登入(使用普通账号后su),修改ssh连接端口,修改登入反馈信息,禁止非日志服务器接收日志,或者单独拿一台服务器做路由器做策略,其他服务器做 原地址转换(SNAT) 目标地址转换(DNAT) 端口映射等等, 最好是有硬件防火墙。
 
posted @ 2018-11-26 16:09  effortsing  阅读(878)  评论(0编辑  收藏  举报