设置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