安全技术和防火墙
安全技术
入侵检测系统 :特点是不阻断任何网络访问 (旁落部署...监控)
入侵防御系统 (拒绝服务攻击,被攻击立即阻断)
防火墙 (隔离功能 外网内网)
waf 应用防护系统 工作在应用层 (web)
防水墙 :防止里面出去 (给代码加密)
防火墙
分类
主机防火墙 :为当前主机提供服务
网络防火墙 :为防火墙一侧的局域网提供服务
硬件防火墙 :在专用硬件级别实现部分功能的防火墙,另一个部分功能基于软件实现
软件防火墙 :运行于通用硬件平台之上的防火墙的应用软件,Windows 防火墙 ISA --> Forefront
网络层防火墙 :OSI模型下四层,又称为包过滤防火墙
应用层防火墙 :proxy 代理网关,OSI模型七层 控制真实数据
数据包
mac头部 IP头部 协议/端口 7层协议(http) 真实数据 校验位
防火墙 -------> 收包 拆包 检查 没问题装包发送 有问题隔离/丢弃
正向代理 :FQ 代理的是客户端
绕开防火墙限制
加快访问速度
反向代理 :代理的是服务端
负载均衡
由软件包iptables提供的命令行工具,工作在用户空间,用来编写规则,写好的规则被送往netfilter,告
诉内核如何去处理信息包
是CentOS 8 新特性
规则的作用:对数据包进行过滤或处理
链的作用:容纳各种防火墙规则
链的分类依据:处理数据包的不同时机
postrouting :路由选择后
input :进入本机 (进入本机的流量)
output :出本机 (出本机的流量)
forward :转发 (转发数据包)

三种报文流向
流入本机:PREROUTING --> INPUT-->用户空间进程(访问我的服务)
流出本机:用户空间进程 -->OUTPUT--> POSTROUTING(穿过我)
转发:PREROUTING --> FORWARD --> POSTROUTING(分摊流量)
选择合理的 链做规则
表的作用 存放连
链决定了 在什么地方控制流量
表中有链 链中有规则
四 表 (规则表)
raw表:确定是否对该数据包进行状态跟踪 (跟踪)跟踪数据包
mangle表:为数据包设置标记 (标记) 标记优先级
nat表:修改数据包中的源,目标IP地址或端口 (地址转换)
filter表:确定是否放行该数据包(过滤) 常用 流量过滤

rpm -q iptables 有无安装
用之前先关防火墙
iptables (选项)-t 指定表 子命令 指定链 规则
默认filter 表 如需使用其他表用 -t
查看 iptables 的规则列表
iptabled -v(详细) n (数字) L (L一定在最后面 【防火墙列表】)
iptables -t filter -A INPUT -s 192.168.19.26 -j DROP #拒绝19.26的全部规则 DROP #已读不回 REJECT #拒绝 ACCEPT #允许 iptables -vnL ---line-num iptables -I INPUT 1 -s 192.168.19.26 添加规则 -A #在末尾追加策略 iptables -A INPUT -s 192.168.19.0/24 -j ACCEPT 或 DROP 或 REJECT -I #在指定链中插入一条新的,未指定序号默认作为第一条 iptables -I INPUT (操作) iptables - I INPUT 2 -s 192.168.19.0/24 -j ACCEPT 修改默认规则 -P #修改默认策略 iptables -P OUTPUT ACCEPT (操作) iptables -P INPUT DROP iptables -P INPUT ACCEPT -F #清空策略 删除规则 -D #(删除) 链 规则序号 iptables -t filter -D INPUT 2 #删除 filter 表中 INPUT 链中的第2跳规则 -R # 替换策略 iptables -R INPUT 1 -s 192.168.19.1 -j ACCEPT
iptables -P INPUT DROP
iptables -P INPUT ACCEPT

黑名单 :默认允许所有
白名单 :默认拒绝所有 只允许特定的人访问 (安全性高)
跳转
DROP :丢弃
REJECT :拒绝
ACCEPT :允许
LOG 日志 添加备注
SNAT :源地址转换
DNAT :目的地址转换
-s #源地址 -d #目的地址 --sport #匹配报文源端口,可为端口连续范围 --dport #匹配报文目标端口,可为连续范围 -p #tcp / udp / icmp -i #进口网卡 -o #出口网卡 iptables -A INPUT -s 192.168.19.26 -j DROP #禁止26服务器访问 iptables -A INPUT -s 192.168.19.26 -p icmp -j DROP #禁止26服务器ping我 iptables -A INPUT -s 192.168.19.26 -p tcp -- dport 80 -j DROP #禁止26服务器 访问80端口 iptables -A INPUT -i lo -j ACCEPT #在INPUT 添加个 lo的规则,允许lo回环里的可以访问我
通用匹配 没有指明模块 ,由iptables/netfilter 自行提供
模块匹配 -m 指定模块
ICMP 扩展 禁止别的主机访问我,我却可以访问别的主机

#别的主机访问我,进 8 出0。 将它进来8给禁止掉。 我依然可以ping通26主机

#别的主机无法访问我


#26主机无法访问27主机

#25主机可以访问27主机
[-m matchname [per-match-options]]
multiport 扩展 混合端口
以离散方式定义多端口匹配,最多指定15个端口

#禁止26主机访问我的22,80端口

#无法访问

#拒绝 26,27,28 主机访问25主机



#26,27,28主机无法访问25主机
-m mac [!] --mac-source XX:XX:XX:XX:XX:XX
拒绝我指定的mac地址的主机访问我


#拒绝 26主机的mac地址

#26主机无法访问25主机
--algo {bm|kmp} 字符串匹配检测算法
bm:Boyer-Moore 算法
kmp:Knuth-Pratt-Morris 算法
--from offset 开始查询的地方
--to offset 结束查询的地方
[!] --string pattern 要检测的字符串模式
[!] --hex-string pattern要检测字符串模式,16进制格式


#自建baidu网页



#开启httpd

#都可访问

#62前面由62个字节 IP20字节,tcp20个字节,mac22个字节。 查看这个数据包里的真实数据,有无golege字节,有久拒绝掉。

#无法访问 golege网页。
time 模块
不要使用本地时间 使用美国时间
--datestart YYYY[-MM[-DD[Thh[:mm[:ss]]]]] 日期 --datestop YYYY[-MM[-DD[Thh[:mm[:ss]]]]] --timestart hh:mm[:ss] 时间 --timestop hh:mm[:ss] [!] --monthdays day[,day...] 每个月的几号 [!] --weekdays day[,day...] 星期几,1 – 7 分别表示星期一到星期日 --kerneltz:内核时区(当地时间),不建议使用,CentOS 7版本以上系统默认为 UTC 注意: centos6 不支持kerneltz ,--localtz指定本地时区(默认) man iptables-extensions

#UTC 时间 是10.33. 10:00 到 12:00 拒绝访问。 (包括自己)

#xshell 断开连接

#26主机无法访问
state 模块
- NEW:新发出请求;连接追踪信息库中不存在此连接的相关信息条目,因此,将其识别为第一次发出的请求 - ESTABLISHED:NEW状态之后,连接追踪信息库中为其建立的条目失效之前期间内所进行的通信状态 - RELATED:新发起的但与已有连接相关联的连接,如:ftp协议中的数据连接与命令连接之间的关系 - INVALID:无效的连接,如flag标记不正确 - UNTRACKED:未进行追踪的连接,如:raw表中关闭追踪

#允许就用户访问,新用户无法访问

#旧主机依旧还在访问

#新主机无法访问

#自己也无法访问
limit
限制流量

#现在26主机正常访问25主机一秒一个

#前5个不限制,一分钟通过10个包

#禁止其他主机访问

#前5个包不限制,几乎十个包成功ping通一次。

浙公网安备 33010602011771号