防火墙与linux代理服务器

上传人:Bod****ee 文档编号:47549891 上传时间:2018-07-02 格式:DOC 页数:31 大小:291.03KB
返回 下载 相关 举报
防火墙与linux代理服务器_第1页
第1页 / 共31页
防火墙与linux代理服务器_第2页
第2页 / 共31页
防火墙与linux代理服务器_第3页
第3页 / 共31页
防火墙与linux代理服务器_第4页
第4页 / 共31页
防火墙与linux代理服务器_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《防火墙与linux代理服务器》由会员分享,可在线阅读,更多相关《防火墙与linux代理服务器(31页珍藏版)》请在金锄头文库上搜索。

1、防火墙与防火墙与 LinuxLinux 代理服务器代理服务器Linux 提供了一个非常优秀的防火墙工具netfilter/iptables,它免费、功能强大,可以对流入流出的信息进行灵活控制,并且可以在一台低配置机器上很好地运行。一、一、 netfilter/iptablesnetfilter/iptables 简介简介Linux 在 2.4 以后的内核中包含netfilter/iptables,系统这种内置的 IP 数据包过滤了具使得配置防火墙和数据包过滤变得更加容易,使用户可以完全控制防火墙配置和数据包过滤。netfiher/iptables 允许为防火墙建立可定制的规则来控制数据包过滤,

2、并且还允许配置有状态的防火墙。另外,netfiher/iptables 还可以实现 NAT(网络地址转换)和数据包的分割等功能。netfilter 组件也称为内核空间,是内核的一部分,由一些数据包过滤表组成,这些表包含内核,用来控制数据包过滤处理的规则集。iptables 组件是一种工具,也称为用户空间,它使插入、修改和删除数据包过滤表中的规则变得容易。使用用户空间(iptables)构建自己定制的规则,这些规则存储在内核空间的过滤表中。这些规则中的目标告诉内核,对满足条件的数据包采取相应的措施。根据规则处理数据包的类型,将规则添加到不同的链中。处理入站数据包的规则被添 加到 INPUT 链中

3、。处理出站数据包的规则被添加到 OUTPUT 链中。处理正在转发的数 据包的规则被添加到 FORWARD 链中。这二个链是数据包过滤表(filter)中内置的默认主规则链。每个链都可以有一个策略,即要执行的默认操作,当数据包与链中的所有规则都不 匹配时,将执行此操作(理想的策略应该丢弃该数据包)。 数据包经过 filter 表的过程如图 1 所示。图图 1 1 数据包经过数据包经过 fiherfiher 表的过程表的过程二、二、iptablesiptables 的语法及其使用的语法及其使用通过使用 iptables 命令建立过滤规则,并将这些规则添加到内核空间过滤表内的链中。添加、删除和修改规

4、则的命令语法如下:格式格式:#iptables#iptables -t-t tabletable commandcommand matchmatchtargettarget说明:说明:1 1、tabletable -t table)有三种可用的表选项:filter、nat和 mansle。该选项不是必需的,如未指定,则filter 作为默认表。filter 表用于一般的数据包过滤,包含INPUT、OUTPUT 和 FORWARD 链。nat 表用于要转发的数据包,包含PREROUTING、OUTPUT 和 POSTROUTING 链。manglc 表用于数据包及其头部的更改,包含PREROUT

5、ING 和 OUTPUT 链。2 2commandcommandcommand 是 iptables 命令中最重要的部分,它告诉 itables 命令要进行的操作,如插入规则、删除规则、将规则添加到链尾等。中 tables 常用的一些操作命令见下表。表表 iptablesiptables 常用的操作命令常用的操作命令操作命令操作命令功功 能能-A-A 或或- -appendappend该命令将一条规则附加到链的该命令将一条规则附加到链的末尾末尾-D-D 或或- -deletedelete通过用通过用-D-D 指定要匹配的规则或指定要匹配的规则或者指定规则在链中的位置编号,者指定规则在链中的位置

6、编号,该命令从链中删除该规则该命令从链中删除该规则-P-P 或或- -policypolicy该命令设置链的默认目标,即该命令设置链的默认目标,即策略。所有与链中任何规则都策略。所有与链中任何规则都不匹配的数据包都将被强制使不匹配的数据包都将被强制使用此链的策略用此链的策略-N-N 或或-new-new-chainchain用命令中所指定的名称创建一用命令中所指定的名称创建一个新链个新链-F-F 或或-flush-flush如果指定链名,该命令删除链如果指定链名,该命令删除链中的所有规则,如果未指定链中的所有规则,如果未指定链名,该命令删除所有链中的所名,该命令删除所有链中的所有规则。此参数用

7、于快速清除有规则。此参数用于快速清除-L-L 或或-list-list 列出指定链中的所有规则列出指定链中的所有规则示例:示例:#iptables#iptables -A-A INPUTINPUT -s-s 192.168.0.10192.168.0.10 -j-j ACCEPTACCEPT该命令将一条规则附加到 INPUT 链的末尾,确定来自源地址 192.168.0.10 的数据包可以 ACCEPT。#iptables#iptables -D-D INPUTINPUT -dport-dport 8080 -j-j DROPDROP该命令从 INPUT 链删除规则。#iptables#ipt

8、ables -P-P INPUTINPUT DROPDROP该命令将 INPUT 链的默认目标指定为 DROP。这将丢弃所有与 INPUT 链中任何规则都不匹配的数据包。3 3matchmatchmateh 部分指定数据包与规则匹配所应具有的特征,比如源 IP 地址、目的 IP 地址、协议等。lptables 常用的规则匹配器见下表。表表 iptabesiptabes 常用的规则匹配器常用的规则匹配器参参 数数功功 能能-p-p 或或-protocolprotocol该通用协议匹配用于检查该通用协议匹配用于检查某些特定协议。协议示例某些特定协议。协议示例有有 TCPTCP、UDPUDP、ICM

9、PICMP 及用逗及用逗号分隔的任何这三种协议号分隔的任何这三种协议的组合列表以及的组合列表以及 ALL(ALL(用于用于所有协议所有协议) )。AILLAILL 是默认匹是默认匹配,可以使用配,可以使用! !符号,表示符号,表示不与该项匹配不与该项匹配-s-s 或或-souece-souece该源匹配用于根据数据包该源匹配用于根据数据包的源的源 IPIP 地址来与它们匹配。地址来与它们匹配。该匹配还允许对某一范围该匹配还允许对某一范围内的内的 IPIP 地址进行匹配,可地址进行匹配,可以使用以使用! !符号,表示不与该符号,表示不与该项匹配。默认源匹配与所项匹配。默认源匹配与所有有 IPIP

10、 地址匹配地址匹配-d-d 或或-destinationdestination该目的地匹配用于根据数该目的地匹配用于根据数据包的目的地据包的目的地 IPIP 地址来与地址来与它们匹配。该匹配还允许它们匹配。该匹配还允许对某一范围内对某一范围内 IPIP 地址进行地址进行匹配,可以使用匹配,可以使用! !符号,表符号,表示不与该项匹配示不与该项匹配示例:示例:#iptables-A INPUT -p TCP,UDP#iptables-A INPUT-p!ICMP#iptables-A OUTPUT-s 192168010#iptables-A OUTPUT-s 1 210431100#iptab

11、les-A INPUT-d 19216811#iptables-A OUTPUT-d 1 2104311004 4targettarget目标是由规则指定的操作,lptaLles 常用的一些目标和功能说明见下表。表表 iptablesiptables 常用的目标和功能常用的目标和功能目标目标功能功能ACCEPTACCEPT当数据包与具有当数据包与具有 ACCEPTACCEPT 目标的规目标的规则完全匹配时,会被接受则完全匹配时,会被接受( (允许它允许它前往目的地前往目的地) ),并且它将停止遍历,并且它将停止遍历链链( (虽然该数据包可能遍历另一个虽然该数据包可能遍历另一个表中的其他链,并且

12、有可能在那里表中的其他链,并且有可能在那里被丢弃被丢弃) )。该目标被指定为。该目标被指定为-j-j ACCEPTACCEPTDROPDROP当数据包与具有当数据包与具有 DROPDROP 目标的规则目标的规则完全匹配时,会阻塞该数据包,并完全匹配时,会阻塞该数据包,并且不对它做进一步处理。该目标被且不对它做进一步处理。该目标被指定为指定为-j-j DROPDROPREJECTREJECT该目标的工作方式与该目标的工作方式与 DROPDROP 目标相目标相同,但它比同,但它比 DROPDROP 好。和好。和 DROPDROP 不同,不同,REJECTREJECT 不会在服务器和客户机上留不会在

13、服务器和客户机上留下死套接字。另外,下死套接字。另外,RKJECTRKJECT 将错误将错误消息发回给数据包的发送方。该目消息发回给数据包的发送方。该目标被指标被指 定为定为-j-j REJECTREJECTRETURNRETURN在规则中设置的在规则中设置的 RETURNRETURN 目标让与目标让与该规则匹配的数据包停止遍历包含该规则匹配的数据包停止遍历包含该规则的链。如果链是如该规则的链。如果链是如 INPUTINPUT 之之类的主链,则使用该链的默认策略类的主链,则使用该链的默认策略处理数据包。该目标被指定为处理数据包。该目标被指定为-j-j RETURNRETURN5 5保存规则保存

14、规则用上述方法建立的规则被保存到内核中,这些规则在系统重启时将丢失。如果希望在系统重启后还能使用这些规则,则必须使用 iptables -save 命令将规则保存到某个文件 (iptables -script)中。#iptables#iptables -saveiptables-script-saveiptables-script执行如上命令后,数据包过滤表中的所有规则都被保存到 lptables-script 文件中。当系统重启时,可以执行 lptaLles-restoreiptables-script 命令,将规则从文件 iptables -scrtpt 中恢复到内核空间的数据包过滤表中。

15、三、三、 设置防火墙设置防火墙在终端窗口执行 system-config-securitylevel命令,打开“安全级别设置”窗口,如 图 2 所示。可以启用或停用防火墙。可以添加可信任服务,比如添加 FTP 和 SSH。添加的可信任服务其实是允许数据包从该服务对应的端口进出。另外也可以直接添加可信任的端口,比如添加了 3128(squid 服务)。端窗口执行 iptables -L 命令,如图 3 所示,可以看出刚才添加的过滤规则已经生效。图图 2 2 “ “安全级别设置安全级别设置“ “窗口窗口 图图 3 3 执行执行 iptablesiptables - -L L 命令命令下面是一个 i

16、ptables 的脚本实例,读者要根据自己的环境需求进行相应的调整。#!/bin/bashINET_IF=“ppp0“ #外网接口LAN_IF=“eth0“ #内网接口LAN_IP_RANGE=“192.168.1.0/24“ #内网 IP 地址范围,用于 NATIPT=“/sbin/iptables“ #定义变量MODPROBE=“/sbin/modprobe“$MODPROBE ip_tables #下面 9 行加载相关模块$MODPROBE iptable_nat$MODPROBE ip_nat_ftp$MODPROBE ip_nat_irc$MODPROBE ipt_mark$MODPROBE ip_conntrack$MODPROBE ip_conntrack_ftp$NODPROBK ip_conntrack_irc$NODPROBK ipt_MASOUZRADEfor TABLE in

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 毕业论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号