防火墙

2021/4/13 18:55:41

本文主要是介绍防火墙,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

防火墙服务概念
开放源代码的完全自由的基于包过滤的防火墙工具,根据二层、三层、四层实现数据包过滤处理
防火墙表概念: 是将不同的配置功能进行分类处理
防火墙链概念: 根据不同数据流方向进行访问控制
防火墙规则信息: 具体访问二层或三层,以及四层具体策略配置

工作原理
对数据包进行控制:
1. 防火墙是层层过滤的,实际是按照配置规则的顺序从上到下,从前到后进行过滤的。
2. 如果匹配上规则,即明确表示是阻止还是通过,数据包就不再向下匹配新的规则。
3. 如果规则中没有明确表明是阻止还是通过的,也就是没有匹配规则,向下进行匹配,
直到匹配默认规则得到明确的阻止还是通过。
4. 防火墙的默认规则是所有规则执行完才执行的。

对数据包进行转换:
1. 防火墙会根据用户访问源地址以及端口信息,进行数据包的转换,将外网数据包转换到内网
2. 防火墙会根据内部用户地址信息进行转换,将内网数据转换到外网

防火墙各种链和表以及规则作用:
Filter表: 实现对数据包过滤处理作用
INPUT链: 对进入数据包进行过滤处理
OUTPUT链: 对出去数据包进行过滤处理
FORWARD链:阻止经过流量数据包
NAT表: 实现数据包中地址或端口映射转换
POSTROUTING: 实现内网到外网路由映射过程
PREROUTING: 实现外网到内网路由映射过程
OUTPUT: 对本地产生数据包做映射处理
Managle表:实现数据包信息标记处理 了解
raw表: 实现数据包信息取消标记

 防火墙服务实际配置过程:
环境准备:
安装并激活iptables服务:yum install -y iptables-services
关闭firewalld服务:省略
1)根据filter表实现防火墙配置过程
第一个步骤:掌握防火墙初始化配置方法
将原有配置保存备份:cp /etc/sysconfig/iptables{,.bak}
清理默认配置信息:
iptables -F --- 清理Filter表中所有配置信息 (慎用)
iptables -Z --- 清理计数器信息
iptables -X --- 清除自定义链

第二个步骤:掌握防火墙查看命令信息
iptables -nL --- 显示防火墙策略列表信息,并以数字方式显示
iptables -nL -v --- 显示防火墙策略详细信息

iptables -h  显示帮助信息

iptables -v 查看版本
========================================================
默认INPUT链规则配置:
1)允许其他主机和本地主机建立连接
2)允许其他主机和本地主机进行ping测试
3)允许其他主机和本地主机进行远程连接
4)拒绝其他主机和本地主机任意服务程序建立通讯
========================================================
iptables -nL --line-number --- 显示规则的序号信息

第三个里程:实现防火墙过滤配置:
1)根据四层进行过滤
练习题一:禁止ssh默认22端口访问
iptables -t filter -A INPUT -i eth0 -s 10.0.0.1 -p tcp --dport 22 -j DROP
iptables -t filter -A INPUT -i eth0 -p tcp --dport 22 -j DROP

练习题二:进行多端口匹配设置
非连续多端口匹配设置:
iptables -I INPUT -m multiport -p tcp --dport 21,23,26 -j ACCEPT

连续多端口匹配设置:
iptables -I INPUT -p tcp --dport 3306:8809 -j ACCEPT


总结防火墙命令参数:
-t 指定所配置的表名称
-A 在指定链上添加规则
-D 在指定链上删除规则
-i 指定数据流量进入的接口
-o 指定数据流量就出的接口
-s 指定数据包源地址信息或者网段信息
-d 指定数据包目标地址或者网段信息
-p 指定数据包传输数据协议信息 (all tcp udp icmp)
-j 流量匹配后具体执行的动作
-m 防火墙加载扩展模块功能
--sport 表示流量匹配源端口信息
--dport 表示流量匹配目标端口信息
==============================================================
iptables参数前符号:什么时候用- 或 -- 有什么规划:
1)结合iptables的参数信息,一般主要参数都有--或-格式输出方法
2)确认参数配置是否属于主要参数子集信息
-p tcp --dport --sport
-m state --state
==============================================================

2)根据三层进行过滤
练习一:禁止某个网段连接访问主机
iptables -t filter -A INPUT -i eth0 -s 10.0.0.0/24 -j DROP
练习二:只允许指定网段连入
iptables -t filter -A INPUT -i eth0 -s 10.0.0.0/24 -j ACCEPT
iptables -t filter -A INPUT -i eth0 -j DROP
简化:
iptables -t filter -A INPUT -i eth0 ! -s 10.0.0.0/24 -j DROP
练习三:实现禁ping功能
--icmp-type 8 : 表示请求包
--icmp-type 0 : 表示响应包

从入口禁止访问:实现禁ping
iptables -A INPUT -p icmp --icmp-type 8 -j DROP
iptables -A INPUT -p icmp -m icmp --icmp-type any -j ACCEPT 简化配置

从出口禁止响应:实现禁ping
iptables -A OUTPUT -p icmp --icmp-type 0 -j DROP
iptables -A OUTPUT -p icmp -m icmp --icmp-type any -j ACCEPT 简化配置

3)补充配置说明:
练习题一:规则添加和插入区别
默认规则配置:
阻止 10.0.0.0/24 访问数据库服务:3306
允许10.0.0.10访问:
iptables -t filter -A INPUT -i eth0 -s 10.0.0.10 -p tcp --dport 3306 -j ACCEPT
iptables -t filter -I INPUT -i eth0 -s 10.0.0.10 -p tcp --dport 3306 -j ACCEPT
iptables -t filter -I INPUT 数字 -i eth0 -s 10.0.0.10 -p tcp --dport 3306 -j ACCEPT --- 插入到指定某个规则前面

练习题二:表链上的默认规则配置
白名单默认规则配置: 比较安全 比较复杂
黑名单默认规则配置: 比较简单 比较不安全
filter表配置:
INPUT设置默认阻止规则:
iptables -t filter -P INPUT DROP
FORWARD设置默认阻止规则:
iptables -t filter -P FORWARD DROP

练习题三:保存设置
iptables-save >/etc/sysconfig/iptables

练习题四:自定义链配置
服务器 tomcat--多个业务实例 8080
服务器 tomcat--多个业务实例 8081
创建自定义链:
iptables -N tomcat_access
规划自定义链策略信息:
iptables -A tomcat_access -p tcp --dport 8080 -j ACCEPT
改动
iptables -A tomcat_access -m multiport -p tcp --dport 8080,8082 -j ACCEPT
调用自定义链
iptables -t filter -A INPUT -s 192.168.10.0 -j tomcat_access
iptables -t filter -A INPUT -s 192.168.20.0 -j tomcat_access
iptables -t filter -A INPUT -s 192.168.30.0 -j tomcat_access
iptables -t filter -A INPUT -s 192.168.40.0 -j tomcat_access
iptables -t filter -A INPUT -s 192.168.50.0 -j tomcat_access

2)根据nat表实现防火墙配置过程
实现内网主机访问外网:
环境准备:
外网主机: 223.5.5.5
防火墙: 外网 10.0.0.61 内网 172.16.1.61
内网主机: 172.16.1.7

第一个里程:内网主机进行配置
关闭内网主机外网网卡:ifdown eth0
调整内网网卡,设置网关和dns地址信息

第二个里程:防火墙主机配置:
开启系统路由转发功能:
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl -p

iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -o eth0 -j SNAT --to-source 10.0.0.61

实现实现外网主句访问内网:
经理 电脑访问架构服务器 172.16.1.7 22
防火墙服务进行设置:
iptables -t nat -A PREROUTING -d 10.0.0.61 -p tcp --dport 9000 -i eth0 -j DNAT --to-destination 172.16.1.7:22






这篇关于防火墙的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程