如果你想拥有你从未拥有过的东西,那么你必须去做你从未做过的事情
防火墙在运维工作中有着不可或缺的重要性。首先,它是保障网络安全的关键防线,通过设置访问控制规则,可精准过滤非法网络流量,有效阻挡外部黑客攻击、恶意扫描以及病毒入侵等,让运维人员无需时刻忧心外部威胁对业务造成破坏,确保网络及系统稳定运行。其次,在合规管理方面能发挥重要作用,依据各行业的网络安全相关要求,协助运维人员制定相应访问策略,使网络配置符合法规政策,避免因不合规而面临处罚,助力企业顺利通过安全审计。再者,能帮助实现网络分区管理,划分出不同安全区域,便于对企业内部不同部门、业务模块进行精细化的网络访问控制,防止内部风险扩散,优化整体运维架构。最后,当网络出现异常时,防火墙记录的详细日志可提供关键线索,方便运维人员快速定位故障源头,高效解决问题,恢复业务正常运转,所以我们今天介绍一下iptables~~~~
目录
一、防火墙介绍
二、IPtables四表五链
1、四表
2、五链
三、iptables命令
四、iptables防火墙案例
案例1、禁止访问10.0.0.61的22端口
案例2:删除规则
案例3: 限制来源IP地址
案例4:限制网段
案例5:限制80端口
案例6:限制10.0.0.7不能访问61的80端口
案例7:对源IP进行取反
案例8:修改默认的规则
案例9:多端口配置
案例10:禁ping
案例11:iptables的保持与恢复
案例12: 使用IPtables实现共享上网
服务端设置:
客户端设置:
案例13.IP地址映射
💬欢迎交流:在学习过程中如果你有任何疑问或想法,欢迎在评论区留言,我们可以共同探讨学习的内容。你的支持是我持续创作的动力!
👍点赞、收藏与推荐:如果你觉得这篇文章对你有所帮助,请不要忘记点赞、收藏,并分享给更多的小伙伴!你们的鼓励是我不断进步的源泉!
🚀推广给更多人:如果你认为这篇文章对你有帮助,欢迎分享给更多对Linux感兴趣的朋友,让我们一起进步,共同提升!
一、防火墙介绍
Linux的防火墙体系主要工作在网络层,针对TCP/IP数据包进行过滤和限制,属于典型的包过滤防火墙。它基于内核编码实现,具有非常稳定的性能和高效率,也因此得到了广泛的应用。防火墙是一种位于内部网络与外部网络之间的网络安全系统,旨在保护内部网络免受未经授权的访问以及潜在的网络威胁,以下是关于防火墙的介绍:
### 基本功能
1. 访问控制:依据预设的规则,对进出网络的流量进行筛选,决定哪些数据包可以通过,哪些需要被拦截。例如,只允许特定 IP 地址段的设备访问内部某服务器的特定端口,而拒绝其他来源的访问请求,以此严格把控网络访问权限。
2.防止非法入侵:能够识别并阻止外部网络中的恶意攻击行为,像常见的黑客扫描、端口入侵尝试等。通过检测异常的网络连接模式、可疑的数据包特征等,将潜在的入侵行为阻挡在网络外部,保障内部网络环境的安全稳定。
3.网络隔离:可以把不同安全级别的网络区域分隔开来,比如将企业内部的办公区网络、研发区网络、服务器区网络等根据各自的安全需求进行划分,限制不同区域间的非必要网络通信,防止安全风险在内部网络间扩散。
### 主要类型
1. 包过滤防火墙:工作在网络层,基于数据包的源 IP 地址、目的 IP 地址、端口号、协议类型等信息进行过滤。它会检查每个经过的数据包,对照预先配置好的规则表来决定是放行还是丢弃该数据包,iptables 就是典型的基于这种机制的工具,这种防火墙处理速度相对较快,但对应用层的内容理解有限。
2. 状态检测防火墙:不仅会检查数据包的基本信息,还会跟踪网络连接的状态。比如对于一个已经建立的 TCP 连接,后续属于该连接的数据包会依据其状态被快速放行,它能更智能地识别正常的网络通信流程以及异常的连接尝试,相比单纯的包过滤防火墙安全性更高,应用场景也更为广泛。
3. 应用层防火墙:也被称作代理防火墙,运行在应用层,能够深入理解应用层协议的内容。例如,对于 HTTP 请求,它可以检查请求的具体内容、URL 等是否符合安全规定,对外隐藏内部网络的真实情况,用户的网络请求先经过它进行代理转发,起到了很好的安全防护和隐私保护作用,但由于要解析应用层内容,其处理性能往往相对较低。
### 部署位置与应用场景
1. 边界部署:常被部署在企业网络、园区网络等与外部互联网的连接处,作为第一道防线,阻挡来自外部网络的各种安全威胁,保护内部众多的网络资源,如服务器、办公终端等。
2. 内部网络隔离:在大型网络内部,不同部门、不同安全等级区域之间也会部署防火墙,实现内部网络的安全分区管理,避免内部的误操作、恶意行为等对关键区域造成影响,像防止普通办公区的网络问题波及到存放核心数据的服务器区。
### 发展趋势
1. 智能化:随着人工智能和机器学习技术的发展,防火墙能够通过分析大量的网络流量数据,自动学习和识别新出现的网络威胁模式,不断优化自身的防护规则,提升应对未知威胁的能力。
2. 云化:在云计算环境蓬勃发展的当下,云防火墙应运而生,它可以更好地适配云环境下的动态网络架构、多租户等特点,为云资源的安全防护提供有力保障,方便企业在云端进行灵活的网络安全配置。
总之,防火墙在保障网络安全方面起着至关重要的作用,是构建安全网络环境不可或缺的一环。
以下是一些市面上常见的防火墙产品
### 硬件防火墙产品
1、华为 USG6000E 系列:性能稳定可靠,具备强大的安全防护能力,可有效抵御多种网络攻击。例如 USG6306 支持 4GE+2Combo 固定接口,IPSec 吞吐量性能良好,适用于中小企业等网络环境。
2、深信服 AF 系列:如 AF-1000-FH1300B,功能丰富,界面友好,提供应用层防护、入侵检测、防病毒等多种安全功能,适用于不同规模的企业网络。
3、锐捷网络 RG-WALL 1600 系列:以 RG-WALL 1600-S3200 为例,支持多种 VPN 类型和加密算法,具备状态检测包过滤、应用层检测等功能,可有效提升网络安全性和数据传输效率。
4、H3C SecPath F1000 系列:像 F1000-AK1150 支持多种 VPN 协议和 SOP 虚拟防火墙技术,能防御多种网络攻击,可优化网络应用,保障网络流畅性和安全性。
5、天融信 NGFW4000-UF:在稳定性、性能和合规性方面表现突出,主要服务于政府、金融、电信等对网络安全要求较高的行业,能提供全面的网络安全防护。
### 软件防火墙产品
1、ZoneAlarm Pro:可以防止特洛伊木马程序等恶意软件的入侵,用户可方便地设置哪些软件可以访问网络,基本版免费,适合个人用户和小型企业。
2、Outpost Firewall Pro:功能强大,包括广告和图片过滤、内容过滤、DNS 缓存等功能,不需复杂配置即可使用,且是市场上第一个支持插件的防火墙,可扩展性强。
3、Norton Personal Firewall:由 Norton 公司出品,能提供完整的网络安全防护,防止重要资料被窃,可过滤网站,阻隔 Java applets、ActiveX 控制等网络入侵方式。
4、McAfee Personal Firewall Plus:可以在电脑与互联网之间建立屏障,防止潜在的黑客探测及攻击,让防毒工作更完备,还能提供有关可疑网络流量的详细资讯。
5、Sygate Personal Firewall Pro:简单易用,适合网络中的单机用户防止入侵者非法进入系统,可从系统内部进行保护,提供安全访问和访问监视功能,检测到入侵能立即发出警报。
### 云防火墙产品
1、深信服云防火墙:能够与深信服的其他云安全产品进行深度融合,提供一站式的云安全解决方案,支持多租户管理,可根据不同租户的需求定制安全策略。
2、天融信云防火墙:在云环境下具备强大的安全防护能力,可提供网络访问控制、入侵检测、漏洞扫描等多种安全服务,保障云资源的安全。
3、飞塔云防火墙:具有创新性、智能性和灵活性,能适应云环境的动态变化,可实现自动化的安全策略部署和管理,为云应用提供安全保障。
4、山石网科云防火墙:基于其高性能、高可靠的技术优势,为云平台提供全面的安全防护,支持对云平台中的虚拟机、容器等资源进行细粒度的访问控制。
5、阿里云防火墙和阿里云盾web防火墙:阿里云防火墙,云原生的云上边界网络安全防护产品,可提供统一的互联网边界、NAT 边界、VPC 边界、主机边界流量管控与安全防护。阿里云盾web防火墙主要为网站提供安全保护的云服务,主要针对 Web 应用层面的安全防护。
###iptables防火墙
今天给大家介绍一下iptables防火墙,iptables 是 Linux 操作系统中一个功能强大且应用广泛的防火墙工具,主要用于对进出系统的网络数据包进行管控,依据设定的规则来决定是允许数据包通过、拒绝数据包,还是对数据包进行地址转换、修改等操作,以此构建起系统的网络安全防护机制以及实现特定的网络功能配置,contOS6以前的linux系统默认使用的iptables防火墙,contOS7及以后版本,默认使用firewalld防火墙;麒麟操作系统同时内置了iptables防火墙和 firewalld防火墙同时使用,之前咱们搭建LNMP架构时因为这个被坑过,只关闭了一个导致80端口无法访问。
二、IPtables四表五链
1、四表
表名称 | 功能 | 内核模块 |
---|---|---|
filter表 | 负责过滤功能,防火墙 | iptables filter |
nat表(Network,Adffress,Translation) | 用于网络地址转换(IP,端口) | iptables net |
mangle表 | 拆解报文,做出修改,封装报文 | iptables mangle |
raw表 | 关闭nat表上启用的连接追踪机制,确定是否对该数据包进行状态跟踪 | iptable raw |
2、五链
名称 | 功能 |
---|---|
PREROUTING | 数据包进入路由之前 |
INPUT | 目的地址为本机 |
OUTPUT | 原地址为本机,向外发送 |
FORWARD | 实现转发 |
POSTROUTING | 发送到网卡之前 |
三、iptables命令
查看默认防火墙规则:
[root@m01 ~]#iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT)
target prot opt source destination
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
清空默认的规则
[root@m01 ~]#iptables -F
[root@m01 ~]#iptables -Z
[root@m01 ~]#iptables -X
[root@m01 ~]#iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
四、iptables防火墙案例
案例1、禁止访问10.0.0.61的22端口
[root@m01 ~]#iptables -I INPUT -p tcp --dport 22 -j DROP
[root@m01 ~]#
Connection closed.
案例2:删除规则
[root@m01 ~]# iptables -I INPUT -s 10.0.0.1 -j ACCEPT
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 10.0.0.1 0.0.0.0/0
DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
删除规则的方法
1,序号删除
查看编号信息
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT all -- 10.0.0.1 0.0.0.0/0
2 DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
删除INPUT链的第二条规则
[root@m01 ~]#iptables -D INPUT 2
[root@m01 ~]#iptables -nL --line
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT all -- 10.0.0.1 0.0.0.0/0
2,将I或者A替换成D(禁止61的22端口已经删了,只能删放通的)
[root@m01 ~]#iptables -D INPUT -s 10.0.0.1 -j ACCEPT
[root@m01 ~]#iptables -nL --line
Chain INPUT (policy ACCEPT)
num target prot opt source destination
Chain FORWARD (policy ACCEPT)
案例3: 限制来源IP地址
[root@m01 ~]#iptables -I INPUT -s 172.16.1.7 -j DROP
[root@m01 ~]#(限制172.16.1.7IP)
[root@web01 ~]#ssh 172.16.1.61(IP远程连接61不通)
^C
此时10.0.0.7可以连通
案例4:限制网段
[root@m01 ~]#iptables -I INPUT -s 172.16.1.7/24 -j DROP (限制整个网段,0708都不通了)
[root@m01 ~]#
[root@web01 ~]#ssh 172.16.1.61
[root@web02 ~]#ssh 172.16.1.61
此时,10.0.0.0段可以通(因为禁的不是这个网段)
案例5:限制80端口
[root@m01 ~]#iptables -I INPUT -p tcp --dport 80 -j DROP
[root@web01 ~]#ping 10.0.0.61:80
ping: 10.0.0.61:80: Name or service not known
案例6:限制10.0.0.7不能访问61的80端口
[root@m01 ~]#iptables -I INPUT -s 10.0.0.7 -p tcp --dport 80 -j DROP
案例7:对源IP进行取反
除了10.0.0.1之前所有的IP地址都不能访问我的服务器(慎重使用)
[root@m01 ~]#iptables -I INPUT ! -s 10.0.0.1 -j DROP此时172.16.1.0/段可以访问,
案例8:修改默认的规则
1.配置先允许自己可以访问61
[root@m01 ~]#iptables -I INPUT -s 10.0.0.1 -j ACCEPT
2.修改默认规则为DROP
[root@m01 ~]#iptables -P INPUT DROP
[root@m01 ~]#
[root@m01 ~]#iptables -nLChain INPUT (policy DROP)target prot opt source destination
ACCEPT all -- 10.0.0.1 0.0.0.0/0
[root@web01 ~]#ssh 10.0.0.61 (10.0.0.7无法远程连接61了)
案例9:多端口配置
允许80和443端口
[root@m01 ~]#iptables -I INPUT -p tcp -m multiport --dport 80,443 -j ACCEPT
,前后代表两个
:前后待代表从前面的到后面的端口全部允许
案例10:禁ping
禁ping 禁tracert
[root@web01 ~]#ping 10.0.0.61 (禁用之前,可以拼通)
PING 10.0.0.61 (10.0.0.61) 56(84) bytes of data.
64 bytes from 10.0.0.61: icmp_seq=1 ttl=64 time=0.534 ms
64 bytes from 10.0.0.61: icmp_seq=2 ttl=64 time=0.983 ms
[root@m01 ~]#iptables -I INPUT -p icmp --icmp-type 8 -j DROP
[root@web01 ~]#ping 10.0.0.61(禁用之后,ping不通了)
PING 10.0.0.61 (10.0.0.61) 56(84) bytes of data.
通过linux操作系统内核参数配置禁ping
设置为1为禁ping
设置为0开启ping
[root@m01 ~]#echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all
[root@m01 ~]#cat /proc/sys/net/ipv4/icmp_echo_ignore_all
1
[root@m01 ~]#echo 0 >/proc/sys/net/ipv4/icmp_echo_ignore_all
[root@m01 ~]#cat /proc/sys/net/ipv4/icmp_echo_ignore_all
0
案例11:iptables的保持与恢复
iptables-save将当前的配置保持到/etc/sysconfig/iptables
[root@m01 ~]#iptables-save
恢复iptabales
1.重启读取/etc/sysconfig/iptables 配置文件中的策略
systemctl restart iptables
2.使用命令恢复
iptables-restore </etc/sysconfig/iptables
案例12: 使用IPtables实现共享上网
服务端设置:
1.iptables设置SNAT
将来源IP是172.16.1.0网段的流量,全都转换成10.0.0.61去访问外网
[root@m01 ~]#iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -j SNAT --to-source 10.0.0.61
2.配置内核转发(拥有路由器功能)
[root@m01 ~]#echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
3.刷新配置
[root@m01 ~]#sysctl -p
net.ipv4.ip_forward = 1使用ADSL拨号的网络: 注意事项: 公网ip不固定: iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -j MASQUERADE
客户端设置:
配置网关: 172.16.1.61 保证重启resolv.conf里DNS
[root@web01 ~]#cat /etc/sysconfig/network-scripts/ifcfg-eth1
TYPE=Ethernet
BOOTPROTO=none
NAME=eth1
DEVICE=eth1
ONBOOT=yes
IPADDR=172.16.1.7
PREFIX=24
GATEWAY=172.16.1.61
DNS1=223.5.5.5
重启生效:
[root@web01 ~]#systemctl restart network
案例13.IP地址映射
DNAT目标地址转换配置IP地址端口映射:
[root@m01 ~]#iptables -t nat -A PREROUTING -d 10.0.0.61 -p tcp --dport 9000 -j DNAT --to-destination 172.16.1.7:22
在我们的日常运维工作中防火墙的作用还是很大的,所以最少要掌握一种防火墙的使用方法,今天的iptables防火墙分享就到这里了,改天小屁整理一篇firewalld防火墙的使用教程~~~~
想成为大佬,就要从小白开始,从0开始,一点一点的积累,慢慢成长,明天你就是大佬!!想学习更多麒麟操作系统的知识,关注小屁,让你成为运维老鸟~~~~~