linux iptables防火墙
一,防火墙过滤技术。
二,nat网络地址转换技术。
1.iptables过滤规则
2.snat源地址转换
3.pat
4.dnat目地地址转
三、OSI七层模型:
A,人与应用程序:
应用层 ————> 七层
表示层 ————> 六层
会话层 ————> 五层
B,源与目的端口:
传输层 ————> 四层
C,源与目的IP:
网络层 ————> 三层
D,源与目的MAC:
数据链路层 ——> 二层
E,通讯介质:
物理层 ————> 一层
四,防火墙分类:
1.网络层防火墙:核心网络层
产品:iptables,f5防火墙,nokia,pix防火墙,asa防火墙,cisco acl软防火墙
2.应用层防火墙:核心应用层
产品:iptables,f5防火墙,pix防火墙,asa防火墙,squid访问控制
3,iptables防火墙功能:
1.网络层防火墙
2.应用层防火墙
4,iptables防火墙组成:
1.表filter表| nat 表| mangle表
2.链input 链| output 链| forward 链 | prerouting链 | postrouting 链
3.规则
4.动作-j DROP|ACCEPT|REJECT|SNAT|DNAT|MARSQUERADE|
5,iptables各表中的链:
1.filter表:
1)input 2)output 3)forward
2.nat表:
1)prerouting 2)postrouting 3)output
3.mangle表:
1)input 2)output 3)forward 4)prerouting 5)postrouting
iptables缺省具有5条规则链
SNAT源地址转换技术 filter过滤 DNAT目的地址转换
在postrouting链上发生过snat技术,在prerouting链路上发生过dnat技术.
五、linux下的iptables防火墙:
iptables服务启动脚本
/etc/rc.d/init.d/iptables
iptables配置文件与策略设置文件
iptables配置文件:/etc/sysconfig/iptables-config
策略设置文件: /etc/sysconfig/iptables
iptables服务的启动与停止
# service iptables start/stop
六、iptables防火墙基本操作:
1,查看防火墙规则(默认查看的是filter表)
#iptables -L -n==
#iptables -t filter -L -n*-n 指显示原协议号。
#iptables -t nat -L*查看nat表中的规则。
2,清空防火墙规则(默认清空的是filter表里面的所有链内的规则)
#iptables -F ==#iptables -t fileter -F
3,保存防火墙操作:
#service iptables save *否则下次重启又还原了。
#iptables-restore*恢复到之前配置。
4,在linux上打开路由功能:
#route -n*查看路由表。
#route add default gw 192.168.200.1*增加默认网关。
#route del default*删除默认路由。
/proc/sys/net/ipv4/ip_forward*路由开关功能配置文件。
#echo 1 >/proc/sys/net/ipv4/ip_forward*原值为0关闭。
5,iptables参数规律:与链有关都是大写,动作是大写,其他的参数都是小写。
1>表:filter 过滤 | nat 地址转换 | mangle 设置网络流量整形等应用(修改数据包的特殊信息)
2>链:
-L 查询| -F 清空| -A 在链最后追加| -I 在链最前插入| -D 删除链某条规则| -P 改变链的最后默认规则。
#iptables -t filter -L INPUT*查询filter表中INPUT进的规则。
#iptables -t filter -F INPUT*清空链INPUT内的规则。
#iptables -t filter -A FORWARD*在链的最后追加规则。
#iptables -t filter -I FORWARD *在链的最前面插入规则。
#iptables -t filter -I FORWARD 3 -s 192.168.1.4 -j DROP*在3号规则下添加一条:来自1.4的所有包丢弃。
#iptables -t filter -D FORWARD 4*删除filter表中的第4条规则。
3>规则:
-n *直接显示协议号。
--line-n*显示规则编号--line-numbers。
-s*源IP地址。
-d*目的IP地址。
-p tcp --dport 80*目的端口为:tcp:80
-p udp*udp协议。
-p icmp --icmp-type 8|0*ping请求(echo-request|8)和ping回应(echo-reply|0)
--icmp-type 8|0== --icmp-type echo-request | echo-reply
4,动作:-j DROP|ACCEPT|REJECT|SNAT|DNAT|MARSQUERADE
DROP *丢弃
ACCEPT*允许
REJECT*拒绝
SNAT*源地址转换
DNAT*目的地址转换
MARSQUERADE *与pat(端口绑定)结合,实现SNAT技术。
5,示例命令:
#iptables -A INPUT -i eth0 -s 192.168.100.0/24 -j ACCEPT *允许eth0接口来自1.0/24所有的数据包。
#iptables -D INPUT -i eth0 -s 192.168.100.0/24 -j ACCEPT *删除INPUT规则表中已有的规则。
#iptables -P INPUT DROP*将INPUT规则链的缺省策略设置为“DROP”
七、实验模拟:
模拟私网和公网环境?
一、需求:不让XP去访问外部的WEB服务器。
内网Xp:192.168.100.2 <---100.1 iptables防火墙 200.1---->外网WEB:200.2
Xp———iptables ———— WEB服务器
1,在Linux下打开Iptables上打开路由功能并设置规则:
#echo 1 > /proc/sys/net/ipv4/ip_forward
#iptables -t filter -A FORWARD -s 192.168.100.2 -d 192.168.200.2 -j DROP*只要是到200.2的包就丢弃
二、需求2:不让xp去访问外部的web服务器的web服务
#iptables -t filter -A FORWARD -s 192.168.100.2 -d 192.168.200.2 -p tcp --dport 80 -j DROP
*仅到200.2的WEB服务(即80)丢弃,其他正常。
三、需求3:iptables可以ping通web服务器,但是web服务器不能ping通iptables防火墙
#iptables -t filter -A INPUT -s 192.168.2.2 -p icmp --icmp-type echo-request -j DROP
四、需求4:实现公司内部员工可以上网,去访问公网web服务器
#iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j SNAT --to 192.168.2.1
五、需求5:实现公司外部的拨号用户可以通过访问公司外口的公网接口去访问公司内部的私有web服务器(服务器发布)
#iptables -t nat -A PREROUTING -d 192.168.1.1 -j DNAT --to 192.168.2.2
六、.利用iptables实现多个用户通过adsl共享上网,并且开机自拨号和配置iptables nat命令:
# vi /etc/rc.d/rc.local
/sbin/adsl-start
echo 1>/proc/sys/net/ipv4/ip_forward
/sbin/iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
七、禁止客户机上不健康的网站:
#iptables -I FORWARD -d www.baidu.com -j DROP
#iptables -t filter -L FORWARD
八、禁止客户机访问ftp:
#iptables -I FORWARD -s 192.168.1.2 -p tcp --dport 21 -j DROP
#iptables -t filter -L FORWARD
九、让客户机强制访问192.168.0.5这台服务器:
#iptables -t nat -I PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.0.5:80
#iptables -t nat -L PREROUTING
(1),只能使用网站的ip地址
(2),不能使用虚拟主机技术
十、禁止外网计算机ping到nat服务器的ppp0接口,但允许内网客户机ping通外网主机:
#iptables -I INPUT -i ppp0 -p icmp -j DROP
#iptables -t filter -L INPUT
(1),内网能ping通外网,是因为它走的是PREROUTING>FORWARD>POSTROUTING这条通道链
十一、发布内网192.168.0.5的web服务,使外网用户通过访问nat 服务器的ppp0的地址即可访问到内网的服务:
#iptables -t nat -I PREROUTING -i ppp0 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.5:80
#iptables -t nat -L PREROUTING
十二、智能DNS服务,如从nat服务器的eth0接口进入的dns请求都发送到192.168.0.5这台服务器进行解析:
#iptables -t nat -I PREROUTING -i eth0 -p udp --dport 53 -j DNAT --to-destination 192.168.0.5:53
#iptables -t nat -I PREROUTING -i eth0 -p tcp --dport 53 -j DNAT --to-destination 192.168.0.5:53
#iptables -t nat -L PREROUTING
十三、设置主机防火墙策略
使用iptables命令设置防火墙策略
# iptables -F*清空filter规则
# iptables -X*删除
# iptables -Z
# iptables -P INPUT DROP*设置默认规则为所有包DROP
# iptables -A INPUT -i lo -j ACCEPT*添加回环网步为允许。
# iptables -A INPUT -i eth0 -p tcp --dport 21 -j ACCEPT *添加eth0允许21端口
# iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT *添加eth0允许80端口
# iptables -A INPUT -i eth0 -p tcp --dport 23 -j ACCEPT *添加eth0允许23端口
# service iptables save*保存设置。(到/etc/sysconfig/iptables)
一,防火墙过滤技术。
二,nat网络地址转换技术。
1.iptables过滤规则
2.snat源地址转换
3.pat
4.dnat目地地址转
三、OSI七层模型:
A,人与应用程序:
应用层 ————> 七层
表示层 ————> 六层
会话层 ————> 五层
B,源与目的端口:
传输层 ————> 四层
C,源与目的IP:
网络层 ————> 三层
D,源与目的MAC:
数据链路层 ——> 二层
E,通讯介质:
物理层 ————> 一层
四,防火墙分类:
1.网络层防火墙:核心网络层
产品:iptables,f5防火墙,nokia,pix防火墙,asa防火墙,cisco acl软防火墙
2.应用层防火墙:核心应用层
产品:iptables,f5防火墙,pix防火墙,asa防火墙,squid访问控制
3,iptables防火墙功能:
1.网络层防火墙
2.应用层防火墙
4,iptables防火墙组成:
1.表filter表| nat 表| mangle表
2.链input 链| output 链| forward 链 | prerouting链 | postrouting 链
3.规则
4.动作-j DROP|ACCEPT|REJECT|SNAT|DNAT|MARSQUERADE|
5,iptables各表中的链:
1.filter表:
1)input 2)output 3)forward
2.nat表:
1)prerouting 2)postrouting 3)output
3.mangle表:
1)input 2)output 3)forward 4)prerouting 5)postrouting
iptables缺省具有5条规则链
SNAT源地址转换技术 filter过滤 DNAT目的地址转换
在postrouting链上发生过snat技术,在prerouting链路上发生过dnat技术.
五、linux下的iptables防火墙:
iptables服务启动脚本
/etc/rc.d/init.d/iptables
iptables配置文件与策略设置文件
iptables配置文件:/etc/sysconfig/iptables-config
策略设置文件: /etc/sysconfig/iptables
iptables服务的启动与停止
# service iptables start/stop
六、iptables防火墙基本操作:
1,查看防火墙规则(默认查看的是filter表)
#iptables -L -n==
#iptables -t filter -L -n*-n 指显示原协议号。
#iptables -t nat -L*查看nat表中的规则。
2,清空防火墙规则(默认清空的是filter表里面的所有链内的规则)
#iptables -F ==#iptables -t fileter -F
3,保存防火墙操作:
#service iptables save *否则下次重启又还原了。
#iptables-restore*恢复到之前配置。
4,在linux上打开路由功能:
#route -n*查看路由表。
#route add default gw 192.168.200.1*增加默认网关。
#route del default*删除默认路由。
/proc/sys/net/ipv4/ip_forward*路由开关功能配置文件。
#echo 1 >/proc/sys/net/ipv4/ip_forward*原值为0关闭。
5,iptables参数规律:与链有关都是大写,动作是大写,其他的参数都是小写。
1>表:filter 过滤 | nat 地址转换 | mangle 设置网络流量整形等应用(修改数据包的特殊信息)
2>链:
-L 查询| -F 清空| -A 在链最后追加| -I 在链最前插入| -D 删除链某条规则| -P 改变链的最后默认规则。
#iptables -t filter -L INPUT*查询filter表中INPUT进的规则。
#iptables -t filter -F INPUT*清空链INPUT内的规则。
#iptables -t filter -A FORWARD*在链的最后追加规则。
#iptables -t filter -I FORWARD *在链的最前面插入规则。
#iptables -t filter -I FORWARD 3 -s 192.168.1.4 -j DROP*在3号规则下添加一条:来自1.4的所有包丢弃。
#iptables -t filter -D FORWARD 4*删除filter表中的第4条规则。
3>规则:
-n *直接显示协议号。
--line-n*显示规则编号--line-numbers。
-s*源IP地址。
-d*目的IP地址。
-p tcp --dport 80*目的端口为:tcp:80
-p udp*udp协议。
-p icmp --icmp-type 8|0*ping请求(echo-request|8)和ping回应(echo-reply|0)
--icmp-type 8|0== --icmp-type echo-request | echo-reply
4,动作:-j DROP|ACCEPT|REJECT|SNAT|DNAT|MARSQUERADE
DROP *丢弃
ACCEPT*允许
REJECT*拒绝
SNAT*源地址转换
DNAT*目的地址转换
MARSQUERADE *与pat(端口绑定)结合,实现SNAT技术。
5,示例命令:
#iptables -A INPUT -i eth0 -s 192.168.100.0/24 -j ACCEPT *允许eth0接口来自1.0/24所有的数据包。
#iptables -D INPUT -i eth0 -s 192.168.100.0/24 -j ACCEPT *删除INPUT规则表中已有的规则。
#iptables -P INPUT DROP*将INPUT规则链的缺省策略设置为“DROP”
七、实验模拟:
模拟私网和公网环境?
一、需求:不让XP去访问外部的WEB服务器。
内网Xp:192.168.100.2 <---100.1 iptables防火墙 200.1---->外网WEB:200.2
Xp———iptables ———— WEB服务器
1,在Linux下打开Iptables上打开路由功能并设置规则:
#echo 1 > /proc/sys/net/ipv4/ip_forward
#iptables -t filter -A FORWARD -s 192.168.100.2 -d 192.168.200.2 -j DROP*只要是到200.2的包就丢弃
二、需求2:不让xp去访问外部的web服务器的web服务
#iptables -t filter -A FORWARD -s 192.168.100.2 -d 192.168.200.2 -p tcp --dport 80 -j DROP
*仅到200.2的WEB服务(即80)丢弃,其他正常。
三、需求3:iptables可以ping通web服务器,但是web服务器不能ping通iptables防火墙
#iptables -t filter -A INPUT -s 192.168.2.2 -p icmp --icmp-type echo-request -j DROP
四、需求4:实现公司内部员工可以上网,去访问公网web服务器
#iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j SNAT --to 192.168.2.1
五、需求5:实现公司外部的拨号用户可以通过访问公司外口的公网接口去访问公司内部的私有web服务器(服务器发布)
#iptables -t nat -A PREROUTING -d 192.168.1.1 -j DNAT --to 192.168.2.2
六、.利用iptables实现多个用户通过adsl共享上网,并且开机自拨号和配置iptables nat命令:
# vi /etc/rc.d/rc.local
/sbin/adsl-start
echo 1>/proc/sys/net/ipv4/ip_forward
/sbin/iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
七、禁止客户机上不健康的网站:
#iptables -I FORWARD -d www.baidu.com -j DROP
#iptables -t filter -L FORWARD
八、禁止客户机访问ftp:
#iptables -I FORWARD -s 192.168.1.2 -p tcp --dport 21 -j DROP
#iptables -t filter -L FORWARD
九、让客户机强制访问192.168.0.5这台服务器:
#iptables -t nat -I PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.0.5:80
#iptables -t nat -L PREROUTING
(1),只能使用网站的ip地址
(2),不能使用虚拟主机技术
十、禁止外网计算机ping到nat服务器的ppp0接口,但允许内网客户机ping通外网主机:
#iptables -I INPUT -i ppp0 -p icmp -j DROP
#iptables -t filter -L INPUT
(1),内网能ping通外网,是因为它走的是PREROUTING>FORWARD>POSTROUTING这条通道链
十一、发布内网192.168.0.5的web服务,使外网用户通过访问nat 服务器的ppp0的地址即可访问到内网的服务:
#iptables -t nat -I PREROUTING -i ppp0 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.5:80
#iptables -t nat -L PREROUTING
十二、智能DNS服务,如从nat服务器的eth0接口进入的dns请求都发送到192.168.0.5这台服务器进行解析:
#iptables -t nat -I PREROUTING -i eth0 -p udp --dport 53 -j DNAT --to-destination 192.168.0.5:53
#iptables -t nat -I PREROUTING -i eth0 -p tcp --dport 53 -j DNAT --to-destination 192.168.0.5:53
#iptables -t nat -L PREROUTING
十三、设置主机防火墙策略
使用iptables命令设置防火墙策略
# iptables -F*清空filter规则
# iptables -X*删除
# iptables -Z
# iptables -P INPUT DROP*设置默认规则为所有包DROP
# iptables -A INPUT -i lo -j ACCEPT*添加回环网步为允许。
# iptables -A INPUT -i eth0 -p tcp --dport 21 -j ACCEPT *添加eth0允许21端口
# iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT *添加eth0允许80端口
# iptables -A INPUT -i eth0 -p tcp --dport 23 -j ACCEPT *添加eth0允许23端口
# service iptables save*保存设置。(到/etc/sysconfig/iptables)