apt-getがプログラムをダウンロードできるようにする正しいiptablesルールは何ですか?


12

のように入力するとsudo apt-get install firefox、要求されるまですべてが機能します。

After this operation, 77 MB of additional disk space will be used.
Do you want to continue [Y/n]? Y

次に、エラーメッセージが表示されます。 Failed to fetch: <URL>

私のiptablesルールは次のとおりです。

-P INPUT DROP
-P OUTPUT DROP
-P FORWARD DROP

-A INPUT -i lo -j ACCEPT
-A OUTPUT -o lo -j ACCEPT

-A INPUT -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT

apt-getが更新をダウンロードできるようにするには、何を追加する必要がありますか?ありがとう

回答:


17

apt-getはほとんど常にHTTP経由でダウンロードしますが、FTPを使用することもあるので、おそらく簡単な答えは、発信HTTP接続を許可することです...そしてもちろんDNSも許可します。

現在の構成では、すべての発信ネットワークトラフィックが許可されていません(チェーンに設定さESTABLISHEDれているルールOUTPUTは、セッションが確立されないため有効ではありません)。apt-getの更新のみを許可し、他のすべてを許可する必要はありますか?iptablesURLを実際に解釈してHTTP転送を選択的に許可するわけではないので、おそらくそのジョブにとっては間違ったツールです。このジョブにはHTTPプロキシサーバーを使用する必要があります。

apt-getダウンロードを許可するより簡単なセットアップを使用できますが、これは他のすべての送信DNSおよびHTTP接続も許可することに注意してください。

iptables -F OUTPUT  # remove your existing OUTPUT rule which becomes redundant
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -p tcp --dport 53 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -m state --state NEW -j ACCEPT

APTソースに80以外のポート上のHTTPSまたはFTPソースまたはHTTPソースが含まれている場合、それらのポートも追加する必要があります。

次に、リターントラフィックを許可する必要があります。確立された接続を許可するこの単一のルールを使用して、これを実行できます。

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

(接続追跡を使用する場合、確立されたすべてのインバウンド接続を許可しても安全です。なぜなら、そうでなければ許可した接続のみがESTABLISHED状態になるからです。)


こんにちは、ご回答ありがとうございます。うまくいきましたが、これらのOUTPUTポートを開くことにセキュリティ上の懸念があると思いますか?ありがとう
anthony01

1
ほとんどすべてのSOHOスタイルのボックスを含むほとんどのファイアウォールは、無制限のアウトバウンド接続を許可します。通常、発信トラフィックを制限する必要はありません。ただし、要件によって異なります。既存のセットアップにより、問題のワークステーション上のユーザーがインターネットを閲覧できなくなります。これが必要な場合は、このiptablesベースのソリューションを使用できません。Webブラウジングが許可されるためです。
セラダ

Webブラウジングをブロックすることが目的である場合、それはいずれにしても間違ったツールです。NetFilter / IPTablesを使用してすべてのアウトバウンド接続をブロックし、スタッフのWebブラウジングを防ぐことは、バズーカを使用してクルミを開くようなものです。承認されたユーザーに仕事関連のブラウジングを許可しながら、不適切な使用をログに記録する透過的なWebプロキシが必要です。
マゼラン

何時間も検索した後、この回答は最終的に自分のローカルサーバーの問題を解決するのに役立ちました。私が何をしたとしても、ポート53を介したDNS接続を明示的に許可するまで、すべての発信トラフィックはブロックされました。しかし、それは理にかなっています。
タマネギ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.