01:iptables防火墙网络安全前言介绍
企业中安全配置原则:
尽可能不给服务器配置外网IP,可以通过代理转发或者通过防火墙映射。
并发不是特别大情况有外网IP,可以开启防火墙服务。大并发的情况,不能开iptables,影响性能,利用硬件防火墙提升架构安全。
2.iptables防火墙概念介绍
Netfilter/Iptables(以下简称Iptables)是unix/linux自带的一款优秀且开放源代码的完全自由的基于包过滤的防火墙工具,它的功能十分强大,使用非常灵活,可以对流入和流出服务器的数据包进行很精细的控制。
iptables是linux2.4及2.6内核中集成的服务。
iptables主要工作在OSI七层的二、三、四层,如果重新编译内核,iptables也可以支持7层控制
3.iptables防火墙使用时名词概念理解
容器:装东西的器皿,docker容器技术,将镜像装在了一个系统中,这个系统就称为容器
iptables称为一个容器---装着防火墙的表
防火墙的表又是一个容器---装着防火墙的链
防火墙的链也是一个容器---装着防火墙的规则
iptables---表---链---规则
规则:防火墙一条一条安全策略
防火墙匹配规则流程:参见防火墙工作流程图
1.防火墙是层层过滤的,实际是按照配置规则的顺序从上到下,从前到后进行过滤的。
2.如果匹配上规则,即明确表示是阻止还是通过,数据包就不再向下匹配新的规则。
3.如果规则中没有明确表明是阻止还是通过的,也就是没有匹配规则,
向下进行匹配,直到匹配默认规则得到明确的阻止还是通过。
4.防火墙的默认规则是所有规则执行完才执行的。
表和链说明:4表5链
Filter: 实现防火墙安全过滤功能
· INPUT 对于指定到本地套接字的包,即到达本地防火墙服务器的数据包 外面---->(门)房子iptables
· FORWARD 路由穿过的数据包,即经过本地防火墙服务器的数据包 外面-----(前门)房子(后门)---房子
· OUTPUT 本地创建的数据包 外面<-----(门)房子iptables
NAT: 实现将数据包中IP地址或者端口信息,内网到外网进行改写/外网到内网进行改写
· PREROUTING 一进来就对数据包进行改变 在路由之前,进行数据包IP地址或端口信息的转换
· OUTPUT 本地创建的数据包在路由之前进行改变 本地防火墙要出去的流量进行相应转换(了解)
· POSTROUTING 在数据包即将出去时改变数据包信息 在路由之后,进行数据包IP地址或端口信息的转换
Managle 对数据进行标记
raw 忽略不计
多个表和链的关系
4.iptables防火墙操作实践练习
1)iptables防火墙配置初始化
/etc/init.d/iptables start
chkconfig iptables on
iptables -F --- 清除防火墙默认规则
iptables -X --- 清除防火墙自定义链
iptables -Z --- 清除防火墙技术器信息
2)iptables防护墙信息查看方法
/etc/init.d/iptables status
iptables -L --- -L 以列表形式显示所有规则信息
iptables -L -n --- -n 以数字形式显示IP地址或端口信息,不要转换为字符串显示
iptables -t nat -L -n --- -t 表示指定查看或者配置相应的表
iptables -L -n -v --- -v 表示显示详细规则信息,包含匹配计数器数值信息
iptables -L -n --line-number --- --line-number 显示规则序号信息
3)iptables防火墙端口规则配置:
实践01:阻止用户访问服务器的22端口
iptables -t filter -A INPUT -p tcp --dport 22 -j DROP --- -A 表示添加规则到相应链上,默认表示添加规则到结尾
iptables -t filter -D INPUT -p tcp --dport 22 -j DROP --- -D 表示删除规则从相应链上。
iptables -t filter -D INPUT 规则序号
iptables -t filter -I INPUT -p tcp --dport 22 -j DROP --- -I 表示插入规则到相应链上,默认表示插入规则到首部
iptables -t filter -I INPUT 3 -p tcp --dport 22 -j DROP --- 指定规则插入位置
iptables -t filter -R INPUT 6 -p tcp --dport 8080 -j DROP --- -R 指定将配置好的规则信息进行替换
总结防火墙参数信息:
-A --- 表示将规则添加到指定链上
-I --- 表示将规则插入到指定链上
-D --- 表示将规则从指定链上删除
-R --- 表示将规则信息进行修改
-p --- 指定相应服务协议信息(tcp udp icmp all)
--dport --- 表示指定目标端口信息
--sport --- 表示指定源端口号信息
-j --- 指定对相应匹配规则执行什么操作(ACCEPT DROP* REJECT)
实践02:阻止相应网段主机访问服务端指定端口服务
10.0.0.0/24 -- 22端口(阻止)
iptables -t filter -A INPUT -s 10.0.0.0/24 -p tcp --dport 22 -j DROP
iptables -t filter -A INPUT -s 10.0.0.9 -p tcp --dport 22 -j DROP
iptables -t filter -A INPUT -i eth0 -s 10.0.0.9 -p tcp --dport 22 -j DROP