CentOS7.x修改SSH端口号的方法

技术问题

CentOS7.x修改SSH端口号的方法

2024-08-27 09:13


CentOS7.x修改SSH端口号的方法

                                            




第一步:修改SSH配置文件(注意是sshd_config而不是ssh_config,多了个d)
vim /etc/ssh/sshd_config
找到“#Port 22”,这一行直接键入“yyp”复制该行到下一行,然后把两行的“#”号即注释去掉,修改成:
Port 22
Port 4042
SSH默认监听端口是22,如果你不强制说明别的端口,”Port 22”注不注释都是开放22访问端口。上面我保留了22端口,防止之后因为各种权限和配置问题,导致连22端口都不能访问了,那就尴尬了。等一切都ok了,再关闭22端口。
Ok,继续,我增加了4042端口,大家修改端口时候最好挑10000~65535之间的端口号,10000以下容易被系统或一些特殊软件占用,或是以后新应用准备占用该端口的时候,却被你先占用了,导致软件无法运行。

第二步:如果你关闭了SELinux,可以忽略第二步。
先查看SELinux开放给ssh使用的端口
semanage port -l|grep ssh
一般系统如下:
ssh_port_t     tcp    22
可知,SELinux没有给SSH开放4042端口,那么我们来添加该端口:
semanage port -a -t ssh_port_t -p tcp 4042
完成后,再次查看:
semanage port -l|grep ssh
ssh_port_t    tcp   4042,22

第三步:如果你关闭了防火墙,可以忽略第三步,话说防火墙不开启太危险了,建议开启。
先查看防火墙是否开启了4042端口:
firewall-cmd --permanent --query-port=4042/tcp
打印结果如下:
no
表示没有开放4042端口,那么开放该端口:
firewall-cmd --permanent --add-port=4042/tcp
结果如下:
success
重新加载防火墙策略:
firewall-cmd --reload
执行成功后,查看4042端口是否被开启:
firewall-cmd --permanent --query-port=4042/tcp
打印结果如下:
yes

第四步:重启SSH服务和防火墙,最好也重启下服务器
systemctl restart sshd
systemctl restart firewalld.service
shutdown -r now

第五步:尝试通过4042端口登录SSH
如果成功,说明4042已经完全可以使用了,接下来你就可以根据上述步骤把sshd_config的Port 22注释掉,SELinux和防火墙(Firewalld)关闭22端口就OK,大工造成!

查看某端口是否被占用,以10086为例:
netstat -lnp|grep 4042
如果没有任何信息,说明没有被占用。有信息,说明被占用了,一般会列出哪个进程占用。

CentOS7禁止PING的方法:
echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all
sysctl -p
重新开启把那个文件的值设置为 0 即可 再sysctl -p 即可

查看是否开启了SELinux
sestatus -v
如果输出结果为:
SELinux status:       disabled
说明有打开,可以通过修改SELinux的配置开启或关闭它:
vim /etc/selinux/config
找到:
SELINUX=disabled
修改成:
SELINUX=enforcing


标签:
  • CentOS7.x修改SSH端口号的方法