大家好,欢迎来到IT知识分享网。
安全技术
1.入侵检测机制:特点是阻断,量化,定位来自内外的网络威胁情况。提供报警和事后监督,类似于监控。
2.入侵防御:以透明的模式进行工作,分析数据包的内容。一切进入本机的内容进行防护,木马,蠕虫,系统漏洞进行分析判断,然后进行阻断。是一种主动的防护机制,一般部署在整个架构或者是集群的入口处。(必经之路)
3.防火墙的主要功能就是隔离。它是工作在网络或者是说主机的边缘。对网络或者主机进出的数据包按照一定规则进行检测。(网络层转发的数据包)
防火墙示例图:
在工作当中,一般对防火墙的设置都是白名单,拒绝所有,允许个别。
4.防水墙,都是透明模式监控,一切对于防水墙来说都是透明的。在事前,事中,事后,都可以进行检测。
防火墙的种类
保护范围:
主机防火墙,仅为当前主机服务 网络防火墙,防护另一侧的局域网。
网络层防火墙:iptables,包过滤防火墙。
访问控制,每个数据包的源ip地址,目的ip地址,端口号,协议等等进行组合式监控,由此进行判断数据包是否允许通过。
面试题:通信的五要素和四要素分别是什么
五要素:源/目的IP 源/目的端口 协议
四要素:源/目的IP 源/目的端口
iptables
iptables:系统自带的包过滤防火墙
firewalld:主机防火墙,他也有包过的滤功能。centos7以后集成的
iptables:内核防火墙,内置四个表,而且在所有表中,配置规则。配置之后立即生效,不需要重启服务。
四个表
raw表:连接跟踪。是跟踪数据的一种机制,配置之后可以加快防火墙的穿越速度(关闭raw里面的追踪)
mangle表:修改数据包的标记位规则
nat表:地址转换的规则表
filter表:包过滤规则表,根据预定义的规则,人工设置的规则,对符合条件的数据包进行过滤。也是iptables的默认表。
四个表是有优先级的(由高到低):raw —> mangle —> nat —> filter
四表五链
五个链:
prerouting链:处理数据包进入本机之前的规则(raw)
input链:处理数据包进入本机的规则。(mangle、filter)
FORWARD链:处理数据包转发到其他主机的规则。(mangle、filter)
output链:处理本机发出数据包的规则,一般不做处理。(结合nat使用)
postrouting链:处理数据包离开本机之后的规则(结合nat使用)
配置规则:表里有链,链里有规则。iptables的配置规则是写在链当中的。
同一网段:
不同网段:
iptables的管理选择
-A:在指定链的末尾进行追加
-I:在指定链的行插入新的规则。可以指定插入规则的位置
-P:修改默认策略(链的策略)
-D:删除(慎用)
-R:修改或替换某个规则
-L:查看链指定链当中的规则 一般会和-n和-v一起使用
-n:以数字形式显示规则
-v:查看详细信息
-line-numbers:给每个链中的规则进行编号查看
-F:情况指定链当中的规则(慎用)
-X:清空自定义链的规则
-t:指定表名(可加可不加)
iptables的匹配条件
-p:指定数据包的协议类型
-s:指定数据包的源ip地址
-d:指定数据包的目的ip地址
-i:指定数据包进入本机的网络接口(例如网卡设备ens33)
-o:指定数据包离开本机的时候使用的网络接口
–sport:指定源端口号
–dport:指定目的端口号
iptables对数据包进行控制的类型
-j:后面跟上控制类型
ACCEPT:允许数据包通过
DROP:拒绝数据包通过。是直接丢弃数据包,不给任何回应的信息
REJECT:也是拒绝数据包通过。但是会给一个回应的信息。
SNAT:修改数据包的源地址
DNAT:修改数据包的目的地址
匹配规则的策略:从上往下匹配,按照规则顺序匹配。如果匹配到了规则,后面的规则就不再继续匹配了。针对相同的规则,匹配之后后续的规则也不再生效。
iptables练习
如果不指定表名默认就是查看filter表
固定格式:iptables -vnL
给规则序号查看:iptables -vnL –line-numbers
查看指定表查看指定链和规则编号:iptables -f filter -vnL INPUT –line-numbers
对IP地址进行限制
iptables -F #没有指定表名,默认清除filter表内容
iptables -t filter -A INPUT -p icmp -j REJECT
iptables -A INPUT -p icmp -j ACCEPT #无法生效的原因是针对相同的规则,匹配之后后续的规则也不再生效。
iptables -vnL INPUT –line-numbers #查看表内的链策略
iptables -I INPUT 1 -p icmp -j ACCEPT #把同意通过的策略使用-I插入到第一条。后续的拒绝就没用了
对指定IP地址进行限制
iptables -F
iptables -A INPUT -s 20.0.0.20 -p icmp -j REJECT #所有20来的icmp协议ping主机都会被拒绝 #-s指定源ip地址
iptables -A INPUT -s 20.0.0.20,20.0.0.30 -p icmp -j REJECT #阻断多个IP地址可使用,隔开
禁止指定端口和IP
ssh root@20.0.0.10 #使用远程连接测试一下
iptables -F #清空
iptables -A INPUT -s 20.0.0.20 -p tcp –dport 22 -j REJECT #iptables拥有固定格式必须先指定ip地址再指定协议再端口,此处IP是源IP。端口是目的端口。
yum -y intall httpd #安装httpd
systemctl restart httpd #开启httpd
使用2 3 访问 1的hppd
curl 20.0.0.10 #访问test1的httpd协议
iptables -A INPUT -s 20.0.0.20 -p tcp –dport 80 -j REJECT
对规则进行删除操作
iptables -vnL –line-numbers #以数字化详细展示表内的信息
num:–line-numbers 序号
pkts:匹配规则收到的报文个数
bytes:包的大小综合
target:规则对应的动作
port:规则对应的协议
iptables -D INPUT 序号 #指定序号删除
iptables -R INPUT 1 -p icmp -j ACCEPT #修改策略
修改iptables默认策略
iptables -P INPUT DROP
iptables -vnL
策略是拒绝,规则是允许
iptables -A INPUT -p icmp -j ACCEPT #允许所有主机ping
iptables -A INPUT -p tcp –dport 80 -j ACCEPT #允许访问httpd服务
拒绝所有允许个别
systemctl restart iptables #还原临时修改,恢复默认配置
通用匹配规则
ip+端口+网段+接口(网卡设备)
iptables -A INPUT -s 20.0.0.20 -j DROP
iptables -A INPUT -i ens33 -s 20.0.0.0/24 -j DROP #禁止20网段内所有ip从ens33这个网卡端口走
iptables -A INPUT -s 20.0.0.0/24 -p tcp –dport 80 -j REJECT #禁止指定设备连接
隐藏扩展模块
-p指定协议时,不需要使用-m指明扩展模块。如果没有-p需要-m指明拓展模块
iptables -F
iptables -A INPUT -p tcp –dport 22:80 -j REJECT #拒绝多个端口访问。必须小的端口号在前,大的端口号在后面。
-m的使用方法
-m:显示匹配。后面可以跟上扩展模块,可以明确指定类型(多端口,MAC地址,IP范围) -m multiport –sport –dport
iptables -A INPUT -p tcp -m nultiport –dport 80 ,22,21,20,53 -j REJECT #使用扩展模块指定多端口,此时端口可以任意顺序排列,使用逗号,隔开。
使用扩展模块来匹配IP地址范围
匹配源IP范围:-m iprange –src-range
匹配目的IP范围:-m iprange –dst-range
iptables -A INPUT -p icmp -m iprange –src-range 20.0.0.20-20.0.0.30 -j REJECT
使用扩展模块来匹配mac地址范围
iptables -A INPUT -m mac –mac-source mac地址 -j REJECT
ifconfig 选一个mac地址
多端口和IP范围多练练
备份还原
备份:
iptables-save > /opt/保存配置的文件 #保存规则
还原:
iptables-restore < /opt/保存配置的文件 #还原规则
/etc/sysconfig/iptables #iptables的默认配置文件位置
cat /opt/保存配置的文件 > /etc/sysconfig/iptables #写入配置文件永久保存
restart重启iptables
如何使用自定义链
iptables -N 链名 #添加自定义链
iptables -E 原链名 新链名 #给自定义链改名
iptables -I 新链名 1 -p icmp -j ACCEPT #给自定义链里面添加规则
把自定义规则添加到系统链之下
iptables -I INPUT 1 -p icmp -j 自定义链名 #把自定义链中的规则添加到系统的链当中
删除自定义规则和链
先删除添加在系统链内的自定义规则,再删除自定义链当中的规则,再删自定义链
iptables -vnL –line-numbers #查看表
iptables -D INPUT 1 #删除添加在系统链内的自定义规则
iptables -D 自定义链名 1 #删除自定义链当中的规则
iptables -X 自定义链名 #删自定义链
iptables的核心
通信元素
四表五链
怎么查
iptables -vnL –line-numbers iptables -t -vnL –line-numbers
增
iptables -I INPT
默认规则 DROP 配置规则都是ACCEPT 所以iptables -F慎用
固定格式:iptables -I INPUT 1 -s 20.0.0.20 -p tcp –dport 80 -j REJECT ip在前,再写协议,再写端口
配置防火墙策略
systemctl restart firewalld
firewall-cmd –get-default-zone 显示当前系统中的默认区域
firewall-cmd –list-all 显示默认区域内的所有规则
firewall-cmd –set-default-zone=block 修改默认区域为限制
firewall-cmd –set-default-zone=public 修改默认区域为放行
firewall-cmd –list-service 查看区域内允许通过的服务
firewall-cmd –add-service=http –zone=public 配置策略添加服务
firewall-cmd –remove-service=http –zone=public 配置策略删除服务
方法1 firewall-cmd –add-service=http –add-service=ftp –zone=public 配置策略同时添加多个服务
方法2 firewall-cmd –add-service={ftp,http} 配置策略同时添加多个服务
命令行的方式都是临时添加
把服务改为永久添加
firewall-cmd –add-service={ftp,http} –zone=public –permanent 添加永久生效
firewall-cmd –reload 配置永久生效,需要重新加载配置
firewall-cmd –list-all
firewall-cmd –remove-service=http –zone=public –permanent 永久删除
firewall-cmd –reload
firewall-cmd –list-all
端口管理
firewall-cmd –zone=public –add-port=80/tcp 配置添加80端口
firwall-cmd –zone=public –remove-port=80/tcp 配置删除80端口
firewall-cmd –zone=public –add-port={3306,80,21}/tcp 配置添加多个端口
firewall-cmd –zone=30-35/tcp 范围配置多个端口
SNAT和DNAT的工作原理
SNAT和DNAT实验操作:
准备三台虚拟机:test1 test2 test3 开始模拟 配置tesst1的IP为 192.168.233.10 内网IP 配置tesst2的IP为 ens33 192.168.233.254 ens36 12.0.0.254 做SNAT地址转换 配置tesst3的IP为 12.0.0.100 外网IP 关闭三台虚拟机的防火墙和安全机制 给test1和test3安装httpd服务 systemctl stop firewalld #关闭防火墙 setenforce 0 #关闭安全机制 vim ifcfg-ems33 #修改test2的ip地址
vim ifcfg-ens36 #统一设备名称 修改36端口ip地址为外网网关
回到test3 vim /etc/sysconfig/network-scripts/ifcfg-ens33 #修改ip地址为12.0.0.100 网关12.0.0.254 注释DNS
回到test1 systemctl restart httpd #开启httpd 打开网页测试一下httpd页面是否正常 vim /etc/sysconfig/network-scripts/ifcfg-ens33 #注释DNS
重启test1 test2 test3 的网卡 进入test2 ifconfig #检查配置是否生效 配置地址转换 iptables -t nat -A POSTROUTING -s 20.0.0.0/24 -o ens36 -j SNAT --to 10.0.0.10 #-t:指定表名 #nat:地址转换的表明 #-A:添加一条规则,行尾追加 #POSTROUTING:在出本机的时候添加一个地址转换的规则 #-S:20.0.0.0/24:指定源IP地址 #-o ens36:从网卡设备ens36出去的设备都会做转换 #-j SNAT:指定控制类型做源地址转换 #--to 10.0.0.10:所有的源IP属于233.0这个网段,只要是从ens36出来的,都会把它们的IP地址转换成#10.0.0.10 iptables -t nat -vnL #查看表信息 回到test2 vim etc/sysctl.conf 这是修改内核参数的文件,可以立即生效 开启转发功能 net.ipv4.ip_forward=1
sysctl -p #配置的内核文件即可生效 回到虚拟机3验证结果
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/152053.html