linux防火墙iptable命令
网上看到这个配置讲解得还比较易懂,就转过来了,大家一起看下,希望对您工作能有所帮助。
网管员的安全意识要比空喊Linux安全重要得多。
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 ACCEPT iptables -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 ACCEPT iptables -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上面这几句是比较头痛的,我做逐一解释。
iptables -A INPUT -i eth0 -s 192.168.100.0/24 -p tcp --dport 3128 -m state --state NEW,ESTABLISHED -j ACCEPT允许192.168.100.0/24网段的机器发送数据包从eth0网卡进入。
如果数据包是tcp协议,而且目的端口是3128(因为REDIRECT已经把80改为3128了。
nat表的PREROUTING是在filter表的INPUT前面的。
)的,再而且,数据包的状态必须是NEW或者ESTABLISHED 的(NEW代表tcp三段式握手的“第一握”,换句话说就是,允许客户端机器向服务器发出链接申请。
ESTABLISHED表示通过握手已经建立起链接),通过。
iptables -A OUTPUT -o eth2 -p tcp --sport 32768:61000 -m state --state NEW,ESTABLISHED -j ACCEPT我们先来看这一句。
现在你的数据包已经进入到linux服务器防火墙上来了。
squid需要代替你去访问,所以这时,服务器就成了客户端的角色,所以它要使用32768到61000的私有端口进行访问。
(大家会奇怪应该是1024到65535吧。
其实CentOS版的linux所定义的私有端口是32768到61000的,你可以通过cat /proc/sys/net/ipv4/ip_local_port_range,查看一下。
)再次声明:这里是squid以客户端的身份去访问其他的服务器,所以这里的源端口是32768:61000,而不是3128!iptables -A INPUT -i eth2 -p tcp --dport 32768:61000 -m state --state ESTABLISHED -j ACCEPT 当然了,数据有去就有回。
iptables -A OUTPUT -o eth0 -d 192.168.100.0/24 -p tcp --sport 3128 -m state --state ESTABLISHED -j ACCEPT数据包还得通过服务器,转到内网网卡上。
请注意,这里,是squid帮你去访问了你想要访问的网站。
所以在内网中,你的机器是客户端角色,而squid是服务器角色。
这与刚才对外访问的过程是不同的。
所以在这里,源端口是3128,而不是32768:61000。
iptables -A OUTPUT -o eth2 -p udp --dport 53 -j ACCEPTiptables -A INPUT -i eth2 -p udp --sport 53 -j ACCEPT当然,DNS是不可缺少的。
iptables -A INPUT -i eth+ -p tcp --dport 80 -j LOG --log-prefix "iptables_80_alert" --log-level infoiptables -A INPUT -i eth+ -p tcp --dport 21 -j LOG --log-prefix "iptables_21_alert" --log-level infoiptables -A INPUT -i eth+ -p tcp --dport 22 -j LOG --log-prefix "iptables_22_alert" --log-level infoiptables -A INPUT -i eth+ -p tcp --dport 25 -j LOG --log-prefix "iptables_25_alert" --log-level infoiptables -A INPUT -i eth+ -p icmp --icmp-type 8 -j LOG --log-prefix "iptables_icmp8_alert" --log-level info当然了,来点日志记录会对网管员有所帮助。
iptables 基本命令使用举例一、链的基本操作1、清除所有的规则。
1)清除预设表filter中所有规则链中的规则。
# iptables -F2)清除预设表filter中使用者自定链中的规则。
#iptables -X#iptables -Z2、设置链的默认策略。
一般有两种方法。
1)首先允许所有的包,然后再禁止有危险的包通过放火墙。
#iptables -P INPUT ACCEPT#iptables -P OUTPUT ACCEPT#iptables -P FORWARD ACCEPT2)首先禁止所有的包,然后根据需要的服务允许特定的包通过防火墙。
#iptables -P INPUT DROP#iptables -P OUTPUT DROP#iptables -P FORWARD DROP3、列出表/链中的所有规则。
默认只列出filter表。
#iptables -L4、向链中添加规则。
下面的语句用于开放网络接口:#iptables -A INPUT -i lo -j ACCEPT#iptables -A OUTPUT -o lo -j ACCEPT#iptables -A INPUT -i eth0 -j ACEPT#iptables -A OUTPUT -o eth1 -j ACCEPT#iptables -A FORWARD -i eth1 -j ACCEPT#iptables -A FORWARD -0 eth1 -j ACCEPT注意:由于本地进程不会经过FORWARD链,因此回环接口lo只在INPUT和OUTPUT两个链上作用。
5、使用者自定义链。
#iptables -N custom#iptables -A custom -s 0/0 -d 0/0 -p icmp -j DROP#iptables -A INPUT -s 0/0 -d 0/0 -j DROP二、设置基本的规则匹配1、指定协议匹配。
1)匹配指定协议。
#iptables -A INPUT -p tcp2)匹配指定协议之外的所有协议。
#iptables -A INPUT -p !tcp2、指定地址匹配。
1)指定匹配的主机。
#iptables -A INPUT -s 192.168.0.182)指定匹配的网络。
#iptables -A INPUT -s 192.168.2.0/243)匹配指定主机之外的地址。
#iptables -A FORWARD -s !192.168.0.194)匹配指定网络之外的网络。
#iptables -A FORWARD -s ! 192.168.3.0/243、指定网络接口匹配。
1)指定单一的网络接口匹配。
#iptables -A INPUT -i eth0#iptables -A FORWARD -o eth02)指定同类型的网络接口匹配。
iptables命令参数
iptables命令参数iptables命令是Linux系统中用于设置防火墙规则的工具,它允许用户通过在内核中的网络数据包传输路径上添加或删除规则来过滤、修改和重定向网络数据包。
iptables命令有许多参数可以用来指定具体的操作和规则。
下面是一些常用的iptables命令参数:1. -A或--append:添加规则到规则链的末尾。
例如,`iptables -A INPUT -s 192.168.0.1 -j DROP`将会添加一个规则,禁止来自IP地址为192.168.0.1的主机的所有入站连接。
2. -I或--insert:在规则链内指定的位置插入规则。
例如,`iptables -I INPUT3 -s 192.168.0.1 -j DROP`将会在INPUT链的第3个位置插入一个规则,禁止来自IP地址为192.168.0.1的主机的所有入站连接。
3. -D或--delete:从规则链中删除规则。
例如,`iptables -D INPUT -s 192.168.0.1 -j DROP`将会删除INPUT链中所有来自IP地址为192.168.0.1的主机的入站连接的规则。
4. -P或--policy:设置默认策略。
例如,`iptables -P INPUT ACCEPT`将会将INPUT链的默认策略设置为接受所有入站连接。
5. -s或--source:指定源IP地址或地址段。
例如,`iptables -A INPUT -s 192.168.0.0/24 -j DROP`将会添加一个规则,禁止来自192.168.0.0/24网段的主机的所有入站连接。
6. -d或--destination:指定目标IP地址或地址段。
例如,`iptables -AOUTPUT -d 192.168.0.1 -j DROP`将会添加一个规则,禁止所有出站连接到IP地址为192.168.0.1的主机。
7. -p或--protocol:指定要过滤的传输层协议,如TCP、UDP或ICMP。
Linux1 防火墙 iptables基本语法
Linux1 防火墙iptables基本语法如果想要灵活的运用iptables来加固系统安全的话,就必须熟练的掌握iptables 的语法格式,其语法格式如下所示。
iptables [-t 表] -命令-匹配-j 动作/目标1.表选项iptables内置了filter、nat、和mangle3张表,-t参数用来设置对哪张表生效。
如,对mangle表设置规则的话,可以在-t参数后面加上mangle(-t参数可以省略,如果省略-t参数表示对filter表进行操作),其格式为:iptables -t mangle -命令-匹配-j 动作/目标。
●filterFilter表用来过滤数据包,在该表中根据包的内容对包做DROP(拒绝)或ACCEPT (允许)。
在该表中有INPUT、OUTPUT和FORWARD链。
其中INPUT链是用于处理入站数据包的规则,所有入站的数据包的规则都将被添加到INPUT链中;OUTPUT链是用于处理出站数据包的规则;FORW ARD链用于处理正在转发的数据包的规则。
●natNat表主要用于转发数据包,即NAT(网络地址转换)。
该表中包含PREROUTING 和POSTOUTING链。
主要进行一对一、一对多和多对多等地址转换工作。
根据转换特性可分为SNAT(源网络地址转换)和DNAT(目的网络地址转换)。
进行了源网络地址转换的数据包就不需要进行目的地址转换,反之亦然。
●mangleMangle表包含一些规则来标记用于高级路由的数据包,如果数据包及其包头内容进行了任何更改,就可以使用mangle表。
其可以改变不同的包及包头的内容,比如TTL、TOS、或MARK。
实际上,MARK并没有真正地改动数据包,其只是在内核空间中为包设置一个标记。
该表共有中有5个内建的链:PREROUTING、POSTOUTING、INPUT、OUTPUT和FORWARD。
2.命令选项命令选项是指定对提交的规则要做什么样的操作,如添加/删除规则或者查看规则列表等。
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中删除条目。
iptables的用法
iptables的用法iptables是Linux系统中防火墙工具,用于配置、管理和过滤网络流量。
它可以用于设置各种规则,以控制网络传输,过滤入站和出站流量,并允许或拒绝特定的网络连接。
以下是iptables的常见用法:1. 查看当前的iptables规则:```iptables -L```2. 清除当前的iptables规则:```iptables -F```3. 允许特定IP地址的访问:```iptables -A INPUT -s <IP_ADDRESS> -j ACCEPT```4. 禁止特定IP地址的访问:```iptables -A INPUT -s <IP_ADDRESS> -j DROP```5. 允许特定端口的访问:```iptables -A INPUT -p tcp --dport <PORT_NUMBER> -j ACCEPT```6. 允许特定协议的访问:```iptables -A INPUT -p <PROTOCOL> -j ACCEPT```7. 配置端口转发:```iptables -t nat -A PREROUTING -p tcp --dport <SOURCE_PORT> -j DNAT --to-destination<DESTINATION_IP>:<DESTINATION_PORT>```8. 配置端口映射:```iptables -t nat -A POSTROUTING -p tcp -d <DESTINATION_IP> --dport<DESTINATION_PORT> -j SNAT --to-source <SOURCE_IP>```以上只是iptables的一些常见用法,它还提供了更多高级功能和选项,可以根据具体需求进行配置和使用。
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删除防火墙规则命令
linux删除防火墙规则命令Linux删除防火墙规则命令防火墙是保护计算机和网络安全的重要组成部分。
在Linux系统中,iptables 是一个灵活且功能强大的防火墙工具,用于配置和管理防火墙规则。
有时候,我们可能需要删除某些不再需要的防火墙规则。
本文将逐步介绍如何使用iptables 命令在Linux系统中删除防火墙规则。
第一步:检查当前防火墙规则在执行删除防火墙规则之前,首先需要检查当前已经配置的防火墙规则。
可以使用iptables命令的-L选项来列出当前的规则。
sudo iptables -L这将显示当前的防火墙规则列表,包括输入(INPUT)、输出(OUTPUT)和转发(FORWARD)链的规则。
请仔细检查列表,找到您想要删除的规则。
第二步:确定要删除的规则在列出的规则列表中,找到要删除的规则及其规则号。
规则号是每个规则前面的序号,用于在删除规则时标识要删除的规则。
例如,如果要删除的规则编号为2,可以使用如下命令删除规则:sudo iptables -D INPUT 2这将从输入链(INPUT chain)中删除编号为2的规则。
同样,您可以使用-D 选项来删除输出链(OUTPUT chain)和转发链(FORWARD chain)的规则。
第三步:保存修改的防火墙规则当您删除防火墙规则时,这些变更只会在当前会话中生效。
重启系统后,将重置为默认的防火墙规则。
为了确保您的修改在系统重新启动后依然有效,需要将更改后的规则保存到防火墙配置文件中。
可以使用iptables-save命令将当前的防火墙规则保存到文件中。
这将以iptables规则集的形式打印规则内容,并可以将其重定向到文件中。
例如,将规则保存到名为firewall.rules的文件中,可以执行以下命令:sudo iptables-save > firewall.rules请确保使用适当的权限将规则保存到指定的文件位置。
第四步:清空全部防火墙规则有时候,您可能需要清空整个防火墙规则集。
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地址的请求将被直接拒绝。
iptable查看规则
iptable查看规则iptables是一个Linux上用于配置和管理网络过滤规则的工具。
它可以实现网络防火墙、网络地址转换(NAT)以及网络地址端口转换(PAT)等功能。
通过iptables,系统管理员可以通过添加、删除或修改规则来控制数据包的流动。
iptables命令的使用非常灵活,它可以查看、添加、删除以及修改过滤规则。
下面将逐步介绍如何使用iptables命令查看规则。
1.查看所有规则:要查看当前系统上的所有iptables规则,可以使用以下命令:```shelliptables -L```该命令将会列出所有的规则,包括过滤器规则、NAT规则和Mangle规则。
每个规则将显示其匹配条件、目标动作以及相关统计信息。
2.查看特定表的规则:iptables命令支持多个表,包括filter表、nat表、mangle表等。
如果只想查看特定表的规则,可以使用以下命令:```shelliptables -L -t表名```其中,表名可以是filter、nat或mangle。
例如,要查看filter表的规则,可以使用以下命令:```shelliptables -L -t filter```3.查看某个链的规则:iptables把规则组织成链的形式,每个数据包被处理时,都需要按照规则链依次进行匹配。
要查看某个链的规则,可以使用以下命令:```shelliptables -L链名```其中,链名可以是INPUT、OUTPUT或FORWARD等。
例如,要查看OUTPUT链的规则,可以使用以下命令:```shelliptables -L OUTPUT```这将会列出OUTPUT链上定义的所有规则。
4.查看计数器信息:iptables可以统计数据包经过规则的次数,并记录在计数器中。
要查看规则的计数器信息,可以使用以下命令:```shelliptables -L -v```该命令将会显示规则匹配的数据包个数和总流量大小。
Linux1 防火墙 iptables的启动与停止
Linux1 防火墙iptables的启动与停止在用户完成iptables服务器的配置或又要加入新的规则的时候,就需要启动或停止iptables服务。
1.iptables的启动当用户配置好iptables服务器,并且想要启动该服务时,可以输入“service iptables start”命令,并按【回车】键,如图11-17所示。
图11-17 启动iptables服务器2.iptables的停止在用户想要停止iptables服务器,就输入“service iptables stop”命令,并按【回车】键,如图11-18所示。
图11-18 停止iptables服务器3.iptables的重新启动当用户想要重新启动iptables服务器,就要输入“service iptables restart”命令,并按【回车】键,如图11-19所示图11-19 重启iptables服务器4.查看iptables启动状态在用户未知iptables服务是否启动时,可以输入“service iptables status”命令,并按【回车】键,查看iptables服务器的启动状态,如图11-20所示。
图11-20 查看iptables服务器状态5.实现iptables开机自动启动在系统重新启动后,默认情况下iptables并不会自动启动,只有用户进行相关的设置才能实现iptables开机自动启动。
要实现开机自动启动iptables服务,用户可以输入“chkconfig --level 3 iptableson”命令,并按【回车】键,当用户想要关闭开机自动加载iptables服务时,可以输入“chkconfig –level 3 iptables off”命令,并按【回车】键,如图11-21所示。
图11-21 开启或关闭开机自动加载iptables服务另外,还可以在终端中输入“ntsysv”命令,并按【回车】键。
然后,在打开的文本图形界面中,找到iptables选项,并按【空格】键,选中该选项。
如何使用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 服务。
