サーバーに接続できるようにするIP範囲と、接続するユーザーがいくつかあります。それ以外はすべてブロックする必要があります。
iptablesでどのようにすればよいですか?
私のOSはDebianベースのLinuxディストリビューションです。
サーバーに接続できるようにするIP範囲と、接続するユーザーがいくつかあります。それ以外はすべてブロックする必要があります。
iptablesでどのようにすればよいですか?
私のOSはDebianベースのLinuxディストリビューションです。
回答:
Firestarterなどのファイアウォール構成ツールを入手して、そこから進むことをお勧めします。ただし、ここではいくつかの基本を説明します。
#Flush existing rules
iptables -F
# Set up default DROP rule for eth0
iptables -P INPUT DROP
# Allow existing connections to continue
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# Accept everything from the 192.168.1.x network
iptables -A INPUT -i eth0 -s 192.168.1.0/24 -j ACCEPT
# Allow connections from this host to 192.168.2.10
iptables -A OUTPUT -o eth0 -d 192.168.2.10 -j ACCEPT
サブネット全体ではなく、任意の範囲を許可する場合は、「iprange」iptablesモジュールを使用できます。
iptables -P INPUT DROP
iptables -A INPUT -m iprange --src-range 192.168.1.30-50 -j ACCEPT
たとえば、192.168.1.30〜192.168.1.50のアドレスを持つすべてのマシンからのトラフィックを許可します。
同じ範囲のIPへの着信および発信トラフィックを許可する場合は、そのIPを許可し、すべての入力および出力ターゲットをターゲットとする特定のチェーンを作成することをお勧めします。
-デフォルトのポリシーを定義して、あらゆるものを削除します。
iptables -P INPUT DROP
iptables -P OUTPUT DROP
-新しいチェーンを作成します。
iptables -N allowed_ips
-ソースが許可された範囲の一部である場合、受け入れます
iptables -A allowed_ips -m iprange --src-range 192.168.1.30-50 -j ACCEPT
-そうでない場合は、呼び出し側チェーンに戻って処理を続行します
iptables -A allowed_ips -j RETURN
-マシンに出入りするすべてのトラフィックを新しいチェーンに通す
iptables -A INPUT -j allowed_ips
iptables -A OUTPUT -j allowed_ips
以上です!もちろん、loインターフェースとの間のすべてのトラフィックを許可するルールなど、追加のルールが必要になる場合があります。
ルールに満足したら、おそらくルールを保存する必要があります。このリンクのコメントには、その方法に関するいくつかのオプションがあります。
単純なニーズに簡単に使えるiptablesルールジェネレーターはufwです。パッケージはdebian不安定版で利用可能です。
Firestarterも試してください。レニーで利用可能。