当前位置:首页 >> 其它课程 >>

LAMP兄弟连李明老师讲Linux_iptables防火墙_图文

Linux 防火墙

姓名:李强强 QQ:447096447 微博:LAMP兄弟连_强强 邮箱:liqiangqiang@lampbrother.net

上节回顾
1.什么是lamp架构 2. apache虚拟主机的实现 3. apache站点登录控制 4. apache个人主页的实现 5.基于ssl的安全加密https实现

本章目标
1.网络层和传输层的概念 2.Iptables的概念和使用方法 3.Iptables的表、链和规则的概念 4.Iptables实例详解

网络层防火墙的应用原理
网络防火墙工作在TCP/IP的网络层
客户程序 应用层 传输层 网络层 链路层 外部网络 上层程序 应用代理 传输层 网络层 链路层 网络层防火墙 服务程序 应用层 传输层 网络层 链路层 受保护网络

iptables规则链
iptables缺省具有5条规则链
PREROUTING FORWARD POSTROUTING

INPUT

OUTPUT

上层应用程序(接收或发送网络数据)

iptables的三个表
iptables缺省具有3个规则表 Filter:用于设置包过滤 NAT:用于设置地址转换 Mangle:用于设置网络流量整形等应用 不同的规则表由不同的规则链组成 Filter:INPUT、FORWARD、OUTPUT NAT:PREROUTING、POSTROUTING、 OUTPUT Mangle:PREROUTING、POSTROUTING、 INPUT、OUTPUT和FORWARD

iptables的软件包组成
RHEL4中的iptables软件包
# rpm -q iptables iptables-1.2.11-3.1.RHEL4

iptables软件包中的管理命令
iptables是主要的管理命令,对网络防火墙功能的 管理都是通过iptables命令实现的 iptables-save命令可以将当前系统中的防火墙设置 进行保存 iptables-restore命令可以将使用iptables-save命令 保存的防火墙策略配置恢复到当前系统中

iptables服务的启动与停止
iptables服务启动脚本
/etc/rc.d/init.d/iptables

iptables配置文件与策略设置文件
iptables配置文件
/etc/sysconfig/iptables-config

策略设置文件
/etc/sysconfig/iptables

iptables服务的启动与停止
# service iptables start/stop

查看iptables防火墙
# iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination

使用iptables脚本保存防火墙设置
iptables脚本可以保存当前防火墙配置
? 在保存防火墙当前配置前应先将原有配置进行

备份
# cp /etc/sysconfig/iptables iptables.raw

? iptables脚本的save命令可以保存防火墙配置 # service iptables save ? 配置内容将保存在

“/etc/sysconfig/iptables”文件中, 文件原有的内容将被覆盖

iptables命令的使用
iptables命令的操作对象包括
? 规则表(table)由规则链的集合组成,不同的

规则表用于实现不同类型的功能 ? 规则链(chain)由规则的集合组成,保存在规 则表中;在规则表中不同的规则链代表了不同 的数据包流向 ? 规则(rule)是最基本的设置项,用于对防火 墙的策略进行设置;流经某个数据链的数据将 按照先后顺序经过规则的“过滤”

iptables命令的使用1
iptables命令可查看规则表的内容
基本语法 iptables [-t table] -[L] [chain] [options] 不指定表名称时查看filter表的内容 # iptables -L 查看指定的规则表 # iptables -t nat -L

iptables命令的使用2
清空表中的规则
命令格式: iptables [-t table] -F [chain] [options] –X [chain] 清空filter表中的所有规则 # iptables -F
清空nat表中的所有规则 # iptables -t nat –F 删除表中所有的自定义规则链 #iptables [-t table] -X

iptables命令的使用3
添加规则
命令格式 iptables [-t table] -A chain rulespecification [options]
在INPUT规则链中添加规则,允许“eth0”网络接 口中来自“192.168.1.0/24”子网的所有数据包 # iptables -A INPUT -i eth0 -s 192.168.1.0/24 -j ACCEPT

iptables命令的使用4
删除规则
命令格式 iptables [-t table] -D chain rulespecification [options] 删除规则的iptables命令与添加规则的命令格式类 似 删除INPUT规则表中已有的规则 # iptables -D INPUT -i eth0 -s 192.168.1.0/24 -j ACCEPT

iptables命令的使用5
设置内置规则链的缺省策略
命令格式 iptables [-t table] -P chain target [options] 只有内建规则链才能够设置“缺省策略” 将INPUT规则链的缺省策略设置为“DROP” # iptables -P INPUT DROP

iptables 应用实例1
1.利用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 应用实例2
2,禁止客户机上不健康的网站:
#iptables -I FORWARD -d www.baidu.com -j DROP #iptables -t filter -L FORWARD

iptables 应用实例3
3,禁止客户机访问ftp:
#iptables -I FORWARD -s 192.168.1.2 -p tcp --dport 21 -j DROP #iptables -t filter -L FORWARD

iptables 应用实例4
4,让客户机强制访问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),不能使用虚拟主机技术

iptables 应用实例5
5,禁止外网计算机ping到nat服务器的ppp0接 口,但允许内网客户机ping通外网主机:
#iptables -I INPUT -i ppp0 -p icmp -j DROP #iptables -t filter -L INPUT (1),内网能ping通外网,是因为它走的是 PREROUTING>FORWARD>POSTROUTING这条 通道链

iptables 应用实例6
6,发布内网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

iptables 应用实例7
7,智能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命令设置防火墙策略
# iptables -F # iptables -X # iptables -Z # iptables -P INPUT DROP # iptables -A INPUT -i lo -j ACCEPT # iptables -A INPUT -i eth0 -p tcp --dport 21 -j ACCEPT # iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT # iptables -A INPUT -i eth0 -p tcp --dport 23 -j ACCEPT # service iptables save

本章总结
1.对表、链和规则的熟练掌握 2.Iptables参数的使用 3.Iptables规则的书写 4.设置防火墙的方法 5.防火墙规则的执行顺序

课后练习
1.准备环境:s->server c->client 2.s可以ping通c,但c不能ping通s 3.c不能访问s的http,但可以访问s的ssh

谢谢大家!

姓名:李强强 QQ:447096447 微博:LAMP兄弟连_强强 邮箱:liqiangqiang@lampbrother.net


更多相关标签: