提高SSH Server安全性的5种方法

作者:袖梨 2022-11-14

昨日从onenote里翻出来Virtualbox的安装后…也顺道把本文标记了,今天编辑一下与大家分享一下:

1、禁止SSHD监听端口

2、禁止root登入,限制只有某些账户可以登录

3、使用denyhosts或fail2ban保护sshd服务

4、使用秘钥登录

5、不要每一台服务器都对外开放sshd端口

操作环境:Redhat/CentOS/Fedora

1、变更SSHD监听端口

一、修改配置文件实现

代码如下 复制代码



[root@itchenyi-01~]#cat/etc/ssh/sshd_config|grep"#Port"
#Port22222

[root@itchenyi-01~]#servicesshdrestart
Stoppingsshd:[OK]
Startingsshd:[OK]

二、修改防火墙PortForwarding设置

1.登录防火墙WEB管理界面,或者通过telnet协议上去

2.修改NAT/PortForwarding设置,将publicPort改成22222,privateport仍然是22

3.保存规则

注:本法基于NAT,其端口号可以自由选择,不冲突即可,这是避免遭受骚扰的非常有效的办法。

2、禁止root登录,限制只有某些账号可以登录

代码如下 复制代码

[root@itchenyi-01~]#vi/etc/ssh/sshd_config
PermitRootLoginno
AllowUserschenyiitchenyichenyiA

#完事重启服务即可

注:避免root账户被破解,一般要养成“以一般账户登入的”习惯;只允许需要ssh操作的账号入会更安全,但注意多个账号之间需要空格隔开,弄错了就只能console到物理机上去玩了。

3、使用denyhosts或fail2ban防护sshd服务

在CentOS6上安装denyhosts

代码如下 复制代码


#略过具体演示
Step1.安装EPELRepos#
Step2.[root@itchenyi-01~]#yum-yinstalldenyhosts
Step3.[root@itchenyi-01~]#chkconfigdenyhostson&&servicedenyhostsstart

配置文件路径:/etc/denyhosts.conf,/etc/sysconfig/denyhosts

在CentOS6上安装fail2ban

代码如下 复制代码


Step1.安装EPELRepos
Step2.[root@itchenyi-01~]#yum-yinstallfail2ban
Step3.[root@itchenyi-01~]#chkconfigfail2banon&&servicefail2banstart
配置文件路径:/etc/fail2ban/*

注:若已经变更了sshd端口,需要在/$fail2ban(path)/jail.conf将port=ssh改成自定端口,默认设置的denyhosts与fail2ban都是针对sshd在进行防御

4、使用秘钥登录

配置文件:

代码如下 复制代码



#vi/etc/ssh/sshd_config
#禁止密码登入
PasswordAuthenticationno
或www.111com.net
#限制某些账户必须使用秘钥登录
PasswordAuthenticationyes
MatchUseruserA,userB
PasswordAuthenticationno

使用秘钥登录可以避免密码泄露而且很安全,但需要保管好私钥

参考文章:配置Linux服务器SSH远程密钥登录

5、不要给每一台服务器都对外开放sshd的端口

即使改变sshd侦听端口,但是只要暴露在internet上就有呗入侵的风险,因此,除非必要,否则不建议每台服务器都开放internet登入sshd,只开放一台server作为跳板,限制链接登录IP来源,或VPN服务,都是比较保险的做法。

相关文章

精彩推荐