iptables防火墙 --Linux详解

本文涉及的产品
云防火墙,500元 1000GB
公网NAT网关,每月750个小时 15CU
简介: 在实际运维工作中,哪里还有单纯的服务器执行工作的,一般都是服务器提供一定的网络服务来让一些客户机进行访问。那么,这时候网络问题是不是就显得尤为重要了呢???既然服务器暴露在互联网上,我们是不是要防止服务器被攻击?是不是要限制访问服务器的客户端用户?是不是要设置一定的规则来管理我们的访客呢?没错,这就用到了我接下来要讲解的一项Linux运维人员不得不知的技术--iptables防火墙。

在实际运维工作中,哪里还有单纯的服务器执行工作的,一般都是服务器提供一定的网络服务来让一些客户机进行访问。那么,这时候网络问题是不是就显得尤为重要了呢???

既然服务器暴露在互联网上,我们是不是要防止服务器被攻击?是不是要限制访问服务器的客户端用户?是不是要设置一定的规则来管理我们的访客呢?没错,这就用到了我接下来要讲解的一项Linux运维人员不得不知的技术--iptables防火墙。

wKioL1hBI8SiC9PAAAAkW0_6_LA524.png


如上图所示:防火墙分为软件防火墙和硬件防火墙两种,其中,硬件防火墙是由厂商设计好的主机硬件,这台硬件防火墙内的操作系统主要用于过滤数据包并将其他不必要的功能拿掉。因为是单纯的物理防火墙,因此数据包过滤效率最高。而我们平时工作中最长敲的那个命令iptables其实是软件防火墙,很多资料上面说的都特么太难理解了,其实防火墙说白了就是一种保护机制,用于过滤进入主机的数据包。

下面我介绍一下应用最多的一种软件防火墙--Netfilter。

其原理就是Linux内核通过Netfilter模块来实现网络访问控制。

iptables就是通过调用这种Netfilter模块来实现网络访问控制功能,大家需要知道的是iptables的组成:

四张表 + 五条链 + 匹配属性 + 规则

这里我们主要讲解最长用的两张表:filter和NAT

五条链(过滤点)分别是:INPUT、FORWARD、OUTPUT、PREROUTING、POSTROUTING

规则分别是:ACCEPT、REJECT、DROP

注意:REJECT和DROP都是拒绝访问的意思,但是REJECT会返回一个提示信息,而DROP则是对数据包直接丢弃。


wKioL1hBLMGRdhU4AAJNy-_UDpY903.png


注释:

① INPUT :入向的数据包

② OUTPUT :发出的数据包

③ FORWARD :数据包转发

④ PREROUTING :路由前修改目标IP地址

⑤ POSTROUTING :路由后修改源IP地址


实际流程图如下:

wKiom1hBLfDwj1uvAAGIX8b4xlw733.png



下面介绍下iptables的常用功能:

⑴ 做为服务器使用:

过滤发送到本机的数据包:INPUT链、filter表

过滤从本机发出的数据包:OUTPUT链、filter表


⑵ 做为路由器使用

过滤转发的数据包:FORWARD链、filter表

对数据包的源、目标IP地址进行修改(NAT功能):PREROUTING链和POSTROUTING链、NAT表



其规则如下:

wKiom1hBL5DAGBFTAANChs_SU0E347.png

还有三点注意事项:

1.没有指定规则表则默认指filter表。

2.不指定规则链则指表内所有的规则链。

3.在规则链中匹配规则时会依次检查,匹配即停止(LOG规则例外),若没匹配项则按链的默认状态处理。


iptables命令用于管理防火墙的规则策略,格式为:“iptables [-t 表名] 选项 [链名] [条件] [-j 控制类型]”。

表格为读者总结了几乎所有常用的iptables参数,不用记朋友,忘记了就来查就行了。记住,我们做运维的只要能解决问题就行。


参数

作用

-P

设置默认策略:iptables -P INPUT (DROP|ACCEPT)

-F

清空规则链

-L

查看规则链

-A

在规则链的末尾加入新规则

-I num

在规则链的头部加入新规则

-D num

删除某一条规则

-s

匹配源地址IP/MASK,加叹号"!"表示除这个IP外。

-d

匹配目标地址

-i 网卡名称

匹配从这块网卡流入的数据

-o 网卡名称

匹配从这块网卡流出的数据

-p

匹配协议,如tcp,udp,icmp,icmp就是控制ping这个命令的。

--dport num

匹配目标端口号

--sport num

匹配源端口号


下面我给你们来几个实例操作一下:

模拟训练A:仅允许来自于192.168.10.0/24域的用户连接本机的ssh服务。

wKiom1hBOxqCUwqSAAAdB8R1XTY783.png

模拟训练B:不允许任何用户访问本机的12345端口。

wKiom1hBO7nirJokAAAfssE6J3U392.png

模拟实验C(答案模式):拒绝其他用户从”eno16777736“网卡访问本机http服务的数据包。

wKioL1hBPFqBLsr5AAAO9ZMfasE232.png

模拟训练D:禁止用户访问www.abc.com

wKiom1hBPUmTfvuzAAAMZRGCNR0413.png


模拟训练E:禁止IP地址是192.168.10.10的用户上网

wKioL1hBPbiQjR2cAAAT3BD3nUM987.png




下面我来给大家讲解一下如何进行NAT的设置:

NAT即网络地址转换,其作用就是用来修改数据包的IP地址的。

NAT分为两种:

① SNAT:源地址转换,伪装内部真实的地址(我们一般经常提到的NAT方式就是这一种)。SNAT技术可以让多个内网用户通过一个公网IP进行上网,也就是把原来的内网地址伪装成公网IP。

SNAT搭配的链是POSTROUTING

② DNAT:目标地址转换,一般用于跳转。简单的说,假如说我们有一个www服务器对外提供服务,但是这个服务器的IP是假的,我们只是为了通过这个服务器进行跳转到另外一台真正的www服务器上,以达到保护真正服务器的目的,这时候就会用到DNAT技术。

DNAT搭配的链是PREROUTING



我们先来看一下SNAT的用法:

操作一:动态伪装源IP地址

wKioL1hCfHbiyCDuAAAMWN3jtGU571.png

其中,MASQUERADE是动态伪装的意思。


操作二:隐藏源IP地址为1.2.3.4

wKiom1hCfQbAAwnkAAALr1AKVmo391.png



接下来是DNAT的用法:

前面已经说过DNAT是目标地址转换,也就是修改数据包的目标IP地址的意思。OK,我们接下来做个实例:

操作一:跳转到网页服务器192.168.1.10上

wKioL1hCbq7jeeZWAAAQrhR6zvw999.png



最后再来介绍最后一种技术:外流量均衡技术。

比如将一台主机作为网站的前端服务器,将访问流量分流至内网中3台不同的主机上。

① iptables -A PREROUTING -i eth0 -p tcp --dport 80 -m state --state NEW -m nth --counter 0 --every 3 --packet 0 -j DNAT --to-destination 192.168.10.10:80


② iptables -A PREROUTING -i eth0 -p tcp --dport 80 -m state --state NEW -m nth --counter 0 --every 3 --packet 0 -j DNAT --to-destination 192.168.10.11:80


③ iptables -A PREROUTING -i eth0 -p tcp --dport 80 -m state --state NEW -m nth --counter 0 --every 3 --packet 0 -j DNAT --to-destination 192.168.10.12:80


相关文章
|
安全 Linux 网络安全
百度搜索:蓝易云【linux iptables安全技术与防火墙】
请注意,iptables的具体使用方法和配置选项可能会有所不同,取决于Linux发行版和版本。管理员应该参考相关文档和资源,以了解适用于其特定环境的最佳实践和配置方法。
490 0
百度搜索:蓝易云【linux iptables安全技术与防火墙】
|
网络协议 关系型数据库 Linux
Linux iptables 防火墙软件命令详解
Linux iptables 防火墙软件命令详解
336 0
|
网络协议 Linux 网络安全
小白也能看懂的 iptables 防火墙
iptables是Linux中功能最为强大的防火墙软件之一 是一个在 Linux 系统上常用的防火墙工具,用于配置和管理网络数据包过滤规则。它可以通过定义规则集来控制进出系统的网络流量,实现网络安全策略
377 5
|
安全 Linux 网络安全
在Linux中,如何列出和删除 Iptables 防火墙规则?
在Linux中,如何列出和删除 Iptables 防火墙规则?
1133 0
|
网络协议 Linux 网络安全
Linux系列——关于防火墙iptables的常用命令
Linux系列——关于防火墙iptables的常用命令
|
2月前
|
机器学习/深度学习 安全 网络协议
Linux防火墙iptables命令管理入门
本文介绍了关于Linux防火墙iptables命令管理入门的教程,涵盖了iptables的基本概念、语法格式、常用参数、基础查询操作以及链和规则管理等内容。
230 73
|
3月前
|
存储 网络协议 Ubuntu
如何在 Ubuntu 14.04 上使用 Iptables 实现基本防火墙模板
如何在 Ubuntu 14.04 上使用 Iptables 实现基本防火墙模板
48 0
|
3月前
|
网络协议 Ubuntu Linux
Iptables 防火墙的工作原理
Iptables 防火墙的工作原理
45 0
|
6月前
|
网络协议 Linux 网络安全
iptables 与 firewalld 防火墙
iptables 与 firewalld 防火墙
|
安全 Linux 网络安全
百度搜索:蓝易云【服务器安全设置Centos7 防火墙firewall与iptables】
CentOS 7使用的默认防火墙是firewall,它是一种基于Netfilter的用户空间工具,用于管理Linux内核中的iptables规则。为了加强服务器的安全性,可以通过配置CentOS 7防火墙和iptables规则来保护服务器。
141 0
下一篇
无影云桌面