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端口

posted @ 2022-03-20 11:26  icui4cu  阅读(777)  评论(0编辑  收藏  举报