文章目錄
- 修改Linux中SSH的端口
- Linux中默認的ssh端口
- 關閉SELinux
- 測試新端口
修改Linux中SSH的端口
Linux中默認的ssh端口
使用root用戶操作
修改前先備份ssh_config
cp /etc/ssh/sshd_config /etc/ssh/sshd_config_`date "+%Y%m%d%H%M%S"`
修改配置文件,找到已經注釋掉的22端口
vim /etc/ssh/sshd_config17 #Port 2218 #AddressFamily any19 #ListenAddress 0.0.0.020 #ListenAddress ::
將其修改為
17 #Port 22
18 Port 22
19 Port 18181
20 #AddressFamily any
21 #ListenAddress 0.0.0.0
22 #ListenAddress ::
小技巧,當進行卻去掉注釋修改的時候,可以新增一行去掉注釋,盡可能的不修改原來的行
設置的時候一定要先將22端口保留,等到測試通過后將22端口注釋掉,如果防火墻沒有開好,那就是自己給自己留坑
重啟sshd服務
systemctl restart sshd.service
查看是否新端口運行
[root@WDQCVM ~]# ss -tnlp | grep ssh
LISTEN 0 128 *:22 *:* users:(("sshd",pid=3668,fd=3))
LISTEN 0 128 [::]:22 [::]:* users:(("sshd",pid=3668,fd=4))
哎呦不對呀,這沒有剛才配置的端口
[root@WDQCVM ~]# systemctl status sshd
● sshd.service - OpenSSH server daemonLoaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)Active: active (running) since Mon 2023-08-14 14:37:05 CST; 5min agoDocs: man:sshd(8)man:sshd_config(5)Main PID: 11371 (sshd)CGroup: /system.slice/sshd.service└─11371 /usr/sbin/sshd -DAug 14 14:37:05 WDQCVM systemd[1]: Starting OpenSSH server daemon...
Aug 14 14:37:05 WDQCVM sshd[11371]: error: Bind to port 18181 on 0.0.0.0 failed: Permission denied.
Aug 14 14:37:05 WDQCVM sshd[11371]: error: Bind to port 18181 on :: failed: Permission denied.
Aug 14 14:37:05 WDQCVM sshd[11371]: Server listening on 0.0.0.0 port 22.
Aug 14 14:37:05 WDQCVM sshd[11371]: Server listening on :: port 22.
Aug 14 14:37:05 WDQCVM systemd[1]: Started OpenSSH server daemon.
看到是權限的問題,心里想這不可能有問題呀,我root啟動的
- 端口問題
- 權限問題
貌似這兩個都不行,我還更新了系統內核,都沒有解決問題
最后在網上查資料才發現是SELinux的問題
關閉SELinux
查看狀態
sestatus
[root@WDQCVM ~]# sestatus
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: enforcing
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Max kernel policy version: 31
[root@WDQCVM ~]#
修改為disabled,重啟機器生效
sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
關閉SELinux后18181端口被放出來了
[root@WDQCVM ~]# ss -tnlp | grep ssh
LISTEN 0 128 *:18181 *:* users:(("sshd",pid=977,fd=3))
LISTEN 0 128 *:22 *:* users:(("sshd",pid=977,fd=5))
LISTEN 0 128 [::]:18181 [::]:* users:(("sshd",pid=977,fd=4))
LISTEN 0 128 [::]:22 [::]:* users:(("sshd",pid=977,fd=6))
[root@WDQCVM ~]#
測試新端口
[root@WDQCVM ~]# ssh root@10.0.2.15 -p 18181
The authenticity of host '[10.0.2.15]:18181 ([10.0.2.15]:18181)' can't be established.
ECDSA key fingerprint is SHA256:yjNMl5BfVvsJ3HmpCPv3B3Y+5XbT4mxwMnDGUHSpnBs.
ECDSA key fingerprint is MD5:0d:08:47:ee:4f:32:a6:8b:8f:2d:dd:fa:f4:f3:e0:5a.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[10.0.2.15]:18181' (ECDSA) to the list of known hosts.
root@10.0.2.15's password:
Last login: Mon Aug 14 15:04:06 2023 from 192.168.31.63
[root@WDQCVM ~]#
然后禁用22端口
vim /etc/ssh/sshd_config
將Port 22添加注釋
重啟sshd服務
systemctl restart sshd.service
ss -tnlp | grep ssh
總結:ssh端口如果是暴露在公網,則建議改掉22端口,端口設置在1024~65366之間,建議關閉SELinux ,這個是Linux自帶的安全機制,是防止網絡攻擊的,但也給使用帶來了諸多不便。生產環境建議使用專用的硬件防火墻和iptables,一般情況下這種是可以實現的固定IP訪問固定端口的。如果不小心禁用了22端口只能通過終端去設置,或者拿著屏幕去機房設置了。