最初の記事ですが、助けてください。 1つのネットワークからのトラフィックのみを許可し、すべてのネットワークを削除したいと思います。私は何が間違っていますか?私のプログラムの結果は、すべての場合にパケットを破棄することです。スクリプトが実行された後は、サイトにアクセスしなくなります。ディストリビューション:Ubuntu 16.04
#Flush old
iptables -F
iptables -X
#Allow loopback
iptables -I INPUT -i lo -j ACCEPT
iptables -I OUTPUT -o lo -j ACCEPT
#Allow DNS
iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
#Accept IP, use your own IP
iptables -I INPUT -s $(IP) -p tcp --dport 443 -j ACCEPT
iptables -I OUTPUT -s $(IP) -p tcp --dport 443 -j ACCEPT
#Drop rest
iptables -I INPUT -i lo -j REJECT
iptables -I OUTPUT -o lo -j REJECT
拒否と廃棄の両方を使用することはあまり効果的ではありません。
ベストアンサー1
ルールを追加するI
のではなく、テーブルに挿入することです。A
REJECT
ルールは順次読み取って適用されるため、実際には残りのルールより先に読み取る拒否ルールを挿入することです。
REJECT
ルールを次に変更してみてください。
iptables -A INPUT -i lo -j REJECT
iptables -A OUTPUT -o lo -j REJECT
代わりに。ぜひ追加してください
iptables-save
スクリプトの最後に