
ファイアウォールルールを設定するには、iptables-persistを使用します。
これは私の標準構成です。
*filter
:INPUT DROP [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -p tcp --dport 2123 -m mac --mac-source XX:XX:XX:XX:XX:XX -j ACCEPT
COMMIT
問題は、Debianサーバーからパッケージをダウンロードできず、ローカルおよび外部IPアドレスをpingできないことです。
INPUTは「着信」接続でのみ機能します。これは正しいですか?
以下はIPv6のルールです。
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
COMMIT
答え1
あなたが経験している問題は、着信パケットを許可しないことです。したがって、外部サーバーに接続しようとすると応答を受けられません!
多くの場合、これは「確立された」規則によって処理される可能性があります。
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
ここでのアイデアは、発信接続に一致する着信パケットが再び許可されることです。
今はデフォルトでは廃棄受信チェーンでは、他の問題(ICMPパケットなど)が発生する可能性があるため、要件に応じてこれを許可する必要があるかもしれません。
答え2
問題が解決しました。
新しい固定ルール:
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
-A INPUT -i lo -j ACCEPT
-A FORWARD -o lo -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p tcp --dport 2123 -m mac --mac-source XX:XX:XX:XX:XX:XX -j ACCEPT
COMMIT
答え3
iptablesをより効果的に制御するには、conntrack "--ctstate"モジュールを使用してください。 「--state」よりも良くて最新です。
たとえば、
iptables -A INPUT -p tcp -m tcp -m conntrack --ctstate ESTABLISHED -j ACCEPT