![iptablesはhttp/https/ssh以外のすべてをブロックします](https://rvso.com/image/769301/iptables%E3%81%AFhttp%2Fhttps%2Fssh%E4%BB%A5%E5%A4%96%E3%81%AE%E3%81%99%E3%81%B9%E3%81%A6%E3%82%92%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%81%97%E3%81%BE%E3%81%99.png)
私はWordpressを実行する予定のVPSにこのiptables構成を持っています。私がやりたいのは、ポート80のhttp、ポート443のhttps、ポート22のsshを除くすべての着信要求をブロックすることです。
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 f2b-sshd tcp -- anywhere anywhere multiport dports ssh
Chain FORWARD (policy ACCEPT)
num target prot opt source destination
Chain OUTPUT (policy ACCEPT)
num target prot opt source destination
Chain f2b-sshd (1 references)
num target prot opt source destination
1 REJECT all -- [retracted_ip] anywhere reject-with icmp-port-unreachable
2 REJECT all -- [retracted].com anywhere reject-with icmp-port-unreachable
3 RETURN all -- anywhere anywhere
オンラインでいくつかのコマンドを見つけましたが、fail2ban と競合する可能性があるかどうかはわかりません。
答え1
一般的に:
iptables -L -v -n --line-numbers
ファイアウォール ルールは、設定されて表示された順序 ( 、、iptables -L -v -n -t nat --line-numbers
および /または同様のコマンドの出力iptables-save
) で処理されます。
間違ったチェーンや間違った順序で新しいルールを作成すると、望ましくない結果が生じ、機能やセキュリティが損なわれ、有効なトラフィックがロックアウトされる可能性があります。
ファイアウォールを管理するために低レベルのコマンドを実行することが常に最善の解決策であるとは限らないことに注意してくださいiptables
。私の知る限り、Ubuntu では UFW ツールの使用が推奨されており、fail2ban と連携して確実に動作します。
Fail2ban は、チェーンのような 1 つ以上のカスタム チェーン (特定の不正な IP アドレスをブロックするための面倒な作業のほとんどを処理する) を作成しますf2b-sshd
。通常、fail2ban にこれらのチェーンのエントリを管理させます。
さらに、fail2banはチェーン内に作成したカスタムチェーンにルールを作成しますINPUT
。通常、これらのルールは最初に INPUT
作成する他のルールの前に、チェーンを作成します。
現在のファイアウォール設定では、-A
スイッチで iptables を使用して INPUT チェーンに新しいルールを追加すると、すべてが機能するはずです。
次のコマンドを実行すると、通常のルールが追加され、ssh、http、https を許可し、その他のすべての着信トラフィックをブロックするファイアウォールが作成されます。
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited
答え2
まずはバックアップしましょう:)
sudo iptables-save > ./mybackup
接続が切れてKVMが必要な場合は、バックアップの開始に簡単に戻ることができます。
sudo iptables-restore < ./mybackup
次にルールを追加していきます
sudo iptables -A INPUT -d YOURIPPUBLIC -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -d YOURIPPUBLIC -p tcp -m tcp --dport 443 -j ACCEPT
sudo iptables -A INPUT -d YOURIPPUBLIC -p tcp -m tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -d YOURIPPUBLIC -p tcp -m tcp --dport 22 -j DROP
sudo iptables -A INPUT -d YOURIPPUBLIC -j DROP
インスタンス以外のIPのファイアウォールを作成したい場合は、上記のYOURIPPUBLIC: 33.33.33.33またはネットマスク33.33.33.33/32を使用します。
関連、確立済み - 接続前に取得した場合は、ファイアウォールの次のルールをすべてスキップします。接続するには、次のルールに従います :)
ネットワーク全体が必要な場合は
sudo iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
sudo iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp -m tcp --dport 22 -j DROP
sudo iptables -A INPUT -j DROP
後で編集するために保存できます:
iptables-save > /.mynew.iptables.list.txt