首页 > 系统相关 >iptables——网络防火墙

iptables——网络防火墙

时间:2023-07-25 21:23:22浏览次数:30  
标签:iptables 主机 报文 防火墙 网络 FORWARD

概念介绍

主机防火墙:针对单个主机进行防护
网络防火墙:往往处于网络入口或边缘,针对于网络入口进行防护。服务于防火墙背后的本地局域网。

当外部网络的主机与内部网络的主机通信时,不管是由外部主机发往内部主机的报文,还是由内部主机发往外部主机的报文,都需要经过iptables所在的主机,由iptables所在的主机进行“过滤并转发”。防火墙主机主要的工作就是“过滤并转发”。

前面的举例中,iptables都是作为”主机防火墙”的角色出现的,所以只用到了INPUT链与OUTPUT链,因为拥有”过滤功能”的链只有3条,INPUT、OUTPUT、FORWARD,当报文发往本机时,如果想要过滤,只能在INPUT链与OUTPUT链中实现。而此时,iptables的角色发生了转变,想要将iptables所在的主机打造成”网络防火墙”,职责就是”过滤并转发”,要想”过滤”,只能在INPUT、OUTPUT、FORWARD三条链中实现,要想”转发”,报文则只会经过FORWARD链(发往本机的报文才会经过INPUT链)。综上所述,iptables的角色变为”网络防火墙”时,规则只能定义在FORWARD链中。
如果想要iptables作为网络防火墙,iptables所在主机开启核心转发功能,以便能够转发报文。
使用如下命令查看当前主机是否已经开启了核心转发,0表示未开启,1表示已开启。

cat /proc/sys/net/ipv4/ip_forward

使用如下两种方法均可临时开启核心转发,立即生效,但是重启网络配置后会失效。

方法一:echo 1 > /proc/sys/net/ipv4/ip_forward
方法二:sysctl -w net.ipv4.ip_forward=1

使用如下方法开启核心转发功能,重启网络服务后永久生效。

配置/etc/sysctl.conf文件(centos7中配置/usr/lib/sysctl.d/00-system.conf文件),在配置文件中将 net.ipv4.ip_forward设置为1。

网络防火墙设置测试

由于iptables此时的角色为"网络防火墙",所以需要在filter表中的FORWARD链中设置规则。
可以使用"白名单机制",先添加一条默认拒绝的规则,然后再为需要放行的报文设置规则。
配置规则时需要考虑"方向问题",针对请求报文与回应报文,考虑报文的源地址与目标地址,源端口与目标端口等。

# 允许网络内主机访问网络外主机的web服务与sshd服务。
# 在FORWARD链中放行内部主机对外部主机的web请求
iptables -I FORWARD -s 10.1.0.0/16 -p tcp --dport 80 -j ACCEPT
# 在FORWARD链中放行外部主机对内部主机的回应请求
iptables -I FORWARD -d 10.1.0.0/16 -p tcp --sport 80 -j ACCEPT
# 22端口同理
iptables -I FORWARD -s 10.1.0.0/16 -p tcp --dport 22 -j ACCEPT
iptables -I FORWARD -d 10.1.0.0/16 -p tcp --sport 22 -j ACCEPT
# 在FORWARD链末端添加一条默认拒绝的规则
iptables -A FORWARD -j REJECT

# 可以使用state扩展模块,对上述规则进行优化,使用如下配置可以省略许多"回应报文放行规则"。
iptables -A FORWARD -j REJECT
iptables -I FORWARD -s 10.1.0.0/16 -p tcp --dport 80 -j ACCEPT
iptables -I FORWARD -s 10.1.0.0/16 -p tcp --dport 22 -j ACCEPT
iptables -I FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

一些注意点:
1.当测试网络防火墙时,默认前提为网络已经正确配置。
2.当测试网络防火墙时,如果出现问题,请先确定主机防火墙规则的配置没有问题。

标签:iptables,主机,报文,防火墙,网络,FORWARD
From: https://www.cnblogs.com/even160941/p/17581060.html

相关文章

  • iptables——匹配条件
    基本匹配条件取反操作只针对单个IP,与同时指定多个IP的操作不能同时使用。当一条规则中有多个匹配条件时,这多个匹配条件之间,默认存在“与”的关系。即报文必须同时满足这些条件,才算被规则匹配。0.0.0.0/0表示所有IP。ssh协议的传输层属于tcp协议类型。1.源IP地址-s匹配报文的......
  • iptables——黑白名单机制
    黑名单机制当链的默认策略设置为ACCEPT时,按照道理来说,在链中配置规则时,对应的动作应该设置为DROP或者REJECT。因为,默认策略已经为ACCEPT了,如果在设置规则时,对应动作仍然为ACCEPT,那么所有报文都会被放行,因为不管报文是否被规则匹配到都会被ACCEPT,所以就失去了访问控制的意义。所......
  • iptables——自定义链创建及引用
    当默认链中的规则非常多时,不方便我们管理,此时可以考虑用自定义链。比如将所有针对80端口的web入站规则都写入到IN_WEB自定义链中,将所有针对sshd的出站规则都写入到OUT_SSH自定义链中。创建自定义链#在filter表中创建IN_WEB自定义链iptables-tfilter-NIN_WEB引用自定......
  • linux防火墙
    一、iptables防火墙(需要安装防火墙sudoapt-getinstallfirewalld命令查看插件)1、基本操作#查看防火墙状态serviceiptablesstatus  #停止防火墙serviceiptablesstop  #启动防火墙serviceiptablesstart  #重启防火墙serviceiptablesrestart  #永久......
  • iptables——相关概念
    本系列文章参考朱双印博客,原文链接:https://www.zsythink.net/archives/1199写在前面设置iptables防火墙,需要明确的2点:1.本机开通了哪些服务端口2.有哪些机器需要访问本机一般为了安全性考虑,先只开通需要本机对需要访问本机的22端口和本机的服务端口。#阻止所有流量iptable......
  • 通过iptables转发后的端口telnet通但是curl不通的问题
    今天遇到一个问题,一个隔离安全域的服务器需要访问承载网上的gitlab,但是无法直接做互通,所以需要通过iptables转发一次。完成iptables规则后,发现telnet端口是通的但是curlhttp:地址加端口就会返回不通。于是不停的改iptables规则,甚至放行forword规则,最后检查发现是存在外网的代理(代......
  • Ubuntu中iptables的相关操作命令
    iptables简介:Iptables和UFW (UncomplicatedFirewall)都是Linux操作系统中常用的防火墙管理工具,它们的主要区别如下:相同点:两者都是Linux操作系统中的防火墙管理工具,可以配置网络规则以限制网络流量。工作原理:iptables和UFW都基于netfilter框架来实现防火墙功能。......
  • 【大联盟】20230714 T1 三分网络(tri) 题解 CF1666K 【Kingdom Partition】
    题目描述here。题解赛时得分:\(30/30\),想了很久网络流最后不会。感觉这题就纯纯对脑洞,因为把题目中的\(2\)改成\(3\)就做不了)))不过还是相当有意思的。考虑如下建模方式:首先,考虑最小割。对于每个点\(i\),我们用两个点\(x_{i}\),\(y_i\)来表示。\(x_i\)表示\(i\)号点是......
  • Windows Defender 防火墙 无法启用 错误代码0x80070422
    打开注册表(win+R打开运行框,输入regedt32回车),定位到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MpsSvc,start的数值数据修改为2,重启生效。 ......
  • 实现PS端YOLO网络前向计算函数
    实现PS端YOLO网络前向计算函数目的:在PS端控制PL端完成YOLO网络的前向计算前提:已经实现了YOLO网络参数导入到DDR3的功能创建新文件在Vitis软件中新建两个文件:yolo_accel_ctrl.c和yolo_accel_ctrl.hyolo_accel_ctrl.c用于编写前向计算函数的主体代码yolo_accel_ctrl.h用于......