场景:
周一上班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重启服务后配置生效。
 
 

最新文章

  1. (原创)详解KMP算法
  2. C# 读写十六进制bin 文件
  3. Asp.net MVC 搭建属于自己的框架(一)
  4. safeNet
  5. Windows7 IIS7.5 HTTP Error 503 The service is unavailable 另类解决方案
  6. ModalDialog.js
  7. syslog-ng 安装
  8. 配置 RAILS FOR JRUBY1.7.4
  9. openvpn服务器端配置文件
  10. Swift Core Data 图片存储与读取Demo
  11. python中使用mahotas包实现高斯模糊
  12. FIFO算法
  13. oracle执行带输入输入参数的存储过程
  14. Ubuntu 无法拖拽复制
  15. 转载:c# string.Format
  16. 新版iTunes如何设置手机铃声
  17. 移动web开发经验
  18. Spring集成Quartz完成定时任务
  19. Linux lvs三种模式工作原理
  20. 438. Find All Anagrams in a String

热门文章

  1. Docker Compose 安装 on centos7
  2. 有效运维的 on-call 机制
  3. 【软件需求工程与建模 - 小组项目】第6周 - 成果展示2 - 软件需求规格说明书V4.3
  4. thread/threading——Python多线程入门笔记
  5. Python对文件的解压和压缩
  6. c/c++ 标准库 pair 介绍
  7. 聚类——KFCM的matlab程序
  8. vue-cli笔记
  9. sq
  10. 在Ubuntu18.04上使用Anaconda(python3.7)环境中安装tensorflow1.13.1