制定iptables规则策略:
黑名单:
没有被拒绝的流量都可以通过,这种策略下管理员必须针对每一种新出现的攻击,制定新的规则,因此不推荐。
白名单:
没有被允许的流量都要被拒绝,这种策略比较保守,根据需要,主机逐渐开放,目前一般都采用白名单的策略,推荐。
制定iptabls的思路:
1)选择一张表,此表决定了数据报文处理的方法;
2)选择一条链,此链决定了数据报文流经哪些位置;
3)选择合适的条件,此条件决定了对数据报文做何种条件匹配;
4)选择处理报文的动作,制定相应的防火墙规则;
选择表、选择链、选择合适的条件、选择合适的动作。
例如:
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth1 -j SNAT --to-source 202.12.10.100
说明:
1)iptables是命令;
2)-t是选择表,正常是filter表和nat表;
3)-A POSTROUTING : 在postrouting链中追加规则;路由后换源地址;
4)-s:指定匹配的条件,匹配源地址,192.168.10.0/24这个网段;
5)-o:输出到哪个网卡去;
6)-j:指定的动作 SNAT;target;jump跳转到哪儿去,动作;
7)--to-source:
iptables的基本语法结构:
iptables -t 表明 管理选项 链名 条件匹配 -j 目标动作或跳转
不指定表名的时候,默认表示filter表,不指定链名的时候,默认表示该表内所有链,除非设置规则链的默认策略,否则都需要指定匹配条件。
iptables的规则显示:
命令:
iptables -t filter -nL
iptables -nL
-n:数字格式显示地址和端口,就是不解析地址和端口。
-L:列出规则。学会读规则。
iptables-services安装:
yum -y install iptables-services
CentOS7系统中默认存在iptables的命令,此命令仅仅能进行简单的查询及操作命令,不包含配置文件,安装iptables-services后,将直接生成配置文件,便于配置保存。包含ipv4和ipv6。
/etc/sysconfig/iptables的配置文件。
设置服务开启:
systemctl start iptables;
设置服务开机自启动:
sysemctl enable iptables;
查看配置文件:
rpm -ql iptables-services
使用systemctl status iptables检查下防火墙的状态:
然后再执行下iptables -nL:
可以看到默认配置文件中,已经在表链中添加了一些默认规则。