iptables防火墙-NAT

这篇具有很好参考价值的文章主要介绍了iptables防火墙-NAT。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、NAT地址转换原理

1.NAT地址转换基本原理

工作在网络层和传输层,实现地址重写,实现端口重写

    作用:①隐藏本地网路中主机地址

                ②节约IP地址的使用

分为DNAT和SNAT(互相对应的,需要查找NAT会话表)

   SNAT:只是修改请求报文的源地址(为了隐藏真实服务器的IP地址)

   DNAT:只是修改请求报文的目标地址;(为了让客户机利用私网地址访问公有地址)

SNAT和DNAT是互相映射的,一个SNAT必须映射一个DNAT, 一个DNAT必须映射一个SNAT

nat修改:在prerouting, postrouting上面做改动

将恶意访问的数量前2的ip提取出来,同时写入iptables,网络,服务器,tcp/ip,云计算

(1)SNAT:源地址转换

它是在路由器选择之后postrouting做的

应用场景:

数据载荷(报头)、源IP(cip)、目标IP(服务器ip)

每经过一个路由器,数据报头就会发生变化(原因:每经过一个路由器,就会进行报文封装,报文封装是进行MAC地址封装;ip地址是互联网通信的唯一地址,不会发生变化;会变的原因是:每经过一跳就是经过一个局域网,局域网通信的唯一地址就是MAC地址),最后到达服务器,服务器封装响应报文,经过层层路由到底路由器(但客户端是cip,因此伴随响应报文也要做一次代理转换),然后路由器把目的地址rip改成cip,最后抵达客户手上

总结:出去做SNAT,回来做DNAT,都在路由器上面更改

将恶意访问的数量前2的ip提取出来,同时写入iptables,网络,服务器,tcp/ip,云计算

SNAT原理图:

将恶意访问的数量前2的ip提取出来,同时写入iptables,网络,服务器,tcp/ip,云计算

①局域网中的PC机私网地址,互联网中的web服务器公网地址;

②客户端开始封装请求报文:数据载荷、源地址:私网、目标地址:公网

③到路由器或者防火墙这做SNAT,将源地址改成公网、目标地址:目标公网地址

web服务器回应:

①封装响应报文:数据载荷、源地址:web服务器公网地址、目标地址:SNAT转换之后的公网

②到路由器这需要做DNAT,把响应报文中的目标地址,改成PC机的地址

(2)DNAT:目标地址转换

应用场景:私网地址不能走路由,负载均衡器也可以做NAT转换

客户端目前是公网地址,而服务器端是私网地址;当客户端访问时,目标ip是服务器的SIP,就会出问题(SIP是一个私网地址,不能走路由);但为了能继续访问服务器端,服务器端便对外声称一个公网地址FIP:2.2.2.2。

目前客户端报文封装是数据载荷、源地址为客户端地址、目标地址为服务器端fip;路由器收到报文之后,发现目标地址就是自己端口对应的公网地址;在选择路由器选择之前,将路由fip改成sip;然后路由器查看报文,发现sip是要给服务器,将其传到对应服务器端,这样服务器就可以接收到。然后进行封装响应报文:数据载荷、源ip是自己sip、目标ip是cip;在路由选择之后,把sip改成客户机响应的那个公网地址FIP:2.2.2.2,客户端便可以收到

将恶意访问的数量前2的ip提取出来,同时写入iptables,网络,服务器,tcp/ip,云计算

DNAT原理:

将恶意访问的数量前2的ip提取出来,同时写入iptables,网络,服务器,tcp/ip,云计算

由于企业内网web服务器是一个私网,所以他要声称一个对外客户可以访问的公网地址:218.29.30.31;

客户端发起请求报文,报文封装:数据载荷、源地址:173.96.97.98,目标地址:218.29.30.31

到路由器之后,在选择路由之前,把目标地址换成内网服务器的IP地址:192.168.1.6

web服务器响应报文:

数据封装:数据载荷、源地址:私网、目标地址:公网;私网不能走路由,在路由器的左接口,在路由选择之后,把源地址改成对外声称的公网地址:218.29.30.31

(3)FULLNAT:源、目标地址都需要更改

应用场景:可以实现跨机房数据,可以把网关放到北京,真实服务器放到上海;

(4)在ciso模拟器上面进行模拟SNAT

客户机私网地址、服务器公网地址

准备工作:给接口添加ip、路由器右边g0/1为公网地址

思路:首先做SNAT,源地址改成公网地址,离其最近的路由器要做nat池,然后声明内外部的源地址,把左右接口改成内外口

将恶意访问的数量前2的ip提取出来,同时写入iptables,网络,服务器,tcp/ip,云计算

客户机配置:

将恶意访问的数量前2的ip提取出来,同时写入iptables,网络,服务器,tcp/ip,云计算

路由器R-1配置:

将恶意访问的数量前2的ip提取出来,同时写入iptables,网络,服务器,tcp/ip,云计算

将恶意访问的数量前2的ip提取出来,同时写入iptables,网络,服务器,tcp/ip,云计算

将恶意访问的数量前2的ip提取出来,同时写入iptables,网络,服务器,tcp/ip,云计算

写路由器:

将恶意访问的数量前2的ip提取出来,同时写入iptables,网络,服务器,tcp/ip,云计算

验证:

将恶意访问的数量前2的ip提取出来,同时写入iptables,网络,服务器,tcp/ip,云计算

在R-1上添加一条服务器段的静态路由:

路由器R-2进行配置:

将恶意访问的数量前2的ip提取出来,同时写入iptables,网络,服务器,tcp/ip,云计算

将恶意访问的数量前2的ip提取出来,同时写入iptables,网络,服务器,tcp/ip,云计算

服务器配置:

将恶意访问的数量前2的ip提取出来,同时写入iptables,网络,服务器,tcp/ip,云计算

将恶意访问的数量前2的ip提取出来,同时写入iptables,网络,服务器,tcp/ip,云计算

将恶意访问的数量前2的ip提取出来,同时写入iptables,网络,服务器,tcp/ip,云计算

思路:PC1和服务器1都属于私网,路由器2做成SNAT,配置地址池,右侧接口作为出去的,并添加2条静态路由(路由器3和路由器4);路由器4做DNAT,在左侧接口作为出去的,在路由器4上添加2条静态路由

二、配置iptables的NAT表

1.iptables SNAT 策略设置

iptables -t nat -A POSTROUTING [-s 内_IP/MASK] -d D_IP/MASK -j SNAT --to-source F_IP

例如:

iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -d 192.168.20.0/24 -j SNAT --to-source 192.168.20.200  或者

2.iptables DNAT策略设置

iptables -t nat -A PREROUTING [-s 外_IP/MASK] -d FIP [-p tcp --dport 80] -j DNAT --to-destination 内_IP[:PORT]

例如:iptables -t nat -A PREROUTING -s 192.168.20.130 -d 192.168.20.200 -p tcp --dport 80 -j DNAT --to-destination 192.168.10.100:8080

将恶意访问的数量前2的ip提取出来,同时写入iptables,网络,服务器,tcp/ip,云计算

3.非固定的外网IP地址或ADSL--->MASQUERADE

在外网IP地址非固定的情况,为了完成SNAT规则,通常使用非固定的IP地址进行伪装,即为MASQUERADE策略。

iptables -t nat -A POSTROUTING [-s 内_IP/MASK] ! -d 内_IP/MASK -j MASQUERADE

例如:iptables -t nat -A POSTROUTING -s 192.168.10.0/24 ! -d 192.168.10.0/24 -j MASQUERADE

将恶意访问的数量前2的ip提取出来,同时写入iptables,网络,服务器,tcp/ip,云计算

4.补充知识点:

将恶意访问的数量前2的IP提取出来(同时可以选择性的将其定义成变量写进防火墙规则)

netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

netstat -ntu | awk '{print $5}' | cut -d: -f4 | sort | uniq -c | sort -n | tail -2 | cut -d\  -f7

cat access_log | awk  '{print $1}' | sort | uniq -c | sort -n -r | head -2 | awk  '{print $2}'

ss -tan | grep -v -i "^Listen" | awk '{print $5}' | awk -F: '{print $4}' | sort | uniq -c | tail -2 | awk '{print $2}'

将恶意访问的数量前2的ip提取出来,同时写入iptables,网络,服务器,tcp/ip,云计算

5.proxy代理

基于七层实现IP地址重写,代理到后端真实服务器

防火墙可以实现调度服务器的功能,防火墙有做NAT地址转换的功能,但一般其不做,一般路由器才做

原理:客户端访问,在路由器选择之前做DNAT,做完DNAT转换之后,在经过防火墙;防火墙只做报文隔离。做完报文隔离,允许进的话,就进入DMZ负载均衡器中,调度器既有公网地址,也有私网地址

将恶意访问的数量前2的ip提取出来,同时写入iptables,网络,服务器,tcp/ip,云计算

原理:调度服务器既有私网,也有公网地址;

客户访问对外声称的地址1.1.1.1,也就是负载均衡调度器的地址;调度器基于调度算法将其调度到内部服务器上,当回来的时候,路由器已经将之前地址存到路由器,回来的时候也会自动更改

调度服务器没有端口,会监听应用服务,它走内核层面,被称为调度转发器;要求需要并发能力强(可达上百万);LVS

调度服务器:

1.走内核层,没有相应的应用层的进程(不监听任何应用层端口),并发超高

2.不一定要一手托两家:传统DNAT、SNAT;现在就是之后给调度器,调度器直接甩锅给应用,应用直接和客户端对接

3.不会实现报文重构(来回报文一样),代理服务器直接把报文丢掉,重新做一个报文

代理服务器(重构报文,不同于nat会更改ip地址):

1.走7层应用层,必须和上游服务器保持一样的协议进程(要开启端口,可以做端口映射)

2.必须一手托两家

3.并发访问量极限值65535

客户端封装报文:数据载荷,源地址:cip、目标地址:pip代理服务器地址;应用层进栈,所以代理服务器也要进栈,然后拿到报文,重写封装报文。数据载荷、源地址:pip、目标地址:sip

响应报文:和DNAT相同

三、TCP_wrapper

iptables、nft、firewall是基于内核级别的

TCP_wrapper是基于主机名,来源地址的访问控制

1.TCP_wrapper原理:

①:是tcp的包装器,基于tcp协议开发,提供服务的应用程序,属于访问控制工具,在用户请求的报文必经的路上,设置访问控制。

②:和netfilter不一样,属于基于库调用实现功能。

判断程序是否能被tcp_wrapper支持

ldd命令,确定是否装载模块libwrap

例如:ldd `which vsftpd`

centos-7有

将恶意访问的数量前2的ip提取出来,同时写入iptables,网络,服务器,tcp/ip,云计算

新版rocky9不支持

将恶意访问的数量前2的ip提取出来,同时写入iptables,网络,服务器,tcp/ip,云计算

Tcp_wrapper通过配置文件即可定义tcp应用程序的访问控制。centos7支持

2.黑白名单

/etc/hosts.allow     --->   白名单

/etc/hosts.deny     --->   黑名单

Tcp_wrapper访问控制请求流程和优先级

认证流程:首先查看白名单,如果白名单有东西,认证通过,立马放行;

第二种情况:如果白名单里面没东西,就去看黑名单,黑名单里面也没有东西,把其放出

第三种情况:白名单黑名单都有东西,但看完白名单直接放出,黑名单不看

第四种情况:白名单没有东西,黑名单有东西,黑名单将其传回,不能继续进行

配置文件编写语法

程序列表:客户端列表 [:选项]       注意:程序列表不是服务名

程序列表:可以有多个,使用逗号进行分隔,ALL表示全部   例如:vsftpd,sshd

客户端列表:可以是IP地址、主机名、网络地址(必须使用完整掩码方式)

            可以使用短格式(例如192.168.)  ALL表示所有主机

选项:①EXCEPT(除了)

           ②deny

           ③allow

案例:vim /etc/hosts.deny  

将恶意访问的数量前2的ip提取出来,同时写入iptables,网络,服务器,tcp/ip,云计算

centos-7演示在内核服务器操作:

yum -y install vsftpd

systemctl start vsftpd

vim /etc/vsftpd/vsftpd.conf 

将恶意访问的数量前2的ip提取出来,同时写入iptables,网络,服务器,tcp/ip,云计算

将恶意访问的数量前2的ip提取出来,同时写入iptables,网络,服务器,tcp/ip,云计算

vim /etc/hosts.deny 

10网段不让访问,除了10.100,不需要重启服务

将恶意访问的数量前2的ip提取出来,同时写入iptables,网络,服务器,tcp/ip,云计算

进行测试:

在10.0的其他网段:

将恶意访问的数量前2的ip提取出来,同时写入iptables,网络,服务器,tcp/ip,云计算

在10.100网段:

将恶意访问的数量前2的ip提取出来,同时写入iptables,网络,服务器,tcp/ip,云计算

四、firewalld使用

1.firewalld的基本知识

firewalld是centos7之后推出的基于netfilter的用户空间的软件工具,ubuntu也支持

filewalld是配置和监控防火墙规则的系统守护进程,可以实现iptables ip6tables ebtables的功能, nftables可以兼容firewalld和iptables的综合性功能

【注】:Firewalld不能和iptables同时使用、firewalld使用,它本质调用netfilter、centos7-8没有iptables.service,   centos6里面自带。

2.firewalld支持划分区域

firewalld支持划分区域zone,每个zone可以设置独立的防火墙规则

注意:先根据数据包中的源地址,将其纳为某个zone

      纳为网络接口所属zone

      纳入默认zone,默认为public zone,管理员可以改为其他zone

      网卡默认属于public zone    lo网络接口属于trusted zone

表格重要:

将恶意访问的数量前2的ip提取出来,同时写入iptables,网络,服务器,tcp/ip,云计算

预定义服务

ssh

dhcpv6-client  Local DHCPV6 client. Traffic to 546/udp

ipp-client     printing Traffic to 631/udp

samba-client   Local Windows file and print sharing client. Traffic to 137/udp and 138/udp

mdns         Multicast DNS Traffic to 5353/udp

3.firewalld命令行的基本操作

firewall-cmd --list-all:列出当前所有的防火墙规则

firewall-cmd --get-zones:获取所有区域

firewall-cmd --get-default-zone:列出默认的区域

firewall-cmd --list-service:列出目前防火墙允许的服务

firewall-cmd --get-service:列举出当前系统中支持的所有的服务

firewall-cmd --set-default-zone=block:更改默认的区域,例如更改为block

firewall-cmd --query-service=http:查询http服务是否开放

firewall-cmd --query-port=xxxx/tcp:查询xxxx端口是否开放

firewall-cmd --add-service=http:添加防火墙允许的服务:例如http服务

firewall-cmd --remove-service=http:删除防火墙允许的服务:例如http服务

firewall-cmd --permanent --remove-port=xxxx/tcp:永久移除xxxx端口

firewall-cmd --permanent:永久修改防火墙规则(但不会临时生效)

firewall-cmd --permanent --zone=internal --add-source=192.168.10.0/24 

firewall-cmd --permanent --zone=internal --add-service=mysql

firewall-cmd --reload:修改配置后重载防火墙服务

【注】:图形化工具的使用(需要安装基本图形程序);图形化操作和命令行操作不能兼容Yum -y install firewall-config。

让图形化永久生效方法:例如:http协议先点一下http,然后点永久,然后点重载防火墙

4.rich富规则

firewall-cmd --permanent --zone=public --add-rich-rule='rule family=ipv4 source address=192.168.10.110/32 reject'   //110访问我的ipv4,一律拒绝

拒绝从192.168.10.110的所有流量,当address选项使用source或destination时,必须使用family=ipv4或者ipv6

将恶意访问的数量前2的ip提取出来,同时写入iptables,网络,服务器,tcp/ip,云计算

限制每分钟只有两个连接到ftp

firewall-cmd --add-rich='rule service name=ftp limit value=2/m accept'

地址伪装

firewall-cmd --add-rich='rule family-ipv4 source address=192.168.10.0/24 masquerade'文章来源地址https://www.toymoban.com/news/detail-853301.html

到了这里,关于iptables防火墙-NAT的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 几分钟实现对恶意IP地址进行拦截,腾讯云Web防火墙实在太香了!

    在平时上网中,我们经常听到“xxx被拉入黑名单”、“把xxx加入白名单”,黑白名单成了禁止访问和允许访问的代名词,黑白名单是一种常见的安全机制,用于 隔离流量 ,然后对隔离的流量采取特定操作。 黑名单代表只有处于黑名单上的流量会被限制,其他流量正常通过。

    2023年04月24日
    浏览(55)
  • Windows server防火墙如何设置阻止IP访问防火墙限制ip地址访问

    无论是服务器还是本机电脑,安全都是非常重要的,一些安全软件设置后会拦截到一些异常IP,我们可以通过防火墙将异常IP加入黑名单,禁止访问,今天 芳芳 就和你们分享Windows防火墙如何设置IP禁止访问,希望可以帮助到你~ 打开“控制面板”,在右上角的查看方式改为“

    2024年02月13日
    浏览(46)
  • 【防火墙】iptables防火墙(一)

    防火墙具有 隔离功能 主要部署在网络边缘或者主机边缘,防火墙的主要作用是 决定哪些数据可以被外网访问,哪些数据可以进入内网访问 网络层(路由器):数据的转发 安全技术 1.入侵监测系统:在检测到威胁(木马、病毒)后,不会阻断网络访问,只会在事后提供报警

    2024年02月15日
    浏览(30)
  • 华为防火墙USG6000V---内网访问外网---外网访问内网服务器(NAT服务器)示例配置

      目录 一、配置要求  二、配置步骤 1. ping通防火墙接口IP地址的条件 2. 内网ping通外网终端的条件 3. 内网ping通DMZ(内网服务器)的条件 三、命令解析 内网可以ping通防火墙; 内网可以访问外网; 外网可以访问内网服务器。 1. ping通防火墙接口IP地址的条件 配置接口IP地址;

    2024年02月04日
    浏览(39)
  • centos7 防火墙限制ip访问

    CentOS 7默认使用的防火墙是firewalld,要限制IP访问需要进行以下步骤: 防火墙必须是开启的 在终端输入以下命令: 这会输出当前防火墙的所有规则。 假设我们要禁止IP地址为 192.168.0.1 的主机访问本机,可以通过以下命令创建规则: 其中, rich rule 是一种在firewalld中比较灵活

    2024年02月06日
    浏览(106)
  • window10设置防火墙只允许某些ip访问

    工作中进行测试,需要嵌入式设备通过网线直连电脑进行TCP通讯,但在使用过程中发现总是连接失败,但电脑ping设备的IP是可以ping通的,而嵌入式设备不能操作一些像ping的网络测试指令,就很无奈。 后来通过设置防火墙,发现是防火墙的原因。 可以通过设置入站规则来解决

    2024年02月16日
    浏览(43)
  • Linux防火墙限制访问服务器IP和端口

    笔记 逐行执行命令 查看

    2024年02月15日
    浏览(47)
  • iptables防火墙(一)

    Linux系统的防火墙:IP信息包过滤系统,它实际上由两个组件 netfilter 和 iptables 组成。 主要工作在网络层,针对IP数据包。体现在对包内的IP地址、端口、协议等信息的处理上。 1.netfilter netfilter 属于\\\"内核态\\\"(Kernel Space,又称为内核空间)的防火墙功能体系。 netfilter是内核的

    2024年02月05日
    浏览(28)
  • iptables防火墙2

    SNAT 应用环境:局域网主机共享单个公网IP地址接入Internet(私有不能早Internet中正常路由) SNAT原理:修改数据包的源地址。 SNAT转换前提条件: 1.局域网各主机已正确设置IP地址、子网掩码、默认网关地址 2.Linux网关开启IP路由转发 临时打开: 或 永久打开: SNAT转换 1:固定的

    2024年02月05日
    浏览(31)
  • iptables防火墙详解

    1.1 防火墙概念 从逻辑上讲,防火墙可以大体分为 主机防火墙和网络防火墙 。网络防火墙和主机防火墙并不冲突,可以理解为,网络防火墙主外(集体), 主机防火墙主内(个人) 主机防火墙:针对于单个主机进行防护 网络防火墙:往往处于网络入口或边缘,针对于网络入

    2024年02月04日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包