SSH経由で他のコンピュータに接続するために使用したいLinuxがあります。自動更新、ウイルスなどを防ぐためにアウトバウンドトラフィックをブロックしようとしています。
これを使用して、ループバックインターフェイスからlocalhostに返されるトラフィックを除くすべてのトラフィックをブロックできます。
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
このインターフェイスでSSHトラフィックのみを許可するにはどうすればよいですか?ポート22を開いたままにします(SSHプロトコルに限定されません)。
リモートコンピュータでXサーバーを使用できますか?
答え1
以下は最小 iptables 構成です。
iptables -P INPUT DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -P OUTPUT DROP
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A OUTPUT -m state --state INVALID -j DROP
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --dport 22 -j ACCEPT
これにより、IPアドレスを介してのみ接続が許可されます。
DNS 解決を有効にするには、次の 2 つのルールを追加します。
iptables -A OUTPUT -p tcp -m tcp --dport 53 -j ACCEPT
iptables -A OUTPUT -p udp -m udp --dport 53 -j ACCEPT
IPアドレスがわかっている場合にのみDNSサーバーへの接続を許可するのは妥当です。-d DNS_IP_ADDRESS
たとえば、上記の2つのコマンドに追加します。iptables -A OUTPUT -d 1.2.3.4 -p tcp -m tcp --dport 53 -j ACCEPT