iptables防火墙 --Linux详解

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

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

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

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

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

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

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

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

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

规则分别是:ACCEPT、REJECT、DROP

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

注释:

① INPUT :入向的数据包

② OUTPUT :发出的数据包

③ FORWARD :数据包转发

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

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

实际流程图如下:

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

⑴ 做为服务器使用:

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

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

⑵ 做为路由器使用

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

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

其规则如下:

还有三点注意事项:

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服务。

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

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

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


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

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

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

NAT分为两种:

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

SNAT搭配的链是POSTROUTING

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

DNAT搭配的链是PREROUTING

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

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

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

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

接下来是DNAT的用法:

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

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

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

比如将一台主机作为网站的前端服务器,将访问流量分流至内网中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

时间: 2024-10-13 05:05:50

iptables防火墙 --Linux详解的相关文章

iptables防火墙配置详解

iptables简介 iptables是基于内核的防火墙,功能非常强大,iptables内置了filter,nat和mangle三张表. filter负责过滤数据包,包括的规则链有,input,output和forward: nat则涉及到网络地址转换,包括的规则链有,prerouting,postrouting和output: mangle表则主要应用在修改数据包内容上,用来做流量整形的,默认的规则链有:INPUT,OUTPUT,NAT,POSTROUTING,PREROUTING: inpu

Linux服务器 iptables 防火墙配置详解

导读: 很好的一篇关于Linux防火墙 iptables配置, linux防火墙配置很关键, 这牵扯到服务器安全, 安全不是绝对的,但是iptables配的好可以杜绝大多数灰色试探. 转载到老吧博客了, 更多iptables配置可以咨询作者. linux iptables 防火墙配置非常重要, 我们来配置一个filter表的防火墙. 查看本机关于IPTABLES的设置情况 [[email protected] ~]# iptables -L -n 如果你在安装linux时没有选择启动防火墙,什么

iptables防火墙原理详解

1. netfilter与iptables Netfilter是由Rusty Russell提出的Linux 2.4内核防火墙框架,该框架既简洁又灵活,可实现安全策略应用中的许多功能,如数据包过滤.数据包处理.地址伪装.透明代理.动态网络地址转换(Network Address Translation,NAT),以及基于用户及媒体访问控制(Media Access Control,MAC)地址的过滤和基于状态的过滤.包速率限制等.Iptables/Netfilter的这些规则可以通过灵活组合,形

iptables Data filtering详解

内容简介防火墙的概述iptables简介iptables基础iptables语法iptables实例案例详解(一)防火墙的简介防火墙是指设置在不同网络或网络安全域之间的一系列部件的组合,它能增强机构内部网络的安全性.它通过访问控制机制,确定哪些内部服务允许外部访问,以及允许哪些外部请求可以访问内部服务.它可以根据网络传输的类型决定IP包是否可以传进或传出内部网.防火墙通过审查经过的每一个数据包,判断它是否有相匹配的过滤规则,根据规则的先后顺序进行一一比较,直到满足其中的一条规则为止,然后依据控制

CentOS下配置iptables防火墙 linux NAT(iptables)配置

CentOS下配置防火墙 配置nat转发服务CentOS下配置iptables防火墙 linux NAT(iptables)配置 CentOS下配置iptables 1,vim /etc/sysconfig/network   这里可以更改主机名称. NETWORKING=yesNETWORKING_IPV6=noHOSTNAME=BGI-TJ.localdomain GATEWAY=192.168.11.1(超算网关) 2.vim /etc/sysconfig/network-scripts/

揭秘SFTP&&SCP命令 Linux详解

很多童鞋对于如果在字符终端进行上传下载以及复制的命令不熟悉,那么下面我就来说一下如何通过sftp以及scp命令进行上传下载以及复制文件的操作. 先来看一下sftp命令: 举例说明:现在我有两台虚拟机,分别是192.168.1.118和192.168.1.121,假设121的主机是远程服务器,且服务器上有一个user2的用户.此时,你想将118上的/etc/passwd文件上传到user2的主目录下,并将user2的.bashrc文件复制到118主机的/tmp目录下. 上传命令是put,下载命令是

CentOS 7下 iptables/netfilter使用详解(一)

一.理论部分  1.什么是防火墙? 防火墙:(英文:Firewall),隔离工具 防火墙其实就是一个组件,这个组件能够屏蔽来自于互联网,或来自于企业内部的用户的攻击操作(DDos攻击,端口扫描等等):主要目的是防范非授权的访问的!它工作于网络或主机的边缘(通信报文的进出口),对于进出本网络或主机的报文根据事先定义的检查规则做匹配检测,对于能够被规则匹配到的报文做出相应处理,时刻检查出入防火墙的所有数据包,决定拦截或是放行哪些数据包. 它需要对我们主机上的或者是网络内的所有主机上的网络通信操作做一

linux详解sudoers

sudo使用 Linux是多用户多任务的操作系统, 共享该系统的用户往往不只一个.出于安全性考虑, 有必要通过useradd创建一些非root用户, 只让它们拥有不完全的权限; 如有必要,再来提升权限执行. sudo就是来解决这个需求的: 这些非root用户不需要知道root的密码,就可以提权到root,执行一些root才能执行的命令. 执行sudo -u <用户名> <命令>, 将允许当前用户,提权到<用户名>的身份,再执行后面的<命令>, 即使<命

CentOS linux关闭iptables防火墙(Linux中的防火墙叫iptables)

linux服务器下防火墙为iptables组件,在安装一些软件的时候,iptables防火墙会阻止我们一些必要的连接. 查看iptables状态:service iptables status iptables开机自动启动: 开启: chkconfig iptables on 关闭: chkconfig iptables off iptables关闭服务: 开启: service iptables start 关闭: service iptables stop 重启防火墙服务:service i