1、修改SSH配置文件(注意是sshd_config而不是ssh_config,多了個d)
vim /etc/ssh/sshd_config
找到“#Port 22”,這一行直接鍵入“yyp”復制該行到下一行,然后把兩行的“#”號即注釋去掉,修改成
Port 22 Port 10086
SSH默認監聽端口是22,如果你不強制說明別的端口,”Port 22”注不注釋都是開放22訪問端口。上面我保留了22端口,防止之后因為各種權限和配置問題,導致連22端口都不能訪問了,那就尷尬了。等一切都ok了,再關閉22端口。
Ok,繼續,我增加了10086端口,大家修改端口時候最好挑10000~65535之間的端口號,10000以下容易被系統或一些特殊軟件占用,或是以后新應用准備占用該端口的時候,卻被你先占用了,導致軟件無法運行。
2、如果你關閉了SELinux,可以忽略第二步
先查看SELinux開放給ssh使用的端口
semanage port -l|grep ssh
我的系統打印如下:
ssh_port_t tcp 22
可知,SELinux沒有給SSH開放10086端口,那么我們來添加該端口:
semanage port -a -t ssh_port_t -p tcp 10086
完成后,再次查看
semanage port -l|grep ssh ssh_port_t tcp 22,10086
3、開啟或者關閉指定的端口
查詢有哪些端口是開啟的:
firewall-cmd --list-port
先查看防火牆是否開啟了10086端口:
firewall-cmd --permanent --query-port=10086/tcp
打印結果如下:
no
表示沒有開放10086端口,那么添加下該端口:
firewall-cmd --permanent --add-port=10086/tcp
打印結果如下:
success
重新加載防火牆策略:
firewall-cmd --reload
執行成功后,查看10086端口是否被開啟:
firewall-cmd --permanent --query-port=10086/tcp
打印結果如下:
yes
關閉指定端口:
firewall-cmd --zone=public --remove-port=80/tcp --permanent //關閉端口 firewall-cmd --reload //重新載入,使其生效
然后,通過上面的查詢命令,查看端口是否關閉即可!
4、重啟SSH服務和防火牆,最好也重啟下服務器
systemctl restart sshd
systemctl restart firewalld.service
shutdown -r now
5、嘗試通過10086端口登錄SSH,或者進入該服務器直接本地訪問SSH如下
ssh root@localhost -p 10086
如果成功,說明10086已經完全可以使用了,接下來你就可以根據上述步驟把sshd_config的Port22注釋掉,SELinux和防火牆(Firewalld)關閉22端口就OK,大功告成!
補充欄:
1、查看某端口是否被占用,以10086為例;
netstat -lnp|grep 10086
2、查看是否開啟了SELinux;
sestatus -v
說明已經打開,可以通過修改SELinux的配置開啟或關閉它:
vim /etc/selinux/config
找到:
SELINUX=enforcing
修改為:
SELINUX=disabled
即可關閉SELinux!
3.semanage命令無法使用,或說找不到該命令。說明沒有配置該命令,可以進行以下命令進行安裝;
yum -y installpolicycoreutils-python-2.5-9.el7.x86_64
關於它的依賴庫我就不作贅述,可以百度下更全面的安裝semanage教程。
4.CentOS7防火牆改為firewalld了,而不是iptables,對應的命令也請百度下,這里不作贅述。