サーバー上のファイアウォールの一部:
iptables -A INPUT -p tcp --dport 22 -m state NEW --state -m recent --set
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 100 --hitcount 10 -j DROP
オンラインで検索すると、常にそのルールでNEWが使用されているのがわかりますが、ESTABLISHEDおよびRELATEDが使用されていない理由を理解するのに苦労しています。
このような :
iptables -A INPUT -p tcp --dport 22 -m state NEW,ESTABLISHED,RELATED --state -m recent --set
iptables -A INPUT -p tcp --dport 22 -m state --state NEW,ESTABLISHED,RELATED -m recent --update --seconds 100 --hitcount 10 -j DROP
新しいパケットがESTABLISHEDおよびRELATEDに変更されたときに、誰かが私に説明できますか?
受信者がピックアップする前に、電話の新しいパケットを考えてみましょう。 ESTABLISHEDパケットは、「こんにちは」です。そして、RELATEDパケットは、送信しようとしている電子メールについてそれらに伝えるために呼び出す場合です。 (メールは関連しています。)
私の類推があまりよくない場合は、manページでそれをうまく処理できると思います。
NEW-パケットが新しい接続を開始したか、または双方向でパケットを確認していない接続に関連付けられていることを意味します。
ESTABLISHED-パケットは、双方向でパケットを見た接続に関連付けられていることを意味します。
RELATED-パケットは新しい接続を開始していますが、FTPデータ転送やICMPエラーなどの既存の接続に関連付けられています。
サーバーとクライアントの両方でINPUT
を制限し、OUTPUT
を開くと想定します。
_iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
_
そして iptables-extensions(8) から、アクティブモードでのFTPの例について:
1。 NEW
NEWパケットは新しい接続を開始したか、または双方向でパケットを確認していない接続に関連付けられています。
ポート_50000
_(任意の非特権ポート)上のクライアントは、ポート_21
_上のFTPサーバーに接続します。サーバーは、この着信接続を受け入れるために少なくともこれが必要です。
_iptables -A INPUT --dport 21 -m state --state NEW -j ACCEPT
_
2。 ESTABLISHED
ESTABLISHEDパケットは、双方向でパケットを見た接続に関連付けられています。
クライアント側で、ローカルポート_21
_を使用してポート_50000
_でサーバーへの発信接続を開き、server (21)
からclient (50000)
:
_Sudo iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT
_
3。関連
RELATEDパケットは新しい接続を開始していますが、FTPデータ転送やICMPエラーなどの既存の接続に関連付けられています。
FTP接続が確立され、データ接続が実行されようとすると、クライアントはポート_60000
_でサーバーソケットを開きます(はい、アクティブなFTPクライアントがデータ接続のサーバーになります)(私の理解に)クライアントはこのポートに_60000
_をRELATED
として_50000->21
_)から他の接続にマークし、FTP PORT
コマンドを使用してこのポート番号をサーバーに送信します。次に、FTPサーバーは、クライアントのポート_20
_からポート_60000
_への新しい接続を開きます。この新しい接続を成功させるには、クライアントで次のことが必要になります。
_Sudo iptables -A INPUT -m state --state RELATED -j ACCEPT
_
最後に、これが機能するためには、システムが接続/パッケージをRELATED
としてマークできるように_ip_conntrack_ftp
_カーネルモジュールを有効にする必要があります(これは私の理解ですが、あまり深く掘り下げていません)。
_modprobe ip_conntrack_ftp
_