场景:
周一上班centos服务器ssh不可用,web和数据库等应用不响应。好在vnc可以登录
使用last命令查询,2号之前的登录信息已被清空,并且sshd文件在周六晚上被修改,周日晚上2点服务器被人远程重启
root pts/1 :1.0 Mon Jul 3 11:09 still logged in
root pts/1 :1.0 Mon Jul 3 11:08 - 11:09 (00:01)
root pts/0 :0.0 Mon Jul 3 10:54 still logged in
root tty1 :0 Mon Jul 3 10:53 still logged in
reboot system boot 2.6.32-696.3.2.e Mon Jul 3 10:46 - 11:11 (00:25)
root pts/0 :0.0 Mon Jul 3 10:42 - down (00:01)
root tty1 :0 Mon Jul 3 10:40 - down (00:03)
reboot system boot 2.6.32-696.3.2.e Sun Jul 2 02:31 - 10:44 (1+08:12)
reboot system boot 2.6.32-431.el6.x Sun Jul 2 02:27 - 02:27 (00:00)
Jul 2 03:11:20 oracledb rsyslogd: [origin software="rsyslogd" swVersion="5.8.10
" x-pid="1960" x-info="
http://www.rsyslog.com"] rsyslogd was HUPed
Jul 2 03:35:11 oracledb sshd[13864]: Did not receive identification string from
使用less /var/log/messages命令2点结合last命令,判断2点重启后IPATABLES生效,有大量的ssh暴力破解的扫描信息,由于机器是测试环境,上面安装了ORACLE和squid,临时管理了iptables,重启后iptables启动,应该没有再次被再次登录,但是系统中部分文件以及被修改
message文件中部分信息如下:
103.207.37.86
Jul 2 03:35:12 oracledb sshd[13865]: error: Bad prime description in line 186
Jul 2 03:35:12 oracledb sshd[13865]: error: Bad prime description in line 187
Jul 2 03:35:12 oracledb sshd[13865]: error: Bad prime description in line 188
Jul 2 03:35:13 oracledb sshd[13865]: Failed password for illegal user support f
103.207.37.86 port 58311 ssh2
Jul 2 03:45:05 oracledb sshd[13887]: Illegal user support from
103.79.143.234
113.108.21.16
Jul 2 05:10:37 oracledb sshd[14126]: Illegal user support from
103.79.143.234
Jul 2 05:10:37 oracledb sshd[14126]: Failed password for illegal user support f
rom
103.79.143.234 port 57019 ssh2
Jul 2 05:10:43 oracledb sshd[14128]: Did not receive identification string from
解决方法
1.修改root用户密码
2.由于sshd文件被修改,重新安装ssh,并设置只有指定内网IP可以访问
3.配置iptables,使iptables
重装SSHD
1.rpm -qa | grep ssh查询已安装包
系统已安装包:
openssh-clients,openssh-server,openssh,openssh-askpass
删除这四个包,删除时centos提示包之间有依赖关系,按照提示从依赖关系的最里层开始删除,
按照openssh-askpass openssh openssh-server openssh-clients这个顺序删除就可以了。
2.安装
使用yum逐一安装,yum install openssh-askpass **
安装openssh-server时提示:
unpacking of archive failed on file /user/sbin/sshd cpio:rename
删除文件提示Operation not permitted错误
查询文件的隐藏属性
lsattr /usr/sbin/sshd
-u---ia--e /usr/sbin/sshd
i:设定文件不能被删除、改名、设定链接关系,同时不能写入或新增内容。i参数对于文件 系统的安全设置有很大帮助。
a 即append,设定该参数后,只能向文件中添加数据,而不能删除,多用于服务器日志文件安全,只有root才能设定这个属性
使用 chattr -ia /usr/sbin/sshd修改文件的隐藏属性,取消对应设置之后删除成功
+ :在原有参数设定基础上,追加参数。
- :在原有参数设定基础上,移除参数
再次yum install openssh-server 成功
3.配置ssh登录控制,设置管理IP,黑白名单
vi /etc/ssh/sshd_config
#修改端口号
Port 52111
#只允许SSH2方式的连接
Protocol 2
#容许root用户登录,因为后面会设置可登录IP,所以这里就容许了
PermitRootLogin yes
#不容许空密码
PermitEmptyPasswords no
#屏蔽来自所有的SSH连接请求
vi /etc/hosts.deny
sshd: ALL
#允许来自内网指定ip的SSH连接请求
vi /etc/hosts.allow
sshd: 192.168.0
sshd: 192.168.253.**
配置对应iptables设置
1.iptables配置规则
iptables [-t表名] [-A|I|D|R 链名 ] [-i网卡名] [-p协议] [-s源IP] [-d目标ip] [--dport目标端口号] [-j动作]
这里需要配置的是filter表,filter表中有input,output,forward三条规则链,如果本机服务比较多,规则比较繁琐,比较便捷的方法是写shell脚本之后重启ssh服务
#限制SSH的连接IP
iptables -A INPUT -s 192.168.101.32 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -s 192.168.101.35 -p tcp --dport 22 -j ACCEPT
#SSH支持52111是修改后SSH端口
iptables -A OUTPUT -p tcp --sport 52111 -j ACCEPT
这里只是针对SSH做了简单配置,具体iptables的配置,详见iptables配置一文
配置后/etc/rc.d/init.d/iptables save保存,使用service iptables restart重启服务后配置生效。
原文链接:Linux服务器被黑客入侵的处理工作,转载请注明来源!