精华内容
下载资源
问答
  • 通过本文的介绍,读者可以从中了解到如何应用 SSH 端口转发机制来解决日常工作 / 生活中的一些问题。学会在非安全环境下使用端口转发来加密网络应用,保护个人隐私以及重要商业信息。同时也能够用此技术解决工作中...

    第一部分 概述

    当你在咖啡馆享受免费 WiFi 的时候,有没有想到可能有人正在窃取你的密码及隐私信息?当你发现实验室的防火墙阻止了你的网络应用端口,是不是有苦难言?来看看 SSH 的端口转发功能能给我们带来什么好处吧!

    端口转发概述

    让我们先来了解一下端口转发的概念吧。我们知道,SSH 会自动加密和解密所有 SSH 客户端与服务端之间的网络数据。但是,SSH 还同时提供了一个非常有用的功能,这就是端口转发。它能够将其他 TCP 端口的网络数据通过 SSH 链接来转发,并且自动提供了相应的加密及解密服务。这一过程有时也被叫做“隧道”(tunneling),这是因为 SSH 为其他 TCP 链接提供了一个安全的通道来进行传输而得名。例如,Telnet,SMTP,LDAP 这些 TCP 应用均能够从中得益,避免了用户名,密码以及隐私信息的明文传输。而与此同时,如果您工作环境中的防火墙限制了一些网络端口的使用,但是允许 SSH 的连接,那么也是能够通过将 TCP 端口转发来使用 SSH 进行通讯。总的来说 SSH 端口转发能够提供两大功能:

    1. 加密 SSH Client 端至 SSH Server 端之间的通讯数据。
    2. 突破防火墙的限制完成一些之前无法建立的 TCP 连接。
    图 1. SSH 端口转发
    SSH 端口转发

    如上图所示,使用了端口转发之后,TCP 端口 A 与 B 之间现在并不直接通讯,而是转发到了 SSH 客户端及服务端来通讯,从而自动实现了数据加密并同时绕过了防火墙的限制。

    第二部分 本地转发与远程转发

    本地转发实例分析

    我们先来看第一个例子,在实验室里有一台 LDAP 服务器(LdapServerHost),但是限制了只有本机上部署的应用才能直接连接此 LDAP 服务器。如果我们由于调试或者测试的需要想临时从远程机器(LdapClientHost)直接连接到这个 LDAP 服务器 , 有什么方法能够实现呢?

    答案无疑是本地端口转发了,它的命令格式是:

    ssh -L <local port>:<remote host>:<remote port> <SSH hostname>

    在 LdapClientHost 上执行如下命令即可建立一个 SSH 的本地端口转发,例如:

    $ ssh -L 7001:localhost:389 LdapServerHost
    图 2. 本地端口转发
    本地端口转发

    这里需要注意的是本例中我们选择了 7001 端口作为本地的监听端口,在选择端口号时要注意非管理员帐号是无权绑定 1-1023 端口的,所以一般是选用一个 1024-65535 之间的并且尚未使用的端口号即可。

    然后我们可以将远程机器(LdapClientHost)上的应用直接配置到本机的 7001 端口上(而不是 LDAP 服务器的 389 端口上)。之后的数据流将会是下面这个样子:

    • 我们在 LdapClientHost 上的应用将数据发送到本机的 7001 端口上,
    • 而本机的 SSH Client 会将 7001 端口收到的数据加密并转发到 LdapServertHost 的 SSH Server 上。
    • SSH Server 会解密收到的数据并将之转发到监听的 LDAP 389 端口上,
    • 最后再将从 LDAP 返回的数据原路返回以完成整个流程。

    我们可以看到,这整个流程应用并没有直接连接 LDAP 服务器,而是连接到了本地的一个监听端口,但是 SSH 端口转发完成了剩下的所有事情,加密,转发,解密,通讯。

    这里有几个地方需要注意:

    1. SSH 端口转发是通过 SSH 连接建立起来的,我们必须保持这个 SSH 连接以使端口转发保持生效。一旦关闭了此连接,相应的端口转发也会随之关闭。
    2. 我们只能在建立 SSH 连接的同时创建端口转发,而不能给一个已经存在的 SSH 连接增加端口转发。
    3. 你可能会疑惑上面命令中的 <remote host> 为什么用 localhost,它指向的是哪台机器呢?在本例中,它指向 LdapServertHost 。我们为什么用 localhost 而不是 IP 地址或者主机名呢?其实这个取决于我们之前是如何限制 LDAP 只有本机才能访问。如果只允许 lookback 接口访问的话,那么自然就只有 localhost 或者 IP 为 127.0.0.1 才能访问了,而不能用真实 IP 或者主机名。
    4. 命令中的 <remote host> 和 <SSH hostname> 必须是同一台机器么?其实是不一定的,它们可以是两台不同的机器。我们在后面的例子里会详细阐述这点。
    5. 好了,我们已经在 LdapClientHost 建立了端口转发,那么这个端口转发可以被其他机器使用么?比如能否新增加一台 LdapClientHost2 来直接连接 LdapClientHost 的 7001 端口?答案是不行的,在主流 SSH 实现中,本地端口转发绑定的是 lookback 接口,这意味着只有 localhost 或者 127.0.0.1 才能使用本机的端口转发 , 其他机器发起的连接只会得到“ connection refused. ”。好在 SSH 同时提供了 GatewayPorts 关键字,我们可以通过指定它与其他机器共享这个本地端口转发。
      ssh -g -L <local port>:<remote host>:<remote port> <SSH hostname>

    远程转发实例分析

    我们来看第二个例子,这次假设由于网络或防火墙的原因我们不能用 SSH 直接从 LdapClientHost 连接到 LDAP 服务器(LdapServertHost),但是反向连接却是被允许的。那此时我们的选择自然就是远程端口转发了。

    它的命令格式是:

    ssh -R <local port>:<remote host>:<remote port> <SSH hostname>

    例如在 LDAP 服务器(LdapServertHost)端执行如下命令:

    $ ssh -R 7001:localhost:389 LdapClientHost
    图 3. 远程端口转发
    远程端口转发

    和本地端口转发相比,这次的图里,SSH Server 和 SSH Client 的位置对调了一下,但是数据流依然是一样的。我们在 LdapClientHost 上的应用将数据发送到本机的 7001 端口上,而本机的 SSH Server 会将 7001 端口收到的数据加密并转发到 LdapServertHost 的 SSH Client 上。 SSH Client 会解密收到的数据并将之转发到监听的 LDAP 389 端口上,最后再将从 LDAP 返回的数据原路返回以完成整个流程。

    看到这里,你是不是会有点糊涂了么?为什么叫本地转发,而有时又叫远程转发?这两者有什么区别?

    本地转发与远程转发的对比与分析

    不错,SSH Server,SSH Client,LdapServertHost,LdapClientHost,本地转发,远程转发,这么多的名词的确容易让人糊涂。让我们来分析一下其中的结构吧。首先,SSH 端口转发自然需要 SSH 连接,而 SSH 连接是有方向的,从 SSH Client 到 SSH Server 。而我们的应用也是有方向的,比如需要连接 LDAP Server 时,LDAP Server 自然就是 Server 端,我们应用连接的方向也是从应用的 Client 端连接到应用的 Server 端。如果这两个连接的方向一致,那我们就说它是本地转发。而如果两个方向不一致,我们就说它是远程转发。

    我们可以回忆上面的两个例子来做个对照。

    本地转发时:

    LdapClientHost 同时是应用的客户端,也是 SSH Client,这两个连接都从它指向 LdapServertHost(既是 LDAP 服务端,也是 SSH Server)。

    远程转发时:

    LdapClientHost 是应用的客户端,但却是 SSH Server ;而 LdapServertHost 是 LDAP 的服务端,但却是 SSH Client 。这样两个连接的方向刚好相反。

    另一个方便记忆的方法是,Server 端的端口都是预定义的固定端口(SSH Server 的端口 22,LDAP 的端口 389),而 Client 端的端口都是动态可供我们选择的端口(如上述例子中选用的 7001 端口)。如果 Server 端的两个端口都在同一台机器,Client 端的两个端口都在另一台机器上,那么这就是本地连接;如果这四个端口交叉分布在两个机器上,每台机器各有一个 Server 端端口,一个 Client 端端口,那就是远程连接。

    弄清楚了两者的区别之后,再来看看两者的相同之处。如果你所在的环境下,既允许 LdapClientHost 发起 SSH 连接到 LdapServerHost,也允许 LdapServerHost 发起 SSH 连接到 LdapClientHost 。那么这时我们选择本地转发或远程转发都是可以的,能完成一样的功能。

    接着让我们来看个进阶版的端口转发。我们之前涉及到的各种连接 / 转发都只涉及到了两台机器,还记得我们在本地转发中提到的一个问题么?本地转发命令中的 <remote host> 和 <SSH hostname> 可以是不同的机器么?

    ssh -L <local port>:<remote host>:<remote port> <SSH hostname>

    答案是可以的!让我们来看一个涉及到四台机器 (A,B,C,D) 的例子。

    图 4. 多主机转发应用
    多主机转发应用

    在 SSH Client(C) 执行下列命令来建立 SSH 连接以及端口转发:

    $ ssh -g -L 7001:<B>:389 <D>

    然后在我们的应用客户端(A)上配置连接机器(C )的 7001 端口即可。注意我们在命令中指定了“ -g ”参数以保证机器(A)能够使用机器(C)建立的本地端口转发。而另一个值得注意的地方是,在上述连接中,(A)<-> (C) 以及 (B)<->(D) 之间的连接并不是安全连接,它们之间没有经过 SSH 的加密及解密。如果他们之间的网络并不是值得信赖的网络连接,我们就需要谨慎使用这种连接方式了。

    第三部分 其他类型的转发

    动态转发实例分析

    恩,动态转发,听上去很酷。当你看到这里时,有没有想过我们已经讨论过了本地转发,远程转发,但是前提都是要求有一个固定的应用服务端的端口号,例如前面例子中的 LDAP 服务端的 389 端口。那如果没有这个端口号怎么办?等等,什么样的应用会没有这个端口号呢?嗯,比如说用浏览器进行 Web 浏览,比如说 MSN 等等。

    当我们在一个不安全的 WiFi 环境下上网,用 SSH 动态转发来保护我们的网页浏览及 MSN 信息无疑是十分必要的。让我们先来看一下动态转发的命令格式:

    $ ssh -D <local port> <SSH Server>

    例如:

    $ ssh -D 7001 <SSH Server>
    图 5. 动态端口转发
    动态端口转发

    似乎很简单,我们依然选择了 7001 作为本地的端口号,其实在这里 SSH 是创建了一个 SOCKS 代理服务。来看看帮助文档中对 -D 参数的描述:

    -D port 
     This works by allocating a socket to listen to port on the local 
     side, and whenever a connection is made to this port, the con- 
     nection is forwarded over the secure channel, and the applica- 
     tion protocol is then used to determine where to connect to from 
     the remote machine.  Currently the SOCKS4 and SOCKS5 protocols 
     are supported, and ssh will act as a SOCKS server.  Only root 
     can forward privileged ports.  Dynamic port forwardings can also 
     be specified in the configuration file.

    之后的使用就简单了,我们可以直接使用 localhost:7001 来作为正常的 SOCKS 代理来使用,直接在浏览器或 MSN 上设置即可。在 SSH Client 端无法访问的网站现在也都可以正常浏览。而这里需要值得注意的是,此时 SSH 所包护的范围只包括从浏览器端(SSH Client 端)到 SSH Server 端的连接,并不包含从 SSH Server 端 到目标网站的连接。如果后半截连接的安全不能得到充分的保证的话,这种方式仍不是合适的解决方案。

    X 协议转发实例分析

    好了,让我们来看最后一个例子 - X 协议转发。

    我们日常工作当中,可能会经常会远程登录到 Linux/Unix/Solaris/HP 等机器上去做一些开发或者维护,也经常需要以 GUI 方式运行一些程序,比如要求图形化界面来安装 DB2/WebSphere 等等。这时候通常有两种选择来实现:VNC 或者 X 窗口,让我们来看看后者。

    使用 X 窗口通常需要分别安装:X Client 和 X Server 。在本例中我们的 X Client 就是所访问的远程 Linux/Unix/Solaris/HP,而我们的 X Server 则是发起访问的本地机器(例如你面前正在使用的笔记本或台式机)。把 X Client 端的 X 窗口显示在 X Server 端需要先行在 X Client 端指定 X Server 的位置,命令格式如下:

    export DISPLAY=<X Server IP>:<display #>.<virtual #>

    例如:

    export DISPLAY=myDesktop:1.0

    然后直接运行 X 应用即可,X 窗口就会自动在我们的本地端打开。

    一切运行正常,但是,这时候 IT 部门突然在远程 Linux/Unix/Solaris/HP 前面加了一道防火墙。非常不幸的是,X 协议并不在允许通过的列表之内。怎么办?只能使用 VNC 了么?不,其实只要使用了 SSH 端口转发即可通过,同时也对 X 通讯数据做了加密,真是一举两得。(当然,使用此方法前最好先咨询相关 IT 部门是否符合相应的安全条例,以免造成违规操作。)

    建立命令也很简单,直接从本地机器(X Server 端)发起一个如下的 SSH 连接即可:

    $ ssh -X <SSH Server>
    图 5. X 转发
    X 转发

    建立连接之后就可以直接运行远程的 X 应用。注意建立 X 转发之后会自动设置 DISPLAY 环境变量,通常会被设置成localhost:10.0,我们无需也不应该在连接之后再进行修改此环境变量。

    一个比较常见的场景是,我们的本地机器是 Windows 操作系统,这时可以选择开源的 XMing 来作为我们的 XServer,而 SSH Client 则可以任意选择了,例如 PuTTY,Cygwin 均可以配置 访问 SSH 的同时建立 X 转发。

    第四部分 总结

    至此,我们已经完成了本地端口转发,远程端口转发,动态端口转发以及 X 转发的介绍。回顾起来,总的思路是通过将 TCP 连接转发到 SSH 通道上以解决数据加密以及突破防火墙的种种限制。对一些已知端口号的应用,例如 Telnet/LDAP/SMTP,我们可以使用本地端口转发或者远程端口转发来达到目的。动态端口转发则可以实现 SOCKS 代理从而加密以及突破防火墙对 Web 浏览的限制。对于 X 应用,无疑是 X 转发最为适用了。虽然每一部分我们都只是简单的介绍了一下,但如果能灵活应用这些技巧,相信对我们的日常生活 / 工作也是会有所帮助的。

    展开全文
  • 4、群晖DSM 路由器设置 端口转发 5、路由器 虚拟服务器 端口转发 6、申请公网IP 7、光猫设置桥接 8、路由器设置宽带拨号上网 9、远程WebDAV设置 方法: 1、申请域名: 去腾讯云申请 2、DNSPOD.cn设置解析...

    群晖NAS公网访问

    (IP+DNSPOD+桥接+端口转发+DDNS+WebDAV) 

    文章更新一版,结果审核不过,只能转载了:

    https://www.cnblogs.com/nomil9/articles/12924354.html

    展开全文
  • 记住NAT设置中的子网IP、子网掩码、网关IP三项,接下来配置文件主要是这三项 2、编辑linux 中的网络配置文件 TYPE=Ethernet PROXY_METHOD=static #静态连接 BROWSER_ONLY=no BOOTPROTO=dhcp DEFROUTE=yes ...
    准备
    打开 VMware  ---> 编辑 ---> 虚拟网络编辑器
    

    点击 NAT 设置
    在这里插入图片描述
    在这里插入图片描述
    记住NAT设置中的子网IP、子网掩码、网关IP三项,接下来配置文件主要是这三项

    2、编辑linux 中的网络配置文件

    vi /etc/sysconfig/network-scripts/ifcfg-ens33
    #注 网络配置文件名可能会有不同,在输入到ifcfg时,可以连续按两下tab键,获取提示

    TYPE=Ethernet
    PROXY_METHOD=static   #静态连接
    BROWSER_ONLY=no
    BOOTPROTO=dhcp 
    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=ens33
    UUID=90d052a5-906d-419b-9cd0-121d90b0d7ee
    DEVICE=ens33
    ONBOOT=yes  #网络设备开机启动 
    IPADDR=192.168.136.128 #192.168.136.x, x为3~255. 
    NETMASK=255.255.255.0 #子网掩码 
    GATEWAY=192.168.136.2 #网关IP
    DNS1=114.114.114.114
    DNS2=8.8.8.8
    
    
    3、查看网络配置
    [root@localhost ~]# ip addr
    
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host 
           valid_lft forever preferred_lft forever
    2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether 00:0c:29:58:f7:fd brd ff:ff:ff:ff:ff:ff
        inet 192.168.136.137/24 brd 192.168.136.255 scope global noprefixroute dynamic ens33
           valid_lft 1195sec preferred_lft 1195sec
        inet 192.168.136.128/24 brd 192.168.136.255 scope global secondary noprefixroute ens33
           valid_lft forever preferred_lft forever
        inet6 fe80::6d:a5c9:d554:d76d/64 scope link noprefixroute 
           valid_lft forever preferred_lft forever
    3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default 
        link/ether 02:42:55:8b:d2:f1 brd ff:ff:ff:ff:ff:ff
        inet 172.17.0.1/16 scope global docker0
           valid_lft forever preferred_lft forever
    
    
    4、重启网络服务
      service network restart
    
    5、测试

    在这里插入图片描述

    ok 搞定 Net 模式共享主机ip

    端口转发

    NET 设置 -->点击添加 即可 完成后如下
    在这里插入图片描述

    我这里配置了 三个 8888、8889、8887
    

    注意点:

    1、NGINX 是否配置好
    使用 lsof -i:端口查看
    
    2、虚拟机防火墙必须关闭 或者允许你的端口开放
    

    在主机上浏览器 打 127.0.0.1:8888 自动会转发到 虚拟机的 80端口上

    展开全文
  • IP地址伪装和端口转发

    千次阅读 2019-09-18 07:15:45
    关于防火墙基础配置可参考博文:保证Linux系统安全之CentOS 7 firewalld防火墙入门详解关于防火墙IP伪装和端口转发可参考博文:保证Linux系统安全之firewalld防火墙配置地址伪装和端口转发详解案例环境: ...

    关于防火墙基础配置可参考博文:保证Linux系统安全之CentOS 7 firewalld防火墙入门详解
    关于防火墙IP伪装和端口转发可参考博文:保证Linux系统安全之firewalld防火墙配置地址伪装和端口转发详解
    案例环境:

    保证Linux系统安全之配置firewalld防火墙的地址伪装及端口转发实例,可跟做!!!

    需求描述:

    连接内网网卡ens33地址为192.168.1.1,分配到firewall的trusted区域;
    连接服务器网卡ens37地址为192.168.2.1,分配到firewall的dmz区域;
    网关服务器连接互联网网卡ens38地址为192.168.3.1,为公网IP地址,分配到firewall的external区域;
    网站服务器和网关服务器均通过SSH来远程管理,为了安全,将SSH默认端口改为12345;
    网站服务器开启 HTTPS,过滤未加密的HTTP流量;
    网站务器拒绝ping测试,网关服务器拒绝来自互联网上的ping测试;
    公司内网用户需要通过网关服务器共享上网;
    互联网用户需要访问网站服务器;
    操作步骤

    基本环境配置;
    DMZ网站服务器环境搭建并启动服务;
    DMZ网站服务器上启动并配置firewalld防火墙策略;
    Internet测试网站环境搭建并启动服务、设置防火墙规则;
    网关服务器配置firewalld策略;
    配置IP伪装与端口转发;
    案例实施

    1.基本环境配置

    (1)确认网关服务器地址

    [root@localhost ~]# ifconfig ens33
    ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
    inet 192.168.1.1 netmask 255.255.255.0 broadcast 192.168.1.255
    inet6 fe80::46cb:a832:aea4:7b65 prefixlen 64 scopeid 0x20<link>
    ether 00:0c:29:00:11:89 txqueuelen 1000 (Ethernet)
    RX packets 158 bytes 46815 (45.7 KiB)
    RX errors 0 dropped 0 overruns 0 frame 0
    TX packets 31 bytes 4270 (4.1 KiB)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

    [root@localhost ~]# ifconfig ens37
    ens37: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
    inet 192.168.2.1 netmask 255.255.255.0 broadcast 192.168.2.255
    inet6 fe80::8e69:6ed5:da33:fda4 prefixlen 64 scopeid 0x20<link>
    ether 00:0c:29:00:11:93 txqueuelen 1000 (Ethernet)
    RX packets 104 bytes 27490 (26.8 KiB)
    RX errors 0 dropped 0 overruns 0 frame 0
    TX packets 189 bytes 31923 (31.1 KiB)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
    [root@localhost ~]# ifconfig ens38
    ens38: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
    inet 192.168.3.1 netmask 255.255.255.0 broadcast 192.168.3.255
    inet6 fe80::5348:53e2:b3bc:d35b prefixlen 64 scopeid 0x20<link>
    ether 00:0c:29:00:11:9d txqueuelen 1000 (Ethernet)
    RX packets 101 bytes 27238 (26.5 KiB)
    RX errors 0 dropped 0 overruns 0 frame 0
    TX packets 188 bytes 31304 (30.5 KiB)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
    (2)网关服务器开启路由功能

    [root@localhost ~]# vim /etc/sysctl.conf
    ……………… //省略部分内容,添加以下内容
    net.ipv4.ip_forward = 1
    [root@localhost ~]# sysctl -p
    net.ipv4.ip_forward = 1
    (3)配置DMZ区域网站服务器地址、网关

    [root@localhost ~]# ifconfig ens33
    ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
    inet 192.168.2.2 netmask 255.255.255.0 broadcast 192.168.2.255
    inet6 fe80::8744:c79c:521f:823f prefixlen 64 scopeid 0x20<link>
    ether 00:0c:29:2b:56:b5 txqueuelen 1000 (Ethernet)
    RX packets 114 bytes 34398 (33.5 KiB)
    RX errors 0 dropped 0 overruns 0 frame 0
    TX packets 30 bytes 4162 (4.0 KiB)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
    [root@localhost ~]# route -n
    Kernel IP routing table
    Destination Gateway Genmask Flags Metric Ref Use Iface
    0.0.0.0 192.168.2.1 0.0.0.0 UG 100 0 0 ens33
    (4)配置Internet测试网站服务器IP地址、网关

    [root@localhost ~]# ifconfig ens33
    ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
    inet 192.168.3.2 netmask 255.255.255.0 broadcast 192.168.3.255
    inet6 fe80::7c8b:1ec0:7e4d:ac6 prefixlen 64 scopeid 0x20<link>
    ether 00:0c:29:98:41:ac txqueuelen 1000 (Ethernet)
    RX packets 113 bytes 31388 (30.6 KiB)
    RX errors 0 dropped 0 overruns 0 frame 0
    TX packets 40 bytes 4541 (4.4 KiB)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

    [root@localhost ~]# route -n
    Kernel IP routing table
    Destination Gateway Genmask Flags Metric Ref Use Iface
    0.0.0.0 192.168.3.1 0.0.0.0 UG 100 0 0 ens33
    (5)配置内部客户机IP地址、网关

    [root@localhost ~]# ifconfig ens33
    ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
    inet 192.168.1.2 netmask 255.255.255.0 broadcast 192.168.1.255
    inet6 fe80::9bb5:2c48:1095:d75a prefixlen 64 scopeid 0x20<link>
    ether 00:0c:29:fb:76:60 txqueuelen 1000 (Ethernet)
    RX packets 106 bytes 29223 (28.5 KiB)
    RX errors 0 dropped 0 overruns 0 frame 0
    TX packets 31 bytes 4349 (4.2 KiB)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

    [root@localhost ~]# route -n
    Kernel IP routing table
    Destination Gateway Genmask Flags Metric Ref Use Iface
    0.0.0.0 192.168.1.1 0.0.0.0 UG 100 0 0 ens33
    2.DMZ网站服务器环境并启动服务

    (1)开启firewalld防火墙

    [root@localhost ~]# systemctl start firewalld
    (2)搭建httpd服务

    [root@localhost ~]# yum -y install httpd
    //基于http访问的HTTP网站
    [root@localhost ~]# yum -y install httpd mod_ssl
    //基于https访问的HTTP网站
    [root@localhost ~]# systemctl start httpd
    //开启HTTP服务
    (3)更改SSH的监听端口(重启服务时建议关闭SELinux)

    [root@localhost ~]# vim /etc/ssh/sshd_config
    ………… //省略部分内容,修改以下内容
    Port 12345
    [root@localhost ~]# setenforce 0
    //临时关闭SELinux
    [root@localhost ~]# systemctl restart sshd
    //重启ssh服务
    3.DMZ网站服务器上启动并配置firewalld防火墙策略

    (1)设置防火墙默认区域为dmz区域

    [root@localhost ~]# firewall-cmd --set-default-zone=dmz
    success
    (2)为dmz区域添加相应服务及端口

    [root@localhost ~]# firewall-cmd --zone=dmz --add-service=https
    success
    [root@localhost ~]# firewall-cmd --zone=dmz --add-port=12345/tcp
    success
    (3)禁止ping测试

    [root@localhost ~]# firewall-cmd --zone=dmz --add-icmp-block=echo-request
    success
    (4)将默认的ssh服务删除

    [root@localhost ~]# firewall-cmd --zone=dmz --remove-service=ssh
    success
    (5)保存当前防火墙配置

    [root@localhost ~]# firewall-cmd --runtime-to-permanent
    success
    //将临时配置转换为永久配置
    [root@localhost ~]# firewall-cmd --list-all --zone=dmz
    //查看并确认配置信息
    dmz (active)
    target: default
    icmp-block-inversion: no
    interfaces: ens33
    sources:
    services: https
    ports: 12345/tcp
    protocols:
    masquerade: no
    forward-ports:
    sourceports:
    icmp-blocks: echo-request
    rich rules:

    1. Internet测试网站环境搭建并启动服务、设置防火墙规则

    搭建方法可参考第2、3步

    1. 网关服务器配置firewalld策略

    (1)开启防火墙

    [root@localhost ~]# systemctl start firewalld
    (2)设置默认区域为externel区域

    [root@localhost ~]# firewall-cmd --set-default-zone=external
    success
    (3)将各个网卡分配至指定区域

    [root@localhost ~]# firewall-cmd --change-interface=ens33 --zone=trusted
    success
    [root@localhost ~]# firewall-cmd --change-interface=ens37 --zone=dmz
    success
    (4)内部客户机访问DMZ网站测试

    [root@localhost ~]# firewall-cmd --runtime-to-permanent
    success
    [root@localhost ~]# firewall-cmd --get-active-zones
    dmz
    interfaces: ens37
    external
    interfaces: ens38
    trusted
    interfaces: ens33
    (5)内部客户机访问网站服务器

    保证Linux系统安全之配置firewalld防火墙的地址伪装及端口转发实例,可跟做!!!
    保证Linux系统安全之配置firewalld防火墙的地址伪装及端口转发实例,可跟做!!!

    (6)更改ssh服务监听端口

    [root@localhost ~]# vim /etc/ssh/sshd_config
    ………… //省略部分内容,修改以下内容
    Port 12345
    [root@localhost ~]# setenforce 0
    //临时关闭SELinux
    [root@localhost ~]# systemctl restart sshd
    //重启ssh服务
    (7)配置external区域添加TCP的12345端口、移除ssh服务

    [root@localhost ~]# firewall-cmd --zone=external --add-port=12345/tcp
    success
    [root@localhost ~]# firewall-cmd --zone=external --remove-service=ssh
    success
    (8)配置external区域进行ping测试、保存为永久配置

    [root@localhost ~]# firewall-cmd --zone=external --add-icmp-block=echo-request
    success
    [root@localhost ~]# firewall-cmd --runtime-to-permanent
    success
    (9)Internet测试服务器远程网关服务器

    [root@localhost ~]# ssh -p 12345 192.168.3.1
    The authenticity of host '[192.168.3.1]:12345 ([192.168.3.1]:12345)' can't be established.
    ECDSA key fingerprint is b2:4e:e8:f9:23:9f:85:dc:54:87:97:eb:15:cc:b0:48.
    Are you sure you want to continue connecting (yes/no)?
    (10)内部客户机远程DMZ网站服务器

    [root@localhost ~]# ssh -p 12345 192.168.2.2
    The authenticity of host '[192.168.2.2]:12345 ([192.168.2.2]:12345)' can't be established.
    ECDSA key fingerprint is 25:54:5c:d5:ce:e1:04:9f:25:19:be:73:ce:93:86:54.
    Are you sure you want to continue connecting (yes/no)?
    6.网关服务器上配置IP转发与端口转发

    默认external区域有IP转发功能!

    (1)删除external区域中的IP伪装,并利用富规则开启

    [root@localhost ~]# firewall-cmd --remove-masquerade --zone=external
    success
    [root@localhost ~]# firewall-cmd --zone=external --add-rich-rule='rule family=ipv4 source address=192.168.1.0/24 masquerade'
    success
    (2)dmz网站服务器测试访问Internet测试网站

    保证Linux系统安全之配置firewalld防火墙的地址伪装及端口转发实例,可跟做!!!

    (3)配置端口转发实现Internet测试网站访问dmz区域网站服务器(直接规则)

    [root@localhost ~]# firewall-cmd --zone=external --add-forward-port=port=443:proto=tcp:toaddr=192.168.2.2
    success
    //网关服务器将互联网测试机的请求转发到dmz区域网站服务器
    (4)测试

    保证Linux系统安全之配置firewalld防火墙的地址伪装及端口转发实例,可跟做!!!

    (5)配置端口转发实现Internet测试网站访问dmz区域网站服务器(富规则)

    需在ens38网卡上配置一个临时IP地址

    [root@localhost ~]# firewall-cmd --zone=external --add-rich-rule='rule family=ipv4 destination address=192.168.3.100 forward-port port=443 protocol=tcp to-addr=192.168.2.2'
    success
    (6)测试

    保证Linux系统安全之配置firewalld防火墙的地址伪装及端口转发实例,可跟做!!!

    展开全文
  • 文章目录WSL 安装 SSH 服务将 WSL 的 IP 地址写入到 Windows hosts ...而 WSL 2 则采用了像 VMware 虚拟机一样的 Hyper-V 虚拟网络,本想着直接用 Windows 的端口监听和转发工具netsh interface portproxy add将 Windows
  • firewalld防火墙配置IP伪装和端口转发

    千次阅读 2019-09-18 06:39:25
    IP地址伪装和端口转发都属于NAT(网络地址转换)。 地址伪装和端口转发的区别如下: IP地址伪装:1、通过地址伪装,NAT设备将经过设备的包转发到指定的接收方,同时将通过的数据包2、源地址更改为其NAT设备自己的...
  • 端口映射与端口转发

    2020-03-04 10:31:46
    端口转发是转发一个网络端口从一个网络节点到另一个网络节点的行为,其使一个外部用户从外部经过一个被激活的NAT路由器到达一个在私有内部IP地址(局域网内部)上的一个端口。 普通话:端口转发就是将一个端口,这个...
  • IP地址伪装和端口转发都属于NAT(网络地址转换)。 地址伪装和端口转发的区别如下: IP地址伪装:通过地址伪装,NAT设备将经过设备的包转发到指定的接收方,同时将通过的数据包源地址更改为其NAT设备自己的接口地址...
  • 关于firewalld防火墙的直接规则、富规则等原理概述可以参考上一篇博文:Centos 7的firewalld防火墙地址伪装和端口转发原理 环境如下图所示:网关服务器和网站服务器都采用centos 7操作系统,网关服务器安装3块千兆...
  • Firewalld支持两种类型的网络地址转换 1)地址伪装(masquerade) 通过地址伪装,NAT设备将经过设备的数据包转发到指定接收方,同时将通过...类似于NAT技术中的端口多路复用(PAT),IP地址伪装仅支持IPV4,不支...
  • 概述 Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件。...有了SMB我们可以在局域网中轻松访问各种共享文件夹或共享打印机,但也正是因为有了它,黑客们才有了可乘之机,他们能通过该端口偷偷
  • 实战 SSH 端口转发

    千次阅读 2014-06-11 20:52:18
    来看看 SSH 的端口转发功能能给我们带来什么好处吧! 端口转发概述 让我们先来了解一下端口转发的概念吧。我们知道,SSH 会自动加密和解密所有 SSH 客户端与服务端之间的网络数据。但是,SSH 还同时提供了一个...
  • 内网访问之端口转发

    2019-04-24 10:23:09
    DDNS + 端口转发 1、DDNS 对于ppoe拨号获取动态IP上网的网络来说,从外网访问内网首要获得网关/路由的公网IP,像阿里、dnspod等众多域名服务器商都提供了动态DNS的服务,在路由设备上安装ddns插件后绑定域名服务商...
  • 玩转SSH端口转发

    千次阅读 2017-04-24 17:56:05
    SSH有三种端口转发模式,本地端口转发(Local Port Forwarding),远程端口转发(Local Port Forwarding)以及动态端口转发(Dynamic Port Forwarding)。对于本地/远程端口转发,两者的方向恰好相反。动态端口转发则可以...
  • SSH端口转发

    千次阅读 2012-08-31 18:18:21
    From:... 第一部分 概述 ...当你发现实验室的防火墙阻止了你的网络应用端口,是不是有苦难言?来看看 SSH 的端口转发功能能给我们带来什么好处吧! 端口转发概述 ...让我们先来了解一下端口转发
  • 端口转发与端口映射

    千次阅读 2018-04-09 21:45:25
    端口映射是NAT的一种,功能是把在公网的地址转翻译成私有地址, 采用路由方式的ADSL宽带路由器拥有一个动态或固定的公网IP,ADSL直接接在HUB或交换机上,所有的电脑共享上网。 端口映射就是将外网主机的IP地址的一...
  • 原文:http://wwdhks.blog.51cto.com/839773/1154032本文作者:张天成 zhangtiancheng#gmail.com 转发请注明出处。 iptables是一个Linux下优秀的nat+防火墙工具,我使用该工具以较低配置的传统pc配置了一个灵活...
  • SSH 端口转发

    千次阅读 2012-03-28 16:40:29
    原文地址:... 第一部分 概述 ...当你发现实验室的防火墙阻止了你的网络应用端口,是不是有苦难言?来看看 SSH 的端口转发功能能给我们带来什么好处吧!...端口转发概述
  • 端口转发与内网穿透

    千次阅读 2020-04-18 10:56:14
    在内网渗透过程中有时需要将内网中的应用服务进行端口转发,可以使用很多工具进行实现,主要介绍ssh以及lcx(ew基于lcx实现),并结合源码分析他们的实现原理。 0x01 端口转发 0x1 概念 端口转发(Port forwarding)...
  • SSH的端口转发:本地转发Local Forward和远程转发Remote Forward关于使用ssh portforwarding来进行翻墙的操作,网络上已经有很多很好的文章,我在这里只是画两个图解释一下。首先要记住一件事情就是:SSH 端口转发自然...
  • 端口映射和端口转发的区别-ielab

    千次阅读 2019-06-12 15:47:43
    端口映射和端口转发的区别 端口转发端口转发(Port forwarding),有时被叫做隧道,是安全壳(SSH) 为网络安全通信使用的一种方法。在内网建立和运行网络服务器或FTP服务器是没办法使外网用户直接访问的,通过在...
  • 关于端口转发

    2011-10-06 16:48:26
    在网吧通过路由器或者代理连接到外网,而在内网建立和运行网络服务器或FTP服务器是没办法使外网用户直接访问的,通过在路由上的NAT开启建立相应端口转发的映射,你可以指示路由器转发对某一特定网端口(如80 ,为...
  • 端口映射又称端口转发

    千次阅读 2018-04-23 09:18:30
    端口映射又称端口转发,有的又称之为NAT、虚拟服务器。端口映射过程就如同您家在一个小区里B栋2410室,你朋友来找你,找到小区门口,不知道你住哪层哪号?就问守门的保安,保安很客气的告诉了他您家详细门牌号码,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 58,125
精华内容 23,250
关键字:

共享ip端口转发