Linux中的堡垒--iptables
iptables的构成(四表五链)
表
filter:过滤数据包
nat :转换数据包的源或目标地址
mangle:用来mangle包,改变包的属性
raw:用来不让iptables做数据包的链接跟踪处理,主要是提高性能
*优先级:raw>mangle>nat>filter(请注意优先级)
链
INPUT:对进入主机的数据包进行修改
OUPTUT:从主机向外发送的数据包进行修改
FORWARD:转发的数据包,路由判断后最后一次更改包的源地址前对数据包进行修改
PREROUTING:数据包进入防火墙后,路由判断之前对数据包进行修改
POSTROUTING:路由判断后对数据包进行修改
iptables的基本操作
一、管理防火墙
启动
# service iptables start
# chkconfig --level 2345 iptables on
管理程序:/etc/init.d/iptables
关闭
# service iptables stop
# chkconfig iptables off
保存防火墙规则
# service iptables save
规则保存位置:/etc/sysconfig/iptables
iptables 命令格式: iptables [-t 表名] 选项 规则
二、防火墙规则管理
1)显示防火墙中的规则
-L:显示防火墙中的规则列表
-n:不将规则反解成服务名称(以数字)
--line:显示规则编号
-v:显示规则详细信息
【在关闭的情况下,是看不到防火中的规则的】
2)删除规则
-D #:删除指定编号的规则
-F:清空规则
例子:删除filter表的INPUT链的第三个规则
# iptables -t filter -D INPUT 3
例子:删除filter表的INPUT链的全部规则
# iptables -t filter -F INPUT
例子:删除filter表的全部规则
# iptables -t filter -F
3)保存规则
# service iptables save
【执行保存规则操作的时候,会将内存中的规则刷新磁盘上/etc/sysconfig/iptables】
4)清空防火墙的计时器
-Z: 清空规则计时器
例子:清空filter的全部计数器
# iptables -t filter -Z
5)添加
-A: 在最后一条规则后,添加新规则
-I:在指定的位置前插入规则。如果不指定位置,是插入在第一条
-R:替换指定编号的规则
-j 动作:指定一个数据包匹配到这个规则后所执行的操作
动作:
ACCEPT:放行
DROP:丢弃
匹配条件:
-d xxx:指定数据包中的目的IP
-s xxx:指定数据包中的源的IP
--sport xx:指定指定数据包中的源端口
--dport xx:指定数据包中的目的端口
-p xx:指定协议类型
例子:禁止192.168.6.222链接当前主机的tcp 22端口
# iptables -t filter -A INPUT -p tcp --dport 22 -j DROP
6)修改默认规则
-P: 修改链的默认规则
修改默认规则为DROP前,必须首先放行22端口
练习:
1、清空防火墙的规则
# iptables -t filtler -F
# iptables -t nat -F
# iptalbes -t mangle -F
# iptables -t raw -F
2、清空计数器
# iptables -t filtler -Z
# iptables -t nat -Z
# iptalbes -t mangle -Z
# iptables -t raw -Z
3、保存规则
# service iptables save
4、配置规则实现只允许自己的window链接linux主机
# iptables -A INPUT -s x.x.x.x -p tcp --dport 22 -j ACCEPT
# iptables -A OUTPUT -d x.x.x.x -p tcp --sport 22 -j ACCEPT
5、修改默认规则为DROP
# iptables -P INPUT DROP
# iptables -P OUTPUT DROP
# service iptables save
6、禁止外部主机ping linux,但是linux可以ping外部主机
# iptables -A OUTPUT -p icmp --icmp-type 8 -j ACCEPT
# iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT
7、允许任意主机访问linux的80端口
# iptables -A INPUT -p tcp --dport 80 -j ACCEPT
# iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT
8、保存规则
# service iptables save
PS:还望指正,谢谢 –author by :潇湘雨错,zxhk