ASUS RT-N66U에서 Shibby의 Tomato 펌웨어를 실행하고 있습니다. 내가하려는 것은 MAC 주소를 기반으로 특정 클라이언트 (예 : 내 아이들)에 대해 OpenDNS IP를 강제하는 반면 다른 클라이언트는 라우터의 기본값을 가져 오는 것입니다. 지금까지 아주 좋습니다 (대부분). 이 작업을 수행하는 데 사용하는 Dnsmasq 스크립트는 다음과 같습니다.
# Assign alternate DNS for select hosts
# Set Specific Clients to be affected
dhcp-mac=set:altdns,XX:XX:XX:XX:XX:XX # kids laptop
dhcp-mac=set:altdns,XX:XX:XX:XX:XX:XX # kids ipod
# Set Alternate DNS
dhcp-option=tag:altdns,option:dns-server,208.67.220.220,208.67.222.222
이것은 2.4Ghz 대역에서 훌륭하게 작동합니다. 5Ghz 대역에 연결하면 라우터의 기본 DNS 항목을 가져옵니다.
질문 # 1 :이 스크립트를 2.4Ghz (eth1)와 5Ghz (eth2) 모두에 적용 할 수있는 방법이 있습니까? 실패하면 Tomato에서 5Ghz 대역 용 기기를 허용 목록에 추가 할 수 있나요? 일반적으로 무선에 대해 화이트리스트 / 블랙리스트에 올릴 수 있지만 둘 중 하나에 대해이 작업을 수행하는 방법을 알 수 없습니다.
나는 항상 5Ghz에 다른 키를 사용할 수 있으므로 큰 문제는 아닙니다. 더 큰 허점은 이것이 DHCP에서만 작동한다는 것입니다. 랩톱에서 DNS 설정을 변경하면이를 완전히 우회합니다. 내 12 살짜리 아들은 별 어려움없이 이것을 알아낼 수있을 정도에 이르렀습니다.
질문 # 2 : 특정 클라이언트가 DHCP를 사용하지 않는 경우 DNS를 강제로 적용하려면 어떻게해야합니까? 특정 MAC 주소 등의 특정 IP에 대한 DNS 트래픽 만 허용하는 일종의 방화벽 규칙을 생각하고 있었지만 어떻게해야할지 모르겠습니다. 또는 DHCP를 강제하는 방법이 있습니까 (또는 DHCP를 사용하지 않는 경우 특정 클라이언트를 차단)?
그것이 가치있는 일에 대해, 이것이 어떻게 작동하는지 (대부분) 여기에 있습니다. 먼저 OpenDNS를 사용하고 싶지 않은 모든 장치에 호스트 이름이 있는지 확인했습니다. 다음으로 라우터 식별에서 도메인 이름으로 "home"을 추가했습니다 (이 없이는 작동하지 않습니다). 그런 다음 다음 방화벽 스크립트를 추가했습니다.
# For certain devices, use default LAN DNS
# #############################################################
iptables -t nat -A PREROUTING -i br0 -s xxxx_Family_PC.home -p tcp --dport 53 -j DNAT --to $(nvram get lan_ipaddr)
iptables -t nat -A PREROUTING -i br0 -s xxxx_Family_PC.home -p udp --dport 53 -j DNAT --to $(nvram get lan_ipaddr)
iptables -t nat -A PREROUTING -i br0 -s xxxxxx-Laptop.home -p tcp --dport 53 -j DNAT --to $(nvram get lan_ipaddr)
iptables -t nat -A PREROUTING -i br0 -s xxxxxx-Laptop.home -p udp --dport 53 -j DNAT --to $(nvram get lan_ipaddr)
iptables -t nat -A PREROUTING -i br0 -s Chromecast.home -p tcp --dport 53 -j DNAT --to $(nvram get lan_ipaddr)
iptables -t nat -A PREROUTING -i br0 -s Chromecast.home -p udp --dport 53 -j DNAT --to $(nvram get lan_ipaddr)
iptables -t nat -A PREROUTING -i br0 -s xxxxxx-Galaxy-Note.home -p tcp --dport 53 -j DNAT --to $(nvram get lan_ipaddr)
iptables -t nat -A PREROUTING -i br0 -s xxxxxx-Galaxy-Note.home -p udp --dport 53 -j DNAT --to $(nvram get lan_ipaddr)
iptables -t nat -A PREROUTING -i br0 -s xxxxxx-HTC-One-M8.home -p tcp --dport 53 -j DNAT --to $(nvram get lan_ipaddr)
iptables -t nat -A PREROUTING -i br0 -s xxxxxx-HTC-One-M8.home -p udp --dport 53 -j DNAT --to $(nvram get lan_ipaddr)
iptables -t nat -A PREROUTING -i br0 -s Roku.home -p tcp --dport 53 -j DNAT --to $(nvram get lan_ipaddr)
iptables -t nat -A PREROUTING -i br0 -s Roku.home -p udp --dport 53 -j DNAT --to $(nvram get lan_ipaddr)
iptables -t nat -A PREROUTING -i br0 -s Sharp-Aquos-HDTV.home -p tcp --dport 53 -j DNAT --to $(nvram get lan_ipaddr)
iptables -t nat -A PREROUTING -i br0 -s Sharp-Aquos-HDTV.home -p udp --dport 53 -j DNAT --to $(nvram get lan_ipaddr)
iptables -t nat -A PREROUTING -i br0 -s xxxxxxsiPhone2.home -p tcp --dport 53 -j DNAT --to $(nvram get lan_ipaddr)
iptables -t nat -A PREROUTING -i br0 -s xxxxxxsiPhone2.home -p udp --dport 53 -j DNAT --to $(nvram get lan_ipaddr)
iptables -t nat -A PREROUTING -i br0 -s xxxxxx-MacBook.home -p tcp --dport 53 -j DNAT --to $(nvram get lan_ipaddr)
iptables -t nat -A PREROUTING -i br0 -s xxxxxx-MacBook.home -p udp --dport 53 -j DNAT --to $(nvram get lan_ipaddr)
# For every other client, use OpenDNS (including guest network - br1).
# #############################################################
iptables -t nat -A PREROUTING -i br0 -p udp --dport 53 -j DNAT --to 208.67.220.220
iptables -t nat -A PREROUTING -i br0 -p tcp --dport 53 -j DNAT --to 208.67.220.220
iptables -t nat -A PREROUTING -i br1 -p udp --dport 53 -j DNAT --to 208.67.220.220
iptables -t nat -A PREROUTING -i br1 -p tcp --dport 53 -j DNAT --to 208.67.220.220
이것은 내가 원하는 것을 거의 얻습니다. 유일한 부족한 점은 첫 번째 섹션과 일치하지 않는 클라이언트 (따라서 OpenDNS IP를 얻음)에는 첫 번째 섹션이 다운 된 경우 보조 DNS가 없다는 것입니다. 이 방법을 사용하여 지정하는 방법은 없습니다. 그래도 99.99 %의 시간 동안 작동하므로 충분히 좋을 것입니다. br1의 마지막 두 줄은 게스트 네트워크에 연결하는 모든 사람이 OpenDNS를 사용하도록합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다