6.Linux防火墙规则以及使用方法
防火墙
从防御个数分:
主机防火墙(针对单个主机,单体防御)
网络防火墙(部署在因特网入口,集体防御)
从物理层面分:
硬件防火墙:基于软件,性能好(安全公司卖的东西)
软件防火墙:可以破解,安全性不高,成本低,性能不高,利用本机的CPU计算(360全家桶)
iptables
Linux的防火墙,确切说是客户端的用户代理
netfilter
真正的防火墙的安全框架,Linux核心内部数据包处理模块
1.nat(CCNA内容可以看到)
2.数据修改
3.防火墙功能(数据过滤)
iptables使用
iptables按流程按规则(rules)办事
五链
prerouting 数据包刚进入网络层,数据包停在网卡口上
input 路由判断好了,进入用户空间
output 用户空间发出,让路由判断从哪走
postrouting 数据包通过网络口发出去
forward 不进入用户空间,直接转发
四表(括号内为内核模块)
filter表:负责过滤(iptables_filter)
对应链:input、forward、output
nat表:网络地址转换(iptable_nat)
对应链:除了forward以外都可以
mangle表:解析报文,修改报文,封装报文(iptable_mangle)
对应链:全部都可以
raw表:关闭nat表的连接追踪(iptable_raw)
对应链:prerouting、output
表优先级关系:raw>mangle>nat>filter
匹配数据包后的处理动作
ACCEPT:允许数据包通过
DROP:丢包,不给对方数据信息和回应
REJECT:拒绝数据包通过,收到拒绝信息
SNAT:原地址转换,解决内网用户共用公网ip上网的问题,类似于路由
MASQUERADE:动态改变IP
DNAT:目标地址转换
REDIRECT:本机端口映射
LOG:记录日志,日志在Linux位于/var/log/messages
filter过滤规则
查看命令
iptables -t filter -L
iptables -t raw -L
iptables -t mangle -L
iptables -t nat -L
iptables --line-numbers -nvL INPUT 按照行号显示INPUT内容
police:当前默认的策略
pkts:匹配多少报文
bytes:报文大小
target:对目标的规则对应动作
prot:对应协议
opt:对应规则采取的选项
in:网卡流入,匹配哪张网卡(*表示所有,lo表示环回口)
out:从哪个网卡流出
source:源地址
distinction:目标地址
iptables -vL INPUT 查看总的INPUT
iptables --line-numbers -vL INPUT 规整查看总INPUT
iptables -t filter -I INPUT -s 192.168.1.61 -j DROP
拒绝来自192.168.1.61的input流量,但是会看到对方向自己发送的包
iptables -t filter -A INPUT -s 192.168.1.133 -j DROP 在列表最后添加
iptables -D INPUT 10 删除第10个
iptables -t filter -F INPUT 删除filter中所有INPUT
yum -y install iptables-services 安装iptables服务
service iptables save 保存防火墙规则,保存在/etc/sysconfig/iptables
iptables匹配方式
iptables -I INPUT -s [ip或网段] -j [动作]
常规操作
iptables -I INPUT ! -s [ip或网段] -j [动作]
取反操作,除了目标ip其他都怎么样,面对DDoS适用
iptables -I INPUT -s 1.1.1.1 -d 1.1.1.2 -j DROP
拒绝源是1.1.1.1目标是1.1.1.2的INPUT方向的数据包
iptables -I INPUT -s 1.1.1.1 -p tcp -j DROP
拒绝所有来自1.1.1.1的tcp请求
-p:协议,包括tcp udp udplite icmp esp ah sctp icmpv6 mh
iptables -I INPUT -s 192.168.1.132 -p icmp -j DROP
拒绝192.168.1.132的ping请求
iptables -I INPUT -s 1.1.1.1 -i ens33 -p icmp -j DROP
拒绝来自网卡ens33的input方向的来自1.1.1.1的icmp请求
拓展功能(-m)
iptables -I INPUT -s 1.1.1.1 -p tcp -m multiport --dports 22,3389,80 -j DROP
通过拓展模块multiport,同时拒绝多个端口
iptables -t filter -I INPUT -m iprange --src-range 192.168.1.130-192.168.1.133 -j DROP
拒绝来自范围ip的数据包
iptables -t filter -I OUTPUT -m iprange --dst-range 192.168.1.130-192.168.1.133 -j DROP
拒绝向某个范围的ip发送分析后的数据包
iptables -t filter -I INPUT -p tcp --sport 80 -m string --algo bm --string "XXOO" -j REJECT
拒绝经过tcp协议,80端口来的数据匹配到含有“XXOO”字符串的信息的数据包
string是匹配字符串,algo匹配算法(bm,kmp)
时间拓展模块
iptables -t filter -I OUTPUT -p tcp --dport 80 -m time --timestart 09:00:00 --timestop 19:00:00 -j DROP
早上9点到晚上7点不允许使用80端口
iptables -t filter -I OUTPUT -p tcp --dport 80 -m time --weekdays 6,7 -j DROP
周六和周日不允许使用80端口
iptables -t filter -I OUTPUT -p tcp --dport 80 -m time --monthdays 27,28 -j DROP
每月的27和28不允许使用80端口
本文来自博客园,作者:icui4cu,转载请注明原文链接:https://www.cnblogs.com/icui4cu/p/16029366.html