私はLinux Mintを使用しており、ポート5210(IP 3を除く)へのすべての着信接続をブロックしたいと思います。多くのスレッドを検索して探索した結果、LAN IP範囲のみを許可する結果のみが見つかり、LANにない3つの異なるIPを許可することに関連するものが見つかりませんでした。
何をし、何を検索する必要がありますか?
答え1
3つを許可し、残りは拒否/削除します。コマンドラインで次の操作を行いますiptables
。
iptables -A INPUT -p tcp --dport 5210 --source "$addr1" -j ACCEPT
iptables -A INPUT -p tcp --dport 5210 --source "$addr2" -j ACCEPT
iptables -A INPUT -p tcp --dport 5210 --source "$addr3" -j ACCEPT
iptables -A INPUT -p tcp --dport 5210 -j REJECT
たとえば、addr2
最初のルールは一致しないため無視されますが、2番目のルールは一致し、パケットを受け入れます。
または、3 つのアドレスに対して何も実行せず、残りは拒否し、上位レベルで追加の処理を受け入れるまたは実行するチェーンを作成します。
iptables -N p5210
iptables -A p5210 --source "$addr1" -j RETURN
iptables -A p5210 --source "$addr2" -j RETURN
iptables -A p5210 --source "$addr3" -j RETURN
iptables -A p5210 -j REJECT
iptables -A INPUT -p tcp --dport 5210 -j p5210
# add whatever further limitations you want
iptables -A INPUT -p tcp --dport 5210 -j ACCEPT
もちろん、アドレスを変数に入れ、ループを使用してすべてのアドレスに対して同じコマンドを実行することもオプションです。
#!/bin/bash
allowed_addresses=(1.2.3.4 4.5.6.7 7.8.9.0)
for addr in "${allowed_addresses[@]}" ; do
iptables -A INPUT -p tcp --dport 5210 --source "$addr" -j ACCEPT
done