![LANから特定のMACアドレスのみを受け入れるホームネットワーク](https://rvso.com/image/1267885/LAN%E3%81%8B%E3%82%89%E7%89%B9%E5%AE%9A%E3%81%AEMAC%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%81%AE%E3%81%BF%E3%82%92%E5%8F%97%E3%81%91%E5%85%A5%E3%82%8C%E3%82%8B%E3%83%9B%E3%83%BC%E3%83%A0%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF.png)
WAN(eth0)とLAN(eth1)を備えたルーターとしてUbuntu 10を使用しています。eth1が特定のMACアドレスからのパケットのみを受け入れ、残りをドロップするように制限するにはどうすればよいでしょうか? また、特定のMACアドレスにDHCPを設定しようとしていますが、IPアドレスは誰でも手動で設定できます。ネットワークを使用できるデバイスは4~6台あります。
答え1
コメントで述べたように、これによって実際のセキュリティが強化されるわけではなく、IP に基づいてブロックする以上のセキュリティが強化されるとも思いませんが、次のような方法でセキュリティが強化されるはずです。
/sbin/iptables -A INPUT -i eth1 -m mac --mac-source XX:XX:XX:XX:XX:XX -j ACCEPT
もちろん、デフォルトのポリシーが DROP であると仮定します。
答え2
まずはここから始めましょう:
iptables -P FORWARD DROP
iptables -I FORWARD -i eth1 -m mac --mac-source XX:XX:XX:XX:XX:XX -j ACCEPT
iptables -I FORWARD -i eth1 -m mac --mac-source XX:XX:XX:XX:XX:BB -j ACCEPT
iptables -P INPUT DROP
iptables -I INPUT -i eth1 -m mac --mac-source XX:XX:XX:XX:XX:XX -j ACCEPT
iptables -I INPUT -i eth1 -m mac --mac-source XX:XX:XX:XX:XX:BB -j ACCEPT
および以外のすべての MAC アドレスではXX:XX:XX:XX:XX:XX
、XX:XX:XX:XX:XX:BB
ルーターまたはインターネットにアクセスできません。
答え3
( 私はユーザー63709; どういうわけか、Google OpenID ログインと MyOpenID ログインが分割されましたが、Stack Overflow では実際には同じです)
arptables
独自のポリシーがあります。ないiptables
のポリシーと混同しないでください。
「制限したい」ので、[シック] eth1が特定のMACアドレスからのパケットのみを受け入れ、残りを破棄するように設定すると、欲しいデフォルトの DROP ポリシー。
(ところで、上記の arptables ルールに少し間違いがありました。正しくは:)
arptables -P IN DROP
arptables -A IN -i eth1 --source-mac <allowed_mac_address> -j ACCEPT
arptables -A IN -i eth1 --source-mac <allowed_mac_address> -j ACCEPT
... and so on ...
(再度注意するが、IN
組み込みチェーンです具体的にはarptablesでのみ見つかります。読むarptables のマニュアルページ詳細については)。
答え4
Michael、ルールごとに複数の MAC ソースを指定することはできないため、次のようなルール セットが必要になります (iptables を使用する場合)
#Rules for allowing your mac addresses
/sbin/iptables -A FORWARD -i eth1 -m mac --mac-source XX:XX:XX:XX:XX:11 -j ACCEPT
/sbin/iptables -A FORWARD -i eth1 -m mac --mac-source XX:XX:XX:XX:XX:22 -j ACCEPT
/sbin/iptables -A FORWARD -i eth1 -m mac --mac-source XX:XX:XX:XX:XX:33 -j ACCEPT
#One final rule to drop all packets which do not match one of the rules above (are not from one of your allowed macs)
/sbin/iptables -A FORWARD -i eth1 -j DROP
これらはFORWARDチェーンにあり、ないINPUT チェーン。FORWARD チェーンにこれらのルールを設定すると、Linux ルーターは、許可されたマシン以外の Mac がルーター経由でトラフィックを送受信することを許可しません。ただし、同じサブネット上のマシンとは通信できます (ルーターを通過する必要がないため)。
入力チェーンに対して上記のルールを複製することで、ルーターに接続できるユーザーを制御することもできます。
#Rules for allowing your mac addresses
/sbin/iptables -A INPUT -i eth1 -m mac --mac-source XX:XX:XX:XX:XX:11 -j ACCEPT
/sbin/iptables -A INPUT -i eth1 -m mac --mac-source XX:XX:XX:XX:XX:22 -j ACCEPT
/sbin/iptables -A INPUT -i eth1 -m mac --mac-source XX:XX:XX:XX:XX:33 -j ACCEPT
#One final rule to drop all packets which do not match one of the rules above (are not from one of your allowed macs)
/sbin/iptables -A INPUT -i eth1 -j DROP
FORWARD と INPUT がどのケースで機能するかについての他の短い回答の 1 つに対するコメントを読んで、ここで簡単に説明します。
フォワード送信されるパケットにのみ適用されますを通してルータを他のサブネットまたは外部の世界(WAN 経由)インターフェースに接続します。入力ルータ自体で終了するように設定されたパケットに適用されます (例: ルータ/Linux ボックス自体への SSH 接続)。