ssh 將22端口換為其它 防火牆設置


廢話不多說,先通過當前的SSH端口(默認為:22)登陸。
 
1、修改配置文件:/etc/ssh/sshd_config ,找到

#port 22


2、先將Port 22 前面的 # 號去掉,並另起一行。如定義SSH端口號為33322,則輸入
Port 33322
自定義端口選擇建議在萬位的端口(如:10000-65535之間)


也許您會問為什么要先把port 22前面的 # 去掉呢?因為在配置文件中,# 是Linux的注釋字符。注釋字符后的代碼程序是不會執行的。SSH默認的(即非手動指定)端口為22,所以配置文件在默認的情況下以注釋字符出現。當需要指定其它端口或多端口同時訪問時,就要刪掉注釋符號,告知程序按照您的意願來執行響應操作。
以上操作,手動指定SSH端口為22和33322(雙端口號),保留22是為了防止個別防火牆屏蔽了其它端口導致無法連接VPS(如沒單獨指定22,新指定的33322端口防火牆也沒放行,那么可能無法通過SSH連接VPS或服務器)。為了防止不必要問題的產生,所以要給自己保留條“后路”。
3、修改完畢后,重啟SSH服務,並退出當前連接的SSH端口。(如圖)

service sshd restart

 

CentOS下SSH默認端口22修改成其他端口


4、重啟完畢,嘗試使用新端口登陸
連接成功,需要重新添加SSH-RSA驗證,點擊是(或Yes)即可。
5、若能正常訪問,返回第一步,根據第二步的操作將原port 22整段注釋或刪掉,再按第三步重啟SSH即可。
以上步驟重啟后使用默認22號端口無法進入SSH,達到目的。


【請注意】:


如果您啟用了防火牆iptables,那么必須先添加新開的33322端口

補充:iptables開放端口端示例

   為了方便舉例說明,飄易就直接拿來一段我的現有服務器上運行的防火牆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 -m state --state NEW -m tcp -p tcp --dport 20000:30000 -j ACCEPT # (ftp被動模式端口范圍)
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT # (mysql端口)
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
    修改完防火牆iptables后,需要重新啟動:
/etc/init.d/iptables restart

或者
service iptables restart
    注意:iptables配置文件存放位置是:/etc/sysconfig/iptables
    保存命令:service iptables save
    使用命令:iptables -L -n 可以查看當前iptables的開放端口情況。
    iptables服務開機自動啟動:
    
chkconfig iptables on

    檢查iptables服務:
   
# chkconfig --list iptables
  iptables        0:off   1:off   2:on    3:on    4:on    5:on    6:off

    上面開放的端口后面都有注明,有一個要注意的地方,就是FTP端口,FTP的默認端口21肯定要開放,但是一般的ftp軟件都是默認先嘗試幾次被動模式PASV連接,在PASV模式連接失敗后,才會進行主動模式PORT連接。
    如果我們僅僅開放21端口,這里就有問題了。FTP PASV模式下,還會隨機使用一個空閑端口,這個端口范圍在20000-30000之間。所以,我們需要把這個端口范圍加入防火牆:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 20000:30000 -j ACCEPT

    關於FTP的PASV被動模式和PORT主動模式的說明:
    FTP協議要用到兩個TCP連接,一個是命令鏈路,用來在FTP客戶端與服務器之間傳遞命令;另一個是數據鏈路,用來上傳或下載數據。
    FTP協議有兩種工作方式:PORT方式(主動)和PASV方式(被動),中文意思為主動式和被動式。
Port模式:
ftp server:tcp 21 <------client:dynamic
ftp server:tcp 20 ------>client:dynamic
Pasv模式:
ftp server:tcp 21 <----client:dynamic
ftp server:tcp dynamic <----client:dynamic
    port模式和pasv模式區別:
    1、port模式:這種模式的FTP網管人員比較輕松,但兼容性較差,比如假如客戶端在局域網內就會無法登錄FTP服務器。假如有人無法使用port模式登錄FTP的話,作為FTP治理員來說,你無論如何努力都是沒有用的。因為這時問題症結在對方客戶端的防火牆或網關。所以對於一個FTP服務器來說,盡量要使用pasv模式。
2、pasv模式:這種模式的FTP兼容性好,但對FTP治理員來說有一定挑戰性,而且設置的情況比較復雜,以下舉例均以有防火牆的情況來說明:
我們僅以服務器在公網上的情況舉例:
這是最理想的情況。21端口當然要首先開放,然后再作如下設置:
    windows系統下serv-u服務器:
本地服務器——設置——高級,在"pasv端口端口范圍"中填入一段不與其它端口沖突的范圍,如3001-3020,然后在防火牆中開放3001-3020的端口。
    Linux系統下PureFTPd服務器:
把端口20000-30000加入到iptables允許端口范圍。
    如果你沒有設置防火牆允許ftp pasv模式下的端口,那么在客戶端使用ftp軟件連接服務器的時候,將會出現類似以下的連接過程:
[右] PASV
[右] 227 Entering Passive Mode (42,51,100,50,110,83)
[右] 正在打開數據連接 IP: 42.51.100.50 端口: 28243
[右] 數據 Socket 錯誤: 沒有到主機的通道
[右] 列表 錯誤
[右] PASV
[右] 227 Entering Passive Mode (42,51,100,50,116,60)
[右] 正在打開數據連接 IP: 42.51.100.50 端口: 29756
[右] 數據 Socket 錯誤: 沒有到主機的通道
[右] 列表 錯誤
[右] PASV 模式失敗,正在嘗試 PORT  模式。
[右] 偵聽於端口: 16585,正在等候連接。
[右] PORT 192,168,1,6,64,201
[右] 200 PORT command successful
[右] MLSD
[右] 150 Connecting to port 16585
[右] 226-Options: -a -l 
[右] 226 3 matches total
[右] 列表完成: 316 字節 於 0.11 秒 (2.7 KB/秒)
[右] PORT  模式已成功,請更新站點配置文件中的數據連接。
    從上面的ftp返回的信息,我們可以輕易的看出,ftp先進行了2次pasv被動模式連接,由於20000-30000之間的端口范圍沒有開放,所以pasv模式連接失敗,最后進行了port主動模式連接才成功。
    但是正如我們上面所說,ftp port模式兼容性差,假如客戶端在局域網內就會無法登錄FTP服務器。所以,我們還是應該配置ftp服務器端的pasv被動模式下的端口。

 

使用iptables開啟或關閉指定端口,舉例如下:

linux系統下,81端口一般情況下是關閉的。

開啟81端口:  

代碼如下: iptables -I INPUT -i eth0 -p tcp --dport 81 -j ACCEPT
iptables -I OUTPUT -o eth0 -p tcp --sport 81 -j ACCEPT

關閉81端口:  

代碼如下: iptables -I INPUT -i eth0 -p tcp --dport 81 -j DROP
iptables -I OUTPUT -o eth0 -p tcp --sport 81 -j DROP


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM