Ping:sendmsg:Arch GNU / Linuxにiptablesをインストールした後の操作は許可されていません


15

昨日、ホームサーバーとしてHP Proliant Microserverとして新しいコンピューターを入手しました。カーネルバージョン3.2.12でArch Linuxをインストールしました。

iptables(1.4.12.2-現在のバージョンAFAIK)をインストールし、net.ipv4.ip_forwardキーを1に変更し、iptables構成ファイルで転送を有効化(および再起動)した後、システムはそのネットワークインターフェイスを使用できません。pingが失敗します

Ping: sendmsg: operation not permitted

iptablesを完全に削除した場合、ネットワーキングは問題ありませんが、ローカルネットワークへのインターネット接続を共有する必要があります。

eth0の - NICは、マザーボード上に集積WAN(は、Broadcom NetXtreme BCM5723)。

eth1 -PCI ExpressスロットのLAN NIC(Intel 82574Lギガビットネットワーク)

iptablesがなくても動作するため(サーバーはインターネットにアクセスでき、内部ネットワークからsshでログインできます)、iptablesと関係があると思います。私はiptablesの経験があまりないので、これらを参照として使用しました(もちろん互いに分離しています...):

wiki.archlinux.org/index.php/Simple_stateful_firewall#Setting_up_a_NAT_gateway

revsys.com/writings/quicktips/nat.html

howtoforge.com/nat_iptables

私の以前のサーバーでは、revsysガイドを使用してnatをセットアップしました。

誰も以前にこのようなことを経験しましたか?私は何を間違えていますか?

回答:


23

エラーメッセージ:

Ping: sendmsg: operation not permitted

サーバーがICMPパケットの送信を許可されていないことを意味します。サーバーが1つ以上の構成済みインターフェースを介してトラフィックを送信できるようにする必要があります。これを行うには:

  1. OUTPUTチェーンポリシーを設定ACCEPTして、ボックスからのすべての発信トラフィックを許可します。

    sudo iptables -P OUTPUT ACCEPT
    
  2. OUTPUTチェーンポリシーを設定しDROP、必要な種類のトラフィックを選択的に許可します。

これは、OUTPUTチェーンだけでなく、すべてのチェーンに適用されます。INPUTチェーンは、ボックスが受信するトラフィックを制御します。FORWARDチェーンは、ボックスを介して転送されるトラフィックを処理します。


Pingは単なる例であり、udpパケットやtcpパケットを送信できませんでした
...-estol

にもかかわらず、同じ考え方が適用されます
ハレド

あなたが言ったこと、同じ結果を試してみました。古いサーバーからルールを取得しましたが、これは部分的に機能します。どのクライアントも、ドメイン名を検索でき、pingを実行することもできますが、Webを閲覧することはできません。回避策としてプロキシをインストールしました(サーバーへの接続と同じようにサーバー上の接続は問題ないので)が、この方法では多くのサービスが機能しません(Trillian、Skype)。
-estol

出力チェーンポリシーを受け入れるように設定するコマンドは何ですか?
ジョセフアストラハン

4
@JosephAstrahan:sudo iptables -P OUTPUT ACCEPT
Khaled

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.