为了安全起见,我们一般在实际环境中都会修改SSH服务的默认连接端口,以防止网络上的各种SSH密码暴力破解。

1.修改SSH服务默认端口

 vim /etc/ssh/sshd_config
 

# semanage port -a -t ssh_port_t -p tcp #PORTNUMBER
#
Port 22
Port 4444
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

将这port 前面的#号去除,增加一行 port 4444,新端口号为4444。
注意:修改远程服务器时,不要注释掉22端口,防止防火墙配置错误,无法使用新端口连接上远程服务器。在最后设置完防火墙规则后,再回来注释掉22端口即可。

修改为保存退出vim,重启ssh服务。

#systemctl restart sshd

重启完服务,看下端口是否正常开放。

#netstat -tnlp

有看到  22、4444端口就可以。

2.检查Selinux是否关闭

Selinux默认为开启状态,不关闭Selinux的话,新端口无法连接成功。
SELinux 的结构及配置非常复杂,而且有大量概念性的东西,要学精难度较大。很多 Linux 系统管理员嫌麻烦都把 SELinux 关闭了。
我这里早就关闭了SELinux。

# sestatus
SELinux status:                 disabled

disabled即为关闭状态。
 

永久关闭selinux

vim /etc/selinux/config

找到“selinux=”那一行

修改为:SELINUX=disabled

保存,退出。

(重启系统reboot后生效。)

3.添加防火墙Firewall端口规则

centos 7 默认使用的 是 firewalld  所以先看看是否运行

#firewall-cmd --state

查看端口 规则

#firewall-cmd --permanent --list-port

删除端口

#firewall-cmd --permanent --remove-port=4444/tcp

添加端口 到防火墙例外

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

添加完端口,重新reload一下就可以了
#firewall-cmd  --reload

然后看一下规则

#iptables -nL --line-number

Chain IN_public_allow (1 references)
num  target     prot opt source               destination
1    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:4444 ctstate NEW,UNTRACKED

#firewall-cmd --permanent --list-port
4444 /tcp

最后用新端口4444连接SSH,如果没问题,就可以返回第1步,编辑sshd_config文件,注释掉22端口,重启SSH服务。