防火墙


主机型防火墙(自己保护自己)

网络型防护墙(保护某个网络)


实现方式分  硬件防火墙   软件防火墙

                                     iptables



172.40.55.10  (要使用iptables保护自己)

[root@ca ~]# rpm -q  iptables

iptables-1.4.7-16.el6.x86_64

[root@ca ~]#


内核态  filter   (功能)

用户态  iptables  (管理工具)


4张表(功能)

raw  做状态跟踪

mangle   打标签

nat         做地址或端口转换

filter      默认表, 对ip包做过滤   (3条链   INPUT   OUTPUT  FORWARD)


5条链(ip包传输的方向)

INPUT         处理进入防火墙本机的ip包

OUTPUT     处理从防火墙本机出去的ip包

FORWARD  处理从防火墙本机经过的ip包

POSTROUTING   路由后处理

PREROUTING      路由前处理


管理选项

查看   -L

清空所有规则   -F

给表中的链设置默认规则  -P

给表中的链添加新规则

-A          新规则在已有规则的末尾

-I            新规则添加在已有规则的上方

-I  编号    新规则添加指定规则的上方

-D           删除某条规则


匹配条件

-s   指定ip包中的源地址    172.40.55.10        172.40.55.0/24

-d   指定ip包中的目标地址    172.40.55.10        172.40.55.0/24


-p  数据传输协议  tcp  udp    icmp

--dport   目标端口

--sport    源端口

-i               指定ip包进入的网络接口

-o              指定ip包出去的网络接口


处理动作

ACCEPT

DROP

REJECT


编写防火墙规则 

iptables    -t   表名   管理选项    链名  匹配条件  -j  处理动作



iptables  -t  filter   -P   INPUT   DROP

iptables  -t  filter   -A  INPUT   -s  172.40.55.10  -j   ACCEPT

iptables  -t  filter   -L  INPUT



[root@ca ~]# iptables -t filter --line-numbers -nL  INPUT 

Chain INPUT (policy ACCEPT)

num  target     prot opt source               destination         

1    ACCEPT     all  --  172.40.55.10         0.0.0.0/0           

[root@ca ~]# 



iptables    -I   INPUT   -s  172.40.55.190  -p tcp  --dport  22   -j  ACCEPT



iptables    -I   INPUT   2   -s  172.40.55.103  -p tcp  --dport  22   -j  ACCEPT



iptables  -t  filter   -D  INPUT   2


iptables  -F   INPUT


iptables  -F 




只允许自己Ping别人  不允许ping自己

iptables  -t  filter   -P  INPUT  DROP

iptables  -t  filter   -P  OUTPUT  DROP

iptables  -F


iptables  -t  filter  -A  OUTPUT  -p  icmp  --help 



iptables  -t  filter  -A  OUTPUT  -p  icmp --icmp-type  echo-request   -j  ACCEPT


iptables  -t  filter  -A  INPUT  -p  icmp   --icmp-type  echo-reply  -j  ACCEPT


++++++++++++++++++++++++++++++

iptables  -t  filter   -P  INPUT  ACCEPT

iptables  -t  filter   -P  OUTPUT  ACCEPT

iptables  -F


iptables  -t  filter  -A  INPUT  -p  icmp --icmp-type  echo-request   -j  REJECT


iptables  -t  filter   -A  OUTPUT  -d  172.40.55.10  -p tcp --dport  22  -j  DROP


ssh  root@172.40.55.10

++++++++++++++++++++++++++++++++++++++++

[root@svr5 ~]# iptables  -A  INPUT  -s 192.168.4.120  -j  DROP

[root@svr5 ~]# iptables  -A  INPUT   -s  10.0.10.0/24  -j  DROP


[root@svr5 ~]# iptables  -A  FORWARD  -s 192.168.0.0/16  -i eth1  -j  DROP

[root@svr5 ~]# iptables  -A  FORWARD  -s 172.16.0.0/16  -i eth1  -j  DROP




iptables   -t  filter   -P  INPUT   DROP

iptables  -t   filter   -A  INPUT   -s  172.40.55.0/24  -j  ACCEPT

iptables  -t   filter   -I  INPUT   -s  172.40.55.10  -j  DROP


 

[root@svr5 ~]# iptables  -A  FORWARD  -s 192.168.0.0/16  -i eth1  -j  DROP

[root@svr5 ~]# iptables  -A  FORWARD  -s 172.16.0.0/16  -i eth1  -j  DROP



[root@svr5 ~]# iptables  -A  INPUT  -s  192.168.168.0/24  \

  -p  tcp  --dport  22  -j ACCEPT



[root@svr5 ~]# iptables  -A INPUT  -s  220.181.78.0/24  -p  tcp  --dport  22  -j  ACCEPT



[root@svr5 ~]# iptables  -A  INPUT  -p  tcp  --dport  22  -j  DROP


[root@svr5 ~]# iptables -A INPUT  ! -s 192.168.168.0/24 -p  tcp  --dport  20:21  -j  DROP



[root@svr5 ~]# iptables  -A  INPUT  -p icmp  --icmp-type \

   echo-request  -j  DROP

[root@svr5 ~]# iptables  -A  INPUT  -p icmp  !  --icmp-type \

   echo-request  -j  ACCEPT


[root@svr5 ~]# iptables  -A  OUTPUT  -p icmp  --icmp-type \

   echo-request  -j  ACCEPT

[root@svr5 ~]# iptables -A OUTPUT -p icmp ! --icmp-type \

   echo-request  -j  DROP


扩展匹配条件