Chinaunix首页 | 论坛 | 博客
  • 博客访问: 163902
  • 博文数量: 37
  • 博客积分: 2218
  • 博客等级: 大尉
  • 技术积分: 315
  • 用 户 组: 普通用户
  • 注册时间: 2010-02-04 23:35
文章分类

全部博文(37)

文章存档

2012年(1)

2011年(5)

2010年(31)

分类: LINUX

2010-03-07 23:52:07

理解防火墙的含义,了解防火墙的种类。
防火墙大致分为两种,一种是基于内容的过滤,一种是包过滤。(包过滤又分为:基于状态检测的包过滤和简单的包过滤)
Iptables总共有五个内置链
INPUT
OUTPUT
FORWARD
PREROUTING
POSTROUTING
Iptables共有四个表
filter (这个是默认的) INPUTOUTPUTFORWARD
nat  PREROUTINGPOSTROUTINGOUTPUT
mangle(修改TTL值等,它的优先级最高内核在2.4.18的这五个链都支持)
raw  PREROUTINGOUTPUT
通用匹配:
 -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  - -stringsex” - -algo bm
              - -string  “sex” - -algo kmp 其中bmkmp是两种算法)
   -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 (eth0ip地址为动态的时候使用)
#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) |
给主人留下些什么吧!~~