iptables学习

 

防火墙分类:

工作方式:

    包过滤防火墙(四层):port、IP、MAC、icmp type、status(连接状态)。

    应用层防火墙(七层):hostname、FQDN

工作层级:

    用户态:iptables、firewalld

    内核态:netfilter、netfilter

 

四表:

raw:链路优化

mangle:信息修改

nat:地址转换

filter:数据包过滤

五链:

INPUT入栈、OUTPUT出栈、FORWORD转发、PREROUTING路由器前、POSTROUTING路由后

表顺序:raw > mangle > nat > filter

链顺序

    入栈:PREROUTING、INPUT

    出栈:OUTPUT、POSTROUTING

    转发:PREROUTING、FORWORD、POSTROUTING

语法:

iptables [-t 表名] 选项 [链名] [条件] [-j 动作]

例:iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT

选项类型:

    -A:在链的末尾追加一条规则

    -I:在链的开头或指定序号(在链后跟序号如INPUT 3)插入一条规则

    -L:查看规则。

        加-n会把服务名改为端口号。服务名根据/etc/services转换。

        加-v更加详细,会列出匹配的数据包、字节数以及源目IP。

        --line-numbers:查看规则时,显示规则的序号。

    -D:删除链内指定序号(或内容)的一条规则。

    -F:清空所有的规则

    -P:为指定的链设置默认规则。(只能指定DROP和ACCEPT)

匹配条件:

    通用匹配

    可以直接使用,不依赖于其他条件或扩展。包括网络协议、IP地址、网络接口等条件。

    协议 -p [协议名]

    地址 -s [源地址]、-d [目的地址]

    接口 -i [入栈网卡]、-o [出栈网卡]

    隐含匹配

    要求以特定的协议匹配作为前提,包括端口、TCP标记、ICMP类型等条件。

    端口匹配 --sport源端口、--dport目的端口。

    ICMP类型匹配 –icmp-type ICMP类型。

    显示匹配

    要求以“-m 扩展模块”的形式明确指出类型,包括多端口、MAC地址、IP范围、数据包状态等条件

    多端口匹配  -m multiport --sport [源端口列表]

                -m multiport --dport [目的端口列表]

    IP范围匹配  -m iprange --src-range [IP范围]

    MAC地址范围 -m mac -macl-source [MAC地址]

    状态匹配    -m state --state [连接状态]

动作类型:

    ACCEPT:允许通过

    DROP:直接丢弃,不给出任何回应

    REJECT:拒绝通过,必要时会给出提示

    LOG:记录日志信息,然后传给下一条规则继续匹配

    SNAT:修改数据包源地址

    SNAT:修改数据包目的地址

    REDIRECT:重定向

NAT地址转换

    SNAT更改源地址。在nat表,路由后POSTROUTING链添加。用于内网主机访问外网使用。

iptables -t nat -A POSTROUTING -s 10.246.16.0/24 -o eth0 -j SNAT --to-source 218.29.30.31

地址伪装MASQUERADE,适用于外网口IP地址非固定。若不加[-s ip范围]表示全部转换。

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE

    DNAT更改目的地址。在nat表,路由前PREROUTING链添加。用于端口映射或内部主机需要被外网访问

iptables -t nat -A PREROUTING -i eth0 -d 218.29.30.31 -p tcp --dport 80 -j DNAT --to-destination 10.246.16.1

iptables -t nat -A PREROUTING -i eth0 -j DNAT --to-destination 10.246.16.1直接映射IP地址。

PS:不指定表名时,默认指filter表

    不指定链名时,默认指表内的所有链

    除非设置链的默认策略,否则必须指定匹配条件

    选项、链名、控制类型使用大写字母,其余均小写。

iptables保存和还原

service iptables save

默认保存文件:/etc/sysconfig/iptables

导出到文件:iptables-save > 1.txt

导入防火墙规则:iptables-restore < 1.txt (有的版本导入后不直接生效,需要重启服务)。

配置示例:

只允许10.246.16.64访问本机的80端口

iptables -A INPUT -s 10.246.16.64 -p tcp --dport 80 -j ACCEPT

只允许10.224.33.141远程管理本机

iptables -A INPUT -s 10.224.33.141 -p tcp --dport 22 -j ACCEPT

除了icmp协议以外,其他的都允许通过

iptables -A FORWARD ! -p  icmp  -j ACCEPT

拒绝整个网段访问本机

iptables -I INPUT -s 10.246.16.0/24 -j DROP

开放FTP服务端口

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

 

posted @ 2019-08-12 16:06  翎戍  阅读(170)  评论(0编辑  收藏  举报