使用 IPset 進行端口敲門


端口敲門(Port knocking)技術,即服務通過動態的添加 iptables 規則來隱藏系統開啟的服務,使用自定義的一系列序列號來「敲門」,使系統開啟需要訪問的服務端口,才能對外訪問。不使用時,再使用自定義的序列號來「關門」,將端口關閉,不對外監聽。進一步提升了服務和系統的安全性。

關閉SELinux

查看 SELinux 狀態:

getenforce

臨時關閉 SELinux(設為 Permissive 模式):

setenforce 0

永久關閉 SELinux(重啟生效):

修改 /etc/selinux/config 文件
將 SELINUX=enforcing 改為 SELINUX=disabled

安裝 ipset

CentOS 7 需要先關閉 Firewall 防火牆:

systemctl stop firewalld.service
systemctl disable firewalld.service

創建規則

創建一個名為 allowlist 的規則並設置有效期為 30 秒

ipset create allowlist hash:ip timeout 30

設置IP白名單

# 放行IP規則
iptables -A INPUT -p tcp -m set --match-set allowlist src -j ACCEPT

# 關閉22端口
iptables -A INPUT -p tcp --dport 22 -j DROP

iptables 是由上而下的進行規則匹配,放行規則需在禁行規則之前才能生效。

開放指定IP

# 將IP加入白名單
ipset -exist add allowlist 192.168.37.1 timeout 30

其他指令

# 查看白名單IP列表
ipset list allowlist

如果手工將其 timeout 值設置為 0 的話,即為存活時間無限久。


免責聲明!

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



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