Linux服务器 SSH端口修改、禁用root账户远程登录
SSH端口修改
为什么要修改ssh端口呢?因为总有一些人然闲着没事儿就去试有哪些 傻子 开着默认ssh端口 然后暴力破解你的密码。。。。不改的话不安全,虽然改了也不安全。。。
使用root账户登录服务器
用vim打开/etc/ssh/sshd_config
配置文件
1 | vim /etc/ssh/sshd_config |
按i
进入编辑,找到#Port 22
把注释去掉变成Port 22
在加上一行Port 25535
然后按ESC
再输入:wq
进行保存
重启ssh服务
1 | systemctl restart sshd.service |
向防火墙中添加修改的端口
向防火墙中添加端口25535
1 | firewall-cmd --zone=public --add-port=25535/tcp --permanent |
reaload
防火墙规则
1 | firewall-cmd --reload |
查看端口是否添加成功
1 | firewall-cmd --zone=public --query-port=25535/tcp |
如果开启了SELinux还需要下面这些步骤(若无则跳过)
在写这篇文章的时候出现了问题
本着试一试的心态 把SELinux开启了 然后出现了问题 我登录不上去了 通过阿里云的救援连接把SELinux关掉才重新进去的 还没解决这个问题 在结尾有详细说明
还是不要开了这个选项吧 默认都是关的
先查看SELinux是否开启
1 | /usr/sbin/sestatus -v |
显示disabled
为关闭,enable
为开启
打开配置文件/etc/selinux/config
1 | vim /etc/selinux/config |
如果想关闭SELinux,将SELINUX=enforcing
改为SELINUX=disabled
重启机器即可
测试新的端口能否连接并禁用默认端口
按i
进入编辑,找到Port 22
注释掉变成#Port 22
然后按ESC
再输入:wq
进行保存
这样我们的ssh端口就修改完成了
禁用root账户远程登录
改了默认ssh端口之后我们还要禁用root远程登录 这样保险一些(
添加用户
添加用户lin
1 | adduser lin |
设置密码
1 | passwd lin |
修改 /etc/sudoers
文件
默认情况下/etc/sudoers
是所有用户只读,我们要修改一下权限
1 | chmod u+w /etc/sudoers |
用vim编辑/etc/sudoers
文件
1 | vim /etc/sudoers |
找到下面这些
1 | ## Allow root to run any commands anywhere |
按i
进入编辑,在下面加上lin ALL=(ALL) ALL
然后按ESC
再输入:wq
进行保存
改回权限
1 | chmod u-w /etc/sudoers |
禁用root远程登录
编辑/etc/ssh/sshd_config
文件,按i
进入编辑
1 | vim /etc/ssh/sshd_config |
找到PermitRootLogin yes
改为PermitRootLogin no
,然后按ESC
再输入:wq
进行保存
重启ssh服务
1 | systemctl restart sshd.service |
这样就登录不上去了
用su root
登录root账户
上述操作只是禁止了root用户远程登陆,并没有禁止别的用户,我们可以先用别的用户登陆,再用su root
命令切回root用户
这样禁用root远程登录就完成了
一些问题
以下是在SELinux开启的情况下的一系列操作
使用semanage port -l | grep ssh
命令查看当前SElinux 允许的ssh端口
如果提示-bash: semanage: command not found
则需要用yum provides semanage
命令查找semanage是由哪个包来支持的
如图提示:policycoreutils-python-2.5-34.el7.x86_64 : SELinux policy core python utilities
这个policycoreutils-python-2.5-34.el7
就是我们所需包的包名
接下来就用yum install policycoreutils-python-2.5-34.el7
命令去下载对应的包
然后经过一系列操作就Complete!
了
接下来继续刚才查看当前SElinux 允许的ssh端口的操作
1 | semanage port -l | grep ssh |
说明除了22
端口没有其他端口,我们要把25535
端口加进去
1 | semanage port -a -t ssh_port_t -p tcp 25535 |
然后再用semanage port -l | grep ssh
命令查询
这样就把我们想要的25535
这个端口加进去了
接下来重启ssh服务器
1 | systemctl restart sshd.service |
如果不是特别了解千万不要开
这也是我按照其他博客写的操作下去的 当时我并没有把SELinux开启
直到我把默认的ssh端口关了的时候才把这个打开的。重启服务器后我就登不上去了
靠着这个活下来的(
我也没有验证过之后的步骤是否可行 但是当我通过阿里云救援把SELinux关掉再去执行semanage port -l | grep ssh
命令的时候 报错了
我也去搜了搜 大部分都是让把SELinux关掉的 少数的一些讲的我没看懂(