Linux Study Lab !

当前位置:   网站首页 >> Linux 基础配置

设置sshd服务禁止root直接远程登陆服务器

在公网环境中,端口扫描和试探性攻击几乎无时无刻的发生着。每当面向公网开启一个服务时都必须倍加小心,在没有硬件防火墙的情况下,甚至应该想办法更改默认服务端口来抵御一些扫描攻击。这里提供一个简易也是主流的防范方法,主要是针对sshd服务的。

通常我们登陆远端的服务器都使用ssh链接,很多人喜欢直接用root,其实存在的风险是比较大的,建议在服务器上建立一个普通用户,用户名可以怪异一些或者比较生疏的英文甚至是毫无意义的组合。比如

useradd hehewolegequ
passwd hehewolegequ
使用密码 nuf87jidD9O

然后打开服务器上的sshd配置文件

vi /etc/ssh/sshd_config

找到

#PermitRootLogin prohibit-password

去掉注释符号,并且修改yes为prohibit-password,wq保存,重启sshd服务

service sshd restart
若是centos 7 请运行下面这个服务命令
systemctl restart sshd.service

然后你就会发现直接用root是登陆不了服务器了,将登陆配置替换为刚才新建的用户或者你已有的用户,成功登陆后使用su提权root即可进行日常的服务维护了。

如果要修改sshd服务的端口的话,可以在配置文件里找到

vi /etc/ssh/sshd_config
#Port 22

去掉注释符号后,后面的22改为你想设置的端口即可,服务器端口范围一般在1-65536,但是1024下有很多常用端口,请选择非常用服务的端口作为sshd的新设置。同样,设置好以后保存重启服务即可得到效果。


附:在CentOS7下若要使更改过的ssh端口通过seliunx,需要做如下设置:

semanage port -l | grep ssh     //看一下当前selinux中ssh端口是多少
semanage port -a -t ssh_port_t -p tcp 20000   //举例添加20000端口为ssh用
若添加成功,再次使用第一条命令会有如下返回:
ssh_port_t                    tcp    20000, 22



发表我的评论

Hi,您需要填写昵称和邮箱!

  • 必填项