web-dev-qa-db-ja.com

DHCPサーバーでMACフィルターを行う方法

DHCPサーバーから特定のMACアドレスのみがIPを取得できるようにしたいのですが、現在はdnsmasqを使用していますが、dhcpサーバーは変更せず、他のソフトウェアも利用できます。ただし、特定のMACアドレスに静的IPアドレスを設定できるようにする必要があります。

現在、私のdnsmasq confファイルには、次のようなMACアドレスの範囲の静的IPを指定する一連のエントリがあります。

dhcp-Host=00:11:22:33:44:55,192.168.1.100
dhcp-Host=00:11:22:33:44:56,192.168.1.101
dhcp-Host=00:11:22:33:44:57,192.168.1.102

上記の方法で指定されていないすべてのMACアドレスがIPを取得しないようにする方法はありますか?

5
Joelbitar

静的範囲のみを指定することでこれを行うことができます

dhcp-range = 192.168.0.0、static

編集:要件を満たすために上記のアドレス範囲を変更します。

ダイナミックレンジが指定されていない場合、dnsmaskは、対応するdhcp-Host構成を持つホストにのみアドレスを提供します

# Specify a subnet which can't be used for dynamic address allocation,
# is available for hosts with matching --dhcp-Host lines. Note that
# dhcp-Host declarations will be ignored unless there is a dhcp-range
# of some type for the subnet in question.
# In this case the netmask is implied (it comes from the network
# configuration on the machine running dnsmasq) it is possible to give
# an explicit netmask instead.
#dhcp-range=192.168.0.0,static
6
user9517

@ Chopper3のソリューションの代わりに、次のようなiptablesルールを追加できます

# Create the DHCP_clients chain in the 'raw' table
iptables -t raw -N DHCP_clients

# Incoming DHCP, pass to chain processing DHCP
iptables -t raw -A PREROUTING -p udp --dport 67 -j DHCP_clients

# Allowed DHCP clients
iptables -t raw -A DHCP_clients -m mac --mac-source 00:11:22:33:44:55 -j ACCEPT
iptables -t raw -A DHCP_clients -m mac --mac-source 00:11:22:33:44:56 -j ACCEPT
iptables -t raw -A DHCP_clients -m mac --mac-source 00:11:22:33:44:57 -j ACCEPT

# Deny other clients not listed above
iptables -t raw -A DHCP_clients -j DROP

Edit:「既知の」/許可されたクライアントを追加する必要がある場合は、クライアントごとに次の手順を実行します。

# We insert a rule at the head of the chain using the '-I' command
iptables -t raw -I DHCP_clients -m mac --mac-source $CLIENT_MAC -j ACCEPT

(注:-I(追加)ではなく-A(挿入)を使用しているため、新しいルールが最初にチェックされるルールになります。挿入しない場合、追加されたルールは-j DROPのルール)

9
pepoluan
# Ignore any clients which are not specified in dhcp-Host lines
# or /etc/ethers. Equivalent to ISC "deny unknown-clients".
# This relies on the special "known" tag which is set when
# a Host is matched.
#dhcp-ignore=tag:!known
4
Antenagora

特定のMACのみがDHCPアドレスを取得するようにしたい場合は、予約のリストを作成して、それらのIPアドレスのみをカバーするように範囲を設定します。これにより、配布するアドレスがなくなります。

1
Chopper3

以前の修正に同意する必要があります。ペポルアンの答えを除いて。

Pepoluanが真のホワイトリスト手法であるかどうかはわかりませんが、正しい答えに近いものです。すべてのデータを間違ったMacにブロックすることが目標です。登録されていないMACに対してdhcpを無効にするだけでは修正されません。手動のIPが通常3つの範囲のいずれかに設定されている場合... 10.0.0.x、192.168.1.x、または192.168.0.xは問題に答えません。

Dhcpを不明なMacに渡さないという他の提案された回答を使用する場合は、ルーターのアドレスも一意の推測できないオプションに変更し、IP範囲を本当に奇妙なものに変更してください。例えば192.168.43.xまたはルーターが192.168.43.43か何かである。これは、サブネット範囲を推測するのを妨げ、ネットワークへのリンクがありません。

完璧ではありませんが、ネットワークを保護するためのより優れた方法です。

0