Linux服务器 SSH端口修改、禁用root账户远程登录

转至:https://blog.csdn.net/qq_52974612/article/details/122242148

目录

SSH端口修改

1.使用root账户登录服务器

2..用vim打开/etc/ssh/sshd_config配置文件

3.重启ssh服务

4.向防火墙中添加修改的端口

5.测试新的端口能否连接并禁用默认端口

禁用root账户远程登录

1.添加用户

2.修改 /etc/sudoers文件

3.禁用root远程登录

4.用su root登录root账户

一些问题以下是在SELinux开启的情况下的一系列操作,如果不是特别了解千万不要开

 

SSH端口修改

为什么要修改ssh端口呢?因为总有一些人然闲着没事儿就去试有哪些 傻子 开着默认ssh端口 然后暴力破解你的密码。。。。不改的话不安全,虽然改了也不安全。。。

1.使用root账户登录服务器

 

 

2..用vim打开/etc/ssh/sshd_config配置文件

vim /etc/ssh/sshd_config

i进入编辑,找到#Port 22把注释去掉变成Port 22在加上一行Port 25535

 

 

然后按ESC再输入:wq进行保存

3.重启ssh服务

systemctl restart sshd.service

4.向防火墙中添加修改的端口

向防火墙中添加端口25535

firewall-cmd --zone=public --add-port=25535/tcp --permanent

 

 reaload 防火墙规则

firewall-cmd --reload

 

 查看端口是否添加成功 

firewall-cmd --zone=public --query-port=25535/tcp

 

 

如果开启了SELinux还需要下面这些步骤(若无则跳过)

在写这篇文章的时候出现了问题

本着试一试的心态 把SELinux开启了 然后出现了问题 我登录不上去了 通过阿里云的救援连接把SELinux关掉才重新进去的 还没解决这个问题 在结尾有详细说明

还是不要开了这个选项吧 默认都是关的

先查看SELinux是否开启

/usr/sbin/sestatus -v

 

 

显示disabled为关闭,enable为开启

打开配置文件/etc/selinux/config

vim /etc/selinux/config

如果想关闭SELinux,将SELINUX=enforcing改为SELINUX=disabled

 

 

重启机器即可

5.测试新的端口能否连接并禁用默认端口

i进入编辑,找到Port 22注释掉变成#Port 22然后按ESC再输入:wq进行保存

 

 

这样我们的ssh端口就修改完成了

 

禁用root账户远程登录

改了默认ssh端口之后我们还要禁用root远程登录 这样保险一些(

1.添加用户

添加用户lin

adduser lin

设置密码

passwd lin

 

 

2.修改 /etc/sudoers文件

默认情况下/etc/sudoers是所有用户只读,我们要修改一下权限

chmod u+w /etc/sudoers

用vim编辑/etc/sudoers文件

vim /etc/sudoers

找到下面这些

## Allow root to run any commands anywhere 
root    ALL=(ALL)       ALL

i进入编辑,在下面加上lin ALL=(ALL) ALL然后按ESC再输入:wq进行保存

 

 

 

改回权限 

chmod u-w /etc/sudoers

3.禁用root远程登录

编辑/etc/ssh/sshd_config文件,按i进入编辑

vim /etc/ssh/sshd_config

找到PermitRootLogin yes改为PermitRootLogin no,然后按ESC再输入:wq进行保存

重启ssh服务

systemctl restart sshd.service

 

 

这样就登录不上去了

4.用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端口的操作

semanage port -l | grep ssh

 

 

说明除了22端口没有其他端口,我们要把25535端口加进去

semanage port -a -t ssh_port_t -p tcp 25535

然后再用semanage port -l | grep ssh命令查询

 

 

 

这样就把我们想要的25535这个端口加进去了

 接下来重启ssh服务器

systemctl restart sshd.service

如果不是特别了解千万不要开

这也是我按照其他博客写的操作下去的 当时我并没有把SELinux开启

直到我把默认的ssh端口关了的时候才把这个打开的。重启服务器后我就登不上去了

 

 

靠着这个活下来的(

我也没有验证过之后的步骤是否可行 但是当我通过阿里云救援把SELinux关掉再去执行semanage port -l | grep ssh命令的时候 报错了

 

 

我也去搜了搜 大部分都是让把SELinux关掉的 少数的一些讲的我没看懂



 

posted @ 2022-06-17 14:57  study_goup  阅读(2627)  评论(0编辑  收藏  举报