iptables ルール - 入出力

iptables ルール - 入出力

私はLinuxで、iptables私のPCには2つのネットワークインターフェース(そして私も2台のラップトップを持っています。1つは接続され、もう1つは接続されていeth0ます)。eth1eth0eth1

ノートブック 1 ipconfig: 172.16.221.120 - 255.255.252.0 ノートブック 2 ipconfig: 192.168.222.250 - 255.255.255.0

laptop1からlaptop2にうまくpingしたいです。

INPUT作成してルールを作成する必要がありますかOUTPUT?それともFORWARD規制がありますか?

私は成功せずにこれを試しました。

iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT

答え1

次のコマンドを使用してtcpdumpping値を確認できます。

tcpdump -i eth0 -n icmp
tcpdump -i eth1 -n icmp

また、単にサーバーでpingを許可するだけでは十分ではありません。ラップトップは、サーバーを介して他のラップトップに接続できるように構成する必要があります(ルーティング)。

ファイアウォールにパケットを応答として許可する規則がある場合があります。そうでなければ、まだ必要です。

iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

どちらのノートブックも他のノートブックにpingを送信できるようにしたいので、これはとにかく意味があります。ただし、pingとpongに制限することができます。

iptables -A FORWARD -i eth1 -o eth0 -p icmp --icmp-type echo-request -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -p icmp --icmp-type echo-reply -j ACCEPT

最後の問題はラップトップ自体です。ラップトップの少なくとも1つに独自のファイアウォールがある場合は、pingをブロックできます(通常、またはインターフェイスネットワークの外部のソースアドレスのため)。

答え2

ACCEPTデフォルトでは、デフォルトポリシーを含むnetfilterチェーンが空であるため、ルールは必要ありません。すでにルールを追加している場合は、pingを通過させるにはルールをFORWARDチェーンに追加する必要があります。

また、サーバーをルーターとして設定し、各ラップトップにサーバーがデフォルトのパスであることを確認する必要があります(または少なくとも他のラップトップのサブネットへのパスがあるかどうか)。

/proc/sys/net/ipv4/ip_forwardルーティング(IP転送)を有効にするには、に設定する必要があります1。 Ubuntuには/etc/sysctl.confプロジェクトを自動的に設定する場所が必要です/proc/sys

# Uncomment the next line to enable packet forwarding for IPv4
#net.ipv4.ip_forward=1

この設定を変更する場合は、変更をカーネルにロードする必要があります。

sudo sysctl -p /etc/sysctl.conf

変更は次回の起動時に自動的にロードされるため、変更後にこのコマンドを手動で一度だけ実行できます/etc/sysctl.conf

関連情報