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和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连接。
iptables防火墙实战
iptables防⽕墙实战iptables防⽕墙实战iptables关闭两项功能:1.selinux(⽣产中也是关闭的),ids⼊侵检测,md5指纹.2.iptables(⽣产中看情况,内⽹关闭,外⽹打开)⼤并发的情况,不能开iptables,影响性能,硬件防⽕墙.安全优化:1.尽可能不给服务器配置外⽹IP.可以通过代理转发.2.并发不是特别⼤的情况再外⽹IP的环境,要开启iptables防⽕墙.1.OSI7层模型以及不同层对应哪些协议?2.TCP/IP三次握⼿,四次断开的过程,TCP HEADER.3.常见服务端⼝要了如指掌.iptables企业应⽤场景主机防⽕墙:filter表的INPUT链。
局域⽹共享上⽹:nat表的POSTROUTING链。
半个路由器,NAT功能。
端⼝及IP映射:nat表的PREROUTING链,硬防的NAT功能。
IP⼀对⼀映射。
⽹络层防⽕墙包过滤防⽕墙⽹络层对数据包进⾏选择,选择的依据是系统内设置的过滤逻辑,被称为访问控制列表(ACL),通过检查数据流中每个数据的源地址,⽬的地址,所⽤端⼝号和协议状态等因素,或他们的组合来确定是否允许该数据包通过优点:对⽤户来说透明,处理速度快且易于维护缺点:⽆法检查应⽤层数据,如病毒等应⽤层防⽕墙应⽤层防⽕墙/代理服务型防⽕墙(Proxy Service)将所有跨越防⽕墙的⽹络通信链路分为两段内外⽹⽤户的访问都是通过代理服务器上的“链接”来实现优点:在应⽤层对数据进⾏检查,⽐较安全缺点:增加防⽕墙的负载可以做NAT映射:1⽹关:局域⽹共享上⽹。
2IP或端⼝映射。
iptables主要⼯作在OSI七层的⼆、三四层,如果重新编译内核,Iptables也可以⽀持7层控制squid代理+iptables。
商⽤防⽕墙品牌华为深信服思科H3CJuniper天融信飞塔⽹康绿盟科技⾦盾iptables⼯作流程1.防⽕墙是⼀层层过滤的。
实际是按照配置规则的顺序从上到下,从前到后进⾏过滤的。
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进行网络流量重定向Linux命令高级技巧:使用iptables进行网络流量重定向在Linux系统中,iptables是一个重要的命令行工具,用于管理和配置网络规则。
其中一个强大而常用的功能是网络流量重定向。
本文将介绍如何使用iptables进行网络流量重定向的高级技巧。
一、什么是网络流量重定向网络流量重定向是一种将网络数据包从一个网络路径转发到另一个网络路径的方法。
它可以用于多种场景,比如实现端口转发、数据包过滤和网络负载均衡等。
二、iptables基础知识回顾在深入讨论iptables的高级技巧之前,我们先回顾一下iptables的基础知识。
1. iptables规则表iptables使用不同的规则表来存储和管理不同类型的规则。
常用的规则表有四个:- filter(过滤)表:用于过滤网络数据包,实现数据包的允许或者拒绝。
- nat(网络地址转换)表:用于网络地址转换,比如实现端口转发。
- mangle(变更)表:用于修改网络数据包的头部信息。
- raw(原始)表:用于对特定数据包进行处理,比如禁用连接跟踪。
2. iptables链iptables规则表中的规则被组织成一个个链。
每个链包含一系列规则,并决定了数据包在进入或者离开系统时应该如何处理。
常见的iptables链有五个:- INPUT:处理进入系统的数据包。
- OUTPUT:处理离开系统的数据包。
- FORWARD:处理通过系统转发的数据包。
- PREROUTING:数据包在路由之前的处理。
- POSTROUTING:数据包在路由之后的处理。
三、使用iptables进行网络流量重定向的高级技巧1. 实现端口转发端口转发是网络流量重定向的常见应用之一。
通过端口转发,我们可以实现将进入系统的数据包导向另一台主机或者另一个端口。
下面是使用iptables实现端口转发的命令:```iptables -t nat -A PREROUTING -p tcp --dport 源端口 -j DNAT --to 目标IP:目标端口iptables -t nat -A POSTROUTING -p tcp -d 目标IP --dport 目标端口 -j SNAT --to 源IP```其中,`源端口`是进入系统的数据包的源端口,`目标IP`是转发目标的IP地址,`目标端口`是转发目标的端口号,`源IP`是系统的IP地址。
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的结构: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 端口)上的服务。
linux防火墙iptables常用规则(屏蔽IP地址、禁用ping、协议设置、NAT与转发、负载平衡、自定义链)
linux防火墙iptables常用规则(屏蔽IP地址、禁用ping、协议设置、NAT与转发、负载平衡、自定义链)一、iptables:从这里开始删除现有规则iptables -F(OR)iptables --flush设置默认链策略iptables的filter表中有三种链:INPUT, FORWARD和OUTPUT。
默认的链策略是ACCEPT,你可以将它们设置成DROP。
iptables -P INPUT DROPiptables -P FORWARD DROPiptables -P OUTPUT DROP你需要明白,这样做会屏蔽所有输入、输出网卡的数据包,除非你明确指定哪些数据包可以通过网卡。
屏蔽指定的IP地址以下规则将屏蔽BLOCK_THIS_IP所指定的IP地址访问本地主机:BLOCK_THIS_IP="x.x.x.x"iptables -A INPUT -i eth0 -s "$BLOCK_THIS_IP" -j DROP (或者仅屏蔽来自该IP的TCP数据包)iptables -A INPUT -i eth0 -p tcp -s "$BLOCK_THIS_IP" -j DROP允许来自外部的ping测试iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPTiptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT允许从本机ping外部主机iptables -A OUTPUT -p icmp --icmp-type echo-request -jACCEPTiptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT允许环回(loopback)访问iptables -A INPUT -i lo -j ACCEPTiptables -A OUTPUT -o lo -j ACCEPT二、iptables:协议与端口设定允许所有SSH连接请求本规则允许所有来自外部的SSH连接请求,也就是说,只允许进入eth0接口,并且目的端口为22的数据包iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPTiptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state--state ESTABLISHED -j ACCEPT允许从本地发起的SSH连接本规则和上述规则有所不同,本规则意在允许本机发起SSH 连接,上面的规则与此正好相反。
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 服务。
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命令高级技巧使用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 防火墙(理论部分)
防火墙原理一.iptables简介从1.1内核开始,linux就已经具有包过滤功能了,在2.0的内核中我们采用ipfwadm 来操作内核包过滤规则。
之后在2.2内核中,采用了大家并不陌生的ipchains来控制内核包过滤规则。
在2.4内核中我们不再使用ipchains,而是采用一个全新的内核包过滤管理工具—iptables。
这个全新的内核包过滤工具将使用户更易于理解其工作原理,更容易被使用,当然也将具有更为强大的功能。
iptables只是一个内核包过滤的工具,iptables可以加入、插入或删除核心包过滤表格(链)中的规则。
实际上真正来执行这些过滤规则的是netfilter(Linux内核中一个通用架构)及其相关模块(如iptables模块和nat模块)。
netfilter提供了一系列的“表(tables)”,每个表由若干“链(chains)”组成,而每条链中有一条或数条规则(rule)组成。
我们可以这样来理解,netfilter是表的容器,表是链的容器,链又是规则的容器。
netfilter系统缺省的表为“filter”,该表中包含了INPUT、FORW ARD和OUTPUT 3个链。
每一条链中可以有一条或数条规则,每一条规则都是这样定义的“如果数据包头符合这样的条件,就这样处理这个数据包”。
当一个数据包到达一个链时,系统就会从第一条规则开始检查,看是否符合该规则所定义的条件:如果满足,系统将根据该条规则所定义的方法处理该数据包;如果不满足则继续检查下一条规则。
最后,如果该数据包不符合该链中任一条规则的话,系统就会根据预先定义的策略(policy)来处理该数据包。
图1 网络数据包在filter表中的流程数据包在filter表中的流程如图1所示。
有数据包进入系统时,系统首先根据路由表决定将数据包发给哪一条链,则可能有三种情况:(1)如果数据包的目的地址是本机,则系统将数据包送往INPUT链,如果通过规则检查,则该包被发给相应的本地进程处理;如果没有通过规则检查,系统就会将这个包丢掉。
高级技巧使用iptables进行网络流量控制与限速
高级技巧使用iptables进行网络流量控制与限速高级技巧:使用iptables进行网络流量控制与限速近年来,随着互联网的迅猛发展,网络流量的控制与限速变得越来越重要。
为了满足不同用户的需求,并保持网络的稳定性,管理员们需要掌握一些高级技巧来进行网络流量的控制与限速。
本文将介绍一种常见而有效的方法,即使用iptables。
一、iptables简介iptables是一个在Linux操作系统中用于管理网络流量的工具。
它允许管理员设置规则来过滤、控制和限制传入和传出的网络流量。
通过定义规则,可以实现网络流量的分类、转发、丢弃等操作,从而帮助管理员控制网络的负载和带宽分配。
二、设置基本的流量控制规则首先,我们需要了解如何设置基本的流量控制规则。
以下是一个示例,展示了如何使用iptables来限制每台主机的上传和下载速度。
1. 设置上传速度限制要限制某台主机的上传速度,可以使用以下命令:iptables -A OUTPUT -m limit --limit 100kb/s -j ACCEPT该命令将限制上传速度为每秒不超过100KB。
2. 设置下载速度限制要限制某台主机的下载速度,可以使用以下命令:iptables -A INPUT -m limit --limit 1mb/s -j ACCEPT该命令将限制下载速度为每秒不超过1MB。
三、设置高级的流量控制规则除了基本的限速功能,iptables还提供了一些高级的流量控制功能,使管理员能够更加精细地控制网络流量。
以下是一些常见的高级技巧。
1. 使用QoS(Quality of Service)进行流量控制QoS是一种网络流量管理机制,通过对不同类型的流量分配不同的优先级,以保证网络的服务质量。
使用iptables,我们可以配置QoS来实现流量的分类和优先级控制。
2. 使用连接跟踪进行应用层的流量控制iptables提供了连接跟踪机制,可以识别并跟踪不同的连接。
Linux命令高级技巧使用iptables命令进行网络流量控制
Linux命令高级技巧使用iptables命令进行网络流量控制iptables是Linux系统中最常用的网络过滤工具之一。
它允许系统管理员通过定义规则来控制网络流量的进出。
使用iptables命令可以有效地防止恶意攻击、保护网络安全和进行流量控制。
本文将介绍一些高级技巧,以帮助读者更好地使用iptables命令进行网络流量控制。
一、iptables概述及基本用法iptables是一款由Linux内核提供的,用于配置Linux内核的防火墙的工具。
它可以允许或拒绝数据包通过系统,同时也可以修改数据包的各种属性。
iptables具有很好的灵活性,在网络安全和流量控制中扮演着重要的角色。
基本的iptables命令用法如下:1. 开启或关闭iptables服务systemctl start iptables # 开启iptables服务systemctl stop iptables # 关闭iptables服务2. 清空已有规则iptables -F # 清空过滤规则iptables -X # 清空用户自定义链3. 默认规则设置iptables -P INPUT DROP # 设置INPUT链的默认规则为拒绝iptables -P OUTPUT ACCEPT # 设置OUTPUT链的默认规则为允许二、高级技巧之网络流量控制1. 限制特定IP地址访问iptables -A INPUT -s 192.168.1.2 -j DROP # 拒绝指定IP地址访问2. 限制特定端口的访问iptables -A INPUT -p tcp --dport 22 -j DROP # 拒绝SSH端口访问3. 允许指定IP地址访问特定端口iptables -A INPUT -s 192.168.1.2 -p tcp --dport 80 -j ACCEPT # 允许指定IP地址访问HTTP端口4. 放行特定MAC地址的流量iptables -A INPUT -m mac --mac-source 00:11:22:33:44:55 -j ACCEPT # 允许指定MAC地址的流量通过5. 源地址伪装iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE # 对指定网段的源地址进行伪装6. 限制请求频率iptables -I INPUT -p tcp --dport 80 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT # 限制HTTP请求频率7. 根据连接状态控制流量iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT # 允许已建立或相关的连接通过8. 防止SYN Flood攻击iptables -A INPUT -p tcp --syn -m connlimit --connlimit-above 10 -j DROP # 拒绝连接数超过10个的SYN请求9. 使用IP集合进行流量控制iptables -A INPUT -m set --match-set allowed_ips src -j ACCEPT # 允许IP集合中的地址通过10. 使用日志功能iptables -A INPUT -p tcp --dport 22 -j LOG --log-prefix "SSH:" # 对SSH连接进行日志记录三、总结本文介绍了Linux系统中使用iptables命令进行网络流量控制的高级技巧。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
linux iptables 实习
1.
设置防火墙为路由模式,编辑/etc/sysctl.conf 内net.ipv4.ip_forward = 0 值改成1
2.
更新系统内核参数sysctl -p
3.
service iptables stop
iptalbes -F
iptalbes -X
iptalbes -Z
iptables-save
4.
根据需求,外网可访问服务器一下端口:80、14490、14500、14460、14470、24461,ntp(tcp 123 udp132)
服务器可访问外部端口:80、25,ntp(tcp 123 udp132)
考虑到远程管理接口,添加22端口,考虑到上网需求,放行53端口。
放行环回接口,icmp ping。
具体配置信息如下
[root@localhost sysconfig]# iptables -V
iptables v1.4.7
iptables -P INPUT DROP
iptables -P FORWARD ACCEPT
iptables -P OUTPUT DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT iptables -A INPUT -p tcp -m state --state NEW -m multiport --dports
80,14490,14500,14460,14470,24461,123,132 -j ACCEP
iptables -A INPUT -p udp -m state --state NEW -m multiport --dports
14490,14500,14460,14470,24461,123,132 -j ACCEPT
iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
iptables -A INPUT -p icmp -m icmp --icmp-type 0 -j ACCEPT
iptables -A OUTPUT -p icmp -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -m state --state NEW -m tcp --sport 22 -j ACCEPT iptables -A OUTPUT -p tcp -m state --state NEW -m multiport --dports 80,25,123,132 -j ACCEPT
iptables -A OUTPUT -p udp -m state --state NEW -m multiport --dports ip123,132 -j ACCEPT
iptables -A OUTPUT -p tcp -m state --state NEW -m tcp --dport 53 -j ACCEPT iptables -A OUTPUT -p udp -m state --state NEW -m udp --dport 53 -j ACCEPT iptables -A OUTPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
iptables -A OUTPUT -p icmp -m icmp --icmp-type 0 -j ACCEPT
查看[root@localhost sysconfig]# iptables -S
5.
iptables -t nat -A POSTROUTING -o eth1(外口)-j SNAT--to 192.168.1.254 外网接口为固定IP
iptables -t nat -A POSTROUTING -o eth1(外口)-s 32.1.38.0/24 -jMASQUERADE ——用于外网接口为动态IP地址,如ppoe接入方式。
6.
iptables -t nat -A PREROUTING -d 219.239.xx.xx(外口,或者-i eth1外
口) -p tcp --dport 8080 -j DNAT --to-destination 172.18.10.205:80(真实服务器地址)
iptables -t nat -A POSTROUTING -d 172.18.10.205(服务器地
址) -p tcp --dport 80 -j SNAT --to 172.18.10.212(内网口)
7.
修改默认iptables,保障重启开机后仍然生效。
[root@kook ~]# iptables-save > /etc/sysconfig/iptables
iptables-save
service iptables save
service iptables start/restar
8.
查看iptables -nvL --line-number iptables -t nat -nvL --line-number
INPUT OUTPUT FORWARD PREROUTING POSTROUTING
-A 增加-D删除-o -i OUTPUT INPUT -I 插入(iptables -I INPUT 1/2/3 ....)
9
理解:DNAT映射SNAT转换,当映射时外网访问外口,得到映射地址为服务器地址,但是路由外口无法直接到达服务器,所以需要把包再次转换,及把目标为服务器地址的包转换为路由内口,这样由内口去访问服务器。
整个DNAT才算完成
linux上端口映射的详细步骤
在网上搜索好多,对linux配置端口映射都不够详细,我在RedHat8.0上用iptables配置了端口映射,讲述详细的配置过程,供大家参考。
【实现功能】
PC A是
eth0 172.18.10.212 内网
eth1 219.239.xx.xx 外网
PC B是 172.18.10.205 内网
A的8080端口映射到B的80端口
【步骤】
1、首先应该做的是/etc/sysctl.conf配置文件的 net.ipv4.ip_forward = 1 默认是0
这样允许iptalbes FORWARD。
2、在/etc/rc.d/init.d目录下有iptables 文件,使用格式如下
Usage: ./iptables {start|stop|restart|condrestart|status|panic|save}
相当与service iptables {....}
把iptables 服务停止,清除以前的规则,存盘
到/etc/rc.d/init.d目录下,运行
./iptables stop
iptalbes -F
iptalbes -X
iptalbes -Z
./iptables save
3、重新配置规则
iptables -t nat -A PREROUTING -d 219.239.xx.xx -p tcp --dport 8080 -j DNAT --to-destination 172.18.10.205:80
iptables -t nat -A POSTROUTING -d 172.18.10.205 -p tcp --dport 80 -j SNAT --to 1 72.18.10.212
iptables -A FORWARD -o eth0 -d 172.18.10.205 -p tcp --dport 80 -j ACCEPT iptables -A FORWARD -i eth0 -s 172.18.10.205 -p tcp --sport 80 -j ACCEPT。