1.从了解iptables开始
iptables 与最新版本Liunx内核集成的ip信息包过滤系统。
该系统是一种强大的工具可用于添加、编辑和除去规则,这些规则是做信息包过滤决定的,防火墙所遵循和组成的规则。这些规则存储在专用的信息包过滤表中,而这些表集成在Linux内核中。在信息包过滤过程中,规则被分组在我们所谓的链(chain)中。
虽然 netfilter/iptables IP 信息包过滤系统称为一个实体,实际由netfilter和iptables组成。
netfilter组件也称为内核空间(kernelspace),是内核的的一部分,由一些信息包过滤表组成,包含信息包过滤处理的规则集
iptables组件是一种工具,也称作用户空间(userpace),它使插入、修改和除去信息包过滤表中的规则变得容易。
2.安全控制手段
常用的安全控制手段有包过滤、状态检测、代理服务。
其中包过滤通过在网络间的相互连接的设备上加载允许、禁止来自特定的源地址、目的地址、TCP端口号等规则,对通过设备的包进行检查并限制进出内网。对于拥塞攻击,内存覆盖和病毒入侵缺无能为力
3.基础操作
(1)启动:service iptables start
重启:service iptables restart
关闭:service iptables stop
(2)表和链的概念
iptables具有filter nat mangle raw四个表;每个表上都列有不同的链
INPUT:处理来自外部的数据
OUTPUT:处理向外发送的数据
FORWAR:将数据转发到本机的其他网卡设备上
PREROUTING:处理到达本机并在路由转发前的数据包。转换数据包中IP地址,常用NAT转换
POSTROUTING:处理即将离开本机的数据包。转换数据包中的源IP地址
规则包括一个条件和一个目标;如满足条件,就执行目标中的规则或特定值;不满足条件,就判断下一条规则
-j+目标值
目标值:ACCEPT允许接收数据包;DROP:丢弃包;QUEUE:将数据移交到用户空间;RETURN停止执行当前的规则并返回链头重新判断
(4)配置常用口令
iptables -L:看当前所有策略
iptables -F/--flush :清空当前的策略
iptables -t filter/mangle/nat --list 看指定表内的规则
iptables -t NAT -F 手动清除NAT表
永久保存这些规则的更改
iptables -save > /etc/iptables 备份
新建一个规则的脚本 并保存到/etc/network/if-pre-up.d/目录下,每次开机都会加载这个脚本
(5)追加规则
-A+链名+基本参数(通过firewall - rule 查看)
基本参数:
-p+协议名(tcp,udp,icmp)
-s+指定数据包的源地址 也可用-src
-d+指定数据包目的地址 -dst
-j+目标值(ACCEPT,DROP,QUEUE,REURN)/其他链
-i+输入接口(eth0)/ !-i 取反
-o+输出接口(eth0)
-sport +源端口号/服务名称,缺省下将匹配所有端口
-dport+目的端口号/服务名称
-tcp-flags (SYN,ACK,FIN,RST,URG,PSH)
-icmp-type 0 表示 Echo Reply
-icmp-type 8 表示 Echo
4.给出两脚本作为例子
企业防火墙概念图
防火墙将子网划分为多个部分,简短运行时间