Linuxですべてのインターネット入力/出力をブロックする方法を探しています(選択したアプリケーションを除く)、iptablesコマンドを使用して次のスクリプトを見つけました。
スクリプトを実行する前に、「インターネット」というグループが作成されます(
sudo groupadd internet
)。
#!/bin/sh
# Firewall apps - only allow apps run from "internet" group to run
# clear previous rules
sudo iptables -F
# accept packets for internet group
sudo iptables -A OUTPUT -p tcp -m owner --gid-owner internet -j ACCEPT
# also allow local connections
sudo iptables -A OUTPUT -p tcp -d 127.0.0.1 -j ACCEPT
sudo iptables -A OUTPUT -p tcp -d 192.168.0.1/24 -j ACCEPT
# reject packets for other users
sudo iptables -A OUTPUT -p tcp -j REJECT
# open a shell with internet access
sudo -g internet -s
源泉: https://plus.google.com/+TobyKurien/posts/YZhZJCZmGgm
唯一の問題は、それが私には効果がないようです。スクリプトを実行した後、同じ端末を使用して入力を介してFirefoxを呼び出すと、firefox
ブラウザは開きますがインターネットにアクセスできません。私が得るすべてはサーバーが見つかりません。スクリプトを実行する前にインターネットにアクセスできます。
質問:なぜこの問題が発生しますか?実行されるコードは理解していますが、Firefoxブラウザが接続されていない理由はわかりません。
ベストアンサー1
通常、デフォルトでは発信トラフィックを許可しますが、着信SSHトラフィックを制限する標準のCentos / RHEL 6ビルドには次のものがあります。
存在する/etc/sysconfig/iptables
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT