本文标签:

为了防止VPS被暴力破解,所以之前写了一个《Centos设置禁止密码登录而只使用密钥登录SSH方法》,但是如果不修改SSH服务的端口,仍然会有不断的尝试,这样一来还是浪费服务器资源,修改SSH端口可以较大概率避免此问题,然而上网一搜索,全是乱七八糟的转载,都是只转载而未经任何测试,根本不可用,于是慢慢摸索写了这个方法。

(以下全程使用Xshell操作,SSH端口号修改为58585)

编辑文件时建议使用nano编辑器修改文件,比较方便,vi的话操作没有提示,相对不够方便,不过为了通用还是以vi为例,实际使用的话可以修改vi为nano。

首先修改防火墙,开启端口,以免等下改了端口就连不上来了。这一点尤为重要。所以我决定放在最前面。(搞不懂很多人喜欢胡乱转载,很多都写的都是修改SSH端口竟然不修改防火墙配置,那样修改端口后就连不上服务器了,后悔去吧)

由于Centos 7默认的防火墙是firewalld而不是XXX(Centos 6以及更低版本默认防火墙软件是XXX),所以方法区分firewalld和XXX。

如果是firewalld,执行一条命令并重启firewalld服务就可以了。

firewall-cmd --permanent --add-port=58585/tcp
service firewalld restart

如果是Centos 6或者更低版本,则默认防火墙是iptables,添加端口方法

vi /etc/sysconfig/iptables
添加一行规则(为了安全,最后所有操作完成后,要回到这里删除掉22端口的规则并重启防火墙,暂时保留是为了防止意外)
-A INPUT -p tcp -m state --state NEW -m tcp --dport 58585 -j ACCEPT
然后重启防火墙
service iptables save
service iptables restart

然后修改/etc/ssh/sshd_config文件里的Port 22中的22改为想要的端口号,如果前面有#号,一定要去掉,否则不生效!

vi /etc/ssh/sshd_config
找到Port 22并把22修改成58585,保存文件后重启SSH服务

service sshd restart

修改就好了,简单粗暴有效。
(在增加端口后建议使用下面这个命令查询端口是否开启【增加了端口后马上可以查询到,但重启服务后才会生效】)
firewall-cmd --permanent --query-port=58585/tcp
(如果需要删除端口,使用这个命令)
firewall-cmd --permanent --remove-port=58585/tcp

 » 订阅本站:http://feed.x2009.net