Linux iptables的认识:
一、它是一个配置Linux的防火墙命令工具,是netfilter项目的一部分,iptables用于配置IPv4,ip6tables用于配置IPv6。防火墙的最大作用就是它能帮助我们限制某些服务的存取来源,可以管制来源和目标IP。
二、iptables可以检测,转发,重定向,修改和过滤ipv4的数据包,并且按照不同的目的被组织成的表。“表”由一组预先定义的链 组成,“链”包含了遍历的规则,每一条规则包含一个谓词的潜在匹配和相应动作(成为目标)。如果谓词为真,该动作会被执行,也就是说条件匹配。
我们可以用一张图的形式来总结iptables的工作流程,有一种困扰就是以为iptables对内部端口的进入的数据和从外部互联网的数据iptables采取了不同的措施,相反的而是,iptables都采取了统一对待,只不过可以自己配置规则针对内网和外网采取不同的过滤措施。
防火墙除了可以防备本机被入侵之外, 他还可以架设在路由器上面藉以控管进出本地端网域的网络封包。
Version 2.0:使用 ipfwadm 这个防火墙机制;
Version 2.2:使用的是 ipchains 这个防火墙机制;
Version 2.4 与 2.6 :主要是使用 iptables 这个防火墙机制
三、iptables包含5张表;
① raw: 用于配置数据包,raw中的数据包不会被系统跟踪。
② filter:用于存放与防火墙相关操作的默认表。
====filter:
INPUT-----主要与想进入我们Linux主机的封包有关。
OUTPUT-----主要与我们Linux送出的封包有关
FORWARD----与本机没有太大关系,可以转递封包到后端的计算机中
③ nat: 用于网络地址转换(端口转发用的较多)管理后端主机防火墙内部的机器。
nat 地址转换:
PREROUTING:主要是在进行路由判断前要进行的规则(DANT/REDIRECT)修改目标IP
POSTROUTING: 主要是在进行路由判断之后进行的规则(SANT/MASQUERADE)修改来源IP
OUTPUT: 与送出去的封包有关。
④ mangle:用于对特定的数据包的修改(损坏数据包)。与标记有关
⑤ security:用于强制访问控制网络规则(例如:SElinux)。用的较多的是filter和nat,其他的都不怎么常用。
网络封包进入主机之前NetFilter会检查该包,也就是进行防火墙的规则过滤,如果接受 ACCEPT 即可进入本机获取资源,如果没有通过检查,则可能会被 DROP掉,防火墙的所有的rule都是有顺序的,假如说一个封包进入主机,进入了rule1 并且符合rule1的规则,则可以执行相关的Action动作,就不必理会别的rule。
iptables的一些配置命令:
iptables -F 清除所有的已经定制的规则
iptables -X 杀掉所有的使用者“自定义”的chain (tables)
iptables -Z 将所有的chain的计数与流量统计归零
定义预设政策:
iptables [-t table] -P [INPUT,OUTPUT,FORWARD] [ACCEPT,DROP]
-P :定义policy 大写P
ACCEPT: 该封包可接受
DROP:该封包丢弃,不会让client端知道为何被丢弃。
iptables [-AI链名] [-io 网络接口] [-p协议] [-s来源IP/网域][-d目标IP/网域] -j[ACCEPT DROP REJECT LOG]
-AI链名:针对某链进行规则的“插入”和累加
-A:新增一条规则,该规则增加原本的规则最后面,
-I:插入一条规则,如果没有指定该规则的顺序,默认插入变成第一条规则。
-io:网络接口,设定封包进出的接口规范
-i:封包进入那个网络接口,例如:ech0,需要与INPUT配合
-o:封包所传出的那个网络接口,需要与OUTPUT配合。
-p:协议名称,指定该规则适用于哪种封包,例如:tcp,udp,all,icmp等
-s:来源IP/网域,设定此规则的封包来源项目,可设置单纯的IP或者网域。
-d:目标IP/网域 原理同-s一样。
-j:后接动作,主要有 ACCEPT,DROP,REJECT 以及记录LOG。
iptables -A INPUT -m state -state ESTABLISHED,RELATED -j ACCEPT
#把该条规则放在INPUTchain的第一条,对状态为ESTABLISHED和RELATED的连接放行,简单的说就是对允许出去的包被对方主机接收后,对方主机回应寄来的封包放行,很重要的一条语句,尤其在ftp服务器的场合。
iptables -A INPUT -i lo -j ACCEPT #
iptbales -A OUTPUT -o lo -j ACCEPT # 对运行在本机回还地址上的所有服务放行
iptables -A FORWARD -p tcp -s 192.168.1.12 -d 192.168.13 -o ech0 -j DROP
#禁止ip
iptables -A INPUT -p tcp -dport 1:1024 -j DROP
iptables -A INPUT -p udp -dport 1:1024 -j DROP #这两条可以防止nmap探测
iptables -A INPUT -p tcp -dport ** -j ACCEPT #需要开放的端口
一、它是一个配置Linux的防火墙命令工具,是netfilter项目的一部分,iptables用于配置IPv4,ip6tables用于配置IPv6。防火墙的最大作用就是它能帮助我们限制某些服务的存取来源,可以管制来源和目标IP。
二、iptables可以检测,转发,重定向,修改和过滤ipv4的数据包,并且按照不同的目的被组织成的表。“表”由一组预先定义的链 组成,“链”包含了遍历的规则,每一条规则包含一个谓词的潜在匹配和相应动作(成为目标)。如果谓词为真,该动作会被执行,也就是说条件匹配。
我们可以用一张图的形式来总结iptables的工作流程,有一种困扰就是以为iptables对内部端口的进入的数据和从外部互联网的数据iptables采取了不同的措施,相反的而是,iptables都采取了统一对待,只不过可以自己配置规则针对内网和外网采取不同的过滤措施。
防火墙除了可以防备本机被入侵之外, 他还可以架设在路由器上面藉以控管进出本地端网域的网络封包。
Version 2.0:使用 ipfwadm 这个防火墙机制;
Version 2.2:使用的是 ipchains 这个防火墙机制;
Version 2.4 与 2.6 :主要是使用 iptables 这个防火墙机制
三、iptables包含5张表;
① raw: 用于配置数据包,raw中的数据包不会被系统跟踪。
② filter:用于存放与防火墙相关操作的默认表。
====filter:
INPUT-----主要与想进入我们Linux主机的封包有关。
OUTPUT-----主要与我们Linux送出的封包有关
FORWARD----与本机没有太大关系,可以转递封包到后端的计算机中
③ nat: 用于网络地址转换(端口转发用的较多)管理后端主机防火墙内部的机器。
nat 地址转换:
PREROUTING:主要是在进行路由判断前要进行的规则(DANT/REDIRECT)修改目标IP
POSTROUTING: 主要是在进行路由判断之后进行的规则(SANT/MASQUERADE)修改来源IP
OUTPUT: 与送出去的封包有关。
④ mangle:用于对特定的数据包的修改(损坏数据包)。与标记有关
⑤ security:用于强制访问控制网络规则(例如:SElinux)。用的较多的是filter和nat,其他的都不怎么常用。
网络封包进入主机之前NetFilter会检查该包,也就是进行防火墙的规则过滤,如果接受 ACCEPT 即可进入本机获取资源,如果没有通过检查,则可能会被 DROP掉,防火墙的所有的rule都是有顺序的,假如说一个封包进入主机,进入了rule1 并且符合rule1的规则,则可以执行相关的Action动作,就不必理会别的rule。
iptables的一些配置命令:
iptables -F 清除所有的已经定制的规则
iptables -X 杀掉所有的使用者“自定义”的chain (tables)
iptables -Z 将所有的chain的计数与流量统计归零
定义预设政策:
iptables [-t table] -P [INPUT,OUTPUT,FORWARD] [ACCEPT,DROP]
-P :定义policy 大写P
ACCEPT: 该封包可接受
DROP:该封包丢弃,不会让client端知道为何被丢弃。
iptables [-AI链名] [-io 网络接口] [-p协议] [-s来源IP/网域][-d目标IP/网域] -j[ACCEPT DROP REJECT LOG]
-AI链名:针对某链进行规则的“插入”和累加
-A:新增一条规则,该规则增加原本的规则最后面,
-I:插入一条规则,如果没有指定该规则的顺序,默认插入变成第一条规则。
-io:网络接口,设定封包进出的接口规范
-i:封包进入那个网络接口,例如:ech0,需要与INPUT配合
-o:封包所传出的那个网络接口,需要与OUTPUT配合。
-p:协议名称,指定该规则适用于哪种封包,例如:tcp,udp,all,icmp等
-s:来源IP/网域,设定此规则的封包来源项目,可设置单纯的IP或者网域。
-d:目标IP/网域 原理同-s一样。
-j:后接动作,主要有 ACCEPT,DROP,REJECT 以及记录LOG。
iptables -A INPUT -m state -state ESTABLISHED,RELATED -j ACCEPT
#把该条规则放在INPUTchain的第一条,对状态为ESTABLISHED和RELATED的连接放行,简单的说就是对允许出去的包被对方主机接收后,对方主机回应寄来的封包放行,很重要的一条语句,尤其在ftp服务器的场合。
iptables -A INPUT -i lo -j ACCEPT #
iptbales -A OUTPUT -o lo -j ACCEPT # 对运行在本机回还地址上的所有服务放行
iptables -A FORWARD -p tcp -s 192.168.1.12 -d 192.168.13 -o ech0 -j DROP
#禁止ip
iptables -A INPUT -p tcp -dport 1:1024 -j DROP
iptables -A INPUT -p udp -dport 1:1024 -j DROP #这两条可以防止nmap探测
iptables -A INPUT -p tcp -dport ** -j ACCEPT #需要开放的端口