一、基本概念
在討論Linux的IP訪問限制之前,先來了解一下相關的基本概念。IP(Internet Protocol)地址是標識計算機網路中設備的數字標識符。它是由32位二進位數組成,可以用點分十進位表示。
IP地址被分為公網IP和內網IP,公網IP是通過互聯網供應商提供的,可以直接被訪問;內網IP是在區域網內部使用的,不能直接被訪問。
限制IP訪問是指禁止或允許特定的IP地址或IP地址段訪問計算機資源。這項技術可以被應用於網路安全和管理控制等各種場景。
二、iptables限制IP訪問
iptables是Linux系統下的一個強大的防火牆工具,它可以限制各種網路流量的進出。下面是一個常見的iptables示例,可以限制所有來自192.168.0.1的IP地址的訪問。
iptables -A INPUT -s 192.168.0.1 -j DROP
這條命令的意思是將所有源地址為192.168.0.1的數據包丟棄。
除了DROP以外,iptables還支持ALLOW和REJECT等多種action,分別表示允許和拒絕數據包。可以結合使用不同的action來實現更加精細的IP限制策略。
三、hosts.allow和hosts.deny
除了iptables以外,Linux系統還提供了另外兩種限制IP訪問的方式,即hosts.allow和hosts.deny文件。這兩個文件通常位於/etc目錄下,用於限制哪些IP可以訪問哪些服務。
對於hosts.allow文件,可以使用ALL:ALL表示所有IP都被允許訪問,也可以使用ALL:LOCAL表示只有本機地址可以訪問。同樣,可以使用特定的IP地址段或主機名限制訪問。
# 允許所有主機訪問ssh服務 sshd:ALL:ALLOW # 限制192.168.0.1~192.168.0.255的主機訪問ssh服務 sshd:192.168.0.0/255.255.255.0:ALLOW # 僅允許localhost訪問ssh服務 sshd:127.0.0.1:ALLOW
hosts.deny文件則可以用來限制被拒絕的主機。同樣,可以使用ALL:ALL拒絕所有主機的訪問,也可以使用特定的IP地址段。
# 拒絕所有主機訪問ftp服務 ftp:ALL:DENY # 限制192.168.0.1~192.168.0.255的主機訪問ftp服務 ftp:192.168.0.0/255.255.255.0:DENY
四、ufw應用級別的限制
ufw(Uncomplicated Firewall)是一個基於iptables的簡易防火牆工具,可以輕鬆地對系統進行防火牆配置。
ufw可以通過限制特定埠或應用程序來限制訪問。下面的命令將允許來自192.168.0.1的主機訪問ssh服務。
ufw allow from 192.168.0.1 to any port 22 proto tcp
如果想要禁止某個主機訪問某個服務,則可以使用如下命令。
ufw deny from 192.168.0.1 to any port 22 proto tcp
五、fail2ban防攻擊
fail2ban是一個Python編寫的防止暴力破解攻擊的工具,通過監聽系統日誌文件,可以檢測到惡意的登錄嘗試,從而自動封鎖攻擊者的IP地址。
fail2ban主要通過配置相關規則,將檢測到的惡意IP地址添加到防火牆規則中,從而實現自動封禁。
以下是一個常見的fail2ban配置文件示例,可以限制來自特定IP地址的ssh訪問。
[sshd] enabled = true port = ssh filter = sshd logpath = /var/log/auth.log bantime = 86400 maxretry = 3 banaction = iptables_multiport banip = 192.168.0.1
六、總結
Linux提供了多種限制IP訪問的技術,在實際應用中可以選擇最適合自己的方式進行限制,以保障系統的安全和可靠運行。使用iptables、hosts.allow和hosts.deny、ufw和fail2ban等工具可以實現對IP訪問的全面管控,更好地保護伺服器的安全。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/244227.html