> CentOS > CentOS安全 >

Centos服务器ssh安全设置

互联网很危险,ssh做为服务器的大门一定要做好安全设置,我曾经做过测试,一台VPS开启ssh服务监听默认端口22,几天后secure日记分割了10多个,统计最新几小时的恶意登录失败的IP数据如下:

 

真是个恐怖的次数,蛋痛的人太多了,如果密码稍简单就被破解了,如需自动封IP请参考:使用iptables自动封IP的Shell脚本。

1.更改默认端口

网上很多针对22端口扫描的软件,这样不会被误伤。

  1. sed -i 's/#Port 22/Port 33333/g' /etc/ssh/sshd_config #更改ssh端口为3333  

 

2.禁止root登录

新建普通用户登录,登录后可su -转入root账户,让恶意登录者无法猜测用户名。

 
  1. useradd onovps #新建用户名  
  2. passwd onovps #设置密码  
  3. sed -i 's/#PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_config #禁止root登录  
  4. service sshd restart #重启ssh服务生效  

 

3.限制登录失败次数并锁定

  1. vim /etc/pam.d/login  

 

在#%PAM-1.0下面添加:

auth required pam_tally2.so deny=5 unlock_time=180 #登录失败5次锁定180秒,不包含root

auth required pam_tally2.so deny=5 unlock_time=180 even_deny_root root_unlock_time=180 #包含root

4.允许特定的用户登录

编辑ssh配置文件:

  1. vim /etc/ssh/sshd_config  

 

Allow Users user #默认允许全部,多个用户以空格隔开,也可拒绝特定用户登录。

Deny Users user

5.设置重复验证次数,默认3次:

MaxAuthTries 0 #错误一次即断开连接

6.直接用Iptables封闭ssh端口

为ssh服务器设置开门钥匙,有此其它都是浮云啦。。。

 一般做这些设置就足够了,也可设置为禁用密码用密钥登录,不同客户端方法不同,以后再写吧。

 
(责任编辑:IT)