web-dev-qa-db-ja.com

iptablesを使用して許可されたIP(イン/アウト)をホワイトリストに登録

サーバーが接続できるようにするIP範囲と、ユーザーが接続するIP範囲がいくつかあります。それ以外はすべてブロックする必要があります。

Iptablesでどうすればよいですか?

私のOSはDebianベースのLinuxディストリビューションです。

22
Frank Bannister

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
27
Zenham
iptables -I INPUT -s <allowed_ip> -j ACCEPT #(repeat this line as needed)
iptables -P INPUT DROP

これにより、システムが許可されていないコンピュータ用の存在しないシステムに変わります。

15
Kevin M

サブネット全体ではなく任意の範囲を許可する場合は、「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を許可し、そのIPへのすべての入出力ターゲットをターゲットにすることをお勧めします。

-デフォルトポリシーを定義して、everithingを削除します。

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インターフェースとの間のすべてのトラフィックを許可するルールなど、追加のルールが必要になる場合があります。

7
Thiagodrv

ルールに満足したら、 おそらくルールを保存したい です。このリンクのコメントには、その方法に関するいくつかのオプションがあります。

単純なニーズのための使いやすいiptablesルールジェネレーターは fw です。パッケージは、debian不安定版で入手できます。

Firestarter も試してください。レニーで利用可能。

1
Not Now

ferm を使用することもできます。これは、昨年も使用していて、条件付きファイアウォールルールなどのケースで非常に役立ちました。

0
giomanda