私のマシンには、同じネットワークセグメント(たとえば、WiFi)に接続されたPCからアクセスできるWebサービスがあります。マシンでIPtablesを使用して、インターネット上のホストからWebサービスにアクセスできないようにしたいと考えています。
IPtablesをどのルールで構成する必要がありますか?
常に開いているポートを保護するにはどうすればよいですか?
iptables -P INPUT DENY
)ローカルマシンでのみ使用されるポートがある場合は、ポートとIP範囲の組み合わせのみに許可ルールを設定します。
iptables -A INPUT -p tcp --dport 80 -s 192.168.1.0/24 -j ACCEPT
送信トラフィックにもルールが必要です(DNSクエリを許可する、サービスが接続に応答することを許可するなど)。関連する/確立されたルールを使用すると、これに役立ちます。他の方法でロックダウンされたファイアウォールの間でも、単純化のためにすべての送信トラフィックを許可することは一般的です。
時間がある場合は、面倒なケースではありますが、理想的なのは、SELinuxを使用して、DNSリゾルバーライブラリにDNSへのクエリのみを許可するなど、さらに制限することです。
「開いているポートの保護」とは、ソフトウェアを正しくリッスンし、ポート内のセキュリティの問題に対処することを意味します。
iptables
はこれに適していますが、最初にいくつかのアプローチがあります。
0.0.0.0
、または単に*
)をリッスンするように設定されています。代わりに、これを192.168.0.88
または同様の値に設定します。Allow From
ディレクティブを使用します。他のWebデーモンには、他の構成メカニズムがあります。最後に、iptables
を使用する場合は、次のようなルールのペアを探します。
iptables -A INPUT -p tcp --dport 80 --source 192.168.0.0/24 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j DROP