用Linux的iptables做代理服务器和防火墙配置详细介绍
iptables设置防火墙规则
iptables设置防火墙规则以iptables设置防火墙规则为标题,可以写一篇关于iptables防火墙规则的文章。
下面是一种可能的写作方式:标题:使用iptables设置防火墙规则保护网络安全导言:在当前的网络环境中,保护网络安全是至关重要的。
为了防止网络攻击和非法访问,我们可以使用iptables来设置防火墙规则。
本文将介绍iptables的基本概念和常用命令,并提供一些示例来帮助您理解如何使用iptables保护您的网络。
一、iptables简介iptables是一个在Linux系统上使用的防火墙工具,它可以监控和过滤网络流量,以及控制网络数据包的传输。
iptables可以根据预定义的规则集来允许或拒绝特定的网络连接。
二、iptables基本命令1. 添加规则:使用iptables的-A选项可以向规则链中添加新的规则。
例如,以下命令将允许从特定IP地址(192.168.1.100)访问SSH服务:iptables -A INPUT -s 192.168.1.100 -p tcp --dport 22 -j ACCEPT2. 删除规则:使用iptables的-D选项可以从规则链中删除指定的规则。
例如,以下命令将删除允许从特定IP地址(192.168.1.100)访问SSH服务的规则:iptables -D INPUT -s 192.168.1.100 -p tcp --dport 22 -j ACCEPT3. 查看规则:使用iptables的-L选项可以查看当前规则链中的规则。
例如,以下命令将显示INPUT规则链中的所有规则:iptables -L INPUT三、常用的防火墙规则示例1. 允许特定IP地址的访问:以下命令将允许来自192.168.1.100的IP地址访问HTTP服务:iptables -A INPUT -s 192.168.1.100 -p tcp --dport 80 -j ACCEPT2. 允许特定端口的访问:以下命令将允许所有IP地址访问SSH服务:iptables -A INPUT -p tcp --dport 22 -j ACCEPT3. 拒绝特定IP地址的访问:以下命令将拒绝来自192.168.1.200的IP地址访问FTP服务:iptables -A INPUT -s 192.168.1.200 -p tcp --dport 21 -j DROP4. 阻止所有对外部SSH服务的访问:以下命令将阻止所有对外部SSH服务的访问:iptables -A INPUT -p tcp --dport 22 -j DROP四、更高级的防火墙规则设置1. 限制连接速率:可以使用iptables的限速模块来限制特定IP地址的连接速率。
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和ufw命令进行网络防火墙配置
Linux命令高级技巧使用iptables和ufw命令进行网络防火墙配置Linux命令高级技巧:使用iptables和ufw命令进行网络防火墙配置在Linux操作系统中,网络防火墙是保护系统网络安全的重要组成部分。
通过合理配置网络防火墙规则,可以控制网络流量的进出,阻挡恶意攻击和未经授权的访问,确保系统的安全性。
本文将介绍Linux 中的两个重要命令iptables和ufw,以及使用它们进行网络防火墙配置的高级技巧。
一、iptables命令iptables是Linux中主要的防火墙工具,可以在内核级别对进出的网络流量进行过滤、转发和NAT(Network Address Translation)等操作。
下面是一些常用的iptables命令及其用法:1. 启用IP转发功能在做网络防火墙配置之前,需要确保系统开启了IP转发功能。
可以使用以下命令启用:```shellsysctl -w net.ipv4.ip_forward=1```此命令将系统的`net.ipv4.ip_forward`参数设置为1,即开启IP转发功能。
2. 基本规则设置使用以下命令创建一条基本的防火墙规则,允许本地主机的所有传入和传出流量:```shelliptables -P INPUT ACCEPTiptables -P OUTPUT ACCEPTiptables -P FORWARD ACCEPT```这些命令将INPUT、OUTPUT和FORWARD链的默认策略都设置为ACCEPT,即允许全部流量。
3. 添加规则可以使用iptables命令添加特定的防火墙规则,以允许或拒绝特定的流量。
例如,以下命令将允许来自192.168.1.100的主机的SSH连接:```shelliptables -A INPUT -s 192.168.1.100 -p tcp --dport 22 -j ACCEPT```此命令将在INPUT链中添加一条规则,允许源IP为192.168.1.100,目标端口为22的TCP连接。
linux iptables 防火墙添加规则
linux iptables 防火墙添加规则《Linux iptables 防火墙添加规则》在Linux系统中,iptables是一种用于管理包过滤规则和网络地址转换的工具,也就是说,它是一个用于管理防火墙的工具。
通过iptables,用户可以对传入和传出的网络数据包进行过滤、转发、放行等操作,从而保护系统的安全性。
要添加iptables防火墙规则,首先需要了解一些基本概念。
规则由一系列规则链和规则组成,每个规则链对应于一个特定的包处理阶段,比如INPUT(入站数据包)、FORWARD(转发数据包)、OUTPUT(出站数据包)等。
而规则则定义了针对每个规则链的具体动作,比如允许、拒绝、转发等。
要添加规则,可以使用iptables命令,语法为:```iptables -A <chain> -p <protocol> --dport <port> -j <action>```具体来说,-A表示添加规则,<chain>表示规则链的名称,-p表示协议类型,--dport表示目标端口,-j表示动作。
比如,可以使用以下命令添加一条允许HTTP流量的规则:```iptables -A INPUT -p tcp --dport 80 -j ACCEPT```此外,还可以使用其他选项来指定IP地址、子网、MAC地址等,定制更精细的规则。
在添加规则之后,需要保存规则,以便系统重启后依然有效。
可以使用以下命令来保存规则:```iptables-save > /etc/iptables.rules```总的来说,通过学习iptables的基本概念和语法,用户可以灵活地配置防火墙规则,从而保护系统的安全。
毋庸置疑,良好的防火墙规则可以有效地提高系统的安全性,减少潜在的攻击风险。
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。
四表五链Linux-iptables防火墙
四表五链Linux-iptables防⽕墙⼀、iptables概述Linux 系统的防⽕墙: IP信息包过滤系统,它实际上由两个组件netfilter和iptables组成主要⼯作在⽹络层,针对IP数据包。
体现在对包内的IP地址、端⼝等信息的处理上⼆、netfilter/iptables关系• 属于“内核态”(KernelSpace,⼜称为内核空间) 的防⽕墙功能体系• 是内核的⼀部分,由–些数据包过滤表组成,这些表包含内核⽤来控制数据包过滤处理的规则集• 属于“⽤户态”(User Space,⼜称为⽤户空间) 的防⽕墙管理体系• 是⼀种⽤来管理Linux防⽕墙的命令程序,它使插⼊、修改和删除数据包过滤表中的规则变得容易,通常位于/sbin/iptables⽬录下三、四表五链规则表的作⽤: 容纳各种规则链规则链的作⽤: 容纳各种防⽕墙规则四表raw表:确定是否对该数据包进⾏状态跟踪。
包含两个规则链,OUTPUT、 PREROUTINGmangle表:修改数据包内容,⽤来做流量整形的,给数据包设置标记。
包含五个规则链,INPUT、 OUTPUT、FORWARD、PREROUTING、 POSTROUTINGnat表:负责⽹络地址转换,⽤来修改数据包中的源、⽬标IP地址或端⼝。
包含三个规则链,OUTPUT、PREROUTING、 POSTROUTING filter表:负责过滤数据包,确定是否放⾏该数据包(过滤)。
包含三个规则链,INPUT、 FORWARD、0UTPUT五链INPUT:处理⼊站数据包,匹配⽬标IP为本机的数据包OUTPUT:处理出站数据包,–般不在此链.上做配置FORWARD:处理转发数据包,匹配流经本机的数据包PREROUTING:在进⾏路由选择前处理数据包,⽤来修改⽬的地址,⽤来做DNAT。
相当于把内⽹服务器的IP和端⼝映射到路由器的外⽹IP 和端⼝上POSTROUTING:在进⾏路由选择后处理数据包,⽤来修改源地址,⽤来做SNAT。
Linux下iptables超详细教程和使用示例
Linux下iptables超详细教程和使⽤⽰例iptables的结构:iptables由上⽽下,由Tables,Chains,Rules组成。
⼀、iptables的表tables与链chainsiptables有Filter, NAT, Mangle, Raw四种内建表:1. Filter表Filter是iptables的默认表,它有以下三种内建链(chains):INPUT链 – 处理来⾃外部的数据。
OUTPUT链 – 处理向外发送的数据。
FORWARD链 – 将数据转发到本机的其他⽹卡设备上。
2. NAT表NAT表有三种内建链:PREROUTING链 – 处理刚到达本机并在路由转发前的数据包。
它会转换数据包中的⽬标IP地址(destination ip address),通常⽤于DNAT(destination NAT)。
POSTROUTING链 – 处理即将离开本机的数据包。
它会转换数据包中的源IP地址(source ip address),通常⽤于SNAT(source NAT)。
OUTPUT链 – 处理本机产⽣的数据包。
3. Mangle表Mangle表⽤于指定如何处理数据包。
它能改变TCP头中的QoS位。
Mangle表具有5个内建链(chains):PREROUTINGOUTPUTFORWARDINPUTPOSTROUTING4. Raw表Raw表⽤于处理异常,它具有2个内建链:PREROUTING chainOUTPUT chain5.⼩结⼆、IPTABLES 规则(Rules)规则的关键知识点:Rules包括⼀个条件和⼀个⽬标(target)如果满⾜条件,就执⾏⽬标(target)中的规则或者特定值。
如果不满⾜条件,就判断下⼀条Rules。
⽬标值(Target Values)在target⾥指定的特殊值:ACCEPT – 允许防⽕墙接收数据包DROP – 防⽕墙丢弃包QUEUE – 防⽕墙将数据包移交到⽤户空间RETURN – 防⽕墙停⽌执⾏当前链中的后续Rules,并返回到调⽤链(the calling chain)中。
linux下各种服务进程之iptables详解(最新整理)
linux下IPTABLES配置详解开始配置我们来配置一个filter表的防火墙.(1)查看本机关于IPTABLES的设置情况[root@tp ~]# iptables -L -nChain INPUT (policy ACCEPT)target prot opt source destinationChain FORWARD (policy ACCEPT)target prot opt source destinationChain OUTPUT (policy ACCEPT)target prot opt source destinationChain RH-Firewall-1-INPUT (0 references)target prot opt source destinationACCEPT all -- 0.0.0.0/0 0.0.0.0/0ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 255ACCEPT esp -- 0.0.0.0/0 0.0.0.0/0ACCEPT ah -- 0.0.0.0/0 0.0.0.0/0ACCEPT udp -- 0.0.0.0/0 224.0.0.251 udp dpt:5353ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:631ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:25 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited 可以看出我在安装linux时,选择了有防火墙,并且开放了22,80,25端口.如果你在安装linux时没有选择启动防火墙,是这样的[root@tp ~]# iptables -L -nChain INPUT (policy ACCEPT)target prot opt source destinationChain FORWARD (policy ACCEPT)target prot opt source destinationChain OUTPUT (policy ACCEPT)target prot opt source destination什么规则都没有.(2)清除原有规则.不管你在安装linux时是否启动了防火墙,如果你想配置属于自己的防火墙,那就清除现在filter的所有规则.[root@tp ~]# iptables -F清除预设表filter中的所有规则链的规则[root@tp ~]# iptables -X清除预设表filter中使用者自定链中的规则我们在来看一下[root@tp ~]# iptables -L -nChain INPUT (policy ACCEPT)target prot opt source destinationChain FORWARD (policy ACCEPT)target prot opt source destinationChain OUTPUT (policy ACCEPT)target prot opt source destination什么都没有了吧,和我们在安装linux时没有启动防火墙是一样的.(提前说一句,这些配置就像用命令配置IP一样,重起就会失去作用),怎么保存.[root@tp ~]# /etc/rc.d/init.d/iptables save这样就可以写到/etc/sysconfig/iptables文件里了.写入后记得把防火墙重起一下,才能起作用.[root@tp ~]# service iptables restart现在IPTABLES配置表里什么配置都没有了,那我们开始我们的配置吧(3)设定预设规则[root@tp ~]# iptables -p INPUT DROP[root@tp ~]# iptables -p OUTPUT ACCEPT[root@tp ~]# iptables -p FORWARD DROP上面的意思是,当超出了IPTABLES里filter表里的两个链规则(INPUT,FORWARD)时,不在这两个规则里的数据包怎么处理呢,那就是DROP(放弃).应该说这样配置是很安全的.我们要控制流入数据包而对于OUTPUT链,也就是流出的包我们不用做太多限制,而是采取ACCEPT,也就是说,不在着个规则里的包怎么办呢,那就是通过.可以看出INPUT,FORWARD两个链采用的是允许什么包通过,而OUTPUT链采用的是不允许什么包通过.这样设置还是挺合理的,当然你也可以三个链都DROP,但这样做我认为是没有必要的,而且要写的规则就会增加.但如果你只想要有限的几个规则是,如只做WEB服务器.还是推荐三个链都是DROP.注:如果你是远程SSH登陆的话,当你输入第一个命令回车的时候就应该掉了.因为你没有设置任何规则.怎么办,去本机操作呗!(4)添加规则.首先添加INPUT链,INPUT链的默认规则是DROP,所以我们就写需要ACCETP(通过)的链为了能采用远程SSH登陆,我们要开启22端口.[root@tp ~]# iptables -A INPUT -p tcp --dport 22 -j ACCEPT[root@tp ~]# iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT(注:这个规则,如果你把OUTPUT 设置成DROP的就要写上这一部,好多人都是望了写这一部规则导致,始终无法SSH.在远程一下,是不是好了.其他的端口也一样,如果开启了web服务器,OUTPUT设置成DROP的话,同样也要添加一条链:[root@tp ~]# iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT ,其他同理.)如果做了WEB服务器,开启80端口.[root@tp ~]# iptables -A INPUT -p tcp --dport 80 -j ACCEPT如果做了邮件服务器,开启25,110端口.[root@tp ~]# iptables -A INPUT -p tcp --dport 110 -j ACCEPT[root@tp ~]# iptables -A INPUT -p tcp --dport 25 -j ACCEPT如果做了FTP服务器,开启21端口[root@tp ~]# iptables -A INPUT -p tcp --dport 21 -j ACCEPT[root@tp ~]# iptables -A INPUT -p tcp --dport 20 -j ACCEPT如果做了DNS服务器,开启53端口[root@tp ~]# iptables -A INPUT -p tcp --dport 53 -j ACCEPT如果你还做了其他的服务器,需要开启哪个端口,照写就行了.上面主要写的都是INPUT链,凡是不在上面的规则里的,都DROP允许icmp包通过,也就是允许ping,[root@tp ~]# iptables -A OUTPUT -p icmp -j ACCEPT (OUTPUT设置成DROP的话) [root@tp ~]# iptables -A INPUT -p icmp -j ACCEPT (INPUT设置成DROP的话)允许loopback!(不然会导致DNS无法正常关闭等问题)IPTABLES -A INPUT -i lo -p all -j ACCEPT (如果是INPUT DROP)IPTABLES -A OUTPUT -o lo -p all -j ACCEPT(如果是OUTPUT DROP)下面写OUTPUT链,OUTPUT链默认规则是ACCEPT,所以我们就写需要DROP(放弃)的链.减少不安全的端口连接[root@tp ~]# iptables -A OUTPUT -p tcp --sport 31337 -j DROP[root@tp ~]# iptables -A OUTPUT -p tcp --dport 31337 -j DROP有些些特洛伊木马会扫描端口31337到31340(即黑客语言中的elite 端口)上的服务。
如何使用iptables命令在Linux中配置防火墙和网络转发
如何使用iptables命令在Linux中配置防火墙和网络转发由于网络安全的重要性日益凸显,配置防火墙和网络转发成为Linux系统管理员必备的技能之一。
在Linux系统中,iptables命令提供了灵活的方式来配置防火墙规则和网络转发设置。
本文将介绍如何使用iptables命令来完成这些任务。
一、什么是iptables命令iptables是Linux操作系统中一个非常强大的防火墙工具,它可以通过管理网络数据包的流动来控制网络访问权限。
iptables命令可以根据预先定义的规则集过滤网络数据包,拒绝无效或危险的连接,从而保护系统的安全性。
二、基本概念与术语在开始使用iptables命令之前,我们需要了解一些基本的概念和术语。
1. 表(Table):iptables命令使用表来组织和管理规则。
常用的表有:filter、nat和mangle等。
2. 链(Chain):每个表都包含多个链,链是规则的组合。
常用的链有:INPUT、FORWARD和OUTPUT等。
3. 规则(Rule):规则是iptables命令的基本单位,它定义了针对网络数据包的动作和匹配条件。
4. 动作(Action):动作定义了对匹配到的数据包的处理方式,常见的动作有:ACCEPT、DROP和REJECT等。
5. 匹配条件(Match):匹配条件定义了规则在应用到数据包时需要满足的条件。
常见的匹配条件有:source、destination和protocol等。
三、配置防火墙规则配置防火墙规则是保护系统安全的第一步。
使用iptables命令可以轻松地添加、修改和删除防火墙规则。
1. 查看当前防火墙规则首先,我们需要查看当前的防火墙规则,可以使用以下命令:```iptables -L```该命令将列出当前的防火墙规则,包括表、链、规则和动作等信息。
2. 添加规则要添加一个防火墙规则,可以使用以下命令:```iptables -A INPUT -s 192.168.0.0/24 -p tcp --dport 22 -j ACCEPT```该命令将允许来自192.168.0.0/24网段的TCP连接访问本地的SSH 服务。
linux防火墙iptables参数详解
linux防⽕墙iptables参数详解先来看iptables 防⽕墙的⼀些常⽤设置:1. iptables-A INPUT -p tcp -s x.x.x.x/x --dport 22 -j ACCEPT // 允许源地址为x.x.x.x/x的主机通过22(ssh)端⼝.2. iptables -A INPUT -p tcp --dport 80 -j ACCEPT // 允许80(http)端⼝的数据包进⼊3. iptables -A INPUT -p tcp --dport 110 -j ACCEPT // 允许110(pop3)端⼝的数据包进⼊如果不加这规则,就只能通过web页⾯来收信(⽆法⽤OE或Foxmail等来收)4. iptables -A INPUT -p tcp --dport 25 -j ACCEPT // 允许25(smtp)端⼝的数据包进⼊,如果不加这规则,就只能通过web页⾯来发信(⽆法⽤OE或Foxmail等来发)5. iptables -A INPUT -p tcp --dport 21 -j ACCEPT // 允许21(ftp)端⼝的数据包进⼊(传数据)6. iptables -A INPUT -p tcp --dport 20 -j ACCEPT // 允许20(ftp)端⼝的数据包进⼊(执⾏ftp命令,如dir等)7. iptables -A INPUT -p tcp --dport 53 -j ACCEPT // 允许53(dns)端⼝的数据包进⼊(tcp)8. iptables -A INPUT -p udp --dport 53 -j ACCEPT // 允许53(dns)端⼝的数据包进⼊(udp)9. iptables -A INPUT -p icmp -j ACCEPT // 允许ICMP包通过10. iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT //利⽤ iptables 对连接状态的⽀持11. iptables -P INPUT DROP//把INPUT链的默认规则设置为DROPIptalbes 防⽕墙主要参数和设置说明:TARGETS防⽕墙的规则指定所检查包的特征,和⽬标。
Linux防火墙配置(iptables,firewalld)
Linux防⽕墙配置(iptables,firewalld)Linux中的防⽕墙RHEL中有⼏种防⽕墙共存:iptablesfirewalldip6tablesebtables这些软件本⾝其实并不具备防⽕墙功能,他们的作⽤都是在⽤户空间中管理和维护规则,只不过规则结构和使⽤⽅法不⼀样罢了,真正利⽤规则进⾏过滤是由内核的netfilter完成的。
扩展:整个linux内部结构可以分为三部分,从最底层到最上层依次是:硬件-->内核空间-->⽤户空间。
CentOS7默认采⽤的是firewalld管理netfilter⼦系统,底层调⽤的仍然是iptables命令。
不同的防⽕墙软件相互间存在冲突,使⽤某个时应禁⽤其他的。
systemctl start/stop/enable/disable/status/is-active xxxx //systemctl服务管理命令Netfilter netfilter是Linux 2.4内核引⼊的全新的包过滤引擎。
由⼀些数据包过滤表组成,这些表包含内核⽤来控制信息包过滤的规则集。
iptables等等都是在⽤户空间修改过滤表规则的便捷⼯具。
netfilter在数据包必须经过且可以读取规则的位置,共设有5个控制关卡。
这5个关卡处的检查规则分别放在5个规则链中(有的叫钩⼦函数(hook functions)。
也就是说5条链对应着数据包传输路径中的5个控制关卡,链中的规则会在对应的关卡检查和处理。
任何⼀个数据包,只要经过本机,必然经过5个链中的某个或某⼏个。
PREROUTING 数据包刚进⼊⽹络接⼝之后,路由之前,INPUT 数据包从内核流⼊⽤户空间。
FORWARD 在内核空间中,从⼀个⽹络接⼝进⼊,到另⼀个⽹络接⼝去。
转发过滤。
OUTPUT 数据包从⽤户空间流出到内核空间。
POSTROUTING 路由后,数据包离开⽹络接⼝前。
链其实就是包含众多规则的检查清单,每⼀条链中包含很多规则。
iptables防火墙如何设置
iptables防火墙如何设置iptables防火墙是我们电脑的防线,怎么样设置最好呢?下面由店铺给你做出详细的iptables防火墙设置方法介绍!希望对你有帮助!iptables防火墙设置方法一:iptables防火墙设置方一,安装并启动防火墙[root@linux ~]# /etc/init.d/iptables start当我们用iptables添加规则,保存后,这些规则以文件的形势存在磁盘上的,以CentOS为例,文件地址是/etc/sysconfig/iptables 我们可以通过命令的方式去添加,修改,删除规则,也可以直接修改/etc/sysconfig/iptables这个文件就行了。
1.加载模块/sbin/modprobe ip_tables2.查看规则iptables -L -n -v3.设置规则#清除已经存在的规则iptables -Fiptables -Xiptables -Z#默认拒绝策略(尽量不要这样设置,虽然这样配置安全性高,但同时会拒绝包括lo环路在内的所#有网络接口,导致出现其他问题。
建议只在外网接口上做相应的配置)iptables -P INPUT DROPiptables -P OUTPUT DROPiptables -P FORWARD DROP#ssh 规则iptables -t filter -A INPUT -i eth0 -p tcp –dport 22 -j ACCEPT iptables -t filter -A OUTPUT -o eth0 -p tcp –sport 22 -j ACCEPT#本地还回及tcp握手处理iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPTiptables -A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT#www-dns 规则iptables -I INPUT -p tcp –sport 53 -j ACCEPTiptables -I INPUT -p udp –sport 53 -j ACCEPTiptables -t filter -A INPUT -i eth0 -p tcp –dport 80 -j ACCEPT iptables -t filter -A OUTPUT -o eth0 -p tcp –sport 80 -j ACCEPT#ICMP 规则iptables -A INPUT -p icmp –icmp-type echo-request-j ACCEPTiptables -A INPUT -p icmp –icmp-type echo-reply -j ACCEPT iptables -A OUTPUT -p icmp –icmp-type echo-request -j ACCEPTiptables -A OUTPUT -p icmp –icmp-type echo-reply -j ACCEPTiptables防火墙设置方二,添加防火墙规则1,添加filter表1.[root@linux ~]# iptables -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT //开放21端口出口我都是开放的iptables -P OUTPUT ACCEPT,所以出口就没必要在去开放端口了。
防火墙配置文件iptables详解
防火墙配置文件iptables详解对于Internet上的系统,不管是什么情况都要明确一点:网络是不安全的。
因此,虽然创建一个防火墙并不能保证系统100%安全,但却是绝对必要的。
Linux提供了一个非常优秀的防火墙工具—netfilter/iptables。
它完全免费、功能强大、使用灵活、可以对流入和流出的信息进行细化控制,且可以在一台低配置机器上很好地运行。
本文将简单介绍使用netfilter/iptables实现防火墙架设和Internet连接共享等应用。
netfilter/iptabels应用程序,被认为是Linux中实现包过滤功能的第四代应用程序。
netfilter/iptables包含在2.4以后的内核中,它可以实现防火墙、NAT(网络地址翻译)和数据包的分割等功能。
netfilter工作在内核内部,而iptables则是让用户定义规则集的表结构。
netfilter/iptables从ipchains和ipwadfm(IP防火墙管理)演化而来,功能更加强大。
下文将netfilter/iptabels统一称为iptables。
可以用iptables为Unix、Linux和BSD个人工作站创建一个防火墙,也可以为一个子网创建防火墙以保护其它的系统平台。
iptales只读取数据包头,不会给信息流增加负担,也无需进行验证。
要想获得更好的安全性,可以将其和一个代理服务器(比如squid)相结合。
基本概念典型的防火墙设置有两个网卡:一个流入,一个流出。
iptables读取流入和流出数据包的报头,将它们与规则集(Ruleset)相比较,将可接受的数据包从一个网卡转发至另一个网卡,对被拒绝的数据包,可以丢弃或按照所定义的方式来处理。
通过向防火墙提供有关对来自某个源地址、到某个目的地或具有特定协议类型的信息包要做些什么的指令,规则控制信息包的过滤。
通过使用iptables系统提供的特殊命令iptables建立这些规则,并将其添加到内核空间特定信息包过滤表内的链中。
linux下IPTABLES配置详解
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80
Chain RH-Firewall-1-INPUT (0 references)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
什Hale Waihona Puke 都没有了吧,和我们在安装linux时没有启动防火墙是一样的.(提前说一句,这些配置就像用命令配置IP一样,重起就会失去作用),怎么保存.
[root@tp ~]# /etc/rc.d/init.d/iptables save
这样就可以写到/etc/sysconfig/iptables文件里了.写入后记得把防火墙重起一下,才能起作用.
可以看出INPUT,FORWARD两个链采用的是允许什么包通过,而OUTPUT链采用的是不允许什么包通过.
这样设置还是挺合理的,当然你也可以三个链都DROP,但这样做我认为是没有必要的,而且要写的规则就会增加.但如果你只想要有限的几个规则是,如只做WEB服务器.还是推荐三个链都是DROP.
注:如果你是远程SSH登陆的话,当你输入第一个命令回车的时候就应该掉了.因为你没有设置任何规则.
linux配置防火墙详细步骤(iptables命令使用方法)
linux配置防⽕墙详细步骤(iptables命令使⽤⽅法)通过本教程操作,请确认您能使⽤linux本机。
如果您使⽤的是ssh远程,⽽⼜不能直接操作本机,那么建议您慎重,慎重,再慎重!通过iptables我们可以为我们的Linux服务器配置有动态的防⽕墙,能够指定并记住为发送或接收信息包所建⽴的连接的状态,是⼀套⽤来设置、维护和检查Linux内核的IP包过滤规则的命令包。
iptables定义规则的⽅式⽐较复杂,本⽂对Linux防⽕墙Iptables规则写法进⾏详细介绍:⑴、Iptables规则写法的基本格式是: Iptables [-ttable] COMMAND chain CRETIRIA -j ACTION⑵、Iptables规则相关参数说明: -t table:3个filter nat mangle :定义如何对规则进⾏管理 chain:指定你接下来的规则到底是在哪个链上操作的,当定义策略的时候,是可以省略的; CRETIRIA:指定匹配标准; -j ACTION:指定如何进⾏处理;⑶、Iptables规则其他写法及说明: Iptables -L -n -v #查看定义规则的详细信息 Iptables是Linux服务器上防⽕墙配置必备的设置⼯具,是我们在做好服务器安全及部署⼤型⽹络时,常会⽤到的重要⼯具,很好的掌握iptables,可以让我们对Linux服务器整个⽹络的结构有⼀个⽐较透彻的了解,更能够很好的掌握Linux服务器的安全配置技巧。
我们来配置⼀个filter表的防⽕墙.(1)查看本机关于IPTABLES的设置情况复制代码代码如下:[root@tp ~]# iptables -L -nChain INPUT (policy ACCEPT)target prot opt source destination</p> <p>Chain FORWARD (policy ACCEPT)target prot opt source destination</p> <p>Chain OUTPUT (policy ACCEPT)target prot opt source destination</p> <p>Chain RH-Firewall-1-INPUT (0 references)target prot opt source destinationACCEPT all -- 0.0.0.0/0 0.0.0.0/0ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 255ACCEPT esp -- 0.0.0.0/0 0.0.0.0/0ACCEPTah--0.0.0.0/00.0.0.0/0ACCEPTudp--0.0.0.0/0224.0.0.251udpdpt:5353ACCEPTudp--0.0.0.0/00.0.0.0/0udpdpt:631ACCEPTall--0.0.0.0/00.0.0.0/0stateRELATED,ESTABLISHEDACCEPTtcp--0.0.0.0/00.0.0.0/0stateNEWtcpdpt:22ACCEPTtcp--0.0.0.0/00.0.0.0/0stateNEWtcpdpt:80ACCEPTtcp--0.0.0.0/00.0.0.0/0stateNEWtcpdpt:25REJECTall--0.0.0.0/00.0.0.0/0reject-withicmp-host-prohibited可以看出我在安装linux时,选择了有防⽕墙,并且开放了22,80,25端⼝.如果你在安装linux时没有选择启动防⽕墙,是这样的复制代码代码如下:[root@tp ~]# iptables -L -nChain INPUT (policy ACCEPT)target prot opt source destination </p> <p>Chain FORWARD (policy ACCEPT)target prot opt source destination </p> <p>Chain OUTPUT (policy ACCEPT)target prot opt source destination什么规则都没有.(2)清除原有规则.不管你在安装linux时是否启动了防⽕墙,如果你想配置属于⾃⼰的防⽕墙,那就清除现在filter的所有规则.复制代码代码如下:[root@tp ~]# iptables -F 清除预设表filter中的所有规则链的规则[root@tp ~]# iptables -X 清除预设表filter中使⽤者⾃定链中的规则我们在来看⼀下复制代码代码如下:[root@tp ~]# iptables -L -nChain INPUT (policy ACCEPT)target prot opt source destination </p> <p>Chain FORWARD (policy ACCEPT)target prot opt source destination </p> <p>Chain OUTPUT (policy ACCEPT)target prot opt source destination什么都没有了吧,和我们在安装linux时没有启动防⽕墙是⼀样的.(提前说⼀句,这些配置就像⽤命令配置IP⼀样,重起就会失去作⽤),怎么保存.复制代码代码如下:[root@tp ~]# /etc/rc.d/init.d/iptables save这样就可以写到/etc/sysconfig/iptables⽂件⾥了.写⼊后记得把防⽕墙重起⼀下,才能起作⽤.复制代码代码如下:[root@tp ~]# service iptables restart现在IPTABLES配置表⾥什么配置都没有了,那我们开始我们的配置吧(3)设定预设规则复制代码代码如下:[root@tp ~]# iptables -P INPUT DROP[root@tp ~]# iptables -P OUTPUT ACCEPT[root@tp ~]# iptables -P FORWARD DROP上⾯的意思是,当超出了IPTABLES⾥filter表⾥的两个链规则(INPUT,FORWARD)时,不在这两个规则⾥的数据包怎么处理呢,那就是DROP(放弃).应该说这样配置是很安全的.我们要控制流⼊数据包⽽对于OUTPUT链,也就是流出的包我们不⽤做太多限制,⽽是采取ACCEPT,也就是说,不在着个规则⾥的包怎么办呢,那就是通过.可以看出INPUT,FORWARD两个链采⽤的是允许什么包通过,⽽OUTPUT链采⽤的是不允许什么包通过.这样设置还是挺合理的,当然你也可以三个链都DROP,但这样做我认为是没有必要的,⽽且要写的规则就会增加.但如果你只想要有限的⼏个规则是,如只做WEB服务器.还是推荐三个链都是DROP.注:如果你是远程SSH登陆的话,当你输⼊第⼀个命令回车的时候就应该掉了.因为你没有设置任何规则.怎么办,去本机操作呗!(4)添加规则.⾸先添加INPUT链,INPUT链的默认规则是DROP,所以我们就写需要ACCETP(通过)的链为了能采⽤远程SSH登陆,我们要开启22端⼝.复制代码代码如下:[root@tp ~]# iptables -A INPUT -p tcp --dport 22 -j ACCEPT[root@tp ~]# iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT(注:这个规则,如果你把OUTPUT 设置成DROP的就要写上这⼀部,好多⼈都是望了写这⼀部规则导致,始终⽆法SSH.在远程⼀下,是不是好了.其他的端⼝也⼀样,如果开启了web服务器,OUTPUT设置成DROP的话,同样也要添加⼀条链:复制代码代码如下:[root@tp ~]# iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT,其他同理.如果做了WEB服务器,开启80端⼝.复制代码代码如下:[root@tp ~]# iptables -A INPUT -p tcp --dport 80 -j ACCEPT如果做了邮件服务器,开启25,110端⼝.复制代码代码如下:[root@tp ~]# iptables -A INPUT -p tcp --dport 110 -j ACCEPT[root@tp ~]# iptables -A INPUT -p tcp --dport 25 -j ACCEPT如果做了FTP服务器,开启21端⼝复制代码代码如下:[root@tp ~]# iptables -A INPUT -p tcp --dport 21 -j ACCEPT[root@tp ~]# iptables -A INPUT -p tcp --dport 21 -j ACCEPT如果做了DNS服务器,开启53端⼝复制代码代码如下:[root@tp ~]# iptables -A INPUT -p tcp --dport 53 -j ACCEPT如果你还做了其他的服务器,需要开启哪个端⼝,照写就⾏了.上⾯主要写的都是INPUT链,凡是不在上⾯的规则⾥的,都DROP允许icmp包通过,也就是允许ping,复制代码代码如下:[root@tp ~]# iptables -A OUTPUT -p icmp -j ACCEPT (OUTPUT设置成DROP的话) [root@tp ~]# iptables -A INPUT -p icmp -j ACCEPT (INPUT设置成DROP的话)允许loopback!(不然会导致DNS⽆法正常关闭等问题)复制代码代码如下:IPTABLES -A INPUT -i lo -p all -j ACCEPT (如果是INPUT DROP)IPTABLES -A OUTPUT -o lo -p all -j ACCEPT(如果是OUTPUT DROP)下⾯写OUTPUT链,OUTPUT链默认规则是ACCEPT,所以我们就写需要DROP(放弃)的链.减少不安全的端⼝连接复制代码代码如下:[root@tp ~]# iptables -A OUTPUT -p tcp --sport 31337 -j DROP[root@tp ~]# iptables -A OUTPUT -p tcp --dport 31337 -j DROP有些些特洛伊⽊马会扫描端⼝31337到31340(即⿊客语⾔中的 elite 端⼝)上的服务。
linux下防火墙iptables
Linux 下的防火墙iptables一、基本知识1.防火墙可以分为网络层防火墙和应用层防火墙。
Netfilter/iptables 是网络层防火墙,squid 是应用层防火墙。
23.NAT 即网络地址转换,NAT 类型有静态NAT ,动态NAT 和网络地址端口转换NAPT 。
4.Netfilter/iptables 把NAT 分成了两种,即源NAT (SNAT )和目的NAT (DNAT )。
-------------------------------------------------------------------------------------------------------------------二、iptable 的安装与配置1.安装2.启用linux路由功能3.Iptables 语法(1)[-t 表](2)[-命令 链]Input(链) output(链) Forward(链) prerouting(链) postrouting(链) output(链) 规则集 规则集 规则集 规则集 规则集 规则集首先要查看下防火墙的情况:]# iptables -L –n看到INPUT ACCEPT, FORWARD ACCEPT , OUTPUT ACCEPT我们可以这样理解iptables 由3个部分组成INPUT, FORWARD 和OUTPUT关闭所有的INPUT FORWARD OUTPUT,下面是命令实现:]# iptables -P INPUT DROP]# iptables -P FORWARD DROP]# iptables -P OUTPUT DROP]# service iptables save 进行保存firewall rules 防火墙的规则其实就是保存在/etc/sysconfig/iptables可以打开文件查看vi /etc/sysconfig/iptables禁止单个IP访问命令# iptables -A INPUT -p tcp -s 192.168.1.2 -j DROP数据包经过防火墙的路径图1比较完整地展示了一个数据包是如何经过防火墙的,考虑到节省空间,该图实际上包了三种情况:来自外部,以防火墙(本机)为目的地的包,在图1中自上至下走左边一条路径。
Linux代理服务器和防火墙配置详细解析
Linux代理服务器和防火墙配置详细解析代理/防火墙1.iptables规则表Filter(针对过滤系统):INPUT、FORWARD、OUTPUTNAT(针对地址转换系统):PREROUTING、POSTROUTING、INPUT、OUTPUTMangle(针对策略路由和特殊应用):OUTPUT、POSTROUTING2.安装包iptables-1.2.7a-23.配置防火墙1) 命令语法Usge: iptables [-t table] -[ADC] chain rule-specification [options]iptables [-t table] -I chain [rulenum] rule-specification [options]iptables [-t table] -R chain rulenum rule-specification [options]iptables [-t table] -D chain rulenum [options]iptables [-t table] -[LFZ] [chain] [options]iptables [-t table] -N chainiptables [-t table] -X [chain]iptables [-t table] -P chain target [options]iptables [-t table] -E old-chain-name new-chain-name规则操作参数说明:-A:在所选择的链末添加一条或更多规则;-D:从所选链中删除一条或更多规则。
有两种方法:把被删除规则指定为链中的序号(第一条序号为1),或者指定为要匹配的规则;-R:从选中的链中取代一条规则。
如果源地址或目的地址转换为多地址,该命令会失败。
规则序号从1开始;-I:根据给出的规则序号,向所选链中插入一条或更多规则。
所以,如果规则序号为1,规则会插入链的头部。
Linux系统防火墙配置脚本
Linux系统防火墙配置脚本# Linux系统防火墙配置脚本Linux系统防火墙是保护服务器免受未经授权访问和网络攻击的关键组件之一。
通过正确配置防火墙,可以保护服务器免受恶意攻击,提高系统的安全性。
本文将介绍如何使用脚本来配置Linux系统的防火墙,以确保服务器的安全性。
## 步骤一:安装iptables首先,我们需要安装iptables工具,它是Linux系统上管理防火墙的标准工具。
在终端中运行以下命令进行安装:```sudo apt-get install iptables```## 步骤二:创建配置文件在进行防火墙配置之前,我们将创建一个配置文件,以便在需要时进行修改和更新。
在终端中运行以下命令创建一个名为"firewall.rules"的文件:```sudo touch firewall.rules```## 步骤三:配置防火墙规则通过编辑"firewall.rules"文件,我们可以定义防火墙的规则。
以下是一个基本的防火墙配置示例:```# 允许所有对外部的连接iptables -P INPUT ACCEPTiptables -P OUTPUT ACCEPTiptables -P FORWARD ACCEPT# 允许已建立的和相关联的连接iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT# 允许SSH连接iptables -A INPUT -p tcp --dport 22 -j ACCEPT# 允许HTTP连接iptables -A INPUT -p tcp --dport 80 -j ACCEPT# 允许HTTPS连接iptables -A INPUT -p tcp --dport 443 -j ACCEPT# 其他输入连接全部拒绝iptables -A INPUT -j DROP以上配置示例中,我们允许所有对外部的连接,包括已建立的和相关联的连接。
linux关于防火墙的命令
linux关于防火墙的命令Linux防火墙命令详解防火墙是保护计算机和网络免受恶意攻击的重要组成部分。
在Linux系统中,我们可以使用一些命令来配置和管理防火墙。
本文将详细介绍几个常用的Linux防火墙命令,帮助读者更好地理解和使用防火墙。
1. iptables命令iptables命令是Linux系统中最常用的防火墙管理工具之一。
它允许管理员配置和管理数据包过滤规则,以控制网络流量。
以下是一些常用的iptables命令及其功能:(1)iptables -L:列出当前的防火墙规则。
可以使用该命令查看当前生效的规则,以及规则的来源和目的地。
(2)iptables -A INPUT -p tcp --dport 22 -j ACCEPT:允许通过SSH协议访问本地主机的22端口。
可以将此命令中的端口号和协议类型更改为需要允许的端口和协议。
(3)iptables -A INPUT -s 192.168.0.0/24 -j DROP:拒绝来自192.168.0.0/24子网的所有数据包。
可以根据需要更改源IP地址和子网掩码。
(4)iptables -A INPUT -p icmp --icmp-type echo-request -mlimit --limit 1/s -j ACCEPT:限制每秒只允许接收一个ping请求。
可以根据需要调整限制速率。
(5)iptables -P INPUT DROP:将默认的输入策略设置为拒绝。
这将导致防火墙拒绝除了已经明确允许的流量之外的所有流量。
2. ufw命令ufw(Uncomplicated Firewall)是一个简单易用的防火墙管理工具,可以让用户更方便地配置和管理防火墙规则。
以下是一些常用的ufw命令及其功能:(1)ufw enable:启用ufw防火墙。
此命令将激活防火墙并根据默认规则进行配置。
(2)ufw disable:禁用ufw防火墙。
此命令将停止防火墙并允许所有流量通过。
Linux iptablse防火墙学习
Linux iptables 详细介绍安装环境及配置方法时间:2011-06-17 21:59来源:未知作者:admin 点击:次Firewall(防火墙):组件,工作在网络边缘(主机边缘),对进出网络数据包基于一定的规则检查,并在匹配某规则时由规则定义的处理进行处理的一组功能的组件。
防火墙类型:根据工作的层次的不同来划分,常见的防火墙工作在OSI 第三层,即网络层防火墙,工作在OSI第七层的称为应用层防火墙,或者代理服务器(代理网关)。
网络层防火墙又称包过滤防火墙,在网络层对数据包进行选择,选择的依据是系统内设置的过滤逻辑,被称为访问控制列表(ACL),通过检查数据流中每个数据的源地址,目的地址,Firewall(防火墙):组件,工作在网络边缘(主机边缘),对进出网络数据包基于一定的规则检查,并在匹配某规则时由规则定义的处理进行处理的一组功能的组件。
防火墙类型:根据工作的层次的不同来划分,常见的防火墙工作在OSI第三层,即网络层防火墙,工作在OSI第七层的称为应用层防火墙,或者代理服务器(代理网关)。
网络层防火墙又称包过滤防火墙,在网络层对数据包进行选择,选择的依据是系统内设置的过滤逻辑,被称为访问控制列表(ACL),通过检查数据流中每个数据的源地址,目的地址,所用端口号和协议状态等因素,或他们的咋喝来确定是否允许该数据包通过。
优点:对用户来说透明,处理速度快且易于维护。
缺点:一旦黑客突破防火墙,就可以轻易地伪造数据包的源地址,目的地址和IP的端口号,即“IP地址伪造”。
包过滤防火墙图示代理服务型防火墙(Proxy Service)将所有跨越防火墙的网络通信链路分为两段。
当代理服务器接收到用户对某个站点的访问请求后会检查该请求是否符合控制规则。
如果规则允许,则代理服务器会替用户去那个站点取回所需要的信息,转发给用户。
内外网用户的访问都是通过代理服务器上的“链接”来实现的,从而起到了隔离防火墙内外计算机系统的作用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
用Linux的iptables做代理服务器和防火墙配置详细介绍用Linux的iptables做代理服务器和防火墙配置详细介绍代理/防火墙1.iptables规则表Filter(针对过滤系统):INPUT、FORWARD、OUTPUTNAT(针对地址转换系统):PREROUTING、POSTROUTING、INPUT、OUTPUT Mangle(针对策略路由和特殊应用):OUTPUT、POSTROUTING2.安装包iptables-1.2.7a-23.配置防火墙1)命令语法Usge: iptables [-t table] -[ADC] chain rule-specification [options]iptables [-t table] -I chain [rulenum] rule-specification [options]iptables [-t table] -R chain rulenum rule-specification [options]iptables [-t table] -D chain rulenum [options]iptables [-t table] -[LFZ] [chain] [options]iptables [-t table] -N chainiptables [-t table] -X [chain]iptables [-t table] -P chain target [options]iptables [-t table] -E old-chain-name new-chain-name规则操作参数说明:-A:在所选择的链末添加一条或更多规则;-D:从所选链中删除一条或更多规则。
有两种方法:把被删除规则指定为链中的序号(第一条序号为1),或者指定为要匹配的规则;-R:从选中的链中取代一条规则。
如果源地址或目的地址转换为多地址,该命令会失败。
规则序号从1开始;-I:根据给出的规则序号,向所选链中插入一条或更多规则。
所以,如果规则序号为1,规则会插入链的头部。
这也是不指定规则序号时的默认方式;-L:现实所选链的所有规则。
如果没有所选链,将显示所有链。
也可以和z选项一起用,这是链会自动列出和归零;-F:清空所选链。
这等于把所有规则一个个删除;-Z:把所有链的包以及字节的计数器清空;-N:根据给出的名称建立一个新的用户定义链。
这必须保证没有同名的链存在;-X:删除指定的用户自定义链。
这个链必须没有被引用,如果被引用,在删除之前必须删除或者替换与之有关的规则。
如果没有给出参数,这条命令将试着删除每个非内建的链;-P:设置链的目标规则;-E:根据用户给出的名字对指定链进行重名名;规则定义参数说明:-p [!]protocol:规则或者包检查(待查包)的协议。
指定协议可以是TCP、UDP、ICMP中的一个或者全部,也可以是数值,代表这些协议中的某一个。
当然也可以使用在/etc/protocols中定义的协议名。
在协议名前加上"!"表示相反的规则。
数字0相当于所有all。
Protocol all会匹配所有协议,而且这是缺省时的选项。
在和check 命令结合时,all可以不被使用;-s[!]address[/mask]:指定源地址,可以是主机名、网络名和清楚地IP地址。
mask说明可以是网络掩码或清楚的数字,在网络掩码的左边指定网络掩码左边"1"的个数,因此,mask 值为24等于255.255.255.0。
在指定地址前加上"!"说明指定了相反的地址段。
标志--src是这个选项的简写;-d[!]address[/mask]:指定目标地址,要获取详细说明请参见-s标志的说明。
标志--dst是这个选项的简写;-j target:指定规则的目标:也就是说包匹配应当做什么。
目标可以为ACCEPT(通过)、DROP(删除)、RETURN(返回)、REDIRECT(重新指向)、SNAT(源地址转换)、DNAT(目标地址转换)、MASQUERADE(伪装)等,还可以是用户自定义链。
如果规则的这个选项被忽略,那么匹配的过程不会对包产生影响,不过规则的计数器会增加;-i[!][name]:待选的可接受包接口名称,包通过该接口接收(在链INPUT、FORWORD和PREROUTING中进入的包)。
当在接口名前使用"!"说明后,指的是相反的名称,如果接口名后面加上"+",则所有以次接口名开头的接口都会被匹配。
如果这个选项被忽略,会假设为"+",那么将匹配任意接口;-O[!][NAME]:这是包经由该接口送出的可选的出口名称,包通过该口输出(在链FORWARD、OUTPUT和POSTROUTING中送出的包)。
其他设置同上。
2)匹配规则扩展选项:tcp:当指定-p tcp,且未指定其他匹配的扩展,则装载这些扩展。
--source-port[!][port[:port]]:源端口或端口范围指定。
可以是服务名或端口号。
使用格式端口:端口也可以指定包含的(端口)范围。
如果忽略首端口号,默认是0,如果忽略末端口号,默认是65535,如果第二个端口号大于第一个,则他们进行交换。
这个选项可以使用--sport的别名;--destionation-port[!][port:[port]]:目标端口或端口范围指定。
这个选项可以使用--dport别名来代替;--tcp-flags[!]mask comp:匹配指定的TCP标记。
第一个参数是要检查的标记,一个用逗号分开的列表,第二个参数是用逗号分开的标记表,是必须设置的。
标记如:SYN(同步)、ACK (应答)、FIN(结束)、RST(重设)、URG(紧急)、PSH(送入)ALLNONE。
命令iptables -A FORWARD -p tcp --tcp-flags SYN, ACK, FIN, RST SYN只匹配那些设置了SYN标记而没有设置ACK、FIN和RST标记的包。
udp:当指定-p icmp且未指定其他匹配的扩展时,则装载这些扩展。
--icmp-type[!]typename:这个选项允许指定ICMP类型,可以是一个数值型的ICMP类型,或者是某个由命令"iptables -p icmp -h"所显示的ICMP类型名。
mac:--mac-source[!]address:匹配物理地址。
必须是XX:XX:XX:XX:XX这样的格式。
注意,他只对来自以太设备并进入PREROUTING、FORWORD和INPUT链的包有效。
limit:这个模块匹配标志用来对网络数据的通过速率进行标记,他和LOG目标结合使用,给出有限的登陆数。
当达到这个极限值时,使用这个扩展包的规则将进行匹配。
(除非使用了!标记),他的扩展选项包括:--limit rate:最大平均匹配速率,可赋的值有"/second"、"/minute"、"/hour"或"/day"这样的单位,默认是"3/hour";--limit-burst number:待匹配包初始个数的最大值。
若前面指定的极限还没达到这个数值,则该数字加1。
默认值是5。
multiport:这个模块匹配一组源端口或目标端口,最多可以指定15个端口。
只能和-p tcp或者-p udp连着使用:--source-port[port[,port]]:如果源端口是其中一个给定端口,则匹配;--destination-port[port[,port]]:如果目标端口是其中一个给定端口,则匹配;--port[port[,port]]:若源端口和目的端口相等并与某个给定端口相等,则匹配。
owner:此扩展为本地生成包匹配包的创建者,只能用于OUTPUT链,而且,有一些包(如ICMP ping应答)还可能没有所有者,因此永远不会匹配:--uid-owner userid:如果给出有效的user id,那么匹配他的进程产生的包;--gid-owner groupid:如果给出有效的group id,那么匹配它的进程产生的包;--sid-owner sessionid:根据给出的会话组成匹配该进程产生的包。
REJECT:作为对匹配的包的相应,返回一个错误的包,其他情况下和DROP相同。
此目标只适用于INPUT、FORWARD和OUTPUT链,以及调用这些链的用户自定义链。
这几个选项控制返回的错误包的特性:--reject-with type:其中的type可以是icmp-net-unreachable、icmp-host-unreachable、icmp-port- unreachable、icmp-porto-unreachable、icmp-net-prohibited或者icmp-host- prohibited,该类型会返回相应的ICMP错误信息(默认是port-unreachable)。
选项echo-reply也是允许的;它只能用于指定ICMP ping包的规则中,生成ping的回应。
SNAT:这个目标只适用于nat表的POSTROUTING链。
它规定修改包的源地址(此连接以后所有的包都会被影响),停止对规则的检查:--to-source [][:port-port]:可以指定一个单一的新IP地址,一个IP地址范围,也可以附加一个端口范围(只能在指定-p tcp或者-p udp的规则里)。
如果未指定端口范围,源端口是512以下的端口惠被安排为其他的512以下的端口;512到1024之间的端口会被安排为1024以下的,其他端口会被安排为1024或以上。
如果可能,端口不会被修改;--to-destiontion [][:port-port]:可以指定一个单一的新的IP地址,一个IP地址范围,也可以附加一个端口范围(只能在指定-p tcp或者-p udp的规则里)。
如果未指定端口范围,目标端口不会被修改。
MASQUERADE:只用于nat表的POSTROUTING链。
只能用于动态获取ip(拨号)连接:如果拥有静态IP地址,要用SNAT。
伪装相当于给包发出时所经过接口的IP地址设置一个映像,当借口关闭时,连接会终止。
这是因为,当下一次拨号时,未必是相同的接口地址(以后所有建立的连接都将关闭)。
他有一个选项:--to-ports []:指定使用的源端口范围,覆盖默认的SNAT源地址选择。
这个选项只适用于指定了-p tcp或者-p udp的规则。