修改ssh的默认22端口

在国外买的vps防止别人扫描端口,于是我把ssh默认的22端口修改一下。
1.修改配置文件:/etc/ssh/sshd_config ,找到

1
#port 22

2.先将Port 22 前面的 # 号去掉,并另起一行。如定义SSH端口号为33322,则输入

1
Port 33322

自定义端口选择建议在万位的端口(如:10000-65535之间)
也许您会问为什么要先把port 22前面的 # 去掉呢?因为在配置文件中,# 是Linux的注释字符。注释字符后的代码程序是不会执行的。SSH默认的(即非手动指定)端口为22,所以配置文件在默认的情况下以注释字符出现。当需要指定其它端口或多端口同时访问时,就要删掉注释符号,告知程序按照您的意愿来执行响应操作。
以上操作,手动指定SSH端口为22和33322(双端口号),保留22是为了防止个别防火墙屏蔽了其它端口导致无法连接VPS(如没单独指定22,新指定的33322端口防火墙也没放行,那么可能无法通过SSH连接VPS或服务器)。为了防止不必要问题的产生,所以要给自己保留条“后路”。
3、修改完毕后,重启SSH服务,并退出当前连接的SSH端口。(如图)

1
service sshd restart

CentOS下SSH默认端口22修改成其他端口
4.重启完毕,尝试使用新端口登陆
连接成功,需要重新添加SSH-RSA验证,点击是(或Yes)即可。
5.若能正常访问,返回第一步,根据第二步的操作将原port 22整段注释或删掉,再按第三步重启SSH即可。
以上步骤重启后使用默认22号端口无法进入SSH,达到目的。
【请注意】:
如果您启用了防火墙iptables,那么必须先添加新开的33322端口
补充:iptables开放端口端示例
为了方便举例说明,就直接拿来一段我的现有服务器上运行的防火墙iptables内容。

请注意:后面的注释说明文字:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
vim /etc/sysconfig/iptables

# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT # (ssh端口)
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT # (web端口)
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT # (ftp端口)
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

修改完防火墙iptables后,需要重新启动:

1
2
3
/etc/init.d/iptables restart
# 或者
service iptables restart

注意:iptables配置文件存放位置是:/etc/sysconfig/iptables
保存命令:service iptables save
使用命令:iptables -L -n 可以查看当前iptables的开放端口情况。

  • 作者: Sam
  • 发布时间: 2017-12-04 23:20:41
  • 最后更新: 2019-12-09 23:03:26
  • 文章链接: https://ydstudios.gitee.io/post/68417c42.html
  • 版权声明: 本网所有文章除特别声明外, 禁止未经授权转载,违者依法追究相关法律责任!