理解防火墙的含义,了解防火墙的种类。
防火墙大致分为两种,一种是基于内容的过滤,一种是包过滤。(包过滤又分为:基于状态检测的包过滤和简单的包过滤)
Iptables总共有五个内置链
INPUT
OUTPUT
FORWARD
PREROUTING
POSTROUTING
Iptables共有四个表
filter (这个是默认的) (INPUT,OUTPUT,FORWARD)
nat (PREROUTING,POSTROUTING,OUTPUT)
mangle(修改TTL值等,它的优先级最高内核在2.4.18的这五个链都支持)
raw (PREROUTING,OUTPUT)
通用匹配:
-p protocol {TCP|UDP|ICMP}
-s src_address
-d dst_address
-i in_interface
-o out_interface
扩展匹配:
隐含扩展
tcp
--dport
--sport
--tcp-flogs
--syn
udp
--sport
--dport
icmp
--icmp-type
8 echo-request
0 echo-reply
3 destination unreachable
显式扩展:
-m state (NEW
ESTABLISHED
RELATED,
INVALID)
-m multiport (--source-ports port1,port2,port3
--destination-port2 port1,port2,port3
--ports port1,port2,port3,)
-m limit (--limit rate /second, /hour, /minute, /day, /mouth规定速率,平均匹配
--limit-burst number 指明峰值,峰值匹配
经常跟LOG结合使用)
-m mac (--mac-source mac地址
只能用在PREROUTING,FORWARD,INPUT这三个链使用)
-m string (- -string“sex” - -algo bm
- -string “sex” - -algo kmp 其中bm和kmp是两种算法)
-m connlimit
--conlimit-above 2允许并发连接数的控制,点对点限制)
例子:#iptables –A INPUT –p tcp - -syn
-m time (- -timestart 01:00 - -timestop 06:00
- -datestart - -datestop根据时间来限制)
layer7 -l7proto
iprange
- -src-range
- -dst-range
-j jump 跳转
DROP (不回应)
REJECT (拒绝)
ACCEPT (接受)
SNAT (源地址转换,地址伪装,一般用于静态ip转换)
DNAT (目标地址转换)
LOG (日志功能)
REDIRECT (替换)
MASQUERADE (地址伪装,专门针对动态的ip地址转换)
-j LOG
- -log-level level1
- -log-prefix prefix
- -log-tcp-options
- -log-ip-options
关于iptables写规则的格式
Iptables 匹配规则的位置 匹配的规则 执行的动作
例子:#iptables –t filter –A INPUT –s 192.168.0.1 –j DROP
(先写了表名,链名指定规则的位置,接着下了规则,最后写了动作)
关于规则管理的选项
-L 或 –vL (列出一个表或链中的所有规则,-L后面还有子命令n,v,x,就是 - -line-numbers 显示行号,–n 以数字形式显示 –v 显示详细信息,-x不做单位换算,直接显示到精确值 )
-S (打印一条链或表中的所有规则)
-A (追加在最后一条)
-I (在第一条规则前中插入一条)
-I CHAIN 3 (表示将插入的作为第三条)
-D CHAIN 3(删除一条链中的第三个规则)
-D CHAIN RULE (删除一条链中的指定的规则)
-R (替换某条规则)
关于链管理的选项
-P (设置默认规则)
-F (默认清除所有的链)
-Z (清零,清空计数器,一个清空是记录被本规则匹配到的数据包的个数,一个是清空记录被规则匹配到的数据包的体积的和)(可清空某个链上的计数器,也可清空某条链上某个规则的计数器)
-N (增加一条用户自定义的链)
-X (删除用户自定义的空链)
-E (把用户自定义的某个链的名字进行重命名)
关于NAT地址转换 ((首先记住一点,NAT不能做包过滤,要想做包过滤,还需要使用FORWARD)
目标地址转换(路由前)
例子:#iptables -t nat –A PREROUTING –p tcp –dport 80 –j DNAT - -to-dest 192.168.0.20
NAT还支持端口转换
#iptables –t nat –A OUTPUT –p tcp - -dport 80 –j DNAT - -to-dest 192.168.0.200:8080
#iptables -t nat –A PREROUTING –d 1.1.1.1 –p tcp - -dport 80 –j DNAT - -todest 192.168.1.2:8080
源地址转换 (路由后)
#iptables –t nat –A POSTROUTING -o eth0 –j MASQUERADE (当eth0的ip地址为动态的时候使用)
#iptalbes –t nat –A POSTROUTING –j SNAT - -to-source 192.168.1.2 (静态的时候使用)
几个例子:
#iptables –A FORWARD –s 192.168.0.15 –d 192.168.2.200 –p icmp - -icmp-type 8 –j DROP
#iptalbes –t nat –A POSTROUTING –s 192.168.0.0/24 –j SNAT - -to-source 192.168.2.201
保存iptables的规则
#service iptables save
#iptables –save > /etc/sysconfig/myrules (重定向保存某个规则)
#iptables –restore < /etc/sysconfig/myrules.2 (还原到某个规则中)
#service iptables save
#service iptables restart
(如果不想这样总是保存规则再重启iptables,可以修改/etc/sysconfig/iptables-config文件,将IPTABLES_SAVE_ON_RESTART=”no”改为“yes”,这样以后重启服务就可以自动保存规则了。)
阅读(1216) | 评论(0) | 转发(0) |