linux菜鸟日记(5)

时间:2024-01-16 12:22:32

iptables详细语法及配置:

SNAT:源地址转换
DNAT:目标地址转换
PNAT:端口地址转换

----------------------------------
iptables规则链

路由以后到本机:INPUT
本机出口:OUTPUT
路由到本机以后转发:FORWARD
路由前:PREROUTING
路由后:POSTROUTING

---------------------------------
防火墙的功能
raw
mangle:拆包修改
nat:地址转换
filter:过滤

---------------------------------

filter

处理动作
ACCEPT:放行
DROP:拒绝(直接丢弃包)
REJECT:拒绝(向对方回应拒绝)

---------------------------------

iptables 基本语法

iptables [-t TABLE](指定表名 raw|mangle|nat| filter<默认> ) COMMAND CHAIN(链) [CRETIRIA](匹配条件) -j ACTION

COMMAND:对链,或者链链中规则进行管理操作
链中规则:
-A 新加一条规则
-I [*] 插入一条规则
-R [*] 替换一条规则 OR , -R CRETERIA
-D [*] 删除一条规则 OR , -D CRETERIA

链:
-N 新建一个自定义链
-X 删除一个自定义空链
-E 重命名一条自定义链
-F 清空指定链,如果不指定链,则清空表中所有链
-P 设定默认策略
-Z 置零(每条规则,包括默认策略都有两条计数器,一个是被本规则匹配的所有数据包的个数,另一个是被本条数据包匹配的大小之和)

-L 查看
-v 查看详细
-vv 查看更详细
-vvv 查看更加详细
-- line-numbers 查看行号
-x 计数器的精确值
-n 不要对地址和端口进行名称反解(显示数字地址)
------------------------------------

iptabels服务脚本: /etc/rc.d/init.d/iptables
脚本配置文件:/etc/sysconfig/iptables-config
service iptables [status|start|stop|restart|save<保存>]

iptables 规则的目录 /etc/sysconfig/iptables

匹配条件:
通用匹配
-s 源地址
-d 目标地址
| IP
| NETWORK/MASK
| ! (除指定IP或者网段以外)
-p [icmp|tcp|udp]
-i IN_INTERFACE 数据包流入接口
-o OUT_INTERFACE 数据包流出接口

扩展匹配
隐式扩展
-p tcp [icmp|tcp|udp]
|--sport 端口(必须为单个或者相连的端口)
|--dport 目标端口(必须为单个或者相连的端口)
|--tcp-flags [SYN,FIN,ACK,PSH,RST,URG](需要检查的位) [SYN,FIN,ACK,PSH,RST,URG](须为1的位)
|--syn 相当于 --tcp-flags SYN,ACK,RTS,FIN SYN

-p udp
|--sport
|--dport
-p icmp
|--icmp-type
| 0:echo-reply 回应报文
| 8:echo-request 请求报文

显式扩展
nitfilter扩展模块引入的扩展,用于指定新的匹配条件,通常需要额外的专用选项来定义
-m state:用于使用连接状态检测
--state
NEW(新的链接),ESTABLISHED(建立的链接)
RELATED(有关系的),INVALID(非法的)

-------------------------------------

CentOS 7 保存方法
直接修改/etc/sysconfig/iptables保存
/usr/libexec/iptables/iptables.init save