iptablesのWebインターフェイス

# iptables -t nat -N test # iptables -t nat -A test -p tcp -j REDIRECT --to-port 80 # iptables -t nat -A test -p tcp -j MASQUERADE # iptables -t nat -A POSTROUTING -j test iptables: Invalid argument. Run `dmesg' for more information. # dmesg | tail -n 1 ip_tables: REDIRECT target: used from hooks POSTROUTING, but only usable from PREROUTING/OUTPUT # iptables -t nat -A PREROUTING -j test iptables: Invalid argument. Run `dmesg' for more information. # dmesg | tail -n 1 ip_tables: MASQUERADE target: used from hooks PREROUTING, but only usable from POSTROUTING
      
      







この投稿は、iptablesプログラムとそのWebインターフェイスに関するものです。



Iptablesのようなすばらしいプログラムに慣れていない人は、この記事の最後の2つのセクションを参照してください。



プロット



http://iptadmin.confmgr.org/



Iptadmin-Linuxのファイアウォールでの作業を簡素化する試み。 現時点では、これは少数のiptablesオプションのみで機能するシンプルなWebインターフェースです。 BSD3。



Iptadminの利点:



iptablesに関するプログラムの短所:



類似物はありますか?



同様のプログラムがあります。 しかし、詳細な比較分析は行われませんでした。 以下にいくつかのリンクと小さなコメントを示します。



iptablesが何であるかを知らない幸運な人々へのあとがき。



Linuxオペレーティングシステムのカーネルのコンポーネントの1つはファイアウォールです。 これにより、多くの種類のトラフィックフィルタリングを実行できます。 さらに、カーネルにはネットワークアドレスを変換する機能があります。 たとえば、Linuxベースのネットワークゲートウェイは、ローカルネットワークをインターネットに接続するために構築されています。



LinuxファイアウォールのユーザーインターフェイスはIptablesです。 これはコマンドラインプログラムで、テキストターミナルを介してユーザーと対話します。 ルールを作成するときは、ルールパラメータを覚えておくか、マニュアルページを常に開いたままにしておく必要があります。 また、iptablesも詳細な入力エラーメッセージと同じです。 一部のエラーは、カーネルロギングによってのみ報告されます。



Linuxサブシステムの場合によくあることですが、Iptablesには、構成するための独立した専門家がほとんど必要です(構成が難しいコンポーネントのその他の例:PAM、Selinux、Policy kit)。



iptablesを使用する際の典型的なワークフロー



たとえば、サブネット10.0.0.0/16からアクセスする場合、192.168.1.1:80から192.168.0.3:8000のDNATを作成します。

 # iptables -A POSTROUTING -s 10.0.0.0/16 -d 192.168.1.1 --dport 80 -j DNAT --to-destination 192.168.0.3:8000 iptables v1.4.7: unknown option `--dport' Try `iptables -h' or 'iptables --help' for more information.
      
      





したがって、iptablesは--dportオプションについて何も認識しません。これを使用するには、-p tcpオプションを指定する必要があります。

そして、どうすれば忘れられますか?

 # iptables -A POSTROUTING -s 10.0.0.0/16 -d 192.168.1.1 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.3:8000 iptables: No chain/target/match by that name.
      
      





IptablesはPOSTROUTINGチェーンについて何も知りません。 どうして? スペルを間違えずに名前を読み直します。

あ! テーブル「nat」を指定する必要があります。 デフォルトでは、iptablesはフィルターテーブルを使用します。

 # iptables -t nat -A POSTROUTING -s 10.0.0.0/16 -d 192.168.1.1 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.3:8000 iptables: Invalid argument. Run `dmesg' for more information
      
      





今度はdmesgを読んで、今回は何が悪いのかを調べる必要があります。

 # dmesg | tail [ 44.855055] Bluetooth: BNEP filters: protocol multicast [ 44.891259] Bluetooth: SCO (Voice Link) ver 0.6 [ 44.891262] Bluetooth: SCO socket layer initialized [ 45.021718] Bluetooth: RFCOMM TTY layer initialized [ 45.021726] Bluetooth: RFCOMM socket layer initialized [ 45.021728] Bluetooth: RFCOMM ver 1.11 [ 93.795558] fuse init (API version 7.14) [ 93.823129] SELinux: initialized (dev fusectl, type fusectl), uses genfs_contexts [ 93.862287] SELinux: initialized (dev fuse, type fuse), uses genfs_contexts [ 1912.405272] x_tables: ip_tables: DNAT target: used from hooks POSTROUTING, but only usable from PREROUTING/OUTPUT
      
      





もう一つの間違い。 DNATはPOSTROUTINGではなくPREROUTINGチェーンで機能します。 最後に、コマンドを実行します:

 # iptables -t nat -A PREROUTING -s 10.0.0.0/16 -d 192.168.1.1 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.3:8000 #
      
      





やった! 完了しました。 DNATルールが追加されました。



All Articles