当前位置: 首页 > 图文教程 > 操作系统 > Unix/Linux > 包过滤防火墙配置实例.

Unix/Linux
linux查看内存的大小
在linux下写的代码,用的是utf-8,结果拿到XP下运行的时候,所有的中文都成乱码
linux su和sudo命令的区别
linux cron 下的定时执行工具使用技巧
linux 查找进程及终止进程操作的相关命令
redhat linux 安装 gcc编译器
Linux Mplayer播放各种格式的电影
一起回顾一下linux常用命令
Linux 网站项目发布要做哪些配置
linux SSH配合SecureCRT的密匙完美使用方法
GD 编译出错解决方法
Facebook Open Platform编译FAQ
Linux 系统硬盘 优化
linux 挂载详解
linux crontab定时命令
Linux 系统中确保访问三级域名畅通的方法
Linux 特权帐号VS普通帐号
确保Linux系统安全的前提条件 漏洞防护
Linux 监视系统资源使用率
Red Hat Linux上使用BIND建立DNS服务器

Unix/Linux 中的 包过滤防火墙配置实例.


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-01   浏览: 34 ::
收藏到网摘: n/a

包过滤防火墙配置实例.
1.网络结构,这个网络假设内部网有有效的internet地址,为了将内部网段192.168.80.0/24与internet隔离,在内部网络和internet之间使用了包过滤防火墙。防火墙的内网接口是eth1(198.168.80.254),防火墙的internet接口是eth0(198.199.37.254).另外,内网中有3台服务器对外提供服务。www服务器:ip地址是:198.168.80.251ftp服务器:ip地址是:198.168.80.252e_mail服务器:ip地址为:198.168.80.2532.防火墙的建立过程: 本例主要是对内部的各种服务器提供保护.下面采用编辑并执行可执行脚本的方法建立此防火墙.具体过程如下: ①:在/etc/rc.d/目录下用touch命令建立空的脚本文件,执行chmod命令添加可执行的权限。 #touch /etc/rc.d/filter-firewall #chmod u+x /etc/rc.d/filter-firewall ②:编辑/etc/rc.d/rc.local文件,在末尾加上/etc/rc.d/filter-firewall以确保开机时能自动执行该脚本. #echo "/etc/rc.d/filter-firewall" >>/etc/rc.d/rc.local ③:使用文本编辑器编辑/etc/rc.d/filter-firewall文件,插入如下内容: #!/bin/bash #在屏幕上显示信息 echo “starting iptables rules....” #开启内核转发功能 echo “1”>/proc/sys/net/ipv4/ip_forward ******************************************** #定义变量 IPT=/sbin/iptables WWW-SERVER=198.168.80.251 FTP-SERVER=198.168.80.252 EMAIL-SERVER=198.168.80.253 IP_RANGE="198.168.80.0/24" ******************************************** #刷新所有的链的规则 $IPT -F ******************************************** 首先禁止转发任何包,然后在一步步设置允许通过的包,所以首先设置防火墙FORWARD链的策略DROP $IPT -P FORWARD DROP ******************************************* 下面设置关于服务器的包过滤规则: 由于服务器/客户机交互是双向的,所以不仅仅要设置数据包出去的规则,也还要设置数据包返回的规则. 1)下面建立针对来自internet数据包的过滤规则: (1)WWW服务: 服务器端口:80采用tcp或utp协议 规则为:eth0=>允许目的为内网WWW服务器的包: $IPT -A FORWARD -p tcp $FTP-erver -dport www -i eth0 -j ACCEPT (2)FTP服务: 服务器端口:命令端为:21.数据端口为:20 FTP采用tcp协议. 规则为:eth0=>允许目的为内部FTP服务器的包. $IPT -A FORWARD -p tcp -d $FTP-SERVER -dport ftp -i eth0 -j ACCEPT (3)EMAIL服务器 : 包含两个协议,一个是smtp ,一个是pop3 处于安全性考虑,通常只提供对内pop3服务. 所以在这里我们只考虑针对smtp的安全性问题. #smtp端口 25 采用tcp协议. 规则为:eth0=>允许目的为内部网E_mail服务器的smtp请求. $IPT -A FORWARD -p tcp -d $EMAIL-SERVER -dport smtp -i eth0 -j ACCEPT2)下面建立针对intranet客户的过滤规则: 本例中防火墙位于网关的位置,所以主要是防止来自internet的攻击不能防止来自intranet的攻击. 假如网络中的,服务器都是基于linux的,也可以在每一部服务器上设置,相关的过滤规则来防止来自intranet的攻击. 对于internet对intranet客户的返回包,定义如下规则: (1)允许intranet客户采用被动模式访问internet的ftp服务器 $IPT -A FORWARD -p tcp -s 0/0 -sport ftp-data -d $IP_RANGE -i eth0 -j ACCEPT (2)接受来自internet的非连接请求的tcp包. $IPT -A FORWARD -p tcp -d 198.168.80.0/24 ! -syn -i eth0 -j ACCEPT (3)接受所有udp包,主要针对oicq等使用udp的服务: $IPT -A FORWARD -p utp -d 198.168.80.0/24 -i eth0 -j ACCEPT3)然后接受来自整个intranet的数据包过滤定义规则如下: $IPT -A FORWARD -s 198.168.80.0/24 -i eth0 -j ACCEPT*********************************************************************************处理ip碎片:接受所有的ip碎片,但采用limit匹配扩展对其单位时间可以通过的ip碎片数量进行限制,以防止ip碎片攻击.$IPT -A FORWARD -f -m limit --limit 100/s --limit -burst 100 -j ACCEPT说明:对不管来自哪里的ip碎片都进行限制,允许每秒通过100个ip碎片,该限制触发的条件是100个ip碎片.**************************************************设置icmp包过滤:icmp包通常用于网络测试等,故允许所有的icmp包通过,但是黑客常常采用icmp进行攻击,如:ping of death等所以我们采用limit匹配扩展加以限制:$IPT -A FORWARD -p icmp -m limit --limit 1/s --limit -burst 100 -j ACCEPT说明:对不管来自哪里的icmp包都进行限制,允许每秒通过一个包给限制触发的条件是10个包.************************************************4)执行脚本,使之立刻生效.#/etc/rc.d/filter-firewall通过执行上面脚本,建立了一个相对完整的防火墙,该防火墙只对外开放了有限的几个端口,同时提供了客户对internet无缝访问,并且对ip碎片攻击和icmp的ping of death提供了有效的防护手段.