iptables使用语法简述

规则文件(配置文件):/etc/sysconfig/iptables

保存启用中的规则于配置文件中:

1、#iptables -save > /etc/sysconfig/iptables

2、#service iptables save

生效规则文件(配置文件)中的规则

1、#iptables-restore < /etc/sysconfig/iptables

2、#service iptables restart

执行的操作,清空现有规则,读取并生效规则文件中的规则



基本语法格式:

iptables [ -t TABLES ] COMMAND CHAIN CRETIRIA -j TARGET

表            规则            链         匹配条件       动作

-t TABLES:

nat,mangle,raw,filter

COMMAND:(CHAIN)

链:(链中的规则):

-F:flush,清空规则连:

-N:new,自建一条链

-X:delete,删除一条自定义链

-P:policy,设置默认策略,对filter表来讲,默认规则为ACCEPT或DROP:

-E:重命名自定义链

-A:链尾部增加一条规则

-D:删除一条规则            iptables [ -t table ] -D chain rulenum

-R:替换一条规则            iptables [ -t table ] -R chain rulenum rule-specification

-I:插入一条规则              iptables [ -t table ] -I chain rulenum rule-specification

查询:

-L:list

-n:数字格式显示主机地址和端口

-v:详细格式,-vv,-vvv

--line-number:显示规则编号

-x:exactly,精确显示数值

pkts     bytes    target   prot      opt       in             out                   source             destination

包数    字节数    目标       协议                流入借口     流出借口               原地址            目标地址

CRETIRIA(匹配条件):

匹配条件:

通用匹配:

-s  地址:指定报文源IP地址匹配的范围:(可以是IP也可以是网络地址:可以使用!取反)

--src,   --source

-d  地址:指定报文目标IP地址匹配的范围:

--dis,--destination

-p  协议:指定匹配报文的协议类型,一般有三种tcp,udp和icmp

-i    interface:数据报文流入的接口:入方向(prerouter,input,forward)

-o   interface:数据报文流出的接口:出方向(output,forward,postrouter)

扩展匹配:调用netfilter额外模块实现特殊检查机制,(使用到相关功能,要使用iptables命令 -m

来调用相关模块)

隐式扩展:当使用 -p {tcp|udp|icmp}中的一种时,可以直接使用扩展专用选项

-p tcp [ -m tcp ]

--sport PORT[-PORT]

--dport

--tcp-flag 要检查标志位列表(用逗号分隔) 必须为1的标志位列表(逗号分隔)

例如:  --tcp-flags syn,ack,rst,fin syn

检查 syn,ack,rst,fin 标志位,syn必须为1。其他为0

--syn

all 为所有位,none 为没有

iptables -I INPUT -p -tcp --tcp-flags all all -j drop      (标志位全1 drop)

iptables -I INPUT -p -tcp --tcp-flags all none -j drop  (标志位全0 drop)

-p udp [ -m udp ]

--sport

--dport

显示扩展:必须明确说明使用那个模块进行扩展

-m 扩展模块名称

模块:iptables,netfilter各拥有一部分代码,必须都拥有对应模块,才能使用。

multiport:多端口匹配

可用于匹配非连续或连续端口

专用选项:

--source-ports,--sports port[,port,port:port]

--destination-ports,--dports

--ports

iprange:匹配指定范围内的地址:

匹配一段连续的地址而非整个网络时有用

专用选项: !取反

[!]--src-ragne IP [IP]

--dst-range

string:字符串匹配。能够检查报文应用层中的字符串。

字符匹配检查高效算法

kmp,bm

专用选项:

--algo {kmp|bm}

--string "STRING"   检查(匹配)字串

--htx-string "HEX_STRING: HEX_STRING为编码为16进制的字串

time:基于时间做访问控制

专用选项:

--datestart YYYY[-MM][-DD[Thh][:mm][:ss]]

--datestop

--timestart hh:mm[:ss]

--timestop hh:mm[:ss]

--weekdays day[,day]

mon,tue

connlimit:连接数限制,对每个IP所能够发起并发连接数做限制:

专用选项:

[!]--connlimit-above [n]  :连接数限定  !可取反

limit:速率限制

专用选项:

--limit n[/second|/minute/hour/day]

--limit-burst n

state:状态检查。(内核中划一段空间存储条目,来识别报文是否来访问过)

(并发大的不建议开启此功能,会导致条目空间满载从而拒绝访问)

专用选项:--state [new| ESTABLISHED|RELATED| INVALID}

链接追踪中的状态:

NEW:新建立一个回话

ESTABLISHED:已建立的连接

RELATED:有关联关系的连接

INVALID:无法识别的连接

调整链接追踪功能所能容纳的连接的最大数目

/proc/sys/net/nf_conntrack_max

当前追踪的所有链接

/proc/net/nf_conntrack

不通协议或链接类型追踪时的属性:

/proc/sys/net/netfilter/     (都在此目录下)

放行被动模式下的FTP

1、装载模块(/lib/modules/KERNEL_VERSION/kernel/net/netfilter/)

模块:nf_conntrack_ftp

2、放行请求报文

(1)放行new状态对21端口请求的报文

(2)放行ESTABLISHED以及RALATED状态的报文

3、放行响应报文

(1)放行ESTABLISHED以及RALATED状态的报文

-j TARGET

ACCEPT:允许通过

DROP:拒绝通过

REJEDT:拒绝通过,并给予回应



自定义链

自定义链使用方法:

建立一个定义链,在主链中使用一条匹配规则跳转到自定义链,自定义链开始生效,按顺序匹配自定义链,如果自定义链中有RETURN就会返回主链继续匹配下去。

创建自定义链:

iptables [-t table ] -N chain

删除自定义链(零引用):

iptables [ -t table ] -X chain

重命名自定义链(零引用):

iptables  [-t table ] -E old_name new_name

主链指向自定义链:

iptables [ -t TABLES ] COMMAND CHAIN CRETIRIA -j TARGET

-j chain(自定义链)

TARGET填写自定义链名

自定义链返回主链: -j RETURN

iptables [ -t TABLES ] COMMAND CHAIN CRETIRIA -j TARGET

列子:iptables -A httpd_in -j RETURN

自定义链中插入规则  -j RETURN,返回主链,继续匹配



列子

优化规则:

1、尽量减少规则条目

2、访问量大的规则尽量放前面

3、统一服务的规则,规格更加严格的放在前面,尽早剔除。

列子:

1、设定默认规则

iptables -t filter -P INPUT DROP

1、通过ssh的tcp三次握手的第一次

iptables -I INPUT 3 -d xx.xx.xx.xx -p tcp --dport 22 --tcp-flags sys, ack,rst,fin sync -j ACCEPT

2、允许本机器dns解析 172.16.100.7

iptables -A OUTPUT -s 172.16.100.7 -p udp --dport 53 -j ACCEPT

iptables -A INPUT -d 172.16.100.7 -p udp --sport 53 -j ACCEPT

3、本机可ping其他主机,不允许其他主机ping本机

iptables -A OUTPUT -s 172.16.100.7 -p icmp --icmp-type 8 -j ACCEPT

iptables -A INPUT -d 172.16.100.74 -p icmp --icmp-type 0  -j ACCEPT

4、写一条规则允许22,80端口访问

iptables -I INPUT -d 172.16.100.7 -p -tcp -m multiport --dports 22,80 -j ACCEPT

iptables -I OUPUT -s 172.16.100.7 -p tcp -m multiport --sports 22,80 -j ACCEPT

5、允许172.16.100.1-172.16.100.100 的地址访问本机23端口

iptables -A INPUT -d 172.16.100.7 -p tcp --dport 23 -m iprange --src-range 172.16.100.1-172.16.100.100 -j ACCEPT

iptables -A OUTPUT -s 172.16.100.7 -p tcp --sport23 -m iptange --dst-range 172.16.100.1-172.16.100.100 -j ACCEPT

6、禁止含有sex字符串流出。

iptables -I OUTPUT -m string -- algo kmp --string "sex" -j DROP

7、周一、二、四、五,上午8点20分到下午6点40拒绝访问web服务。

iptables -I INPUT -d 172.16.100.7 -p tcp --dport  80 -m time --timestart 08:20 --timestop 18:40 --weekdays Mon,Tue,Thu,Fri -j REJECT

8、本机的ssh服务,仅限制每个IP发起两个链接请求。

iptables -A INPUT -d 172.16.100.7 -p tcp --dport 22  -m connlimit --connlimit-ablove 2 -j DROP

此规则匹配发现超过两个ssh链接后就拒绝,一般此规则后续规则里面放行ssh服务。

9、设置ping的速率

iptables -A INPUT -d 172.16.100.7 -p icmp --icmp-type 8 -m limit --limit 20/minute --limit-burst 5 -j ACCEPT

iptables -A OUTPUT -d 172.16.100.7 -p icmp --icmp-type 8  -j ACCEPT

10、通过22,80端口且状态为NEW或者ESTABLISHED。

iptables -I INPUT -d 172.16.100.7 -p tcp -m multiport --dport 22,80 -m state NEW,ESTABLISHED -j ACCEPT

iptables -I OUTPUT -m state --state ESTABLISHED -j ACCEPT

结合下面这一条规则使用,可以极大的提升防火墙匹配性能。

iptables -I INPUT -d 172.16.100.7  -m multiport  -m state ESTABLISHED -j ACCEPT (放在第一条)

iptables -I OUTPUT -s 172.16.100.7  -m multiport  -m state ESTABLISHED -j ACCEPT

11、给FTP放行。

iptables -A INPUT -d 172.16.100.7 -p tcp -m state --state RELATED -j ACCEPT

iptables -R OUTPUT 1 -s 172.16.100.7 -m state ESTABLISHED,RELATED -j ACCEPT  (output第一行)

12、自定义链

时间: 2024-10-05 04:43:13

iptables使用语法简述的相关文章

iptables 指令语法

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

iptables之语法

一iptables概念 防火墙分类 分为硬件防火墙和软件防火墙 硬件防火墙一般放在外网的最前面,公司的拓扑的最外面 iptables虽然称为防火墙,但是不能当做整个公司的出口防火墙,和动戈几千万,几百万的硬件防火墙还是不能相比的一般用来在公司的局域网做防护,还可以在服务器上做一些端口,流量,安全防护. 但是真的有人盯上了,当大流量打过来的时候,没有硬件高防设备来保护,还是会瘫痪的 iptables介绍 全称:netfilter/iptables:Ip信息包过滤系统,实际上由netfilter和i

iptables常用语法与案例

常用命令语法: [[email protected] ~]# iptables [-t tables] [-L] [-nv] 选项与参数: -t :后面接 table ,例如 nat 或 filter ,若省略此项目,则使用默认的 filter -L :列出目前的 table 的规则 -n :不进行 IP 与 HOSTNAME 的反查,显示讯息的速度会快很多! -v :列出更多的信息,包括通过该规则的封包总位数.相关的网络接口等 范例:列出 filter table 三条链的规则 [[email

Linux学习(二十八)iptables (二) iptables规则语法

查看iptables规则: [[email protected]0002 ~]# iptables -nvL Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 1786 140K ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 0 0 ACCEPT icmp -- *

iptables基本语法和操作

Iptables 查看路由表:route –n     netstat –rn 开启转发: /proc/sys/net/ipv4/ip_forward 规则链: INPUT, OUTPUT,FORWARD,PREROUTING ,POSTROUTING(路由选择后) table(功能):filter .nat.mangle.raw 流向: 到本机  PREROUTING->INPUT 转发    PREROUTING->FORWARD->POSTROUTING 从本机出发 OUTPUT-

PID控制器的数字实现及C语法讲解

PID控制器的数字实现及C语法讲解 概述 为方便学习与交流,根据自己的理解与经验写了这份教程,有错误之处请各位读者予以指出,具体包含以下三部分内容: (1)  PID数字化的推导过程(实质:微积分的近似计算): (2)  程序风格介绍(程序风格来源于TI官方案例): (3)  C有关语法简述(语法会结合实例进行讲解). PID控制器的数字化 PID控制器是工业过程控制中广泛采用的一种控制器,其中,P.I.D分别为比例(Proportion).积分(Integral).微分(Differentia

linux设置iptables防火墙的详细步骤(centos防火墙设置方法)

我们 来讨论一下如何为你的CentOS 服务器来设置简单的防火墙. 这里我们以DigitalOcean的CentOS 6 VPS为基础来讨论的,同样也适用于 阿里云上其他类型的LINUX系统. (阿里云有个云盾系统,因此在你自己的VPS上不设置防火墙也是可以的) 需要说明的是: 本文只涉及最基础最常用的防火墙设置,能屏蔽一些常用的攻击,但并不能彻底保证你的服务器的安全. 系统的随时更新 以及 关闭不必要的服务 仍然是保证系统安全非常重要的步骤. 如果你需要更全面的了解iptables,阅读本文后

防火墙原理和iptables

本文主要介绍linux上的防火墙工具iptables,顺便介绍硬件防火墙 什么是防火墙 用来保护内部网络不受外部网络恶意攻击和入侵的网络安全技术,通常是内部网络和外部网络的边界,根据定义的规则,对管理的网络内的数据包进行分析和过滤,限制访问 分为硬件防火墙和软件防火墙 硬件防火墙是由厂商设计好的主机设备 软件防火墙就是用来保护系统网络的一套工具软件,如linux下的iptables和TCP Wrappers 硬件防火墙 具体功能 安全隔离,访问控制,VPN,内容过滤,病毒防护 三种类型 包过滤防

iptables Data filtering详解

内容简介防火墙的概述iptables简介iptables基础iptables语法iptables实例案例详解(一)防火墙的简介防火墙是指设置在不同网络或网络安全域之间的一系列部件的组合,它能增强机构内部网络的安全性.它通过访问控制机制,确定哪些内部服务允许外部访问,以及允许哪些外部请求可以访问内部服务.它可以根据网络传输的类型决定IP包是否可以传进或传出内部网.防火墙通过审查经过的每一个数据包,判断它是否有相匹配的过滤规则,根据规则的先后顺序进行一一比较,直到满足其中的一条规则为止,然后依据控制