INPUT、OUTPUT、およびFORWARDルールブックのすべてをデフォルトで削除するようにiptablesを設定しています。しかし、私はポート80を介した接続を許可する(HTTP)およびポート53でのすべての着信TCP/UDP要求(DNS)する必要があります。次の設定があります。
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:http
ACCEPT udp -- anywhere anywhere udp dpt:http
ACCEPT udp -- anywhere anywhere udp dpt:domain
ACCEPT tcp -- anywhere anywhere tcp dpt:domain
Chain FORWARD (policy DROP)
target prot opt source destination
Chain OUTPUT (policy DROP)
target prot opt source destination
ACCEPT udp -- anywhere anywhere udp dpt:http
ACCEPT tcp -- anywhere anywhere tcp dpt:http
ACCEPT tcp -- anywhere anywhere tcp dpt:domain
ACCEPT udp -- anywhere anywhere udp dpt:domain
ただし、Sudo apt-get install Apache2
を実行しようとすると、パッケージが見つかりますが、実際にパッケージをダウンロードするとハングします。私の調査によると、apt-getはほとんどの場合、HTTPポートとDNSポートのみで機能します。 何か足りないのですか?参照しようとしました この投稿 しかし役に立ちませんでした。
Err:1 http://us.archive.ubuntu.com/ubuntu xenial/main AMD64 libapr1 AMD64 1.5.2-3
Temporary failure resolving ‘us.archive.ubuntu.com’
Err:2 http://us.archive.ubuntu.com/ubuntu xenial/main AMD64 libaprutil1 AMD64 1.5.4-1build1
Temporary failure resolving ‘us.archive.ubuntu.com’
0% [Connecting to us.archive.ubuntu.com]
システム情報:
ディストリビューターID:bunt
説明:buntu 16.04.3 LTS
リリース:16.04
コード名:xenial
以下のtomaszの答えをもう一度たどりましたが、うまくいきませんでした。 apt-get
は、上記の例(Apache2など)のようにダウンロードが止まっています(変更なし)。これが私が試した私の新しいiptablesです:
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
Chain FORWARD (policy DROP)
target prot opt source destination
Chain OUTPUT (policy DROP)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:http state NEW,RELATED,ESTABLISHED
ACCEPT tcp -- anywhere anywhere tcp dpt:domain state NEW,RELATED,ESTABLISHED
ACCEPT udp -- anywhere anywhere udp dpt:domain state NEW,RELATED,ESTABLISHED
OUTPUTルールブックのバージョンを試しましたありとなし状態情報は成功しませんでした。
53と80でINPUTを開く必要がある理由はわかりませんが、DNSとHTTPの応答を受信するための場合は、それは間違いです。これは次の行で行われます。
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
( この答え と同じように、あなたが言及した投稿に。)
私はテストシステムでこれの詳細を掘り下げました。
次のルールセットを使用してiptables
を適切に構成し、apt-get
を適切にアウトバウンドすることができました。
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
Chain FORWARD (policy DROP)
target prot opt source destination
Chain OUTPUT (policy DROP)
target prot opt source destination
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 state NEW,RELATED,ESTABLISHED
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:53 state NEW,RELATED,ESTABLISHED
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:53 state NEW,RELATED,ESTABLISHED
これは、上記で述べた最新の構成を反映しています。 apt-get
を正常に動作させ、問題なくDNSクエリを実行することができます。
ただし、システムでホスト名をIPアドレスに解決する際に問題が発生し、解決エラーが発生することに注意することが重要です。
/etc/resolv.conf
が適切に構成されており、少なくとも次のようなものが含まれていることを確認してください。
nameserver 8.8.8.8
nameserver 8.8.4.4
/etc/resolv.conf
をこのように設定すると、同じiptables
ルールセットを使用することで、問題なく、インターネットに接続しているシステムとその内部で問題なく連絡を取り、適切なDNS解決を得ることができますネットワークの内部からインターネットに出て行くことができる私自身のLANサブネット。
/etc/resolv.conf
が正しく設定されておらず、設定が間違っていると、システムがDNSを正しく設定できなくなっているように思われます。