Linux
如何為同一介面上的多個 IP 設置不同的規則?
我是 iptables 的新手,對我應該如何設置它感到困惑。看起來我有 2 個乙太網卡,但我有 4 個 IP 地址。那裡沒有問題。在我的網路/介面中,看起來它們都在 enp2s0f0 上。假設進入伺服器的網路與 enp2s0f0 相同,我可以將其中 2 個更改為介面 enp2s0f1 嗎?
如果在 iptables 中指定 eth0(在我的情況下為 enp2s0f0),那麼我應該如何為每個 IP 制定規則?
我試圖做的是在網路/介面中指定 iface,如下所示,但是當我專門將其設置為 enp2s0f0:0 和 enp2s0f0 時,iptables 將目的地顯示為“任何地方”
iptables -A INPUT -i enp2s0f0 -p tcp --dports 80,443 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o enp2s0f0 -p tcp --sports 80,443 -m state --state ESTABLISHED -j ACCEPT iptables -A INPUT -i enp2s0f0:0 -p tcp --dports 80,443 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o enp2s0f0:0 -p tcp --sports 80,443 -m state --state ESTABLISHED -j ACCEPT
這是我的輸出顯示我的界面……
$ls /sys/class/net enp2s0f0 enp2s0f1 lo $cat /etc/network/interfaces auto lo iface lo inet loopback # The primary network interface auto enp2s0f0 iface enp2s0f0 inet static address xx.xx.xx.76 netmask 255.255.255.0 network xx.xx.xx.0 broadcast xx.xx.xx.255 gateway xx.xx.xx.1 auto enp2s0f0:0 iface enp2s0f0:0 inet static address xx.xx.xx.77 netmask 255.255.255.0 network xx.xx.xx.0 broadcast xx.xx.xx.255 auto enp2s0f0:1 iface enp2s0f0:1 inet static address xx.xx.xx.78 netmask 255.255.255.0 network xx.xx.xx.0 broadcast xx.xx.xx.255 auto enp2s0f0:2 iface enp2s0f0:2 inet static address xx.xx.xx.79 netmask 255.255.255.0 network xx.xx.xx.0 broadcast xx.xx.xx.255
l
我引用了以下幾行
man iptables
:[!] -p, --protocol protocol The protocol of the rule or of the packet to check. [!] -s, --source address[/mask][,...] Source specification. Address can be either a network name, a hostname, a net‐work IP address (with /mask), or a plain IP address. [!] -d, --destination address[/mask][,...] Destination specification.
我認為您有兩個介面,每個介面都有兩個靜態 IP,因為您可以這樣做。所以,如果你想匹配特定的 IP,你可以重新排列你的規則:
iptables -A INPUT -i enp2s0f0 -p tcp -s 0.0.0.0 -d <IP> --dports 80,443 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o enp2s0f0 -p tcp -s <IP> -d 0.0.0.0 --sports 80,443 -m state --state ESTABLISHED -j ACCEPT iptables -A INPUT -i enp2s0f1 -p tcp -s 0.0.0.0 -d <IP> --dports 80,443 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o enp2s0f1 -p tcp -s <IP> -d 0.0.0.0 --sports 80,443 -m state --state ESTABLISHED -j ACCEPT
當然,您必須更改
<IP>
您的機器 IP。如果您只想允許來自/到某些 IP 的連接也會發生變化0.0.0.0
。