默认ssh端口为 22,总是被人扫描登录。每天都有来自全国各地的不法分子非法暴力破解我的服务器密码,极为耗费资源。本文介绍我修改默认端口号的方法。
服务器日志显示很多的异地iP尝试暴力破解我的服务root账号。
whereis ssh
12 | whereis ssh |
---|
vim /etc/ssh/sshd_config
12 | vim /etc/ssh/sshd_config |
---|
会出现如下提示,大家能够看到#port 22,代表默认端口22。按下键盘的i,vi命令中i是编辑,你按下i之后进入插入状态,这时候可以用键盘的上下键移动绿色光标并用键盘的delete键删除前面的#号,注释掉22端口。
为什么要先把port 22前面的 # 去掉呢?因为在配置文件中,# 是linux的注释,凡是#后的代码都不会执行。而SSH默认的端口为22,所以配置文件在默认的情况下以#出现。当你需要更改为其它端口或添加多端口同时SSH访问时,就要删掉注释符号,让程序能够执行你的命令。
另起一行手动添加新的端口(自定义端口建议选择5位数端口如:10000-65535之间 ),保留22是为了防止防火墙屏蔽了其它端口导致无法连接VPS,比如你注释了端口22,新添加的12366端口防火墙也没放行,那么恭喜你给自己挖坑了,可能下次你就无法通过SSH连接VPS了。为了防止这种尴尬的情况发生,就要给自己留条后路,等到新端口可以正常连接SSH了,再删除22端口也不迟。 这时候按键盘的“ESC”键退出当前状态,再输入“:wq”命令保存退出。
service sshd restart
12 | service sshd restart |
---|
退出当前连接的SSH窗口,连接新的端口号。
这时候悲催的发现连不上服务器了,分析了一下是因为没有把9856端口添加到服务器的防火墙里面导致的,好在刚才给自己留了后门!所以再重复上面第四步把SSH的端口号改回到22,登陆到服务器。
CentOS7使用firewall工具管理防火墙,代替了原来的iptables
如果是老版的CentOS,防火墙可能是iptables,可以用下面的方法。
vi /etc/sysconfig/iptables
12 | vi /etc/sysconfig/iptables |
---|
添加新的端口,就是设置的SSH的端口号。修改配置文件后重启防火墙。
service iptables restart
12 | service iptables restart |
---|
我的服务器用了最新的firewall工具管理防火墙,所以传统的方式不管用。 操作步骤如下:
#查看防火墙状态=》使用root的身份=》结果为running firewall-cmd --state #永久性的开放9856端口 firewall-cmd --add-port=9856/tcp permanent #重载生效刚才的端口设置 firewall-cmd --reload
1234567 | #查看防火墙状态=》使用root的身份=》结果为runningfirewall-cmd --state#永久性的开放9856端口firewall-cmd --add-port=9856/tcp permanent#重载生效刚才的端口设置firewall-cmd --reload |
---|
常用的firewall命令常用命令介绍
firewall-cmd --state ##查看防火墙状态,是否是running firewall-cmd --reload ##重新载入配置,比如添加规则之后,需要执行此命令 firewall-cmd --get-zones ##列出支持的zone firewall-cmd --get-services ##列出支持的服务,在列表中的服务是放行的 firewall-cmd --query-service ftp ##查看ftp服务是否支持,返回yes或者no firewall-cmd --add-service=ftp ##临时开放ftp服务 firewall-cmd --add-service=ftp --permanent ##永久开放ftp服务 firewall-cmd --remove-service=ftp --permanent ##永久移除ftp服务 firewall-cmd --add-port=80/tcp --permanent ##永久添加80端口 firewall-cmd --remove-port=80/tcp --permanent ##永久移除80端口 firewall-cmd --list-ports ##查看已经开放的端口 iptables -L -n ##查看规则,这个命令是和iptables的相同的 man firewall-cmd ##查看帮助
firewall-cmd --list-ports
12 | firewall-cmd --list-ports |
---|
可以看到已经有新的端口放行了。 下面重复0x4步里面的修改SSH软件端口的步骤,改为9856端口,连接服务器。弹出提示中选择“接受并保存”,以后再连接服务器就不会有这个提示了。 当新端口能正常登陆后,重复上面第一步的操作,把刚才留的后门22端口删除掉。然后按照上面第三步的命令重启SSH。