Linux - iptablesは3つのIPのみを受け入れます。

Linux - iptablesは3つのIPのみを受け入れます。

私は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

おすすめ記事