Iptables简单使用

Linux的防护墙主要工作在网络层,针对TCP/IP数据包实施过滤和限制,属于典型的包过滤防火墙(或者称为网络层防火墙)。Linux系统的防火墙体系基于内核编码实现,具有非常稳定的性能和高效率。

在许多安全技术资料红netfilter和iptables都用来指Linux防火墙,两者的区别如下:

Netfilter:指的是Linux内核中实现包过滤防火墙的内部结构,不以程序或文件的形式存在,属于“内核态”的防火墙。(内核空间)

Iptables:指的是用来管理Linux防火墙的命令程序,通常位于/sbin/iptables目录下,属于“用户态”的防火墙管理体系。(用户空间,管理工具)。

Iptables表、链结构

Iptables的作用是为包过滤机制的实现提供规则(或称为策略),通过各种不同的规则,告诉netfilter对来自某些源、前往某些目的的或具有某些协议特征的数据包应该如何处理。为了更加方便地组织和管理防火墙规则,iptables采用了“表”和“链”的分层结构。

其中,每个规则表相当于一个内核空间的一个容器,根据规则集的不同用途划分为默认的四个表;在每个表容器内包括不同的规则链,根据处理数据包的不同时机划分为五种链;而决定是否过滤或处理数据包的各种规则,按先后顺序放在各种规则链中。

规则表:

为了从规则集的功能上有所区别,iptables管理着四个不同的规则表,其功能分别由独立的内核模块实现。这四个表的名称、包含的链及各自的用途如下:

Filter表:filter表用来对数据包进行过滤,根据具体的规则要求决定如何处理一个数据包。Filter表对应的内核模块为iptable_filter,表内包含三个链,即INPUT、FORWARD、OUTPUT。

nat 表:nat(Network  ddress Trstion.网络地址转换)表主要用来修改数据包的ip地址、端口号等信息。Nat表对应的模块为iptable_nat,表内包含三个链,即PREROUTING、POSTROUTNG. OUTPUT. (作地址转换)

mangle表:mangle表用来修改数据包的TOS(服务类型)、TTL(生存周期),或者为数据包设置Mark标记,以实现流量整形、策略路由等高级应用。mangle表对应的内核模块为iptable_mangle,表内包含五个链,即PREROUTING、POSTROUTING、INPUT、 OUTPUT. FORWARD.

raw表:raw表是自1.2.9 以后版本的iptables新增的表,主要用来决定是否对数据包进

行状态跟踪,raw表对应的内核模块为iptable_raw.表内包含两个链, 即OUTPUT、PREROUTING.

在iptables的四个规则表中mangle 表和raw表的应用相对较少。 因此这里不多介绍。

规则链(容纳各种防火墙规则):

在处理各种数据包时,根据防火墙规则的不同介入时机,iptables 默认划分为五种不同的规则数据链,这五种链的名称、各自的介入时机如下:

INPUT链:当收到访问防火墙本机地址的数据包(入站时),应用此链中的规则。

OUTPUT链 :当防火墙本机向外发送数据包(出站)时,应用此链中的规则。

FORWARD链:当接收到需要通过防火墙中转发送给其他地址的数据包(转发)时,应用此链中的规则。

PREROUTING链:在对数据包做路由选择之前,应用此链中的规则。

POSTROUTING在对数据包做路由选择之后,应用此链中的规则。

其中,INPUT、OUTPUT链主要用在“主机型防火墙中”,即主要针对服务器进行保护的防火墙;而FORWARD、PREROUTING、POSTROUTING链多用在“网络型防火墙中”,如使用Linux防火墙作为网关服务器,在公司内网与Internet之间进行安全控制。

编写防火墙规则:

其主要说的是作为netfilter防火墙的管理工具----iptables命令的使用。

Iptables基本规则:

Iptables  [-t  表名]  管理选项   [链名]  [匹配条件]  [-j控制类型]

其中表名、链名用来指定iptables命令所操作的表和链,未指定时默认使用filter表;管理选项表示iptables规则的操作方式,如插入、增加、删除、查看等;匹配条件用来指定要处理的数据包的特征、不符合指定条件的数据包不会处理;控制类型指的是数据包的处理方式,如:允许、拒绝、丢弃等。

对于防火墙、数据包的控制类型非常关键、直接关系到数据包的放行、封堵及做相应的日志记录等。在iptables防火墙体系中,最常用的几种控制类型如下:

ACCEPT允许数据包通过。

DROP:直接丢弃数据包,不给出任何回应信息。

REJECT拒绝数据包通过,必要时会给数据发送一个响应信息。

LOG在/var/log/message文件中记录日志信息,然后将数据包传递给下一条规则。防火墙规则的“匹配即停止”对于LOG操作来说是一个特例。因为LOG只是一种辅助的动作,并没有处理数据包。

Iptables简单使用:

# service  iptables  start|stop|restart

选项:

-A:在指定链的末尾添加一条新规则

-D:删除指定链中的某一条规则,可指定规则顺序号或具体内容

-I:在指定链中插入一条新的规则,未指定序号时默认作为第一条规则

-R:修改、替换指定链中的某一条规则,可指定规则序号或具体内容

-L:列出指定链中所有的规则,若未指定链名,则列出表中所有的链

-F:清空指定链中所有的规则,若未指定链名,则清空表中所有链

-P:设置指定链的默认策略

-n:使用数字形式显示输出结果,如显示IP地址而不是主机名

-v:查看规则列表时显示详细的信息

-h:查看命令帮助信息

--line-numbers:查看规则列表时,同时显示规则在链中的顺序号。


 

使用练习:

查看iptables防火墙策略:

# iptables -L -n –v 默认是filter表的(结合使用时-L不要放在首位)

查看其它表的:

# iptables  -t nat  -n -v –L 如果你只希望查看特定的表,可以在-t 参数后跟上要单独查看的表名。

屏蔽某个IP地址:

# iptables -A INPUT -s 192.168.152.199 -j DROP

如果你只想屏蔽TCP 流量,可以使用-p 参数的指定协议:

# iptables -A INPUT -p tcp -s 192.168.152.199 -j DROP

解封对IP地址的屏蔽:

# iptables -D INPUT  -s 192.168.152.199 -j DROP

IPtables 关闭特定端口,阻止特定的传出连接:

# iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT

阻止特定的传入连接:

# iptables -A INPUT -p tcp --dport 80 -j ACCEPT

使用multiport 我们可以一次性在单条规则中写入多个端口,例如:

# iptables -A INPUT  -p tcp -m multiport --dports 22,80,443 -j ACCEPT

# iptables -A OUTPUT -p tcp -m multiport --sports 22,80,443 -j ACCEPT

在IPtables 中 IP 地址范围是可以直接使用 CIDR 进行表示的,例如:

# iptables -A OUTPUT -p tcp -d 192.168.100.0/24 --dport 22 -j ACCEPT

有时我们需要将Linux 服务器的某个服务流量转发到另一端口,此时可以使用如下命令(上述命令会将所有到达eth0 网卡 25 端口的流量重定向转发到 2525 端口。

):

# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 25 -j REDIRECT --to-port 2525

对Linux 禁 PING 可以使用如下规则屏蔽 ICMP 传入连接:

# iptables -A INPUT -p icmp -i eth0 -j DROP

环回访问(127.0.0.1),建议大家都开放:

# iptables -A INPUT -i lo -j ACCEPT

# iptables -A OUTPUT -o lo -j ACCEPT

使用如下规则可以屏蔽指定的MAC 地址:

# iptables -A INPUT -m mac --mac-source 00:00:00:00:00:00 -j DROP

要清空IPtables 链可以使用如下命令:

# iptables -F

要清空特定的表可以使用-t 参数进行指定,例如:

# iptables -t nat –F

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,752评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,100评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,244评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,099评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,210评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,307评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,346评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,133评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,546评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,849评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,019评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,702评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,331评论 3 319
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,030评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,260评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,871评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,898评论 2 351

推荐阅读更多精彩内容