1. 主機服務端口#
$ iptables -I INPUT -p tcp --dport 80 -j DROP
$ iptables -I INPUT -p tcp -s 1.2.3.4 --dport 80 -j ACCEPT
這裡僅允許 1.2.3.4
訪問本地主機的 80 端口。
2. Docker 服務端口#
對於類似 docker run -d -p 80:80 shaowenchen/demo-whoami
運行的服務,上面的方法無效,需要在 DOCKER-USER 鏈中添加規則。
Docker 會將 iptables 規則添加到 DOCKER 鏈中,如果需要在 Docker 之前添加規則需要添加到 DOCKER-USER 鏈中
$ iptables -I DOCKER-USER -i ens190 ! -s 1.2.3.4 -p tcp --dport 80 -j DROP
ens190 是本地的網卡,這裡僅允許 1.2.3.4
訪問本地主機的 80 端口。
3. 清理環境#
$ yum install -y iptables-services
$ systemctl restart iptables.service
如果需要在主機重啟之後 iptables 設置,依然有效,需要安裝 iptables-services 並保存
$ yum install -y iptables-services
$ service iptables save