Linux下Iptables配置.docx_第1页
Linux下Iptables配置.docx_第2页
Linux下Iptables配置.docx_第3页
Linux下Iptables配置.docx_第4页
Linux下Iptables配置.docx_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Linux包过滤防火墙1,什么是包过滤防火墙2,包过滤的工作层 工作在网络层3,工作原理数据包过滤通过对数据包的IP头和TCP或UDP头的检查来实现的主要有:IP源地址IP目标地址协议(tcp包,udp包,和icmp包)tcp或udp的源端口imcp消息类型tcp包头中的ack位数据包到达的端口数据包出去的端口包过滤技术的优缺点使用iptables实现包过滤相关的TCP/IP支持假如A要和B通信1,(SYN) B要和A通信时,B首先向A发一个SYN标记的包,告诉 A请求建立连接2,(SYN/ACK) A收到后回发送一对SYN包的确认包(SYN/ACK)回去,表示对第一个SYN包的确认,并继续握手操作3,(ACK) B收到SYN/ACK包后,B发一个确认包ACK,通知 A连接已建立。三次握手完成,一个TCP连接完成TCP连接的每个包都会设置ACK位,这就是连接跟踪的重要意义,放火墙将无法判断收到的ACK属于一个已经建立的连接结束TCP连接iptables语法一条iptables规则基本上因该包含5个要素指定表 table 分别是 filter,nat和mangle指定操作命令 command 包括添加,删除,更新指定链 chains 对于包过滤防火墙可操作filter表中的INPUT链,OUTPUT链和 FORWARD链指定规则匹配器 mather 可以指定各种规则匹配,如IP地址,端口,包类型指定目标动作 target 当规则匹配一个包时,真正要执行的任务用目标标识。最常目标 为ACCEPT,DROP,REJECT表示拒绝,丢弃包的同时给发送没有接 受的通知,LOG表示包的有关信息被记录日志,TOS表示改写包的TOS值语法:iptables -t table CMD chain rule-matcher -j targettable为表名,CMD为操作命令,chain为链名,rule-matcher为规则匹配器,target为目标动作iptables的常用操作命令-A 或 -append 在所有的链的结尾加入一条或多条规则-D 或 -delete 在所有的链删除-R 或 -replace 替换一条匹配的规则-I 或 -insert 以给出的规则号在所选链中插入一条或多条规则。如果规则号是,插入的规则的链的头部-L 或 -list 列出指定链的所有规则,如果没有指定链,将列出所有链中的所有规则-F 或 -flush 清除指定链和表中的所有规则,假如不指定,将全部删除-N 或 -new-chain以给定的名字创建一条新的用户自定义链。不能与已有的链同名-X 或 -delete-chain删除指定的用户定义链-P 或 -policy(n政策,方针) 为永久链指定默认规则。用户定义链没有默认规则。缺剩 规则也是规则链中的最后一条规则用-L命令显示时它在第一 行显示-C 或 -check 检测给定的包是否与指定链的规则相匹配-X 或 -zero 将指定链中所有规则的包字节(byte)计数器清零-h 显示帮助信息iptables常用的规则匹配器-p,!protocol 指出要匹配的协议,可以是tcp,udp,icmp,all.协议名前缀!, 为逻辑非-s!address/mask 根据源地址或地址范围确定是否允许或拒绝数据包通过过滤器-sport!port:port 指定匹配规则的源端口或端口范围。可以用端口号-d!address/mask 根据目的地址或地址范围确定是否允许或拒绝数据包通过过滤器-dport!port:port 指定匹配规则的目的端口或端口范围,可以用端口号,也可以 用/etc/services文件中的名字-icmp-type!typename 指定匹配规则的ICMP信息类(可以使用iptables -p icmp -h 查看有效的icmp类型名)-i!interface name+ 匹配单独的接口或某种类型的接口设置过滤规则。此参数忽略 时,默认符合所有接口。接口可以使用否定符!来匹配不是指 定接口来包.参数interfacename是接口名,如eth0,eth1,ppp0 等。指定一个目前不存在的接口是完全合法的。规则直到接口时 才起作用,这种指定对于PPP及该选项只有对INPUT,FROWARD和 PREROUTING链是合法的-o!interface name+ 仅仅匹配设置了SYN位,清除了ACK,FIN位的TCP包.这些包表示请求初始化的TCP连接。阻止从接口来的这样的包将会组织外来的TCP连接请求。但输出的TCP连接请求将不受影响。这个参数仅仅当协议类型设置为TCP时才能用-m-match -m选项引出了iptables的state扩展模块,比如mac扩展模块,它实现根据主机网卡的MAC地址进行权限控制的规则:iptables -A INPUT -p tcp -m mac -mac-source 01:02:03:04:05:06 -j ACCEPT扩展模块是iptables体系中的特色,它使得iptables成为一个可扩展的安全体系结构。你可以从这里了解更多关于iptables扩展模块的知识:/document . tensions-HOWTO.html!-syn 仅仅匹配设置了SYN位,清除-state state,state.状态匹配 这里,state是一个用逗号分割的列表,表示要匹配的连接状态。有效的状态选项包括:INVAILD,表示分组对应的连接是未知的;ESTABLISHED,表示分组对应的连接已经进行了双向的分组传输,也就是说连接已经建立;NEW,表示这个分组需要发起一个连接,或者说,分组对应的连接在两个方向上都没有进行过分组传输;RELATED,表示分组要发起一个新的连接,但是这个连接和一个现有的连接有关,例如:FTP的数据传输连接和控制连接之间就是RELATED关系。对于本地产生分组,在PREROUTING或者OUTPUT链中都可以对连接的状态进行跟踪。在进行状态检测之前,需要重组分组的分片。这就是为什么在iptables中不再使用ipchains的ip_always_defrag开关。UDP和TCP连接的状态表由/proc/net/ip_conntrack进行维护。稍后我们再介绍它的内容。状态表能够保存的最大连接数保存在/proc/sys/net/ipv4/ip_conntrack_max中。它取决于硬件的物理内存。分组是否匹配状态表中的一个已经实现(ESTABLISHED)的连接。 它是否是和状态表中某个UDP/TCP连接相关(RELATED)的一个ICMP分组。 这个分组是否要发起一个新(NEW)的连接。 如果分组和任何连接无关,就被认为是无效(INVALID)的。 iptables -A INPUT -i eth0 -m state -state NEW -j DROP /禁止从eth0进来的NEW状态,也就是禁止来自eth0的新的访问请求指定永久性规则/sbin/iptables-save /usr/local/iptables_bat 导出/sbin/iptables-restore /etc/sysconfig/iptalbes 保存2,设置基本的规则匹配指定协议匹配iptables -A INPUT -p tcp/ 匹配指定的协议iptables -A INPUT -p !tcp / 匹配指定协议之外的所有协议 指定地址匹配iptables -A INPUT -s 1 / 指定匹配的主机iptables -A INPUT -s /24iptables -A FORWARD -s ! iptables -A FORWARD -s ! /24 /指定网络之外的网络 指定网络接口匹配指定单一的网络接口匹配iptables -A INPUT -i eth0iptables -A FORWARD -o eth0指定同类型的网络接口匹配iptables -A FORWARD -o ppp+指定单一的端口匹配iptables -A INPUT -p tcp -sport wwwiptables -A INPUT -p tcp -sport 80iptables -A INPUT -p udp -sport 53iptables -A INPUT -p udp -dport 53匹配指定端口之外的端口iptables -A INPUT -p tcp -dport ! 22匹配指定的端口范围iptables -A INPUT -p tcp -sport 22:80 匹配ICMP端口和ICMP类型iptables -A INPUT -p icmp -icmp-type 8指定ip碎片在TCP/IP通信过程中,每一个网络接口都有严格最大传输单元(MTU),这个参数定义可以通过的数据包的最大尺寸。如果一个数据包大于这个参数值时,系统会将其划分成更小的数的数个数据包(成为IP岁片).设置扩展的规则匹配包过滤防火墙配置举例包过滤防火墙配置举例touch /etc/rc.d/filter-firewallchmod u+x /etc/rc.d/filter-firewallecho /etc/rc.d/filter-firewall /etc/rc.d/rc.localvi /etc/rc.d/filter-firewall#!/bin/shecho String iptables rules.echo 1 /proc/sys/net/ipv4/ip_forwardipt=/sbin/iptableswww-server=00ftp-server=00email-server=10ip_range=/24#刷新所有的链的规则iptables -F首先禁止转发任何包,然后再一步步设置允许通过的包所有首先设置防火墙FORWARD链的策略为DROPiptables -P FORWARD DROP下面设置关于服务器的包过滤规则由于服务器/客户机交互是双向的,所有不仅仅要设置数据包 NAT与代理服务器echo 1 /proc/sys/net/ipv4/ip_forwareNAT表也有三个缺省的链prerouting: 可以在这里面定义进行目的nat的规则,因为路由器进行路由时检查数据包的目的ip地址,所以为了使数据包得以正确路由,我们必须在路由之前就进行目的natpostrouteing 可以在这里定义进行源nat的规则,系统在决定了数据包的路由以后在执行该链中的规则。output: 定义对本地产生的数据包的目的的nat规则 Netfilter的Nat表prerouting 和 postrouting表SNAT原地址转换 destination: source DNAT目标地址转换iptables -t nat -A POSTROUTING -s /24 -j SNAT -to-source 54把源的/24翻译成一个54的一个服务器地址内网翻译成外网地址 net nat FORWARD PREROUTING -+-#-+- POSTROUTING |(routing) | INPUT OUTPUT两个特殊的转发点源地址转换(SNAT) 在POSTROUTING点不能发生在PREROUTING和目标地址转换(DNAT)只能在PREROUTINGiptables -t nat -A POSTROUTING -s /24 -j SNAT -to-source 00把源地址翻译成外网地址如果需要伪装或不知道要影射成什么地址,可以伪装,他支持动态地址初始化工作iptables -Fiptables -Xiptables -t nat -F iptables -t nat -X添加规则iptables -A INPUT -i ! ppp0 -j ACCEPT /棘手接受所有的,来源不是网络接口ppp0的数据nat配置iptables -t nat -A POSTROUTING -s /24 -j SNAT -to 00/伪装局域网机器的ip地址进入互联网/把目的ip 00端口为21影射到内网的机器上iptables -t nat -A PREROUTING -d 00 -p tcp -dport 80 -j DNAT -to :80iptables -t nat -A POSTROUTING -p tcp -s -sport 80 -j SNAT -to-source 00:80iptables -t nat -A PREROUTING -d 00 -p tcp -dport 80 -j DNAT -to :80/把目的 00端口为80(web服务)影射到内网上iptables -t nat -A POSTROUTING -p tcp -dst 00 -dport 80 -j SNAT -to-source iptables -t nat -A PREROUTING -dst -p tcp -dport 80 -j DNAT -to-destination 00配置举例iptables -t nat -A PREROUTING -dst 00 -p tcp -dport 80 -j DNAT -to-destination iptables -t nat -A PREROUTING -dst 00 -p tcp -dport 21 -j DNAT -to-destination iptables -t nat -A PREROUTING -dst 00 -p tcp -dport 3306 -j DNAT -to-destination iptables -t nat -A POSTROUTING -p tcp -dst -dport 80 -j SNAT -to-source 68iptables -t nat -A POSTROUTING -p tcp -dst -dport 21 -j SNAT -to-source 68iptables -t nat -A POSTROUTING -p tcp -dst -dport 3306 -j SNAT -to-source 68iptables -t nat -A POSTROUTING -p tcp -dst -dport 22 -j SNAT -to-source 68iptables -t nat -A PREROUTING -dst 01 -p tcp -dport 22 -j DNAT -to-destination iptables -t nat -A PREROUTING -dst 00 -p tcp -dport 80 -j DNAT -to-destination :80 iptables -t nat -A POSTROUTING -p tcp -dst 00 -dport 80 -j SNAT -to-source iptables -t nat -A POSTROUTING -s /24 -j MASAQUERADEiptables -t nat -A PREROUTING -i eth0 -d 00 -p tcp -dport 80 -j DNAT -to-destination :80iptables -t nat -A POSTROUTING -s 02/32 -j SNAT -to-source iptables 配置例子带vpn#添加模块modporbe ipt_MASQUERADEmodporbe ip_conntrack_ftpmodporbe ip_nat_ftp#iptables -Fiptables -t nat -Fiptables -Xiptables -t nat -X#iptables -p INPUT DROPiptables -A INPUT -m state -state ESTABLISHED,RELATED -j ACCEPTiptables -A INPUT -p tcp -m multiport -dport 110,80,25 -j ACCEPTiptables -A INPUT -p tcp -s /24 -dport 139 -j ACCEPT#允许内网samba,smtp,pop3连接iptables -A INPUT -i eth1 -p udp -m multiport

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论