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を取得しないようにする方法はありますか?
静的範囲のみを指定することでこれを行うことができます
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
@ 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
のルール)
# 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
特定のMACのみがDHCPアドレスを取得するようにしたい場合は、予約のリストを作成して、それらのIPアドレスのみをカバーするように範囲を設定します。これにより、配布するアドレスがなくなります。
以前の修正に同意する必要があります。ペポルアンの答えを除いて。
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か何かである。これは、サブネット範囲を推測するのを妨げ、ネットワークへのリンクがありません。
完璧ではありませんが、ネットワークを保護するためのより優れた方法です。