iptables简单总结

netfilter/iptables(简称为iptables)组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的,它可以代替昂贵的商业防火墙解决方案,完成封包过滤、封包重定向和网络地址转换(NAT)等功能。

防火墙
iptables
firewalld


内核态
netfilter
用户态
iptables
firewalld
过滤防火墙

默认策略:拒绝所有数据包从入口方向进入

安全和性能永远成反比
selinux:给文件打标签 ls -Z :查看selinux安全上下文信息
pv 并发量


centos:
yum install iptables iptables-services iptables-devel -y
192.168.124.150 iptables-client
192.168.124.234 iptables-server
iptables -L:查看防火强规则
iptables -F:清空防火强规则
其他清空:
iptables -Z
iptables -X
语法:
# iptables -t 表名 动作 链名 匹配条件 -j 目标动作
四表五链
-t 表名 //默认不指定的情况下是filter表
表:
raw 数据包跟踪
mangle 标记数据包
nat 网络地址转换
filter 数据包过滤
读表顺序 --->上面顺序从上到下

动作: #iptables --help
iptables -t filter -A 追加
例子:
# iptables -t filter -A INPUT -p icmp -j REJECT 拒绝ping返回消息
# iptables -nL --line-numbers -t nat -v
-L 列出规则
-n 以数字形式显示
--line-numbers 显示规则行号 用 --line
-t nat 可以跟不同的表
-v verbose 显示详细信息 pkts:处理包的所有数目 bytes:包的大小
-vv 显示更详细
# iptables -nL INPUT 1 -v | awk '{print$2}'
1848
# iptables -Z
-Z 清零规则计数 可跟表跟链
修改规则: -R
# iptables -R INPUT 1 -p tcp -j REJECT
删除规则: -D
# iptables -D INPUT 1
插入规则: -I inster
# iptables -I INPUT -p tcp --dport 23 -j DROP
# iptables -I INPUT 2 -p tcp --dport 23 -j DROP


链 时间点 位置点
PREROUTING 路由之前
INPUT 数据包流入
FORWARD 数据包经过
OUTPUT 数据包流出
POSTROUTING 路由之后
可添加自定义链: suibian 保留规则 如果不主动调用不会生效

raw:
PREROUTING 路由之前
OUTPUT 数据包流出
mangle:
PREROUTING 路由之前
INPUT 数据包流入
FORWARD 数据包经过
OUTPUT 数据包流出
POSTROUTING 路由之后
nat:
PREROUTING 路由之前
INPUT 数据包流入
OUTPUT 数据包流出
POSTROUTING 路由之后
filter:
INPUT 数据包流入
FORWARD 数据包经过
OUTPUT 数据包流出
file://C:\Users\16682\AppData\Local\Temp\ct_tmp/1.png
file://C:\Users\16682\AppData\Local\Temp\ct_tmp/2.png
数据包流向:
三种情况:
1.数据包从A网络流向防火墙本地
2.数据包从防火墙本地流向B网络
3.数据包从A网络流向B网络

路由 NAT 网络地址转换
snat 原地址转换
dnat 目标地址转换

创建自定义链:
# iptables -N wing
添加规则到自定义链:
#iptables -A wing -p icmp -j DROP
关联自定义链:
#iptables -A INPUT -j wing
修改自定义链名称:
# iptables -E wing WING
删除自定义链: 不能有关联不能有规则
# iptables -F INPUT
# iptables -F WING
# iptables -X WING

企业环境:
我们内网 互联网
高安全区域 防火墙 低安全区域
drop:拒绝所有数据包从入口方向进入,只放行你想接受的包
修改默认策略: drop/accept
# iptables -P INPUT DROP
查看规则: -S 打印输入链规则



#iptables -A INPUT -p tcp --dport 80 -j ACCEPT destination 目的地
#iptables -A INPUT -p tcp --sport 80 -j ACCEPT source源

匹配条件:
协议:
-p: tcp udp icmp
tcp:可靠的传输协议
udp:不可靠的传输协议
端口:必须和协议一起写
--dport:目标端口 端口范围:目标端口1:目标端口2
--sport:源端口 多端口匹配:#iptables -A INPUT -p tcp -m multiport --dports 23,80 -j DROP
IP:
-s 源ip,源ip2
-d 目标ip
ip地址范围:
-m iprange --src-range 192.168.124.2-192.168.124.54 源 source
-m iprange --dst-range 192.168.124.2-192.168.124.54 目标 destination

MAC:
-m mac --mac-source
#iptables -A INPUT -p tcp -m mac --mac-source 52:54:00:0e:18:18 -j drop
目标动作:
drop 丢弃
reject 拒绝
accept 接受
log 记录日志 messages里面 指定日志
snat 修改源ip地址
masquerade
#iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE
dnat 修改目标ip地址
(协议头)数据头+数据
源ip 源mac 目标ip 目标mac
私有ip和公有ip不能直接通信
192.168.1.1-192.168.1.254------>公有202.106.18.8----->公网服务器
#iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j SNAT --to 202.106.18.8
修改目标ip:
echo 1 >/proc/sys/net/ipv4/ip_forward
#iptables -t nat -A PREROUTING -s 202.106.18.8 -j SNAT --to 192.168.1.8
#iptables -t nat -A PREROUTING -p tcp -m tcp --dport 10022 -j DNAT --to-destination 192.168.10.11:22
mangle:
设置标记:#iptables -t mangle -A PREROUTING -s 192.168.1.8 -p tcp --dport 80 --set-mark
#iptables -A OUTPUT -m mark --mark 50 -j drop
 

猜你喜欢

转载自blog.csdn.net/qq_30429153/article/details/85243761
今日推荐