0、说明
0.1、实验环境系统为Centos 7.4系统,最小化安装后未做任何配置
1、修改SSH默认连接端口
1.1、确保SELinux处于关闭状态
1 2 |
[root@imzcy ~]# setenforce 0 [root@imzcy ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config |
1.2、编辑sshd_config配置文件,修改默认端口(17行左右)。并重启sshd服务使配置生效
1 2 3 |
[root@imzcy ~]# grep ^Port /etc/ssh/sshd_config Port 10022 [root@imzcy ~]# systemctl restart sshd |
1.3、firewalld防火墙添加规则,放行tcp/10022端口
1 2 3 4 5 6 7 |
#添加防火墙规则 [root@imzcy ~]# firewall-cmd --permanent --zone=public --add-port=10022/tcp [root@imzcy ~]# firewall-cmd --reload #确认配置 [root@imzcy ~]# firewall-cmd --list-all |grep 10022 ports: 10022/tcp |
这时候就可以使用10022端口连接ssh服务器了。
可能遇到的问题:
1、如果修改完ssh端口号,重启sshd服务报错,然后注释掉之前的更改就能正常重启,请使用getenforce命令检查下selinux状态是否为关闭
2、禁止root用户远程登录
1 2 3 4 5 6 7 |
#2.1、修改sshd_config配置文件(38行左右) [root@imzcy ~]# grep ^PermitRootLogin /etc/ssh/sshd_config PermitRootLogin no [root@imzcy ~]# #2.2、重启sshd服务,使配置立即生效 [root@imzcy ~]# systemctl restart sshd |
3、限制ssh访问服务器的源IP
1 2 3 4 5 |
#编辑hosts.allow配置文件,追加一行内容 [root@imzcy ~]# echo "sshd:192.168.43.226:allow" >>/etc/hosts.allow #编辑hosts.deny配置文件,追加一行内容 [root@imzcy ~]# echo "sshd:ALL" >>/etc/hosts.deny |
这里只写了一种方法,还可以通过修改sshd_config配置文件来限制源IP,也可以使用firewalld来限制源IP
4、限制ssh访问服务器的用户名
1 2 3 4 5 |
#修改sshd_config配置文件,允许zcy用户ssh访问服务器(以空格分开用户;添加完允许,默认拒绝其他所有用户) [root@imzcy ~]# echo "AllowUsers zcy" >>/etc/ssh/sshd_config #重启sshd服务,使配置立即生效 [root@imzcy ~]# systemctl restart sshd |
5、修改telnet ssh端口时显示的版本号
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
#5.1、查看sshd位置 [root@imzcy ~]# whereis sshd sshd: /usr/sbin/sshd /usr/share/man/man8/sshd.8.gz #5.2、查看SSH版本 [root@imzcy ~]# ssh -V OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017 #5.3、查看sshd程序关于版本的信息 [root@imzcy ~]# strings /usr/sbin/sshd |grep OpenSSH_7.4 OpenSSH_7.4p1-RHEL7-7.4p1-11 OpenSSH_7.4 OpenSSH_7.4p1 #5.4、使用sed替换版本(记得一定要先备份下) [root@imzcy ~]# cp -p /usr/sbin/sshd ./ [root@imzcy ~]# sed -i 's/OpenSSH_7.4/OpenSSH_2.3/g' /usr/sbin/sshd #5.5、重启下sshd服务,没有报错即可 [root@imzcy ~]# systemctl restart sshd |
再使用telnet连接ssh端口,显示的版本则为:SSH-2.0-OpenSSH_2.3