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ルールが追加されました。

Source: https://habr.com/ru/post/J123490/


All Articles