【注意:修改ssh相关配置文件前,记得做好备份。】
1、ssh远程登录失败处理(限制非法登录次数)
启用登录失败处理功能,可采取结束会话、限制非法登录次数和自动退出等措施。
例如:登录次数限制:3次 锁定时间5分钟
vi /etc/pam.d/sshd
在#%PAM-1.0下面添加一行(即第二行,也必须是第二行,如果写在后面的话,虽然账户也会被锁定,但是只要输对了密码,不用等待锁定的时间结束即可以登录):
auth required pam_tally2.so deny=3 unlock_time=300 even_deny_root root_unlock_time=600
可用命令:
#sed -i '2a\auth required pam_tally2.so deny=3 unlock_time=300 even_deny_root root_unlock_time=600' /etc/pam.d/sshd
---------------------
此登录失败处理为ssh登录,如需设置tty终端登录,则设置 /etc/pam.d/login 设置和ssh远程登录锁定设置一样
2、修改banner信息
#cat /etc/ssh/sshd_config 查看文件中是否存在banner字段,或banner字段为NONE
#cat /etc/motd 查看文件内容,该处内容将作为banner信息显示给登录用户
加固方法:
#vi /etc/ssh/sshd_config
banner NONE
#vi /etc/motd
删除全部内容或更新成自己想要添加的内容
风险:无可见风险
3、修改ssh远程端口号
1、编辑 vi /etc/ssh/sshd_config
#port 22 把注释#去掉,更改端口号,如8789
2、防火墙开放端口8789: #iptables -I INPUT -p tcp --dport 8789 -j ACCEPT
3、重启服务:service sshd restart
注意:修改端口错误可能会导致你下次连不到服务器,可以先同时开着22和6022两个端口,然后再关掉22端口;
重启sshd不会弹掉你当前的连接,可以另外开一个客户端来测试服务;
4、修改版本号
ssh -V (查看ssh的版本)
修改版本号: # sed -i 's/OpenSSH_4.3p2/OpenSSH_5.6p1/g' /usr/bin/ssh
5、禁止root用户远程登录
vi /etc/ssh/sshd_config
修改 PermitRootLogin yes 改为no
6、设置ssh自动断线时间(以及终端断开时间)
#vi /etc/profile 或者 #vi /etc/bashrc
添加 TMOUT=600 (以秒为单位)
__________
或者(与上面同时设置,则此设置优先):
修改自己 HOME 目录下的.bash_profile文件,加上
export TMOUT=600 (以秒为单位)
然后运行 source .bash_profile
7、启动防火墙(iptables)之后,登录ssh变慢
开启防火墙之后,登录ssh变慢的解决方法。
问题描述:
没有启动iptables服务,登录ssh速度很快。
启动了iptables服务之后,登录ssh就会变得很慢。
这段内容,可以帮助大家理解:
UseDNS 选项打开状态下,当客户端试图登录SSH服务器时,服务器端先根据客户端的IP地址进行DNS PTR反向查询出客户端的主机名,然后根据查询出的客户端主机名进行DNS正向A记录查询,验证与其原始IP地址是否一致,这是防止客户端欺骗的一种措施,但一般我们的是动态IP不会有PTR记录,打开这个选项不过是在白白浪费时间而已,不如将其关闭。
编辑 /etc/ssh/sshd_config
将#UseDNS yes 改为 UseDNS no ,保存退出(注意:虽然是注释状态,但默认启用了UseDNS,状态为yes)
重启ssh服务:service sshd restart
8、限制ip登录的安全策略方法
比如说你只允许10.0.0.2这个ip进入,其它都禁止:
vim /etc/ssh/sshd_config
添加一行:
allowusers root@10.0.0.2
注:root为你用来登入服务器的用户名
最后sshd重启
service sshd restart