iptables基本使用

IPTABLES

iptables的表与链

iptables具有Filter, NAT, Mangle, Raw四种内建表。

查看对应表

-t  查看表

默认filter表,参数可以是filter,nat, mangle, raw

-L 查看内容

-n  IP以数字显示

-v  显示详细信息

-v -vvv -vvvv ..可以显示更详细的信息 

--line-number 显示行号(可使用行号删除)

iptables -nvL  或  iptables -nL --line-number


配置持久化

service iptables save

如果报错,说明没安装iptables,执行yum install iptables-services


清除已有配置,开放所有连接

iptables -F && iptables -X && iptables -F -t nat && iptables -X -t nat && iptables -P FORWARD ACCEPT && iptables -P INPUT ACCEPT && iptables -P OUTPUT ACCEPT


Filter表

Filter表示iptables的默认表,因此如果你没有自定义表,那么就默认使用filter表,它具有以下三种内建链:

INPUT链 – 处理来自外部的数据。

OUTPUT链 – 处理向外发送的数据。

FORWARD链 – 将数据转发到本机的其他网卡设备上。


相关参数

-A 给链追加规则

-P 修改链默认规则

iptables -P INPUT ACCEPT

-I 指定位置插入规则

例:iptables -I INPUT 1 --dport 80 -j ACCEPT(将规则插入到filter表INPUT链中的第一位上)

-D 删除指定规则

iptables -D INPUT 行号 删除INPUT链的指定行规则

-p 协议(protocol)

如tcp, udp, icmp等,可以使用all来指定所有协议。

-s 源地址(source)

指定数据包的源地址

参数可以使IP地址、网络地址(配合掩码)、主机名

例如:-s 192.168.1.10/24指定网络地址

-d 目的地址(destination)

指定目的地址,和s相同

-i 输入接口(input interface)

指定接口的数据包,接口名可以通过ip tables查看。

例如:-i eth0指定了要处理经由eth0进入的数据包

如果出现! -i eth0,那么将处理所有经由eth0以外的接口进入的数据包

-o 输出(out interface)

参考-i

–-sport 源端口(source port)

指定数据包源端口号,可以范围匹配

例如:--sport 8000:60000 表示匹配8000到60000的端口号。

–-dport 目的端口(destination port)针对-p tcp 或者 -p udp

参考--sport。

-m state 启动状态匹配

--state 状态匹配模块参数(需要启动状态匹配)

如NEW, ESTABLISHED。

NEW代表连接的第一个数据包到达服务器时

ESTABLISHED代表建立连接后

--tcp-flags TCP标志 针对-p tcp

可以指定由逗号分隔的多个参数

有效值可以是:SYN, ACK, FIN, RST, URG, PSH

可以使用ALL或者NONE


例子

#允许接收远程主机的SSH请求 

iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT

#允许发送本地主机的SSH响应

iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

#开放80端口

iptables -A INPUT -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT

iptables -A OUTPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT

你可能感兴趣的:(iptables基本使用)