如何在NW接口上设置规则以删除所有DHCP / BOOTP消息

我有一个使用openvswitch实现提供者networking场景的openstack环境。 我的openstack安装在allinone节点上。 有没有办法,我可以禁用/放弃所有的DHCP请求登陆我的服务器的networking接口?

DHCP / BOOTP请求被发送到端口67 UDP。 设置一个防火墙规则,以删除目标端口67和协议UDP的所有包,你已经阻止它。

端口67仅用于服务器目的地,客户端接收端口68上的答案,所以你仍然可以发送请求从该服务器,但不是该服务器。

更好的做法是禁用所有传入的stream量(策略下降),只允许你真正想要的连接。

您的特定情况的下降规则是:

iptables -A INPUT -p udp -i em2 --dport 67 -j DROP 

更好的做法是创build一个防火墙脚本,放在你的/ root /下,比如叫做防火墙,给它执行权限: chmod u+x /root/firewall ,在这个脚本中你写下所有的规则。 这是我们的电子邮件服务器的一个例子:

 #!/bin/bash # IPv4 flush all tables iptables -F INPUT iptables -F FORWARD iptables -F OUTPUT iptables -F -t nat # IPv6 flush all tables ip6tables -F INPUT ip6tables -F FORWARD ip6tables -F OUTPUT # IPv4 set default policy drop iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP # IPv6 set default policy drop ip6tables -P INPUT DROP ip6tables -P OUTPUT DROP ip6tables -P FORWARD DROP # IPv4 allow local communication iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT # IPv6 allow local communication ip6tables -A INPUT -i lo -j ACCEPT ip6tables -A OUTPUT -o lo -j ACCEPT # IPv4 allow related/established iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # IPv6 allow related/established ip6tables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT ip6tables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT ip6tables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # INPUT # ICMP iptables -A INPUT -p icmp -m state --state NEW -j ACCEPT # SSH iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT # EMAIL iptables -A INPUT -p tcp --dport 25 -m state --state NEW -j ACCEPT iptables -A INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT iptables -A INPUT -p tcp --dport 110 -m state --state NEW -j ACCEPT iptables -A INPUT -p tcp --dport 143 -m state --state NEW -j ACCEPT iptables -A INPUT -p tcp --dport 443 -m state --state NEW -j ACCEPT iptables -A INPUT -p tcp --dport 465 -m state --state NEW -j ACCEPT iptables -A INPUT -p tcp --dport 587 -m state --state NEW -j ACCEPT iptables -A INPUT -p tcp --dport 993 -m state --state NEW -j ACCEPT iptables -A INPUT -p tcp --dport 995 -m state --state NEW -j ACCEPT # OUTPUT allow all iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT # save rules iptables-save > /etc/iptables.conf ip6tables-save > /etc/ip6tables.conf 

然后,您只需以root身份执行脚本: /root/firewall并设置所有规则。