热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

iptables内网访问外网ε=ε=ε=(~ ̄▽ ̄)~

介绍netfilteriptables : IP信息包过滤系统,它实际上由两个组件netfilter和iptables组成。netfilteriptables关系:netfilte

介绍


iptables概述:

netfilter/iptables : IP信息包过滤系统,它实际上由两个组件netfilter 和 iptables 组成。

netfilter/iptables 关系:

netfilter 组件也称为内核空间(kernelspace),是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。

iptables 组件是一种工具,也称为用户空间(userspace),它使插入、修改和除去信息包过滤表中的规则变得容易。



IP地址规划























主机名eth0eth1作用
firewalld10.0.0.81172.16.1.81防火墙
m0110.0.0.61172.16.1.61 (ifdown)批量管理

 m01通过内网网关(访问firewalld内网IP地址)进行地址转换,从而访问外网。

流程图:

技术分享图片

防火墙服务安装部署


[root@firewalld ~]# yum install -y iptables-services

[root@firewalld ~]# systemctl start iptables


修改m01网卡配置

因为是内网访问所以我们无需使用eth0,直接down就可以


[root@m01 ~]# ifdown eth0
[root@m01
~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1


TYPE=Ethernet
PROXY_METHOD
=none
BROWSER_ONLY
=no
BOOTPROTO
=none
DEFROUTE
=yes
IPV4_FAILURE_FATAL
=no
IPV6INIT
=yes
IPV6_AUTOCONF
=yes
IPV6_DEFROUTE
=yes
IPV6_FAILURE_FATAL
=no
IPV6_ADDR_GEN_MODE
=stable-privacy
NAME
=eth1
UUID
=ae935876-ade9-4a88-b7d7-45fb1fc6d690
DEVICE
=eth1
ONBOOT
=yes
IPADDR
=172.16.1.61
PREFIX
=24
GATEWAY
=172.16.1.81 #网关是firewalld的内网IP地址
DNS1
=223.5.5.5 #要有DNS解析,否则无妨上网


修改完需要我们重启eth1网卡:


[root@m01 ~]# ifdown eth1 && ifup eth1
Device
eth1 successfully disconnected.
Connection successfully activated (D
-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/9)


修改firewalld的网卡配置

forward 表 负责转发流经主机的数据包,起转发的作用,和NAT关系很大

LVS NAT 模式,net.ipv4.ip_forward=0


[root@firewalld ~]# echo "1"> /proc/sys/net/ipv4/ip_forward #修改当前系统内存中ip_forward的值,这是开启ip转发
[root@firewalld
~]# cat /proc/sys/net/ipv4/ip_forward 1
[root@firewalld
~]# sysctl -p


或者:
[root@firewalld
~]# vim /etc/sysctl.conf
#最后一行加上
net.ipv4.ip_forward
= 1
[root@firewalld
~]# sysctl -p


firewalld防火墙配置

POSTROUTING: 表示数据包在从一个接口要流出, 做一个地址映射
PREROUTING: 表示数据包在从一个接口要流入, 做一个地址转换
OUTPUT: 表示将防火墙自身产生的数据流量做地址或者端口转换


[root@firewalld ~]# iptables -t nat -A POSTROUTING -s 172.16.1.61 -o eth0 -j SNAT --to-source 10.0.0.81
#将172.
16.1.61IP地址转换为10.0.0.81
[root@firewalld
~]# service iptables save #保存设置,将上面的设置写入文件内

[root@m01
~]# iptables-save #查看内容
# Generated by iptables
-save v1.4.21 on Thu Dec 12 11:57:05 2019
*nat
:PREROUTING ACCEPT [
97:8398]
:INPUT ACCEPT [
29:3621]
:OUTPUT ACCEPT [
241:17235]
:POSTROUTING ACCEPT [
241:17235]
-A POSTROUTING -s 172.16.1.61/32 -o eth0 -j SNAT --to-source 10.0.0.81
COMMIT
# Completed on Thu Dec
12 11:57:05 2019
# Generated by iptables
-save v1.4.21 on Thu Dec 12 11:57:05 2019
*filter
:INPUT ACCEPT [
3671:291941]
:FORWARD ACCEPT [
369:29004]
:OUTPUT ACCEPT [
2777:276150]
COMMIT
# Completed on Thu Dec
12 11:57:05 2019

 

m01 进行测试:


[root@m01 ~]# ping baidu.com
PING baidu.com (
220.181.38.148) 56(84) bytes of data.
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=1 ttl=128 time=430 ms
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=2 ttl=128 time=245 ms
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=3 ttl=128 time=457 ms
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=4 ttl=128 time=255 ms

实验完成,最核心的是iptables的配置,需要用用到nat表中的POSTROUTING

 


推荐阅读
  • 在 Mac 上查看隐藏文件和文件夹的详细指南。通过终端命令,您可以轻松地显示或隐藏这些文件。具体步骤如下:输入 `defaults write com.apple.finder AppleShowAllFiles -bool true` 以显示所有隐藏文件,或使用 `defaults write com.apple.finder AppleShowAllFiles -bool false` 以重新隐藏它们。此方法适用于各种版本的 macOS,帮助用户更好地管理和访问系统文件。 ... [详细]
  • 本文详细解析了逻辑运算符“与”(&&)和“或”(||)在编程中的应用。通过具体示例,如 `[dehua@teacher~]$[$(id -u) -eq 0] && echo "You are root" || echo "You must be root"`,展示了如何利用这些运算符进行条件判断和命令执行。此外,文章还探讨了这些运算符在不同编程语言中的实现和最佳实践,帮助读者更好地理解和运用逻辑运算符。 ... [详细]
  • 二分查找算法详解与应用分析:本文深入探讨了二分查找算法的实现细节及其在实际问题中的应用。通过定义 `binary_search` 函数,详细介绍了算法的逻辑流程,包括初始化上下界、循环条件以及中间值的计算方法。此外,还讨论了该算法的时间复杂度和空间复杂度,并提供了多个应用场景示例,帮助读者更好地理解和掌握这一高效查找技术。 ... [详细]
  • 蚂蚁课堂:性能测试工具深度解析——JMeter应用与实践
    蚂蚁课堂:性能测试工具深度解析——JMeter应用与实践 ... [详细]
  • 在 iOS 开发中,经常会遇到 `@(YES)`、`@[firstViewController]` 以及 `@{@a:@b}` 这样的语法糖。这些简化的写法分别用于初始化布尔值、数组和字典对象,能够显著提高代码的可读性和编写效率。例如,`@(YES)` 可以快速创建一个布尔值对象,`@[firstViewController]` 则用于创建包含单个元素的数组,而 `@{@a:@b}` 则用于创建键值对字典。理解这些语法糖的使用方法,有助于开发者更加高效地进行编码。 ... [详细]
  • Unity3D 中 AsyncOperation 实现异步场景加载及进度显示优化技巧
    在Unity3D中,通过使用`AsyncOperation`可以实现高效的异步场景加载,并结合进度条显示来提升用户体验。本文详细介绍了如何利用`AsyncOperation`进行异步加载,并提供了优化技巧,包括进度条的动态更新和加载过程中的性能优化方法。此外,还探讨了如何处理加载过程中可能出现的异常情况,确保加载过程的稳定性和可靠性。 ... [详细]
  • 在跨线程调用UI控件方法时,通常使用同步调用机制,如 `控件.Invoke(Delegate, 参数)`。这里需要声明并实现一个委托,因为控件本身并不知道如何处理跨线程操作。通过将具体的实现逻辑封装在委托中,控件可以正确地执行这些操作,确保线程安全性和UI的一致性。此外,为了提高性能和可维护性,建议对频繁的跨线程调用进行优化,例如使用异步调用或批量处理请求。 ... [详细]
  • 近日,我在处理一个复杂的前端问题时遇到了极大困扰。具体来说,我之前开发了一个功能丰富的纯jQuery代码的前端GridView控件,实现了多种功能和视觉效果,并在多个项目中表现良好。然而,最近在尝试应用 `border-box` 布局模式时,却遇到了意想不到的兼容性和性能问题。这提醒我们在条件尚未完全成熟的情况下,应谨慎使用 `border-box` 布局模式,以免引入不必要的复杂性和潜在的bug。 ... [详细]
  • 在Eclipse中提升开发效率,推荐使用Google V8插件以增强Node.js的调试体验。安装方法有两种:一是通过Eclipse Marketplace搜索并安装;二是通过“Help”菜单中的“Install New Software”,在名称栏输入“googleV8”。此插件能够显著改善调试过程中的性能和响应速度,提高开发者的生产力。 ... [详细]
  • Python 伦理黑客技术:深入探讨后门攻击(第三部分)
    在《Python 伦理黑客技术:深入探讨后门攻击(第三部分)》中,作者详细分析了后门攻击中的Socket问题。由于TCP协议基于流,难以确定消息批次的结束点,这给后门攻击的实现带来了挑战。为了解决这一问题,文章提出了一系列有效的技术方案,包括使用特定的分隔符和长度前缀,以确保数据包的准确传输和解析。这些方法不仅提高了攻击的隐蔽性和可靠性,还为安全研究人员提供了宝贵的参考。 ... [详细]
  • 深入解析Linux内核中的进程上下文切换机制
    在现代操作系统中,进程作为核心概念之一,负责管理和分配系统资源,如CPU和内存。深入了解Linux内核中的进程上下文切换机制,需要首先明确进程与程序的区别。进程是一个动态的执行流,而程序则是静态的数据和指令集合。进程上下文切换涉及保存当前进程的状态信息,并加载下一个进程的状态,以实现多任务处理。这一过程不仅影响系统的性能,还关系到资源的有效利用。通过分析Linux内核中的具体实现,可以更好地理解其背后的原理和技术细节。 ... [详细]
  • 如何在PDF文档中添加新的文本内容?
    在处理PDF文件时,有时需要向其中添加新的文本内容。这是否可以直接实现呢?有哪些简便且免费的方法可供选择?使用极速PDF阅读器打开文档后,可以通过点击左上角的“注释”按钮切换到注释模式,并选择相应的工具进行编辑。此外,还可以利用其他功能丰富的PDF编辑软件,如Adobe Acrobat DC或Foxit PhantomPDF,它们提供了更多高级的编辑选项,能够满足更复杂的需求。 ... [详细]
  • 在 CentOS 6.5 系统上部署 VNC 服务器的详细步骤与配置指南
    在 CentOS 6.5 系统上部署 VNC 服务器时,首先需要确认 VNC 服务是否已安装。通常情况下,VNC 服务默认未安装。可以通过运行特定的查询命令来检查其安装状态。如果查询结果为空,则表明 VNC 服务尚未安装,需进行手动安装。此外,建议在安装前确保系统的软件包管理器已更新至最新版本,以避免兼容性问题。 ... [详细]
  • 虚拟机网络设置与数据库远程连接优化指南
    本文针对个人计算机上虚拟机网络配置与数据库远程连接的问题,提供了一套详细的优化指南。在探讨远程数据库访问前,需确保网络配置正确,特别是桥接模式的设置。通过合理的网络配置,可以有效解决因虚拟机或网络问题导致的连接失败,提升远程访问的稳定性和效率。 ... [详细]
  • 基于域名、端口和IP的虚拟主机构建方案
    本文探讨了在单台物理服务器上构建多个Web站点的虚拟主机方案,详细介绍了三种主要的虚拟主机类型:基于域名、基于IP地址和基于端口的虚拟主机。每种类型的实现方式及其优缺点均进行了深入分析,为实际应用提供了全面的技术指导。 ... [详细]
author-avatar
so直接离我远点儿
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有