IPTABLES进阶

来源:互联网 发布:酷盛网络加速器官网 编辑:程序博客网 时间:2024/04/30 06:35
这篇主要讲述iptables模块,由于iptables模块太多,所以只能慢慢补充,用到哪个加哪个
==========================================================================================================
iptables -A INPUT [-m state] [--模块参数 状态]

 -m :一些iptables的外挂模块如:state  mac  string 等等
        state      状态模块:检查数据包状态,通过状态管理行为
        mac       物理地址模块,检测数据包物理地址,根据物理地址进行策略
        string    字符匹配,字符串匹配通过字符串的匹配进行访问控制
          

其中各个模块的功能:
        --state:检测封包状态
                INVALTD        :无效封包
                ESTABLISHED:已经链接成功的数据包
                NEW                :新建立的数据包
                RELATED        :与我们主机有关的数据封包,(常用!配合)
                 例如:iptables -A INPUT -m state --state RELATED,ESTABLISHED  -j ACCEPT                ----已经简历的相关封包可以通过
                            iptables -A INPUT -m state --state INVALTD -j DROP                                                 ----无效封包丢弃
         --mac-source:来源主机的mac地址 (由于目的mac一定是本机,所以就只有源mac)

                  例如: iptables -A INPUT -m mac --mac-source aa:bb:cc:dd:ee:00 -j DROP                   ----禁止源mac地址为这个的主机访问



iptables日志

#记录log
i=("eth0" "eth1")
for IFACE in ${i[@]}
do
#记录未符合tcp规则的包并丢弃
iptables -A INPUT -i $IFACE -p tcp -j LOG --log-prefix "IPTABLES TCP-IN: "
iptables -A INPUT -i $IFACE -p tcp -j DROP
iptables -A OUTPUT -o $IFACE -p tcp -j LOG --log-prefix "IPTABLES TCP-OUT: "
iptables -A OUTPUT -o $IFACE -p tcp -j DROP

#记录未符合规则的包并丢弃
iptables -A INPUT -i $IFACE -m limit --limit 6/h --limit-burst 5 -j LOG --log-prefix "IPTABLES PROTOCOL-X-IN: "
iptables -A INPUT -i $IFACE -j DROP
iptables -A OUTPUT -o $IFACE -m limit --limit 6/h --limit-burst 5 -j LOG --log-prefix "IPTABLES PROTOCOL-X-OUT: "
iptables -A OUTPUT -o $IFACE -j DROP  

#记录未符合规则的包并丢弃
iptables -A INPUT -i $IFACE -p icmp -j LOG --log-prefix "IPTABLES ICMP-IN: "
iptables -A INPUT -i $IFACE -p icmp -j DROP
iptables -A OUTPUT -o $IFACE -p icmp -j LOG --log-prefix "IPTABLES ICMP-OUT: "
iptables -A OUTPUT -o $IFACE -p icmp -j DROP
done


#将配置重定向到iptables.conf文件中

#ubuntu系统将日志重定向到一个文件中(凡是带有iptables 的全部写入到某个文件)

/etc/rsyslog.d/my_iptables.conf
:msg,contains,"IPTABLES" /var/log/iptables.log

service rsyslog restart

#ubuntu自动开机加载配置

iptables-save > /etc/init.d/iptables.up.rules
echo "pre-up iptables-restore < /etc/init.d/iptables.up.rules" >> /etc/network/interfaces

0 0
原创粉丝点击