web-dev-qa-db-ja.com

ユーザーを分離するためのIPTABLESルール

OpenWrt 10.03ルーター[IP:192.168.1.1]があり、DHCPサーバープール:192.168.1.0/24があります-クライアントはワイヤレス/有線接続を介してルーターを使用しています。 OK!

ここに問題があります。ユーザーを互いに分離する必要があります。

どのように行う必要があるか:IPTABLESルール[/etc/firewall.user]による。
OK!
"大声で考える":だから私は[OpenWrtルーターで]このようなルールが必要です:

-ソース:192.168.1.2-192.168.1.255、宛先が192.168.1.2-192.168.1.255のドロップ

アイデアはこれです。 OK!

質問!
-このファイアウォールルールを適用した場合、自分自身をロックアウトしますか?
-これは安全な方法ですか? [これを行うのは簡単ですか?:こんにちは、私はクライアントです、そして私は言います、私のIPアドレスは192.168.1.1です! -暗号化されていないトラフィックをスニッフィングできるようになりました! :(-すべてのクライアントが同じサブネットにあるためです!]
-重複したIPアドレスを見つけて監査するための良い方法はありますか?
-重複したMACアドレスを見つけて監査するための良い方法はありますか?
-レイヤー2でこのIPTALBESルールを実行するための良い方法はありますか?:
$ wget -q "http://downloads.openwrt.org/backfire/10.03/ar71xx/packages/" -O - | grep -i ebtables$


ps:ルールは[良いチェーンにありますか?]:iptables -A FORWARD -m iprange --src-range 192.168.1.2-192.168.1.255 --dst-range 192.168.1.2-192.168 .1.255 -j DROP
ありがとうございました!

1
LanceBaynes

ワイヤレスユーザーと有線ユーザーを分離したい場合は、インターフェイスを一致させてみませんか? ppp0がインターネットに面しているとすると、eth0はローカルLANであり、wlan0はワイヤレスです。

iptables -P FORWARD DROP                                 # Drop everything except:
iptables -A FORWARD -m state --state RELATED,ESTABLISHED # Accept already accepted connections
iptables -A FORWARD -i eth0 -o ppp0 -j ACCEPT            # Accept outgoing connections from local LAN
iptables -A FORWARD -i wlan0 -o ppp0 -j ACCEPT           # Accept outgonig connnections from wlan

これを使用する場合:

  • インターネットからは何も接続できません
  • ワイヤレスユーザーはインターネットにのみ接続できます
  • 有線ユーザーはインターネットにのみ接続できます
  • --src-rangeを追加すると、個別のIP範囲を適用できます。

DHCPサーバーがOpenWrtデバイスで実行されている場合、FORWARDチェーンはそれに影響を与えません。 DHCPサーバーの使用を許可するには

iptables -P INPUT DROP                                   # Drop everything except:
iptables -A INPUT -m state --state RELATED,ESTABLISHED   # Accept already accepted connections
iptables -A INPUT ! -i ppp0 -p tcp --dport 22 -j ACCEPT  # Don't forget SSH
iptables -A INPUT ! -i ppp0 -p udp --sport 68 --dport 67 # Accept DHCP requests from any local network

私は通常、いくつかの種類のICMPとスパムを除いてすべてをOUTPUTで許可します。ただし、より安全なデフォルトのDROPを好む場合があるため、具体的なルールは次のとおりです。

iptables -P OUTPUT DROP                                             # Drop everything except:
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT ! -o ppp0 -p udp --sport 67 --dport 68 -j ACCEPT # Allow DHCP to the local network

すべてに接続することを想定していないルーターでは、より理にかなっています。

私の経験では、MACフィルタリングはセキュリティを追加せず、不便なだけです。しかし、あなたが見たい場合:

iptables -m mac --help

MACアドレスをログに記録すると便利ですが、簡単に偽造されます。同じ一致ルールを持つACCEPTルールの前に-j LOGまたは-j NFLOGを追加するだけです。

ネットワークからのみアクセスできるコンピューターを構成しているため、ロックアウトしないように十分に注意する必要があります。そこまで歩いてルールを手動で削除することはできません。特に、空のINPUTチェーンでiptables -P INPUT DROPと入力すると、SSHセッションが強制終了されます。 iptables-saveiptables-restoreを使用して、構成ファイルにルールを書き込むことをお勧めします。また、ルーターで試す前に、キーボードとモニターを備えたコンピューターでルールをテストできる場合にも役立ちます。

2
stribika