
このiptableルールリストがあります
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT tcp -- 127.0.0.1 0.0.0.0/0 tcp dpt:3306
acctboth all -- 0.0.0.0/0 0.0.0.0/0
VZ_INPUT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:3306
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:3306
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:3306
ACCEPT tcp -- 94.101.25.40 0.0.0.0/0 state NEW tcp dpt:3306
Chain FORWARD (policy DROP)
target prot opt source destination
VZ_FORWARD all -- 0.0.0.0/0 0.0.0.0/0
Chain OUTPUT (policy DROP)
target prot opt source destination
acctboth all -- 0.0.0.0/0 0.0.0.0/0
VZ_OUTPUT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp -- 94.101.25.40 0.0.0.0/0 state NEW tcp dpt:3306
ローカルホストと自分の IP だけが TCP 3306 にアクセスできるようにしたいのですが、上記のように他のすべてのルールを削除できますか。どれを残す必要があるのかわかりません。
答え1
acctboth ターゲットは、おそらく bandmin によって自動的に配置されます。削除しても、おそらく再び表示されます。'chkconfig bandmin off' で bandmin を無効にすることができますが、実際にはパケットをカウントする以外は何も行いません。
VZ_INPUT は、私がよく知らないファイアウォール パッケージのようです。
それ以外にも、受け入れ可能なエントリが3つあるようです全てポート 3306 のトラフィックと、おそらくあなたの IP からの新規接続のみを許可するトラフィックです。
INPUT の最後の 4 つのルールを削除して、次のように置き換えることをお勧めします。
iptables -A INPUT -p tcp --dport 3306 -s 94.101.25.40 -j ACCEPT
iptables -A INPUT -p tcp -i l0 --dport 3306 -j ACCEPT
OUTPUT ポリシーを DROP にするのは少しトリッキーで、多くのものを台無しにする可能性があります。そのため、私なら ACCEPT に変更します。
iptables -p OUTPUT ACCEPT
現状のまま維持することに固執するなら、新しいSQL 接続が切断されたため、ルールを削除して以下を追加します。
iptables -A OUTPUT -p tcp -s 94.101.25.40 --sport 3306 -j ACCEPT
iptables -A OUTPUT -p tcp -i l0 -sport 3306 -j ACCEPT
これは、94.101.25.40 がリモート IP ではなく、マシン自体の IP アドレスの 1 つであると想定しています。
どのようにしてサーバーにアクセスしていますか? 他のチェーンの 1 つにない限り、ここに SSH トラフィックを許可するルールさえ見当たりません。iptables -L の出力全体を投稿する必要があります。おそらく、ボックスにまだアクセスできる唯一の理由は、他のチェーンのルールによるものです。
再度投稿する場合は、iptables -L -v を使用してください。これにより、ルールがどのインターフェースで動作するかなど、役立つ追加情報が追加されます。