iptables 工具

iptables 工具

参考文档:

https://www.frozentux.net/iptables-tutorial/cn/iptables-tutorial-cn-1.1.19.html

netfilter/iptabels应用程序,被认为是Linux中实现包过滤功能的第四代应用程序。

netfilter/iptables包含在2.4以后的内核中,它可以实现FirewallNAT(网络地址转换)和数据包的分割等功能。

netfilter工作在内核中,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集;

iptables工作在用户态空间,它使插入、修改和除去信息包过滤表中的规则变得容易。

iptables读取流入和流出数据包的报头,将它们与规则集(Rule set)相比较:

1、将可接受的数据包从一个网卡转发至另一个网卡;

2、对被拒绝的数据包,可以丢弃或按照所定义的方式来处理。

根据规则所处理的信息包类型,可以将规则分组在链中:

1、处理入站信息包的规则被添加到INPUT链中;

2、处理出站信息包的规则被添加到OUTPUT链中;

3、处理正在转发的信息包的规则被添加到FORWARD链中;

这三个链是基本信息包过滤表中内置的缺省主链。另外,还有其他许多可用的链的类型(如PREROUTING和POSTROUTING),以及提供用户自定义的链。

每个链都可以有一个策略,它定义“缺省目标”,也就是要执行的缺省操作,当信息包与链中的任何规则都不匹配时,执行此操作。

iptables有多张table(如下),每个table又包含若干chains,每条chain是由一组rules构成;


table name
description
operation

filter (default)
用于包过滤,包含 INPUT 、OUTPUT 和 FORWARD链
ACCEPT、DROP、REJECT、LOG

nat
转换包的源或目的地址,包含 PREROUTING 、OUTPUT 和 POSTROUTING链
SNAT、DNAT、MASQUERADE

mangle
包含一些规则来标记用于高级路由的信息包,包含 PREROUTING 、OUTPUT 链
TOS、TTL、MARK

filter表

INPUT链针对目的是本地的包;

OUTPUT链过滤本地生成的包;

FORWARD链过滤不是本地产生的,且目的地也不是本地的包(即转发的包);

 

nat表

属于一个流的包只会经过nat表一次,如果第一个包被允许做nat,其后的包会自动被做相同的处理;所以nat表不要做任何过滤操作;

PREROUTING链的主要作用是包刚刚到达firewall时改变它的目的地址;

POSTROUTING链的主要作用是包离开firewall时改变其源地址;

OUTPUT链改变本地产生的包的目的地址;

mangle表

不建议在mangle表里做任何过滤;

iptables 命令格式

对来自某个源地址,到达某个目的地址或具有特定协议类型的信息包要做些什么指令、规则控制信息包的过滤,

可以通过使用iptables系统提供的命令去建立这些规则,并将其添加到内核空间特定信息包过滤表内的链中。

关于添加、去除、编辑规则的命令,一般语法如下:

iptables [-t table] command [chain] [rules] [-j target]

[-t table] :用来指明使用的表, 可以为: filter(缺省表), nat 和 mangle。

command 表明iptables命令要做什么,比如:

-L <CHAIN>, -S <CHAIN>
列出链中的所有规则;输出格式不同

-I <CHAIN>, -A <CHAIN>
插入一条规则,I此规则会作为链的第一条规则;A则会在最后一条

-D <CHAIN> N, -D <CHAIN>
删除一条规则,可以明确指明规则内容,也可以用N指出链中的第N条

-F <CHAIN>, -Z <CHAIN>
F清除链中的所有规则,不指明链,则清除所有链;Z则是只清除计数器,不清除规则

-P <CHAIN>
指定某条链的默认动作,ACCEPT、DROP或REJECT等

chain 表明操作的链,例如INPUT、OUTPUT、FORWARD等;

rules 匹配的包规则,同一条规则里的多个条件是“与”的关系,比如:

-p, --protocol
协议匹配,如 -p tcp

-s, --src, --source
来源匹配,如 -s 202.108.37.49

-d, --dst, --destination
目的匹配,如 -d 172.16.115.117

-i, --in-interface
入网卡接口匹配,如 -i eth0

-o, --out-interface
出网卡接口匹配,如 -o eth1

--sport, --source-port
来源端口匹配(tcp或udp),如 --sport 80;也可以用端口范围,如 --sport 135:139

--dport, --destination-port
目的端口匹配(tcp或udp),如 --dport 80;同样支持端口范围

--tcp-flags
tcp状态匹配,如 --tcp-flags RST RST

-m mac --mac-source
mac地址匹配,如 -m mac --mac-source 00:1E:C9:B0:53:D2

-m multiport --source-port , --destination-port
多端口匹配,如-m multiport --destination-port 80,443

-m iprange
简单的指定ip范围。用--src-range或--dst-range匹配,如 -m iprange --src-range 192.168.1.33-192.168.1.50

-m time
指定匹配时间(UTC),可以使用--datestart、--datestop、--timestart或--timestop等参数。如 -m time --datestart 2014-01-01T00:00:00 --datestop 2014-12-31T23:59:59 。注意时间是UTC时间。

target: 是由规则指定的操作。 包括下面几种:
ACCEPT: 接收信息包(允许它前往目的地),并且将停止遍历chain;
DROP: 默默丢弃包(对方不知道);

REJECT:拒绝包,会发RST明确通知对方拒绝;
此外还有, RETURN, LOG, REDIRECT, MARK, MIRROR, MAQUERADE等。

应用场景

1、查看已添加的规则

iptables -L -n

iptables -t nat -L

2、保存

/etc/rc.d/init.d/iptables save

3、删除已添加的规则

iptables -L -n --line-numbers

4、清除已有的规则

iptables -F          清除filter表的所有规则

iptables -X          清除filter表中用户自定义的规则

iptables -Z

5、开放指定的端口

iptables -A INPUT -p tcp --dport 21 -j ACCEPT

6、阻止一个IP连接本机

iptables -t filter -A INPUT -s 192.168.1.5  -i eth0 -j DROP

7、端口转发

iptables -t nat -A PREROUTING -d 1.2.3.4 -p tcp -m tcp --dport 81 -j DNAT --to-destination192.168.0.2:8180

iptables -t nat -A POSTROUTING -s 192.168.0.0/255.255.0.0 -d 192.168.0.2 -p tcp -m tcp --dport 8180 -j SNAT --to-source 192.168.0.1

8、

丢弃RST包

iptables -I INPUT -p tcp --sport 80 --tcp-flags RST RST -j DROP

iptables 工具

时间: 2024-08-26 16:23:32

iptables 工具的相关文章

保证Linux系统安全之使用iptables工具管理防火墙

随着企业中使用Linux系统的增加,保证Linux系统安全成为运维人员的必备技能之一. Linux系统本身有很强大的防护措施:防火墙.那么如何管理防火墙就成为重中之重. 随着CentOS 7.CentOS 8的出现,越来越多的人喜欢使用firewalld工具来管理防火墙.因为它不仅可以通过命令行设置,也可以通过图形化设置.关于使用firewalld工具管理Linux防火墙,可参考保证Linux系统安全之使用firewalld工具管理防火墙 下面我们主要介绍iptables工具管理防火墙. 本人第

十六、SELINUX、netfilter防火墙以及其iptables工具

SELINUX 关闭selinux有两种方法:暂时关闭selinux防火墙,下次重启后selinux还会开启.#setenforce 0 #getenforce #查看临时关闭selinux的状态命令永久关闭selinux #vi /etc/selinux/config #修改selinux的配置文件 更改"SELINUX=enforcing"为 SELINUX=disabled  保存退出. 此处需要重启.方能改成disabled. [[email protected] ~]# /u

iptables工具_过滤包—命令(-A、-I、-D、-R、-L等)

iptables 指令 语法: iptables [-t table] command [match] [-j target/jump] -t 参数用来指定规则表,内建的规则表有三个,分别是:nat.mangle 和 filter, 当未指定规则表时,则一律视为是 filter. 各个规则表的功能如下: nat 此规则表拥有 Prerouting 和 postrouting 两个规则链,主要功能为进行一对一.一对多.多对多等网址转译工作(SNATDNAT),由于转译工作的特性,需进行目的地网址转

iptables工具__过滤包—命令(-A、-I、-D、-R、-L等)、参数(-p、-s、-d、--sport、--dport、-i、-o等)、动作-j (ACCEPT、DROP、REJECT、RED )等模块参考

iptables 指令 语法: iptables [-t table] command [match] [-j target/jump] -t 参数用来指定规则表,内建的规则表有三个,分别是:nat.mangle 和 filter,           当未指定规则表时,则一律视为是 filter. 各个规则表的功能如下: nat 此规则表拥有 Prerouting 和 postrouting 两个规则链,主要功能为进行一对一.一对多.多对多等网址转译工作(SNATDNAT),由于转译工作的特性

iptables 工具的使用

试验建议:关闭CentOS 7 或 CentOS 6的防火墙 (systemctl stop firewalld ; systemctl disable firewalld 或 service iptables stop ; chkconfig iptables off) iptables   -vnL --line-numbers iptables   -A    INPUT  -p   tcp    --dport      80   -j    ACCEPT # 在表的对应链上添加规则 i

Linux防火墙(SElinux、netfilter)防火墙工具iptables

Linux防火墙 SElinux防火墙 SElinux是Linux系统特有的安全机制,一般装完系统后都会手动将它关闭: 查询状态 getenforce Enforcing:为开启状态,Permissive:为临时关闭状态,Disabled:为关闭状态: [[email protected] ~]# getenforce Enforcing [[email protected] ~]# 临时关闭 setenforce 0 [[email protected] ~]# getenforce Enfo

Linux下针对路由功能配置iptables的方法详解

作为公司上网的路由器需要实现的功能有nat地址转换.dhcp.dns缓存.流量控制.应用程序控制,nat地址转换通过iptables可以直 接实现,dhcp服务需要安装dhcpd,dns缓存功能需要使用bind,流量控制可以使用tc,应用程序控制:例如对qq的封锁可以使用 netfilter-layer7-v2.22+17-protocols-2009-05-28.tar.gz来实现 1.网络规划 操作系统是centos5.8 2.安装dhcpd yum install dhcp-3.0.5-3

iptables原理知识

一.iptables的原理 iptables实际上是定义防火墙规则的工具,真正对数据报文处理的是内核中的netfilter模块.netfilter对报文的处理方式一般有:过滤,地址转换,连接追踪. 1.常用的数据报文格式的解释 防火墙实际上是对进出本机的各种报文进行控制,所以了解常见报文的结构(格式)可以精确的控制报文. 1)IP报文的格式 ip报文的结构如下图: 在这里与防火墙关系最大的是源地址.目标地址.协议.源地址指明报文的来源,目标地址说明报文的去处,协议指明传输层所使用的协议. 补充:

linux 的iptables防火墙

hostile: [hastl]: 敌对的,敌意的: hostile army,  hostile action hostile aircraft. we lea the whole hostile army captive. [k2eptiv]: adj. 被监禁的... -------------------------------------------------------- linux防火墙分成两大模块 : netfilters: 内核空间和iptables工具(用户空间). 是信息