J'essaie de créer une règle de pare-feu sur un serveur Ubuntu 10.04 utilisant isc-dhcpd. Je veux que dhcp ne soit accessible que par un seul hôte relais (172.1.1.1). J'ai configuré iptables comme suit :
# iptables -vnL
Chain INPUT (policy ACCEPT 5325 packets, 523K bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT udp -- * * 172.1.1.1 0.0.0.0/0 udp dpt:67
1497 533K DROP udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:67
J'essaie ainsi de supprimer tout le trafic UDP destiné au port 67, sauf s'il provient de 172.1.1.1.
Cependant, avec cette règle en place, lorsque je lance le dhcpd, je vois immédiatement des demandes DHCP commencer à arriver par diffusion (le journal indique via eth0).
Ai-je besoin d'une autre règle de pare-feu pour capter le trafic de diffusion ? J'ai essayé d'ajouter une règle comme
iptables -A INPUT -p udp -d 255.255.255.255 -j DROP
qui devrait abandonner tout le trafic de diffusion UDP. Mais à nouveau, lorsque je lance dhcpd, je vois des tonnes de requêtes par diffusion.
EDIT : Selon cette page :
Pour la plupart des opérations, le logiciel DHCP s'interface avec la pile IP Linux à un niveau inférieur à Netfilter. Par conséquent, Netfilter (et donc Shorewall) ne peut pas être utilisé efficacement pour contrôler DHCP.
Y a-t-il un moyen d'accomplir ce que je veux ici ?
0 votes
Êtes-vous certain que le serveur a accepté des paquets DHCP ? Votre règle DROP semble avoir fait correspondre un bon nombre de paquets (1497), alors que votre règle ACCEPT n'en a aucun.
0 votes
Oui, je vois le trafic dhcp indésirable dans les journaux dhcpd dès que je lance le démon. Je ne m'attendrais pas à voir des octets en provenance de 172.1.1.1 pour le moment, il ne fait que relayer pour un seul client de test.
0 votes
Lisez ceci unix.stackexchange.com/a/659709/266428