Linux下iptables
Linux命令高级技巧使用iptables命令进行防火墙配置
Linux命令高级技巧使用iptables命令进行防火墙配置Linux系统中,iptables是一个非常常用的命令,用于配置Linux操作系统的防火墙规则。
掌握iptables的高级技巧,可以帮助我们更好地保护系统安全和网络通信。
本文将介绍使用iptables命令进行防火墙配置的一些高级技巧,以帮助读者更好地理解和运用这个强大的工具。
一、什么是iptables命令iptables是一个在Linux内核中实现的防火墙工具,用于管理网络通信规则。
它允许我们定义输入、输出和转发数据包的规则,从而控制网络流量。
使用iptables命令,我们可以过滤和转发数据包,以及进行网络地址转换和端口转发等操作。
二、iptables配置文件在开始使用iptables命令之前,了解iptables的配置文件将有助于更好地理解和调整防火墙规则。
iptables的配置文件位于"/etc/sysconfig/iptables"路径下,可以使用文本编辑器打开进行编辑。
三、基本的iptables规则1. 允许特定IP地址访问若想允许特定IP地址访问服务器的某个端口,可以使用如下命令:```iptables -A INPUT -p tcp -s IP地址 --dport 端口号 -j ACCEPT```例如,若要允许IP地址为192.168.1.100的主机访问SSH端口(22),可以使用以下命令:```iptables -A INPUT -p tcp -s 192.168.1.100 --dport 22 -j ACCEPT```2. 允许特定IP地址范围访问如果要允许一个IP地址范围访问特定端口,可以通过指定源IP范围来实现。
例如,要允许192.168.1.0/24子网段中的主机访问SSH端口,可以执行如下命令:```iptables -A INPUT -p tcp -s 192.168.1.0/24 --dport 22 -j ACCEPT```此规则将允许192.168.1.0/24网段中的所有主机访问SSH端口。
linux中iptables配置文件及命令详解详解
linux中iptables配置⽂件及命令详解详解iptables配置⽂件直接改iptables配置就可以了:vim /etc/sysconfig/iptables。
1、关闭所有的 INPUT FORWARD OUTPUT 只对某些端⼝开放。
下⾯是命令实现:iptables -P INPUT DROPiptables -P FORWARD DROPiptables -P OUTPUT DROP再⽤命令 iptables -L -n 查看是否设置好,好看到全部 DROP 了这样的设置好了,我们只是临时的,重启服务器还是会恢复原来没有设置的状态还要使⽤ service iptables save 进⾏保存看到信息 firewall rules 防⽕墙的规则其实就是保存在 /etc/sysconfig/iptables可以打开⽂件查看 vi /etc/sysconfig/iptables2、下⾯我只打开22端⼝,看我是如何操作的,就是下⾯2个语句(⼀下为命令⾏模式)iptables -A INPUT -p tcp --dport 22 -j ACCEPTiptables -A OUTPUT -p tcp --sport 22 -j ACCEPT再查看下 iptables -L -n 是否添加上去, 看到添加了Chain INPUT (policy DROP)target prot opt source destinationACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22Chain FORWARD (policy DROP)target prot opt source destinationChain OUTPUT (policy DROP)target prot opt source destinationACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:22现在Linux服务器只打开了22端⼝,⽤putty.exe测试⼀下是否可以链接上去。
linux环境下Iptables规则实现IP过滤
二、linux环境下Iptables规则实现IP过滤1.首先远程连接,登录到服务器(或本地打开终端)。
2.添加iptables规则,过滤IP: 172.0.0.191 (更多规则见底部)iptables -I INPUT -s 172.0.0.191 -j DROP3.保存iptables配置。
service iptables save4.查看是否保存成功cat /etc/sysconfig/iptablesservice iptables status更多IP规则参考:①只允许某个网段通过:iptables -P INPUT DROPiptables -I INPUT -s 172.0.0.0/8 -j ACCEPT②屏蔽单个IP的命令是iptables -I INPUT -s 123.45.6.7 -j DROP③封整个段即从123.0.0.1到123.255.255.254的命令iptables -I INPUT -s 123.0.0.0/8 -j DROP④封IP段即从123.45.0.1到123.45.255.254的命令iptables -I INPUT -s 124.45.0.0/16 -j DROP⑤封IP段即从123.45.6.1到123.45.6.254的命令是iptables -I INPUT -s 123.45.6.0/24 -j DROP⑥关闭所有端口iptables -P INPUT DROPiptables -P FORWARD DROPiptables -P OUTPUT DROP⑦开启22端口iptables -A INPUT -p tcp --dport 22 -j ACCEPTiptables -A OUTPUT -p tcp --sport 22 -j ACCEPT⑧开启80端口,HTTP服务iptables -A INPUT -p tcp --dport 80 -j ACCEPTiptables -A OUTPUT -p tcp --sport 80 -j ACCEPT ⑨开启3306端口,MYSQL服务iptables -A INPUT -p tcp --dport 3306 -j ACCEPT iptables -A OUTPUT -p tcp --sport 3306 -j ACCEPT ⑩开启20,21端口,FTP服务iptables -A INPUT -p tcp --dport 21 -j ACCEPTiptables -A INPUT -p tcp --dport 20 -j ACCEPTiptables -A OUTPUT -p tcp --sport 21 -j ACCEPT iptables -A OUTPUT -p tcp --sport 20 -j ACCEPT 11打开PINGiptables -A OUTPUT -p icmp -j ACCEPTiptables -A INPUT -p icmp -j ACCEPT。
Linux命令技巧使用iptables进行高级网络包过滤和流量控制
Linux命令技巧使用iptables进行高级网络包过滤和流量控制在Linux系统中,iptables是一个非常实用的工具,可以通过它进行高级网络包过滤和流量控制。
在本文中,我们将探讨如何使用iptables 命令来实现这些功能。
一、iptables简介iptables是Linux系统中的一个防火墙工具,它可以监控网络流量并根据用户定义的规则来过滤流量。
通过iptables,我们可以实现灵活的流量控制和网络包过滤。
使用iptables命令,可以创建规则集,以控制进出网络的数据包。
二、iptables基本概念1. 表(Table):iptables规则被组织成表的形式,每个表都包含一组规则链。
2. 链(Chain):链由一系列规则组成,用于决定对网络包的处理方式。
3. 规则(Rule):规则是iptables的基本组成单元,包含匹配规则和目标动作。
4. 目标动作(Target):目标动作指定匹配规则成功后的动作,如接受、拒绝或重定向。
三、iptables命令示例1. 查看iptables规则:```iptables -L```该命令将显示当前系统中的iptables规则。
2. 添加一条规则:```iptables -A INPUT -s 192.168.0.1 -j ACCEPT```该命令将添加一条输入规则,允许来自IP地址为192.168.0.1的主机的数据包通过。
3. 删除一条规则:```iptables -D INPUT -s 192.168.0.1 -j ACCEPT```该命令将删除之前添加的输入规则。
4. 清空iptables规则:```iptables -F```该命令将清空所有的iptables规则。
四、iptables实际应用1. 高级网络包过滤:iptables可以通过设置规则来过滤特定类型的网络包。
例如,我们可以通过以下命令来禁止从指定IP地址(192.168.0.1)进行SSH连接:```iptables -A INPUT -s 192.168.0.1 -p tcp --dport 22 -j DROP```该命令将禁止来自192.168.0.1的主机通过SSH连接。
Linux命令高级技巧使用iptables进行端口转发和NAT
Linux命令高级技巧使用iptables进行端口转发和NAT在Linux系统中,iptables是一个非常强大的工具,用于配置和管理网络包过滤规则。
除了基本的网络包过滤功能,iptables还可以用于端口转发和网络地址转换(NAT)。
本文将介绍如何使用iptables进行端口转发和NAT,以及一些高级技巧。
1. 端口转发端口转发是一种将网络流量从一个端口转发到另一个端口的技术。
它在网络中广泛应用于代理服务器、端口映射、负载均衡等场景。
下面是使用iptables进行端口转发的示例命令:```iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 192.168.0.100:80```在上述命令中,`-t nat`表示我们要操作的是`nat`表,`-A PREROUTING`表示将规则添加到`PREROUTING`链中,`-p tcp --dport 8080`表示匹配TCP协议和目标端口号8080,`-j DNAT`表示采取目标网络地址转换,`--to-destination 192.168.0.100:80`表示将数据包转发到目标IP地址192.168.0.100的80端口。
2. 网络地址转换(NAT)网络地址转换(NAT)是一种将私有网络中的IP地址转换为公共网络中的IP地址的技术。
它广泛应用于家庭网络和企业网络中,允许多台设备共享一个公共IP地址。
下面是使用iptables进行NAT的示例命令:```iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE```在上述命令中,`-t nat`表示我们要操作的是`nat`表,`-A POSTROUTING`表示将规则添加到`POSTROUTING`链中,`-s192.168.0.0/24`表示源IP地址为192.168.0.0/24的网络,`-o eth0`表示出去的网络接口为eth0,`-j MASQUERADE`表示使用动态地址转换。
Linux命令高级技巧使用iptables命令配置和管理防火墙规则
Linux命令高级技巧使用iptables命令配置和管理防火墙规则Linux系统中有许多命令可以使用,其中iptables命令是用于配置和管理防火墙规则的重要工具。
本文将介绍一些使用iptables命令的高级技巧,帮助读者更好地理解和使用这个命令。
一、iptables命令简介iptables是一个用于IPv4包过滤和控制Linux内核防火墙服务的用户空间工具。
它可以进行网络地址转换(NAT)、数据包过滤、端口重定向等操作,是保护计算机系统免受恶意攻击的重要工具。
二、iptables命令基本语法iptables命令的基本语法如下所示:iptables [选项] [链] [规则规格]其中,选项是可选的,用于指定不同的功能;链用于指定规则要应用的链,例如INPUT、FORWARD、OUTPUT等;规则规格用于指定具体的防火墙规则。
三、iptables命令常用选项1. -A:追加一条规则到某个链的末尾2. -I:向某个链中的指定位置插入一条规则3. -D:从某个链中删除一条规则4. -P:设置某个链的默认策略5. -L:列出某个链中的所有规则6. -F:清除某个链中的所有规则四、iptables命令高级技巧1. 配置端口转发使用iptables命令可以轻松实现端口转发,将外部请求转发到内部服务器。
例如,要将外部的SSH请求转发到内部服务器的SSH端口,可以使用如下命令:iptables -t nat -A PREROUTING -p tcp --dport 22 -j DNAT --to-destination 内部服务器IP地址:22这样,外部用户连接到本机的22端口时,请求将被转发至内部服务器的22端口。
2. 过滤IP地址通过iptables命令,可以方便地过滤特定的IP地址或IP地址段。
例如,要拒绝来自某个IP地址的所有请求,可以使用如下命令:iptables -A INPUT -s 某个IP地址 -j DROP这样,来自该IP地址的请求将被直接拒绝。
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进行网络防火墙配置Linux命令高级技巧:使用iptables进行网络防火墙配置在网络安全领域,配置网络防火墙是一项关键任务。
为了保护网络免受未授权访问和恶意攻击,管理员需要掌握一些高级技巧来使用Linux命令iptables进行网络防火墙配置。
本文将介绍iptables的基本概念和使用方法,并提供一些高级技巧来加强网络防火墙的安全性。
1. iptables简介iptables是Linux系统中一款强大的防火墙工具,它能够根据管理员设定的规则筛选、修改和重定向网络数据。
iptables提供了一套规则集,允许管理员创建自定义的规则来控制数据包的流向和处理方式。
常用的iptables命令包括iptables、iptables-save、iptables-restore和iptables-apply等。
2. 基本用法iptables命令的基本语法如下:```bashiptables [-t 表名] 命令 [链名] [规则选项]```其中,表名可以是filter、nat或mangle,命令可以是-A(追加规则)、-D(删除规则)、-I(插入规则)等,链名可以是INPUT、FORWARD或OUTPUT等,规则选项包括-s(源IP地址)、-d(目标IP地址)、-p(协议类型)和-j(动作)等。
3. 添加规则为了保护网络,我们需要添加一些规则来控制数据包的流向和允许的服务。
例如,我们可以使用以下命令允许SSH连接: ```bashiptables -A INPUT -p tcp --dport 22 -j ACCEPT```上述命令在INPUT链中追加了一条规则,允许TCP协议的22端口的连接请求。
可以根据需要设置源IP地址或目标IP地址等其他规则选项。
4. 删除规则如果某条规则不再需要,可以使用iptables命令删除。
例如,我们可以使用以下命令删除上一节中添加的SSH规则:```bashiptables -D INPUT -p tcp --dport 22 -j ACCEPT```上述命令将从INPUT链中删除匹配的规则。
如何使用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 服务。
详解Linuxiptables命令
详解Linuxiptables命令iptables 是 Linux 管理员⽤来设置 IPv4 数据包过滤条件和 NAT 的命令⾏⼯具。
iptables ⼯具运⾏在⽤户态,主要是设置各种规则。
⽽ netfilter 则运⾏在内核态,执⾏那些设置好的规则。
查看 iptables 的链和规则查看规则的命令格式为:iptables [-t tables] [-L] [-nv]-t :后⾯接 table ,例如 nat 或 filter ,若省略此项⽬,则使⽤默认的 filter-L :列出某个 table 的所有链或某个链的规则-n :直接显⽰ IP,速度会快很多-v :列出更多的信息,包括通过该规则的数据包总位数、相关的⽹络接⼝等列出 filter table INPUT 链的规则:$ sudo iptables -L INPUT列出 nat table 三条链的规则:$ sudo iptables -t nat -L -n列出 filter table 三条链的规则:$ sudo iptables -L红框中的内容为链的名称及其默认策略,filter 表中所有链的默认策略都是 ACCEPT。
红框下⾯的⾏代表什么呢?target:代表进⾏的动作,ACCEPT 是放⾏,REJECT 是拒绝,DROP 则是丢弃数据包。
port:代表使⽤的协议,主要有 tcp、udp 和 icmp 三种。
opt:额外的选项说明。
source:规则针对的来源 IP。
destination:规则针对的⽬标 IP。
因为默认情况下没有添加⾃定义的规则,所以上图中这些⾏下⾯都是空的。
清除本机防⽕墙规则清除规则的命令格式如下:iptables [-t tables] [-FXZ]-F:清除所有已制定的规则-X:删除所有使⽤者⾃定义的 chain(其是 tables)-Z:将所有的 chain 的计数与流量统计都清零如果我们要制订⼀套防⽕墙规则,⼀般会先清除现有的规则,然后从头开始创建新的规则。
linux iptables移除指定端口的规则
Linux iptables移除指定端口的规则在Linux系统中,iptables是一个强大的工具,用于配置和管理网络包过滤规则。
这些规则可以决定如何处理通过网络接口的数据包,包括接受、拒绝、转发等。
当我们需要移除针对特定端口的规则时,iptables 同样提供了相应的功能。
本文将详细介绍如何使用iptables移除指定端口的规则。
一、iptables简介iptables是Linux内核的一个组成部分,它允许用户定义防火墙规则来过滤进入和离开系统的数据包。
这些规则可以按照特定的顺序组织成链(chains),每个链包含一系列的目标策略,这些策略决定了如何处理匹配规则的数据包。
二、查找指定端口的规则在移除规则之前,我们首先需要找到要移除的规则。
可以使用`iptables -L`命令列出当前的规则,并通过grep命令过滤出特定端口的规则。
例如,要查找针对端口80的规则,可以执行以下命令:```bashiptables -L -n -v | grep ":80 "```这里,`-L`选项表示列出规则,`-n`选项表示以数字形式显示地址和端口,`-v`选项表示显示详细信息。
grep命令则用于搜索包含端口80的行。
三、移除指定端口的规则找到要移除的规则后,我们可以使用`iptables -D`命令来删除它。
`-D`选项表示从链中删除一条规则。
要删除针对特定端口的规则,我们需要指定该规则所在的链和规则的详细信息。
例如,假设我们要删除INPUT链中针对TCP协议端口80的一条规则,可以执行以下命令:```bashiptables -D INPUT -p tcp --dport 80 -j ACCEPT```这里,`-D INPUT`表示从INPUT链中删除规则,`-p tcp`表示匹配TCP 协议,`--dport 80`表示匹配目标端口为80的数据包,`-j ACCEPT`表示该规则的目标策略是接受数据包。
Linux防火墙iptables命令详解
Linux防⽕墙iptables命令详解iptables -Fiptables -Xiptables -F -t mangleiptables -t mangle -Xiptables -F -t natiptables -t nat -X⾸先,把三个表清空,把⾃建的规则清空。
iptables -P INPUT DROPiptables -P OUTPUT DROPiptables -P FORWARD ACCEPT设定INPUT、OUTPUT的默认策略为DROP,FORWARD为ACCEPT。
iptables -A INPUT -i lo -j ACCEPTiptables -A OUTPUT -o lo -j ACCEPT先把“回环”打开,以免有不必要的⿇烦。
iptables -A INPUT -i eth+ -p icmp --icmp-type 8 -j ACCEPTiptables -A OUTPUT -o eth+ -p icmp --icmp-type 0 -j ACCEPT在所有⽹卡上打开ping功能,便于维护和检测。
iptables -A INPUT -i eth0 -s 192.168.100.250 -d 192.168.100.1 -p tcp --dport 22 -j ACCEPTiptables -A OUTPUT -o eth0 -d 192.168.100.250 -s 192.168.100.1 -p tcp --sport 22 -j ACCEPT打开22端⼝,允许远程管理。
(设定了很多的附加条件:管理机器IP必须是250,并且必须从eth0⽹卡进⼊)iptables -A INPUT -i eth0 -s 192.168.100.0/24 -p tcp --dport 3128 -m state --state NEW,ESTABLISHED -j ACCEPTiptables -A OUTPUT -o eth0 -d 192.168.100.0/24 -p tcp --sport 3128 -m state --state ESTABLISHED -j ACCEPTiptables -A INPUT -i eth1 -s 192.168.168.0/24 -p tcp --dport 3128 -m state --state NEW,ESTABLISHED -j ACCEPTiptables -A OUTPUT -o eth1 -d 192.168.168.0/24 -p tcp --sport 3128 -m state --state ESTABLISHED -j ACCEPTiptables -A INPUT -i eth2 -p tcp --dport 32768:61000 -m state --state ESTABLISHED -j ACCEPTiptables -A OUTPUT -o eth2 -p tcp --sport 32768:61000 -m state --state NEW,ESTABLISHED -j ACCEPTiptables -A OUTPUT -o eth2 -p udp --dport 53 -j ACCEPTiptables -A INPUT -i eth2 -p udp --sport 53 -j ACCEPT上⾯这⼏句是⽐较头痛的,我做逐⼀解释。
linux下IPTABLES配置详解
linux下IPTABLES配置详解-t<表>:指定要操纵的表;-A:向规则链中添加条⽬;-D:从规则链中删除条⽬;-i:向规则链中插⼊条⽬;-R:替换规则链中的条⽬;-L:显⽰规则链中已有的条⽬;-F:清楚规则链中已有的条⽬;-Z:清空规则链中的数据包计算器和字节计数器;-N:创建新的⽤户⾃定义规则链;-P:定义规则链中的默认⽬标;-h:显⽰帮助信息;-p:指定要匹配的数据包协议类型;-s:指定要匹配的数据包源地址;-j<⽬标>:指定要跳转的⽬标;-i<⽹络接⼝>:指定数据包进⼊本机的⽹络接⼝;-o<⽹络接⼝>:指定数据包要离开本机所使⽤的⽹络接⼝。
iptables命令选项输⼊顺序:iptables -t 表名 <-A/I/D/R> 规则链名 [规则号] <-i/o ⽹卡名> -p 协议名 <-s 源IP/源⼦⽹> --sport 源端⼝ <-d ⽬标IP/⽬标⼦⽹> --dport ⽬标端⼝ -j 动作表名包括:raw:⾼级功能,如:⽹址过滤。
mangle:数据包修改(QOS),⽤于实现服务质量。
net:地址转换,⽤于⽹关路由器。
filter:包过滤,⽤于防⽕墙规则。
规则链名包括:INPUT链:处理输⼊数据包。
OUTPUT链:处理输出数据包。
PORWARD链:处理转发数据包。
PREROUTING链:⽤于⽬标地址转换(DNAT)。
POSTOUTING链:⽤于源地址转换(SNAT)。
动作包括::接收数据包。
DROP:丢弃数据包。
REDIRECT:重定向、映射、透明代理。
SNAT:源地址转换。
DNAT:⽬标地址转换。
MASQUERADE:IP伪装(NAT),⽤于ADSL。
LOG:⽇志记录。
实例清除已有iptables规则iptables -Fiptables -Xiptables -Z开放指定的端⼝iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT #允许本地回环接⼝(即运⾏本机访问本机)iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT #允许已建⽴的或相关连的通⾏iptables -A OUTPUT -j ACCEPT #允许所有本机向外的访问iptables -A INPUT -p tcp --dport 22 -j ACCEPT #允许访问22端⼝iptables -A INPUT -p tcp --dport 80 -j ACCEPT #允许访问80端⼝iptables -A INPUT -p tcp --dport 21 -j ACCEPT #允许服务的21端⼝iptables -A INPUT -p tcp --dport 20 -j ACCEPT #允许FTP服务的20端⼝iptables -A INPUT -j #禁⽌其他未允许的规则访问iptables -A FORWARD -j REJECT #禁⽌其他未允许的规则访问屏蔽IPiptables -I INPUT -s 123.45.6.7 -j DROP #屏蔽单个IP的命令iptables -I INPUT -s 123.0.0.0/8 -j DROP #封整个段即从123.0.0.1到123.255.255.254的命令iptables -I INPUT -s 124.45.0.0/16 -j DROP #封IP段即从123.45.0.1到123.45.255.254的命令iptables -I INPUT -s 123.45.6.0/24 -j DROP #封IP段即从123.45.6.1到123.45.6.254的命令是查看已添加的iptables规则iptables -L -n -vChain INPUT (policy DROP 48106 packets, 2690K bytes)pkts bytes target prot opt in out source destination5075 589K ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0191K 90M ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:221499K 133M ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:804364K 6351M ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED6256 327K ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)pkts bytes target prot opt in out source destinationChain OUTPUT (policy ACCEPT 3382K packets, 1819M bytes)pkts bytes target prot opt in out source destination5075 589K ACCEPT all -- * lo 0.0.0.0/0 0.0.0.0/0删除已添加的iptables规则将所有iptables以序号标记显⽰,执⾏:iptables -L -n --line-numbers⽐如要删除INPUT⾥序号为8的规则,执⾏:iptables -D INPUT 8我们来配置⼀个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,ESTABLISHEDACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:25REJECT 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 端⼝)上的服务。
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命令高级技巧使用iptables进行流量控制和限制
Linux命令高级技巧使用iptables进行流量控制和限制Linux命令高级技巧:使用iptables进行流量控制和限制在Linux操作系统中,iptables是一种用于管理网络数据包的工具。
它提供了一种有效的方法来控制和限制网络流量,以保护网络安全和提高网络性能。
本文将介绍如何使用iptables进行流量控制和限制的高级技巧。
1. 什么是iptables?iptables是Linux系统中的一个防火墙工具,它可以在网络层面上控制入站和出站的数据包。
使用iptables,我们可以定义各种规则和策略来过滤、重定向和修改数据包,从而实现对网络流量的控制和限制。
2. 安装和基本配置在开始使用iptables之前,我们需要先安装并配置它。
大多数Linux系统中,iptables已经预先安装好了,通过以下命令可以检查它是否已经安装:```shelliptables --version```如果显示了版本信息,则说明iptables已经安装了。
如果没有安装,可以通过包管理器来安装它,如以下命令:```shellsudo apt-get install iptables```安装完成后,我们可以开始配置iptables。
iptables的配置文件位于`/etc/sysconfig/iptables`(Red Hat系列发行版)或者`/etc/iptables/iptables.rules`(Debian系列发行版)。
可以使用文本编辑器打开配置文件,并根据需要添加或修改规则。
每个规则由一个或多个规则链组成,如输入链(INPUT)、输出链(OUTPUT)和转发链(FORWARD),每个链又由多个规则构成。
3. 流量控制规则使用iptables进行流量控制和限制最常见的场景就是针对特定的IP地址、端口或协议进行限制。
以下是一些常用的流量控制规则的示例:- 允许特定IP地址的访问:```shelliptables -A INPUT -s 192.168.1.100 -j ACCEPT```这个规则允许IP地址为192.168.1.100的主机访问本机。
linux命令iptables的用法
Linux命令iptables的用法概述i p ta bl es是L in ux操作系统中的一个重要工具,它用于配置L in ux 内核中的网络过滤规则。
通过使用ip ta bl e s,我们可以控制网络数据包的流向和访问权限,实现网络安全的管理和控制。
本文将详细介绍i p ta bl es的用法和常见操作。
一、iptable s简介i p ta bl es是一个内核空间的防火墙工具,用于过滤、修改、传递数据包,提供网络安全的策略控制。
它基于N et fi lt er框架,能够实时监控网络数据包,并根据预先定义的规则进行处理。
ip ta bl es可以在L i nu x终端上运行,并可以通过配置文件持久化规则。
二、iptable s的基本用法1.查看当前i p t a bl e s规则要查看当前i pt ab le s规则,可以使用以下命令:i p ta bl es-L该命令将显示当前的i pt ab le s规则表和链的信息。
2.添加规则要添加一条i pt ab le s规则,可以使用以下命令:i p ta bl es-A<链名><匹配条件><动作>其中,`链名`表示ip t ab le s中的链,如I NP UT、O UT PU T、F OR WA RD 等;`匹配条件`用于对数据包进行匹配,如源I P、目标IP、协议等;`动作`表示对匹配的数据包采取的操作,如A CC EP T、DR OP等。
3.删除规则要删除一条i pt ab le s规则,可以使用以下命令:i p ta bl es-D<链名><规则序号>其中,`链名`表示要删除规则的链,`规则序号`表示要删除的规则在链中的位置。
4.修改规则要修改一条i pt ab le s规则,可以先删除旧规则,再添加新规则。
三、iptable s常用命令示例1.允许所有本地流量i p ta bl es-A IN PU T-i l o-jA CC EP T该命令允许所有本地流量通过IN PU T链。
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 iptable 规则
linux iptable 规则Linux iptables规则是网络安全中常用的工具之一。
在本文中,我们将介绍iptables规则的基本概念以及如何使用它来保护我们的网络。
我们将按照以下步骤逐步讲解iptables规则的使用。
第一步:什么是iptables?iptables是一个Linux内核中的工具集,用于管理网络连接和数据包过滤。
它允许我们在Linux系统上设置和配置防火墙规则,以保护网络免受未经授权的访问和网络攻击。
第二步:iptables的基本概念在开始详细了解iptables规则之前,我们需要理解一些基本概念。
1. 链(Chain):链是iptables规则的核心。
它们是iptables规则列表的一部分,用于定义要应用的规则的位置。
常见的链包括INPUT(对入站数据包进行过滤)、OUTPUT(对出站数据包进行过滤)和FORWARD(用于路由数据包)。
2. 表(Table):iptables规则集合在一起形成表。
常见的表包括filter(用于数据包过滤)、nat(用于网络地址转换)和mangle(用于分析和修改数据包)。
3. 规则(Rule):规则是iptables中实际执行的指令。
它们定义了应用于特定数据包的操作,例如允许、丢弃、重定向或修改数据包。
第三步:使用iptables规则在这一步中,我们将详细介绍如何使用iptables规则来保护我们的网络。
1. 查看当前的iptables规则:要查看当前的iptables规则,可以使用以下命令:iptables -L2. 添加规则:要添加规则,可以使用以下命令:iptables -A <链> -p <协议> dport <端口> -j <动作>其中,`<链>`是要添加规则的链,`<协议>`是数据包的协议(如TCP 或UDP),`<端口>`是数据包的目标端口,`<动作>`是对数据包的处理动作(如ACCEPT、DROP或REJECT)。
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 255 ACCEPT 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:5353 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:631 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 stateRELATED,ESTABLISHEDACCEPT 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-withicmp-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 端口)上的服务。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Linux防火墙iptables学习笔记(一)入门要领要在网上传输的数据会被分成许多小的数据包,我们一旦接通了网络,会有很多数据包进入,离开,或者经过我们的计算机。
首先我们要弄明白,防火墙将怎么对待这些数据包。
这些数据包会经过一些相应的规则链,比如要进入你的计算机的数据包会首先进入INPUT链,从我们的计算机发出的数据包会经过OUTPUT链,如果一台计算机做一个网络的网关(处于内网和外网两个网络连接的两台计算机,这两台计算机之间相互通讯的数据包会经过这台计算机,这台计算机即相当于一个路由器),可能会有很多数据经过这台计算机,那么这些数据包必经FORWARD链,FORWARD链即数据转发链。
明白了这些“链”的概念我们才能进一步学习使用iptables。
现在我们再来分析一下iptables规则是如何工作的,假如我们要访问网站,我们要对发出请求,这些数据包要经过OUTPUT链,在请求发出前,Linux的内核会在OUTPUT链中检查有没有相应的规则适合这个数据包,如果没有相应的规则,OUTPUT链还会有默认的规则,或者允许,或者不允许(事实上,不允许有两种,一种是把请求拒绝,告诉发出请示的程序被拒绝;还有一种是丢弃,让请求发出者傻等,直到超时)。
如果得到允许,请求就发出了,而服务器返回的数据包会经过INPUT链,当然,INPUT链中也会有相应的规则等着它。
下面我们介绍几个iptable的命令iptables-L[-t filter]这条命令是显示当前有什么已经设置好的防火墙规则,可能的显示结果如下:Chain INPUT(policy ACCEPT)target prot opt source destination Chain FORWARD(policy ACCEPT)target prot opt source destination Chain OUTPUT(policy ACCEPT)target prot opt source destination 从这里我们可以看出,iptables有三个链分别是INPUT OUTPUT和FORWARD.其中INPUT是外部数据要进过我们主机的第一外关卡(当然你前面也可以再加硬件防火墙).OUTPUT是你的主机的数据送出时要做的过绿卡FORWARD是转发你在NAT时才会用到要设置iptables主要是对这三条链进行设置,当然也包括-nat的另外三个链我们以后再说你要用iptables你就得启到它启动命令service iptables restart iptables的默认设置为三条链都是ACCEPT如下:iptables-P INPUT ACCEPTiptables-P OUTPUT ACCEPTiptables-P FORWARD ACCEPT以上信息你可以用iptables-L看到总体来说iptables可以有二种设置1.默认允许,拒绝特别的2.默认拒绝,允许特别的二者都有自己有特点,从安全角度看个人偏向于第二种,就是默认拒绝,允许特别的.但iptalbes默认是第一种默认允许,拒绝特别的你可以用命令改变默认值来达到我们的要求命令如下iptables-P INPUT DROPiptables-P OUTPUT DROPiptables-P FORWARD DROP你再用iptables-L查看一下就会觉得默认值以改了先来谈炎几个参数XZFL-F清除规则-X清除链-Z将链的记数的流量清零一般来说再创建访问规则时都会将原有的规则清零这是一个比较好的习惯,因为某些规则的存在会影响你建的规则.基本语法:iptables[-t filter][-AI INPUT,OUTPUT,FORWARD][-io interface] [-p tcp,udp.icmp,all][-s ip/nerwork][--sport ports][-d ip/netword][--dport ports][-j ACCEPT DROP]以上是iptables的基本语法A是添加的意思I是播入的意思io指的是数据要进入或出去所要经过的端口如eth1eth0pppoe等p你所要指定的协议-s指源地址可是单个IP如192.168.2.6也可以是一个网络192.168.2.0/24还可以是一个域名如如果你填写的域名系统会自动解析出他的IP并在iptables里显示--sport来源端口-d同-s相似只不过他指的是目标地址也可以是IP域名和网络--dport目标端口-j执行参数ACCEPT DROP注意:如果以有参数存在则说明全部接受1如我要来自己l0接口的数据全部接受,我们可以写成这样:iptables-A INPUT-i lo-j ACCEPT2如果我们想接受192.168.2.6这个IP地址传来的数据我们可以这样写iptablse-A INPUT-i eth1-p tcp-s192.168.2.6-j ACCEPT3如果我们要拒绝来自己192.168.2.0/24这个网的telnet连接iptablse-A INPUT-i eth1-p udp-s192.168.2.0/24--sport23-j DROPLinux防火墙iptables学习笔记(二)参数指令iptables指令语法:iptables[-t table]command[match][-j target/jump]-t参数用来指定规则表,内建的规则表有三个,分别是:nat、mangle和filter,当未指定规则表时,则一律视为是filter。
个规则表的功能如下:nat此规则表拥有Prerouting和postrouting两个规则链,主要功能为进行一对一、一对多、多对多等网址转译工作(SNATDNAT),由于转译工作的特性,需进行目的地网址转译的封包,就不需要进行来源网址转译,反之亦然,因此为了提升改写封包的率,在防火墙运作时,每个封包只会经过这个规则表一次。
如果我们把封包过滤的规则定义在这个数据表里,将会造成无法对同一包进行多次比对,因此这个规则表除了作网址转译外,请不要做其它用途。
mangle此规则表拥有Prerouting、FORWARD和postrouting三个规则链。
除了进行网址转译工作会改写封包外,在某些特殊应用可能也必须去改写封包(TTL、TOS)或者是设定MARK(将封包作记号,以进行后续的过滤),这时就必须将这些工作定义在mangle 规则表中,由于使用率不高,我们不打算在这里讨论mangle的用法。
filter这个规则表是预设规则表,拥有INPUT、FORWARD和OUTPUT三个规则链,这个规则表顾名思义是用来进行封包过滤的理动作(例如:DROP、LOG、ACCEPT或REJECT),我们会将基本规则都建立在此规则表中。
常用命令列表:命令-A,--append范例iptables-A INPUT...说明新增规则到某个规则链中,该规则将会成为规则链中的最后一条规则。
命令-D,--delete范例iptables-D INPUT--dport80-j DROPiptables-D INPUT1说明从某个规则链中删除一条规则,可以输入完整规则,或直接指定规则编号加以删除。
命令-R,--replace范例iptables-R INPUT1-s192.168.0.1-j DROP说明取代现行规则,规则被取代后并不会改变顺序。
命令-I,--insert范例iptables-I INPUT1--dport80-j ACCEPT说明插入一条规则,原本该位置上的规则将会往后移动一个顺位。
命令-L,--list范例iptables-L INPUT说明列出某规则链中的所有规则。
命令-F,--flush范例iptables-F INPUT说明删除某规则链中的所有规则。
命令-Z,--zero范例iptables-Z INPUT说明将封包计数器归零。
封包计数器是用来计算同一封包出现次数,是过滤阻断式攻击不可或缺的工具。
命令-N,--new-chain范例iptables-N allowed说明定义新的规则链。
命令-X,--delete-chain范例iptables-X allowed说明删除某个规则链。
命令-P,--policy范例iptables-P INPUT DROP说明定义过滤政策。
也就是未符合过滤条件之封包,预设的处理方式。
命令-E,--rename-chain范例iptables-E allowed disallowed说明修改某自订规则链的名称。
常用封包比对参数:参数-p,--protocol范例iptables-A INPUT-p tcp说明比对通讯协议类型是否相符,可以使用!运算子进行反向比对,例如:-p!tcp,意思是指除tcp以外的其它类型,包含udp、icmp...等。
如果要比对所有类型,则可以使用all关键词,例如:-p all。
参数-s,--src,--source范例iptables-A INPUT-s192.168.1.1说明用来比对封包的来源IP,可以比对单机或网络,比对网络时请用数字来表示屏蔽,例如:-s192.168.0.0/24,比对IP时可以使用!运算子进行反向比对,例如:-s!192.168.0.0/24。
参数-d,--dst,--destination范例iptables-A INPUT-d192.168.1.1说明用来比对封包的目的地IP,设定方式同上。
参数-i,--in-interface范例iptables-A INPUT-i eth0说明用来比对封包是从哪片网卡进入,可以使用通配字符+来做大范围比对,例如:-i eth+表示所有的ethernet网卡,也以使用!运算子进行反向比对,例如:-i!eth0。
参数-o,--out-interface范例iptables-A FORWARD-o eth0说明用来比对封包要从哪片网卡送出,设定方式同上。
参数--sport,--source-port范例iptables-A INPUT-p tcp--sport22说明用来比对封包的来源埠号,可以比对单一埠,或是一个范围,例如:--sport22:80,表示从22到80埠之间都算是符合件,如果要比对不连续的多个埠,则必须使用--multiport 参数,详见后文。
比对埠号时,可以使用!运算子进行反向比对。
参数--dport,--destination-port范例iptables-A INPUT-p tcp--dport22说明用来比对封包的目的地埠号,设定方式同上。
参数--tcp-flags范例iptables-p tcp--tcp-flags SYN,FIN,ACK SYN说明比对TCP封包的状态旗号,参数分为两个部分,第一个部分列举出想比对的旗号,第二部分则列举前述旗号中哪些有被设,未被列举的旗号必须是空的。