[RHEL5企业级Linux服务攻略]--第8季 Iptables服务全攻略之实战配置

合集下载

Iptables 配置指南

Iptables 配置指南

Iptables 配置指南(1)2011-03-15 09:46 Jephe Wu 网络转载我要评论(0)字号:T | Tiptables 是与最新的2.6.x 版本Linux 内核集成的IP 信息包过滤系统。

光知道iptables的概念是不行的,我们得知道如何去配置Iptables,从而进一步使用和了解他,本文为大家描述下Iptables 配置过程!iptables是IP信息包过滤系统,我们有必要知道iptables的配置过程!一、数据包经过防火墙的路径图1比较完整地展示了一个数据包是如何经过防火墙的,考虑到节省空间,该图实际上包了三种情况:来自外部,以防火墙(本机)为目的地的包,在图1中自上至下走左边一条路径。

由防火墙(本机)产生的包,在图1中从“本地进程”开始,自上至下走左边一条路径来自外部,目的地是其它主机的包,在图1中自上至下走右边一条路径。

图1如果我们从上图中略去比较少用的mangle表的图示,就有图2所显示的更为清晰的路径图.图2二、禁止端口的实例禁止ssh端口只允许在192.168.62.1上使用ssh远程登录,从其它计算机上禁止使用ssh #iptables -A INPUT -s 192.168.62.1 -p tcp --dport 22 -j ACCEPT#iptables -A INPUT -p tcp --dport 22 -j DROP禁止代理端口#iptables -A INPUT -p tcp --dport 3128 -j REJECT禁止icmp端口除192.168.62.1外,禁止其它人ping我的主机#iptables -A INPUT -i eth0 -s 192.168.62.1/32 -p icmp -m icmp--icmp-type echo-request -j ACCEPT#iptables -A INPUT -i eth0 -p icmp --icmp-type echo-request –j ?DROP 或#iptables -A INPUT -i eth0 -s 192.168.62.1/32 -p icmp -m icmp--icmp-type 8 -j ACCEPT#iptables -A INPUT -i eth0 -p icmp -m icmp --icmp-type 8 -j DROP 注:可以用iptables --protocol icmp --help查看ICMP类型还有没有其它办法实现?禁止QQ端口#iptables -D FORWARD -p udp --dport 8000 -j REJECT三、强制访问指定的站点图3要使192.168.52.0/24网络内的计算机(这此计算机的网关应设为192.168.52.10)强制访问指定的站点,在做为防火墙的计算机(192.168.52.10)上应添加以下规则:1. 打开ip包转发功能echo 1 > /proc/sys/net/ipv4/ip_forward2. 在NAT/防火墙计算机上的NAT表中添加目的地址转换规则:iptables -t nat -I PREROUTING -i eth0 -p tcp --dport 80 -j DNAT--to-destination 202.96.134.130:80iptables -t nat -I PREROUTING -i eth0 -p udp --dport 80 -j DNAT--to-destination 202.96.134.130:803. 在NAT/防火墙计算机上的NAT表中添加源地址转换规则:iptables -t nat -I POSTROUTING -o eth1 -p tcp --dport 80 -s192.168.52.0/24 -j SNAT --to-source 202.96.134.10:20000-30000 iptables -t nat -I POSTROUTING -o eth1 -p udp --dport 80 -s192.168.52.0/24 -j SNAT --to-source 202.96.134.10:20000-30000 4. 测试:在内部网的任一台计算机上打开浏览器,输入任一非本网络的IP,都将指向IP为202.96.134.130的网站.四、发布内部网络服务器图4要使因特网上的计算机访问到内部网的FTP服务器、WEB服务器,在做为防火墙的计算机上应添加以下规则:1. echo 1 > /proc/sys/net/ipv4/ip_forward2. 发布内部网web服务器iptables -t nat -I PREROUTING -p tcp -i eth1 -s 202.96.134.0/24--dport 80 -j DNAT --to-destination 192.168.52.15:80iptables -t nat -I POSTROUTING -p tcp -i eth0 -s 192.168.52.15 --sport 80 -j SNAT --to-source 202.96.134.10:20000-300003. 发布内部网ftp服务器iptables -t nat -I PREROUTING -p tcp -i eth1 -s 202.96.134.0/24--dport 21 -j DNAT --to-destination 192.168.52.14:21iptables -t nat -I POSTROUTING -p tcp -i eth0 -s 192.168.52.14 --sport 21 -j SNAT --to-source 202.96.134.10:40000-500004. 注意:内部网的计算机网关要设置为防火墙的ip(192.168.52.1)5. 测试: 用一台IP地址为202.96.134.0段的计算机虚拟因特网访问,当在其浏览器中访问http://202.96.134.10时,实际应看到的是192.168.52.15的的web服务;当访问ftp://202.96.134.10时,实际应看到的是192.168.52.14上的的ftp 服务五、智能DNS图51. echo 1 > /proc/sys/net/ipv4/ip_forward2. 在NAT服务器上添加以下规则:在PREROUTING链中添加目的地址转换规则:iptables -t nat -I PREROUTING -i eth0 -p tcp --dpor 53 -j DNAT --to-destination 202.96.134.130iptables -t nat -I PREROUTING -i eth0 -p udp --dpor 53 -j DNAT --to-destination 202.96.134.130在POSTROUTING链中添加源地址转换规则:iptables -t nat -I POSTROUTING -o eth1 -s 192.168.52.0/24 -p tcp --dpor 53 -j SNAT --to-source 202.96.134.10:40000-50000iptables -t nat -I POSTROUTING -o eth1 -s 192.168.52.0/24 -p udp --dpor 53 -j SNAT --to-source 202.96.134.10:40000-500003. 测试在内部网任一台计算机上,将DNS设置为任意的外网IP,就可以使用DNS测试工具如nslookup来解析DNS服务器202.96.134.130上的名称.六、端口映射见上节透明代理设置#iptables -t nat -A PREROUTING -i eth0 -p tcp -s 192.168.62.0/24 --dport 80 -j REDIRECT --to-ports 3128七、通过NAT上网典型NAT上网一般做为NAT的计算机同时也是局域网的网关,假定该机有两块网卡eth0、eth1,eth0连接外网,IP为202.96.134.134;eth1连接局域网,IP为192.168.62.101. 先在内核里打开ip转发功能#echo 1 > /proc/sys/net/ipv4/ip_forward2.?使局域网用户能访问internet所要做的nat#iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT--to?202.96.134.134如果上网的IP是动态IP,则使用以下规则:#iptables -t nat -A POSTROUTING -o eth0 -s 192.168.62.0/24 -j MASQUERADE如果是通过ADSL上网,且公网IP是动态IP,则使用以下规则:#iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.62.0/24 -j MASQUERADE3. 使internet用户可以访问局域网内web主机所要做的nat#iptables -t nat -A PREROUTING -p tcp -d 202.96.134.134 --dport 80 -j DNAT --to-destination 192.168.62.10注:局域网内的客户端需将默认网关、DNS设为防火墙的IP在我们的网络机房实现NAT共享上网工作环境:上层代理192.168.60.6(4480),只授予教师机(192.168.62.111)使用该代理的权限目标:不使用squid代理上网,而是使用NAT的方式上网方法:1) 确保停止教师机(192.168.62.111)的squid或其它代理服务2) 客户端网关、DNS均指向192.168.62.111,浏览器代理设置为192.168.60.6(4480)。

Red Hat Enterprise Linux 8 配置和管理网络说明书

Red Hat Enterprise Linux 8 配置和管理网络说明书

Red Hat Enterprise Linux 8配置和管理网络管理网络接口、防火墙和高级网络功能Last Updated: 2023-08-04Red Hat Enterprise Linux 8 配置和管理网络管理网络接口、防火墙和高级网络功能法律通告Copyright © 2023 Red Hat, Inc.The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.Linux ® is the registered trademark of Linus Torvalds in the United States and other countries. Java ® is a registered trademark of Oracle and/or its affiliates.XFS ® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.MySQL ® is a registered trademark of MySQL AB in the United States, the European Union and other countries.Node.js ® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.The OpenStack ® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.All other trademarks are the property of their respective owners.摘要利用 Red Hat Enterprise Linux (RHEL)的网络功能,您可以配置主机以满足您组织的网络和安全要求。

Linux命令高级技巧使用iptables和ipset进行高级网络防火墙配置

Linux命令高级技巧使用iptables和ipset进行高级网络防火墙配置

Linux命令高级技巧使用iptables和ipset进行高级网络防火墙配置在网络安全领域,配置高级网络防火墙是至关重要的。

Linux操作系统提供了一些强大的工具来实现这一目的,其中最常用的是iptables和ipset。

本文将介绍如何使用这两个工具来进行高级网络防火墙配置。

一、iptables简介iptables是一个功能强大的Linux防火墙工具,它允许管理员配置、管理和维护网络安全规则集。

iptables使用内核的netfilter框架来实现数据包过滤和转发。

它可以根据网络协议、源IP地址、目标IP地址、端口号等多个条件来过滤和控制数据包的流动。

下面是一些常用的iptables命令及其功能:1. iptables -A chain -p protocol --source address --destination address --dport port -j action:添加规则到指定链,根据指定条件决定数据包的操作(动作)。

2. iptables -D chain rule-number:从指定链中删除指定规则。

3. iptables -L:列出当前的防火墙规则集。

4. iptables -F chain:清空指定链中的所有规则。

5. iptables -P chain target:设置指定链的默认策略。

二、ipset简介ipset是一个用于管理大规模IP地址和端口的工具,它可以与iptables一起使用,提高防火墙规则的效率和性能。

ipset通过将IP地址和端口号存储在内存中的数据结构中,可以更快地匹配和过滤数据包。

ipset的一些常用命令如下:1. ipset create setname type:创建一个新的ipset。

2. ipset add setname entry:将条目添加到指定的ipset中。

3. ipset del setname entry:从指定的ipset中删除条目。

linux课程资源iptables配置(1)

linux课程资源iptables配置(1)

1.filter表


filter表主要用于过滤数据包(对数据包是进行ACCEPT、 DROP、REJECT、LOG或RETUN等操作),IPTables 中 几乎所有的过滤都在这里完成。filter表也是默认操作的表, 在一般的应用中大部分情况都是使用该表。 filter表包含以下3条链: INPUT 链:过滤所有目标地址是本机的数据包 FORWARD 链:过滤所有路过本机的数据包。也就是 目的地址和源地址都不是本机的数据包 OUTPUT 链:过滤所有由本机产生的数据包。也就是 源地址是本机的数据包
Network Optimization Expert Team
3.mangle表

mangle表主要用于修改数据包。通过mangle可以根据需要改变 包头中的内容,比如TTL、TOS、MARK)。mangle表主要有以 下几种操作: TOS 操作:主要用于设置或改变数据包的服务类型域。常用在 设置网络上的数据包如何被路由等策略。这个操作并不完善, 有时并不能达到预期的效果,它在Internet上还不能使用,而 且很多路由器不会注意到这个域值。换句话说,不要使用TOS 设置发往Internet的包,除非打算依靠 TOS来路由。不能在这 个表配置任何过滤、SNAT(源地址转换)、DNAT(目录地 址转换) TTL 操作:主要用于改变数据包的生存时间域。可以让所有数 据包只有一个特殊的TTL,这样可以欺骗一些ISP(欺骗ISP主 要目的在于有些ISP并不希望多台计算机共享一个连接访问 Internet,而这些ISP会通过检查一台计算机所发出的数据包 是否包括不同的TTL来判断) MARK 操作:主要用于给数据包设置特殊的标记,通过这些标 记可以配置带宽限制和基于请求的分类
Network Optimization Expert Team

Red Hat Enterprise Linux 8 部署不同类型的服务器设置和配置说明书

Red Hat Enterprise Linux 8 部署不同类型的服务器设置和配置说明书

Red Hat Enterprise Linux 8部署不同类型的服务器设置和配置 Web 服务器及反向代理、网络文件服务、数据库服务器、邮件传输代理和打印机Last Updated: 2023-12-21Red Hat Enterprise Linux 8 部署不同类型的服务器设置和配置 Web 服务器及反向代理、网络文件服务、数据库服务器、邮件传输代理和打印机法律通告Copyright © 2023 Red Hat, Inc.The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.Linux ® is the registered trademark of Linus Torvalds in the United States and other countries. Java ® is a registered trademark of Oracle and/or its affiliates.XFS ® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.MySQL ® is a registered trademark of MySQL AB in the United States, the European Union and other countries.Node.js ® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.The OpenStack ® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.All other trademarks are the property of their respective owners.摘要在 Red Hat Enterprise Linux 8 中配置并运行 Apache HTTP web 服务器或 NGINX web 服务器。

Linux的防火墙iptables配置示例

Linux的防火墙iptables配置示例

Linux的防⽕墙iptables配置⽰例注:内容来⾃⽹络⼀、关闭防⽕墙1、重启后永久性⽣效:开启:chkconfig iptables on关闭:chkconfig iptables off2、即时⽣效,重启后失效:开启:service iptables start关闭:service iptables stop在开启了防⽕墙时,做如下设置,开启相关端⼝,修改 /etc/sysconfig/iptables ⽂件,添加以下内容:-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT #允许80端⼝通过防⽕墙-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT #允许3306端⼝通过防⽕墙备注:很多⽹友把这两条规则添加到防⽕墙配置的最后⼀⾏,导致防⽕墙启动失败,正确的应该是添加到默认的22端⼝这条规则的下⾯⼆、关闭SELinuxvim /etc/selinux/config # 改为 SELINUX=disabled# 保存退出,重启服务器--------------------------------------------------------------------------------------------------------------------------------------------------以root权限运⾏下⾯的命令:# iptables -L -n -v参数说明:-L:列出规则。

-v:显⽰详细信息。

此选项会显⽰接⼝名称、规则选项和TOS掩码,以及封包和字节计数。

-n:以数字形式显⽰IP地址和端⼝,不使⽤DNS解析。

如果希望输出的结果中显⽰⾏号,可以运⾏:# iptables -L -n -v --line-nmubers这样,就可以按照⾏号在防⽕墙中添加、删除规则。

Linux下防火墙iptables用法规则详及其防火墙配置

Linux下防⽕墙iptables⽤法规则详及其防⽕墙配置转:iptables规则规则--顾名思义就是规矩和原则,和现实⽣活中的事情是⼀样的,国有国法,家有家规,所以要遵纪守法的嘛。

当然在防⽕墙上的规则,在内核看来,规则就是决定如何处理⼀个包的语句。

如果⼀个包符合所有的条件,我们就⽤相应的处理动作来处理。

书写规则的语法格式为:iptables [-t table] command chains [creteria] -j action-t table就是表名,filter/nat/mangle三个表中的⼀个,默认是filter表command告诉程序如何做,⽐如:插⼊⼀个规则,还是删除等chains 链,有五个,PREROUTING POSTROUTING INPUT OUTPUT FORWARDaction 处理动作,有ACCEPT DENY DROP REJECT SNAT DNAT理⼀下思路下⾯⼀点点的说⼀、Tables选项-t⽤来指定⽤哪个表,它可以是下⾯的任何⼀个,默认的是filter表⼆、COMMANDScommand指定iptables对我们提交的规则要做什么样的操作。

这些操作可能是在某个表⾥增加或删除⼀些东西,或其他的动作。

⼀下是iptables可⽤的command(如不做说明,默认表是filter)和命令结合常⽤的选项三、chains简单说⼀下五个链的作⽤:PREROUTING 是在包进⼊防⽕墙之后、路由决策之前做处理POSTROUTING 是在路由决策之后,做处理INPUT 在包被路由到本地之后,但在出去⽤户控件之前做处理OUTPUT在去顶包的⽬的之前做处理FORWARD在最初的路由决策之后,做转发处理四、匹配条件4.1 基本匹配4.2 隐含扩展匹配这种匹配操作是⾃动的或隐含的装⼊内核的。

例如使⽤-p tcp时,不需要再装⼊任何东西就可以匹配只有IP包才有的特点。

隐含匹配针对三种不同的协议,即TCP UDP ICMP。

centos iptables生效规则顺序

centos iptables生效规则顺序摘要:1.了解CentOS iptables2.掌握iptables生效规则顺序3.配置实例演示4.总结与建议正文:CentOS是一款基于Red Hat Enterprise Linux(RHEL)的Linux发行版,广受企业级用户喜爱。

在CentOS系统中,iptables是负责防火墙管理的工具。

了解iptables的生效规则顺序对于保障网络安全至关重要。

首先,我们需要明白iptables的三个表:1.根表(root table):这是iptables的默认表,包含系统预设的规则。

2.用户表(user table):由普通用户创建,用于实现个人定制化的防火墙规则。

3.系统表(mangle table):用于管理IP分片重组和DNS伪装等。

iptables规则的生效顺序如下:1.链(chain)的顺序:从上到下,依次为:PREROUTING、INPUT、FORWARD、OUTPUT、POSTROUTING。

2.同样位于同一链中的规则,按照规则编号顺序执行。

编号越小,优先级越高。

接下来,我们通过一个实例来演示如何配置iptables规则:1.打开终端,以root用户登录。

2.清空原有规则,执行以下命令:```iptables -t root -Fiptables -t user -Fiptables -t mangle -F```3.添加允许SSH访问的规则:```iptables -A INPUT -p tcp -s 允许访问的IP地址-j ACCEPT```4.添加允许HTTPS访问的规则:```iptables -A INPUT -p tcp -s 允许访问的IP地址-j ACCEPT```5.添加将流量转发至指定端口的规则:```iptables -t mangle -A PREROUTING -p tcp -d 目标端口-j CONNECT ```最后,总结一下iptables配置过程中需要注意的点:1.确保root用户拥有足够权限,以便操作iptables。

iptables配置-14页精选文档

netfilter/iptables IP 信息包过滤系统是一种功能强大的工具,可用于添加、编辑和除去规则,这些规则是在做信息包过滤决定时,防火墙所遵循和组成的规则。

这些规则存储在专用的信息包过滤表中,而这些表集成在 Linux 内核中。

在信息包过滤表中,规则被分组放在我们所谓的链(chain)中。

虽然 netfilter/iptables IP 信息包过滤系统被称为单个实体,但它实际上由两个组件netfilter 和 iptables 组成。

netfilter 组件也称为内核空间(kernelspace),是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。

iptables 组件是一种工具,也称为用户空间(userspace),它使插入、修改和除去信息包过滤表中的规则变得容易。

iptables包含4个表,5个链。

其中表是按照对数据包的操作区分的,链是按照不同的Hook点来区分的,表和链实际上是netfilter的两个维度。

4个表:filter,nat,mangle,raw,默认表是filter(没有指定表的时候就是filter表)。

表的处理优先级:raw>mangle>nat>filter。

filter:一般的过滤功能nat:用于nat功能(端口映射,地址映射等)mangle:用于对特定数据包的修改raw:有限级最高,设置raw时一般是为了不再让iptables做数据包的链接跟踪处理,提高性能5个链:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING。

PREROUTING:数据包进入路由表之前INPUT:通过路由表后目的地为本机FORWARDING:通过路由表后,目的地不为本机OUTPUT:由本机产生,向外转发POSTROUTIONG:发送到网卡接口之前。

如下图:INPUT/OUTPUT/FORWARD只用于-t filterINPUT 如果包的目标就是本机,则包直接进入INPUT链,再被本地正在等待该包的进程接OUTPUT 两类包走OUTPUT,一类是INPUT入的包,一类是主机本身产生的包FORWARD 如果包的目标不是本机,而是穿过本机的包,则进入FORWARD链,FORWARD既不走INPUT,也不走OUTPUTPOSTROUTING/PREROUTING只用于-t natPREROUTING 进入路由之前进行,最先进行,DNATPOSTROUTING 进入路由之后进行,最后进行,SNATFOWARD是基于两个接口的,不象INPUT,OUTPUT都是基于单一接口的-i, --in-interface 匹配包的入口-i只适用于INPUT、FORWARD、PREROUTING链中,而用在OUTPUT POSTROUTING都会出错。

iptables配置语句

iptables配置语句1. 配置iptables防火墙的命令如下:```iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 22 -j ACCEPT```这条命令的作用是允许来自192.168.1.0/24网段的主机通过SSH 连接到本机的22端口。

2. 另一个常见的配置是限制特定IP地址的访问:```iptables -A INPUT -s 192.168.1.100 -j DROP```这条命令会阻止IP地址为192.168.1.100的主机访问本机的任何服务。

3. 如果想要允许特定IP地址范围的访问,可以使用以下命令:```iptables -A INPUT -m iprange --src-range 192.168.1.100-192.168.1.200 -j ACCEPT```这条命令允许来自192.168.1.100到192.168.1.200之间的主机访问本机。

4. 如果想要禁止特定端口的访问,可以使用以下命令:```iptables -A INPUT -p tcp --dport 80 -j DROP```这条命令会阻止任何主机访问本机的80端口,即禁止HTTP访问。

5. 另一种常见的配置是允许本机访问外部服务:```iptables -A OUTPUT -d 8.8.8.8 -p udp --dport 53 -j ACCEPT```这条命令允许本机访问Google Public DNS服务器的53端口,用于DNS解析。

6. 如果想要配置端口转发,可以使用以下命令:```iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080```这条命令会将来自80端口的TCP流量重定向到本机的8080端口。

7. 如果想要配置防火墙日志,可以使用以下命令:```iptables -A INPUT -j LOG --log-prefix "Firewall: "```这条命令会将所有进入本机的流量打上前缀为"Firewall: "的日志。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

前几天有些网友在群中提到搞不清SELINUX和iptalbes,那么本文就先来讲讲iptables的一些简单概念和命令语法哈~其实在以前的文章中多多少少已经涉及到相关的应用,本文就专门来谈谈iptalbes的一些具体应用,写得不好请多多包涵哈~相关服务有高级的配置也发给我研究研究哈~Iptables原理现在防火墙主要分以下三种类型:包过滤、应用代理、状态检测包过滤防火墙:现在静态包过滤防火墙市面上已经看不到了,取而代之的是动态包过滤技术的防火墙哈~代理防火墙:因一些特殊的报文攻击可以轻松突破包过滤防火墙的保护,比如大家知道的SYN 攻击、ICMP洪水攻击,所以以代理服务器作为专门为用户保密或者突破访问限制的数据转发通道的应用代理防火墙出现了哈~其使用了一种应用协议分析的新技术。

状态检测防火墙:其基于动态包过滤技术发展而来,加入了一种状态检测的模块,进一点发展了会话过滤功能,会话状态的保留是有时间限制的,此防火墙还可以对包的内容进行分析,从而避免开放过多的端口。

netfilter/iptables IP数据包过滤系统实际上由netfilter和iptables两个组件构成。

netfilte r是集成在内核中的一部分,其作用是定义、保存相应的规则,而iptables是一种工具,用来修改信息的过滤规则及其他配置,我们可以通过iptables来设置一些适合我们企业需求环境的规则哈~,而这些规则会保存在内核空间之中。

netfilter是Linux核心中的一个通用架构,其提供了一系列的表(tables),每个表由若干个链(chains)组成,而每条链可以由一条或若干条规则(rules)组成。

实际上netfilter是表的容器,表是链的容器,而链又是规则的容器。

filter表nat表mangle表iptables内置链PREROUTING:数据包进入路由表之前INPUT:通过路由表后目的地为本机FORWARDING:通过路由表后,目的地不为本机OUTPUT:由本机产生,向外转发POSTROUTIONG:发送到网卡接口之前netfilter五条链相互关系,即iptables数据包转发流程图Iptables工作流程图iptables拥有三个表和五条链组成NAT工作原理Iptables详细参数表Iptables基本语法iptables [-t 表名] -命令-匹配-j 动作/目标iptables内置了filter、nat和mangle三张表,我们可以使用-t参数来设置对哪张表生效哈~也可以省略-t参数,则默认对filter表进行操作。

具体命令参数可以通过man iptables查询哈~配置SNAT命令基本语法iptables -t nat -A POSTROUTING -o 网络接口-j SNAT --to-source IP地址配置DNAT命令基本语法iptables -t nat -A PREROUTING -i 网络接口-p 协议--dport 端口-j DNAT --to-destination IP地址企业环境及需求1、企业环境230台客户机,IP地址范围为192.168.0.1~192.168.0.254,子网掩码为255.255.255. 0Mail服务器:IP地址为192.168.0.1 子网掩码为255.255.255.0FTP服务器:IP地址为192.168.0.2 子网掩码为255.255.255.0WEB服务器:IP地址为192.168.0.3 子网掩码为255.255.255.0公司网络拓扑图如下:2、配置默认策略所有内网计算机需要经常访问互联网,并且员工会使用即时通信工具与客户进行沟通,企业网络DMZ隔离区搭建有Mail、FTP和Web服务器,其中Mail和FTP服务器对内部员工开放,仅需要对外发布Web站点,并且管理员会通过外网进行远程管理,为了保证整个网络的安全性,需要添加iptables防火墙并配置相应的策略需求分析企业的内部网络为了保证安全性,需要首先删除所有规则设置,并将默认规则设置为DROP,然后开启防火墙对于客户端的访问限制,打开WEB、MSN、QQ及MAIL的相应端口,并允许外部客户端登录WEB服务器的80、22端口。

解决方案1、配置默认策略默认iptables已经被安装好了(1)删除策略iptables -F:清空所选链中的规则,如果没有指定链则清空指定表中所有链的规则iptables -X:清除预设表filter中使用者自定链中的规则iptables -Z:清除预设表filter中使用者自定链中的规则(2)设置默认策略设置默认策略为关闭filter表的INPPUT及FORWARD链开启OUTPUT链,nat表的三个链P REROUTING、OUTPUT、POSTROUTING全部开启哈~默认全部链都是开启的,所以有些命令可以不操作,另外mangle表本文没用到,所以不做处理,mangle主要用在数据包的特殊变更处理上,比如修改TOS等特性。

2、设置回环地址有些服务的测试需要使用回环地址,为了保证各个服务的正常工作,需要允许回环地址的通信,RHCE课程-RH253Linux服务器架设笔记二-NFS服务器配置己有涉及,如果不设置回环地址,有些服务不能启动哈~。

iptables -A INPUT -i lo -j ACCEPT3、连接状态设置为了简化防火墙的配置操作,并提高检查的效率,需要添加连接状态设置iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT连接跟踪存在四种数据包状态NEW:想要新建连接的数据包INVALID:无效的数据包,例如损坏或者不完整的数据包ESTABLISHED:已经建立连接的数据包RELATED:与已经发送的数据包有关的数据包4、设置80端口转发公司网站需要对外开放,所以我们需要开放80端口iptables -A FORWARD -p tcp --dport 80 -j ACCEPT5、DNS相关设置为了客户端能够正常使用域名访问互联网,我们还需要允许内网计算机与外部DNS服务器的数据转发。

开启DNS使用UDP、TCP的53端口iptables -A FORWARD -p tcp --dport 53 -j ACCEPTiptables -A FORWARD -p udp --dport 53 -j ACCEPT6、允许访问服务器的SSH管理员会通过外网进行远程管理,所以我们要开启SSH使用的TCP协议22端口iptables -A INPUT -p tcp --dport 22 -j ACCEPT7、允许内网主机登录MSN和QQ相关设置QQ能够使用TCP80、8000、443及UDP8000、4000登录,而MSN通过TCP1863、44 3验证。

因此只需要允许这些端口的FORWARD转发即可以正常登录。

iptables -A FORWARD -p tcp --dport 1863 -j ACCEPTiptables -A FORWARD -p tcp --dport 443 -j ACCEPTiptables -A FORWARD -p tcp --dport 8000 -j ACCEPTiptables -A FORWARD -p udp --dport 8000 -j ACCEPTiptables -A FORWARD -p udp --dport 4000 -j ACCEPT注意:当然,如果公司要限制这样即时通信工具的使用,只要禁止这些端口的转发就可以了哈~特别注意,马化腾这家伙忒坏~嘿嘿~,端口不固定,QQVIP会员专用通道什么的,代理登录等等哈~,所以我们如果需要封杀就要收集全登录端口及QQ服务器地址,根据本人总结,最好在企业实际配置中技术与行政管理相结合,这样达到的效果最好~0(^_^)08、允许内网主机收发邮件客户端发送邮件时访问邮件服务器的TCP25端口。

接收邮件时访问,可能使用的端口则较多,UDP协议以及TCP协议的端口:110、143、993及995smtp:[root@rhel5 ~]# iptables -A FORWARD -p tcp --dport 25 -j ACCEPTpop3:[root@rhel5 ~]# iptables -A FORWARD -p tcp --dport 110 -j ACCEPT [root@rhel5 ~]# iptables -A FORWARD -p udp --dport 110 -j ACCEPT imap:[root@rhel5 ~]# iptables -A FORWARD -p tcp --dport 143 -j ACCEPT [root@rhel5 ~]# iptables -A FORWARD -p udp --dport 143 -j ACCEPT imaps:[root@rhel5 ~]# iptables -A FORWARD -p tcp --dport 993 -j ACCEPT [root@rhel5 ~]# iptables -A FORWARD -p udp --dport 993 -j ACCEPTpop3s:[root@rhel5 ~]# iptables -A FORWARD -p tcp --dport 995 -j ACCEPT [root@rhel5 ~]# iptables -A FORWARD -p udp --dport 995 -j ACCEPT9、NAT端口映射设置由于局域网的地址为私网地址,在公网上不合法哈~所以必须将私网地址转为服务器的外部地址进行地址映射哈~连接外网接口为ppp0iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.0/24 -j MASQUE RADEMASQUERADE和SNAT作用一样哈~相样是提供源地址转换的操作,但是MASQUERA DE是针对外部接口为动态IP地址来设置滴,不需要使用--to-source指定转换的IP地址。

如果网络采用的是拨号方式接入互联网,而没有对外的静态IP地址(主要用在动态获取IP地址的连接,比如ADSL拨号、DHCP连接等等),那么建议使用MASQUERADE哈~注意:MASQUERADE是特殊的过滤规则,其只可以映射从一个接口到另一个接口的数据哈~10、内网机器对外发布WEB网站内网WEB服务器IP地址为192.168.0.3,我们需要进行如下配置哈~,当公网客户端访问服务器时,防火墙将请求映射到内网的192.168.0.3的80端口iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.3:8011、保存与恢复iptables配置保存:iptables-saveiptables-save [-c] [-t 表名]-c:保存包和字节计数器的值。

相关文档
最新文档