61 iptables
netfilter:kernel
报文流向
流入本机
prerouting----input-----用户空间
流出本机
用户空间-----output----postrouting
转发
prerouting—forward----postrouting
内置链:hook
prerouting 路由前
input 流入
forward 转发
output 转发
postrouting 路由后
4张表
filter: input,forward,output
mangle:prerouting,input,forward,output,postrouting
nat:prerouting,input,output,postrouting
raw:prerouting,output
优先级的高低:
raw--mangle---nat--filter
规则:
匹配条件+动作
匹配条件
基本匹配
netfilter 自带的匹配机制
[!] -s 源地址匹配 !取反
扩展匹配:加载扩展模块
- 隐式扩展
-p 指明协议
- 显式扩展
--sports x:x,x,x,x
--dports x:x,x,x,x
iptables -I INPUT -s 0/0 -d 192.168.113.129 -p tcp -m multiport --dports 22,80 -j ACCEPT
iprange
一段连续的ip地址范围
--src-range from to
--dst-range from to
iptables -A INPUT -d 192.168.113.129 -p tcp --dport 23 -m iprange --src-range 192.168.113.140-192.168.113.150 -j ACCEPT
动作
基本处理动作
扩展处理动作
自定义动作
链:
内置链:对应于一个函数
添加规则时的考量
1.实现功能
2.添加规则位置
========================================================
默认filter链:
链管理
-N 新增一条链
-X 删除
-P 设置链的默认策略
- accept
- drop
- reject
iptables -L 查询规则
Chain INPUT (policy ACCEPT)
iptables -L -n
-vv 详细信息
--line-numbers
iptables -S 以iptables-save命令显示规则
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
规则管理
-A 追加
-I 插入
-D 删除
-R 替换
-F 清洗
-Z 清空计数器0
iptables计数器
1.匹配规则的次数
2.规则匹配到的包数量
[[email protected] ~]# iptables -vnL
num pkts bytes target prot opt in out source destination
1 0 0 ACCEPT udp -- virbr0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:53
-S 显示所有链上的规则
iptables-save 保存
iptables-restore 恢复
匹配:
1.fileter链
iptables -P INPUT DROP 拒绝所有进战
iptables -P OUTPUT DROP 拒绝所有出战
iptables -P FORWARD DROP
iptables -F 清除所有规则
[[email protected] ~]# iptables -nvL
Chain INPUT (policy DROP 2 packets, 214 bytes)
pkts bytes target prot opt in out source destination
59 6497 ACCEPT all – * * 192.168.113.0/24 0.0.0.0/0
限制流入接口
-i 只能用于prerouting forward output
限制流出接口
-o 只能用于forward output postrouting
TCP
iptables -A INPUT -s 192.168.113.0/24 -p tcp -j ACCEPT
关键命令
命令参数都是大写 选项参数是小写
-A 新增
-S 显示命令格式
[[email protected] ~]# iptables -S
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A INPUT -s 192.168.113.1/32 -j ACCEPT
-A INPUT -s 192.168.113.161/32 -j REJECT --reject-with icmp-port-unreachable
-s源地址
-d目的地址
-p协议
-j动作
ACCEPT,DROP,REJECT
-i流入接口
-o流出接口
-sport 源端口
-dport 目的端口
SNAT
DNAT
iptables -A INPUT -s 0/0 -d 192.168.113.129 -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -s 192.168.113.129 -d 0/0 -p tcp --sport 22 -j ACCEPT
iptables -A INPUT -s 0/0 -d 192.168.113.129 -p tcp --dport 80 -j ACCEPT
iptables -A OUTPUT -s 192.168.113.129 -d 0/0 -p tcp --sport 80 -j ACCEPT
iptables -A INPUT -s 192.168.113.0/24 -j ACCEPT #源地址匹配
iptables -A OUTPUT -d 192.168.0.0/16 -j ACCEPT #目的地址匹配
新增:
iptables -A INPUT -s 192.168.113.1/32 -j ACCEPT
iptables -A INPUT -j REJECT
插入:
iptables -I INPUT 2 -s 192.168.113.141 -j accept
iptables -I INPUT 3 -s 192.168.113.161 -p tcp --dport 22 -j ACCEPT
上一篇: 29.0iptables防火墙
推荐阅读
-
在centos7 中docker info报错docker bridge-nf-call-iptables is disabled 的解决方法
-
Linux使用iptables限制多个IP访问你的服务器
-
一键配置CentOS iptables防火墙的Shell脚本分享
-
linux防火墙管理工具之iptables
-
jQuery 选择器有61种你都知道了多少
-
IBM 笔记本T61开机不稳定维修一例
-
iptables做策略屏蔽QQ与MSN
-
Centos 7 关闭firewall防火墙启用iptables防火墙
-
iptables配置(/etc/sysconfig/iptables)操作方法
-
新装linux系统/etc/sysconfig目录下无iptables文件的解决方法