精华内容
下载资源
问答
  • 首先简述下NAT服务器在...说到iptables目前最多应用在防火墙了,我们公司的所有的服务器都配置了iptables防火墙,比如 它完成的是,告诉内核当前服务器只允许外部通过TCP访问80端口。 另外iptables还可以实现端.

    首先简述下NAT服务器在负载均衡中做了什么,简单的说就是Linux (内核2.4以后是Netfilter肩负起这个使命滴)内核缓冲区修改来源,目标地址。

    但是,由于Netfilter工作在Linux 内核我们无法直接操作它,所以Linux提供了iptables。

     

    用iptables实现:

    说到iptables目前最多应用在防火墙了,我们公司的所有的服务器都配置了iptables防火墙,比如

    它完成的是,告诉内核当前服务器只允许外部通过TCP访问80端口。

    另外iptables还可以实现端口重定向,比如

    它将外部访问80端口转发到8000端口。

     

    因为某些原因需要把访问10.0.3.49上的httpd服务重定向到10.0.3.26上.所以研究了一下用iptables的NAT实现IP与端口的重定向,其实很简单,只需要两步。

    1,首先需要确保linux服务器10.0.3.49开启了数据转发功能:

    echo 1 > /proc/sys/net/ipv4/ip_forward

    2.10.0.3.49做NAT的ip和端口80的重定向。

    iptables -t nat -A PREROUTING -p tcp --dport 80 -d 10.0.3.49 -j DNAT --to 10.0.3.26:80

    iptables -t nat -A POSTROUTING -d 10.0.3.26 -p tcp --dport 80 -j SNAT --to 10.0.3.49:80

    iptables -A FORWARD -d 10.0.3.26 -j ACCEPT

    iptables NAT规则

    nat表需要的三个链:

      1.PREROUTING:可以在这里定义进行目的NAT的规则,因为路由器进行路由时只检查数据包的目的ip地址,所以为了使数据包得以正确路由,我们必须在路由之前就进行目的NAT;
      2.POSTROUTING:可以在这里定义进行源NAT的规则,系统在决定了数据包的路由以后在执行该链中的规则。
      3.OUTPUT:定义对本地产生的数据包的目的NAT规则。

    需要用到的几个动作选项:(真实环境中用大写)

     redirect  将数据包重定向到另一台主机的某个端口,通常用实现透明代理和对外开放内网某些服务。
    snat 源地址转换,改变数据包的源地址
    dnat 目的地址转换,改变数据包的目的地址
    masquerade IP伪装,只适用于ADSL等动态拨号上网的IP伪装,如果主机IP是静态分配的,就用snat

    PRERROUTING:DNAT 、REDIRECT   (路由之前)只支持-i,不支持-o。在作出路由之前,对目的地址进行修改

     POSTROUTING:SNAT、MASQUERADE (路由之后)只支持-o,不支持-i。在作出路由之后,对源地址进行修改

     OUTPUT:DNAT 、REDIRECT   (本机)DNAT和REDIRECT规则用来处理来自NAT主机本身生成的出站数据包.

    一、打开内核的路由功能。

       要实现nat,要将文件/proc/sys/net/ipv4/ip_forward内的值改为1,(默认是0)。

     

    二、nat不同动作的配置

     1)MASQUERADE:是动态分配ip时用的IP伪装:在nat表的POSTROUTING链加入一条规则:所有从ppp0口送出的包会被伪装(MASQUERADE)

     [root@localhost]# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

    要想系统启动时自动实现nat,在/etc/rc.d/rc.local文件的末尾添加

       [root@localhost]# echo "1">/proc/sys/net/ipv4/ip_forward

       [root@localhost]# /sbin/iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

     2) SNAT:一般正常共享上网都用的这个。

     所有从eth0(外网卡)出来的数据包的源地址改成61.99.28.1(这里指定了一个网段,一般可以不指定)

     [root@localhost]# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to 61.99.28.1

    3)DNAT:目的nat 做智能DNS时会用到

     智能DNS:就是客户端在dns项里无论输入任何ip,都会给他定向到服务器指定的一个dnsip上去。

     在路由之前所有从eth0(内网卡)进入的目的端口为53的数据包,都发送到1.2.3.4这台服务器解析。

     [root@localhost]# iptables -t nat -I PREROUTING -i eth0 -p udp --dport 53 -j DNAT --to-destination 1.2.3.4:53

     [root@localhost]# iptables -t nat -I PREROUTING -i eth0 -p tcp --dport 53 -j DNAT --to-destination 1.2.3.4:53

    4)REDIRECT:重定向,这个在squid透明代理时肯定要用到它

     所有从eth1进入的请求80和82端口的数据,被转发到80端口,由squid处理。

     [root@localhost]# iptables -t nat -A PREROUTING - -i eth1 -p tcp -m multiport --dports 80,82 -j REDIRECT --to-ports 80

     

     

    问题

      iptablessnat和MASQUERADE的区别

      解决方案

      iptables中可以灵活的做各种网络地址转换(NAT)

      网络地址转换主要有两种:snatDNAT

      snat是source network address translation的缩写

      即源地址目标转换

      比如,多个PC机使用ADSL路由器共享上网

      每个PC机都配置了内网IP

      PC机访问外部网络的时候,路由器将数据包的报头中的源地址替换成路由器的ip

      当外部网络的服务器比如网站web服务器接到访问请求的时候

      他的日志记录下来的是路由器的ip地址,而不是PC机的内网ip

      这是因为,这个服务器收到的数据包的报头里边的“源地址”,已经被替换了

      所以叫做snat,基于源地址的地址转换

      DNAT是destination network address translation的缩写

      即目标网络地址转换

      典型的应用是,有个web服务器放在内网配置内网ip,前端有个防火墙配置公网ip

      互联网上的访问者使用公网ip来访问这个网站

      当访问的时候,客户端发出一个数据包

      这个数据包的报头里边,目标地址写的是防火墙的公网ip

      防火墙会把这个数据包的报头改写一次,将目标地址改写成web服务器的内网ip

      然后再把这个数据包发送到内网的web服务器

      这样,数据包就穿透了防火墙,并从公网ip变成了一个对内网地址的访问了

      即DNAT,基于目标的网络地址转换

      MASQUERADE,地址伪装,在iptables中有着和snat相近的效果,但也有一些区别

      但使用snat的时候,出口ip的地址范围可以是一个,也可以是多个,例如:

      如下命令表示把所有10.8.0.0网段的数据包snat成192.168.5.3的ip然后发出去

      iptables -t nat -A POSTROUTING -s 10.8.0.0/255.255.255.0 -o eth0 -j snat --to-source 192.168.5.3

      如下命令表示把所有10.8.0.0网段的数据包snat成192.168.5.3/192.168.5.4/192.168.5.5等几个ip然后发出去

      iptables -t nat -A POSTROUTING -s 10.8.0.0/255.255.255.0 -o eth0 -j snat --to-source 192.168.5.3-192.168.5.5

      这就是snat的使用方法,即可以NAT成一个地址,也可以NAT成多个地址

      但是,对于snat,不管是几个地址,必须明确的指定要snat的ip

      假如当前系统用的是ADSL动态拨号方式,那么每次拨号,出口ip192.168.5.3都会改变

      而且改变的幅度很大,不一定是192.168.5.3到192.168.5.5范围内的地址

      这个时候如果按照现在的方式来配置iptables就会出现问题了

      因为每次拨号后,服务器地址都会变化,而iptables规则内的ip是不会随着自动变化的

      每次地址变化后都必须手工修改一次iptables,把规则里边的固定ip改成新的ip

      这样是非常不好用的

      MASQUERADE就是针对这种场景而设计的,他的作用是,从服务器的网卡上,自动获取当前ip地址来做NAT

      比如下边的命令:

      iptables -t nat -A POSTROUTING -s 10.8.0.0/255.255.255.0 -o eth0 -j MASQUERADE

      如此配置的话,不用指定snat的目标ip了

      不管现在eth0的出口获得了怎样的动态ip,MASQUERADE会自动读取eth0现在的ip地址然后做snat出去

      这样就实现了很好的动态snat地址转换

    展开全文
  • ASA中PAT与端口重定向

    2009-03-30 16:08:43
    PATPAT是一个IP地址和一个源端口号的结合来创建一个惟一对话,PAT对所有的包使用相同的IP地址,但是它可以通过源端口号的不同来区分,其端口取值范围要大于1024.1、可以使用一个IP地址或外部接口实现PATnat (inside)...
    PAT
    PAT是一个IP地址和一个源端口号的结合来创建一个惟一对话,PAT对所有的包使用相同的IP地址,但是它可以通过源端口号的不同来区分,其端口取值范围要大于1024.
    1、可以使用一个IP地址或外部接口实现PAT
    nat (inside) 1 1.1.1.0 255.255.255.0
    global (outside) 1 192.168.0.1 netmask 255.255.255.0
    或global (outside) 1 interface
    2、使用多个PAT来备份PAT地址,即对一个nat(inside)多指定几个global (outside)
    3、使用PAT来扩大一个全局地址池,如:
    nat (inside) 1 1.1.1.0 255.255.255.0
    global (outside) 1 192.168.0.1-192.168.0.14 netmask 255.255.255.240
    global (outside) 1 192.168.0.18 netmask 255.255.255.240  (//这里指定再指定一个IP作为转换的备份)
    端口重定向
    允许外部用户通过使用一个具体的ip地址或者端口号来连接内部网中相应的服务器,这类流量要通过防火墙,然后防火墙将对其进行重定向,并将其转发到相应的内网服务器上,所使用的共享全局地址可以是一个惟一的地址,也可以是一个共享的出站PAT地址,还可以与外部接口共享一个地址。
    1、使用ACL命令来允许入站连接
      access-list 101 permit tcp any host 192.168.1.2 eq telnet
      access-list 101 permit tcp any host 192.168.1.2 eq 8080
      access-group 101 in interface outside
    2、使用PAT
      nat (inside) 1 0.0.0.0 0.0.0.0
      global (outside) 1 interface
    3、使用static进行端口重定向
      static (inside,outside) tcp interface telnet 1.1.2.1 telnet netmask 255.255.255.255 0 0
    这里的interface就是防火墙的外部接口,telnet其实为端口号,1.1.2.1为内部的主机ip
      static (inside,outside) tcp 192.168.1.2 8080 1.1.3.1 www netmask 255.255.255.255 0 0
    这里的192.168.1.2 就是防火墙的外部接口,8080和www其实为端口号,1.1.3.1为内部的主机ip

    转载于:https://blog.51cto.com/xiaomu205/143661

    展开全文
  • 1、查看所有规则 netsh interface portproxy show all 2、新增 netsh interface portproxy add v4tov4 listenaddress=127.0.0.1 listenport=9999 connectaddress=127....解析:监听127.0.0.1:9999端口所有数据,...

    1、查看所有规则
    netsh interface portproxy show all

    2、新增

    netsh interface portproxy add v4tov4 listenaddress=127.0.0.1 listenport=9999 connectaddress=127.0.0.2 connectport=10000

    解析:监听127.0.0.1:9999端口的所有数据,  转发到127.0.0.2:10000

    3、删除一条规则
    netsh interface portproxy delete v4tov4 listenport=9999 listenaddress=127.0.0.1

    解析:删除监听127.0.0.1:9999端口的规则

     

    展开全文
  • 重定向53端口无效

    2020-12-27 22:16:48
    重定向方式选择重定向53端口到AdGuardHome不起作用,只能选择作为dnsmasq的上游服务器,但是作为dnsmasq的上游服务器的话会导致在AdGuardHome中所有客户端都显示为了127.0.0.1,没办法再针对客户端做精确控制了, ...
  • 端口8080的所有HTTP请求都将重定向到HTTPS。 % curl -v 'http://localhost:8080/remote/worker?pants=YES' * Hostname was NOT found in DNS cache * Trying 127.0.0.1... * Connected to localhost (127.0.0.1) ...
  • 现在你需要重定向所有 URLs 到他们的 HTTPS 链接中。你可以通过在 web.xml文件中添加加安全常量来达到这个目的。这个能够让 Tomcat 将不是 SSL 端口的访问重定向到 SSL。检查你的 Confluence 站点的用户是...

    尽管现在 HTTPS 现在已经激活并且可用了。老的 HTTP URLs (http://localhost:8090)还是可以访问的。现在你需要重定向所有 URLs 到他们的 HTTPS 链接中。你可以通过在  web.xml 文件中添加加安全常量来达到这个目的。这个能够让 Tomcat 将不是 SSL 端口的访问重定向到 SSL。

    1. 检查你的 Confluence 站点的用户是否使用了 RSS macro。如果你的站点启用了 RSS macro 宏,你可能需要在防火墙规则中配置 Confluence URL 重定向,而不需要通过修改 web.xml 文件达到这个目的。请跳过下面的步骤,然后访问 RSS Feed Macro 页面来获得更多信息。

    2. 否则,编辑  <CONFLUENCE_INSTALLATION>/confluence/WEB-INF/web.xml 文件中的内容。

    3. 添加下面的定义到文件的页尾,但是需要在 </web-app> 标签的前面

      <security-constraint>
        <web-resource-collection>
          <web-resource-name>Restricted URLs</web-resource-name>
          <url-pattern>/</url-pattern>
        </web-resource-collection>
        <user-data-constraint>
          <transport-guarantee>CONFIDENTIAL</transport-guarantee>
        </user-data-constraint>
      </security-constraint>
    4. 重启 Confluence 然后访问 http://localhost:8090,现在你应该是直接重定向到 https://localhost:8443/login.action 中了。

    (info) Confluence 有 2 个 web.xml 文件。另一个文件在 <CONFLUENCE_INSTALLATION>/conf/web.xml。请仅仅按照上面描述的内容在 <CONFLUENCE_INSTALLATION>/confluence/WEB-INF/web.xml 中进行修改。

    https://www.cwiki.us/display/CONF6ZH/Running+Confluence+Over+SSL+or+HTTPS


    转载于:https://blog.51cto.com/ossez/2156568

    展开全文
  • linux输入输出重定向

    2019-10-04 00:19:00
    重定向重定向就是不适用系统的标准输入端口,标准输出端口和标准错误输出端口,而进行重新的指定,所以重定向分为输入、输出和错误重定向,通常情况下重定向到一个文件。 标准输入(stdout):标准输...
  • 不了解reverse_tcp_all_ports?...事实上它只监听一个端口,我们需要把所有端口重定向到它监控的端口。这就需要用到iptables或者其他的软件来实现。使用iptables举例,该命令将所有端口重定向到443端口(该端
  • 现在你需要重定向所有 URLs 到他们的 HTTPS 链接中。你可以通过在 web.xml文件中添加加安全常量来达到这个目的...这个能够让 Tomcat 将不是 SSL 端口的访问重定向到 SSL。 检查你的 Confluence 站点的用户是否使...
  • 上一篇文章写了iis和apache共用80端口,IIS代理转发apache。 因为第一次配置,这中间还是碰到了很多问题。这里记录下来,希望以后能避免错误。 使用Application Request Routing Cache重定向,在编辑入站规则的...
  • C库函数重定向问题

    2013-10-31 17:29:00
    本来库函数fputc()是把字符输出到调试器控制窗口中去的,但用户把输出设备改成了UART端口,这样一来,所有基于fputc()函数的printf()系列函数输出都被重定向到UART端口上去了。下面是实现fputc()重定向的...
  • • 监控两个端口重定向允许一个端口接收到的数据转发到另一个端口 • 在屏幕上以二进制十六进制和文本格式显示发送和接收的数据 • 以二进制和文本格式捕获文件 • 用于清除屏幕的按钮和捕获文件 • 持久设置。...
  • 当负载端口不是80时,发现所有 response.sendRedirect() 重定向的页面都返回80端口,后来发现是代理设置Header时没有指定Ngnix监听的负载端口 设置被代理服务器的端口或套接字,以及URL proxy_set_header Host $host...
  • Tomcat前端配置一个HTTP服务器应该是大部分应用的标配了,基本思路就是所有动态请求都反向代理给后端的Tomcat,HTTP服务器来处理静态请求,包括图片、js、css、html以及xml等。这样可以让你的应用的负载能力提高很多...
  • 此方案的核心思想是,将nginx的所有请求转换为https,这样,tomcat就可以通过redirectPort端口接受信息,然后通过代理端口proxyPort将所有请求重定向到https访问端口就ok了。具体配置如下: Host节点增加(将nginx ...
  • 输入一个站点以将所有无效请求重定向到。 启动Empire HTTP侦听器,并将“主机”属性设置为重定向器的域。 HTTP重定向器参考: 2)设置HTTPS重定向器: 运行Sleight并向其提供Empire通信配置文件。 输入您的...
  • 当你的站点使用了HTTPS之后,你可能会想把所有的HTTP请求(即端口80的请求),全部都重定向至HTTPS(即端口443)。这时候你可以用以下的方式来做到:(Apache mod_rewrite) RewriteEngine On RewriteBase / ...
  • 在这种情况下,所有进入端口80的请求都将重定向到提供的位置。 docker run \ --detach \ --publish 80:80 \ --env REDIRECT_STATUS_CODE=307 \ --env REDIRECT_LOCATION="http://www.example.com
  • 部署后,所有HTTP请求都将在该文件中查找已注册的请求,并将使用带有Location标头和可选状态码的标准HTTP重定向进行重定向。 如何使用 1.修改redirects.json ,添加自己的重定向,格式为: { host: "myhost.com"...
  • 谨防! 剧透! Spoilerwall在网络强化领域引入了全新的概念。 避免破坏所有端口上的电影来进行扫描!... 通过运行以下命令,将所有端口中的传入TCP通信重定向到该服务: iptables -A PREROUTING -t nat -i et
  • 公司部署了个新的 IIS 站点,需要强制在 Https 下面访问,但是又不希望关掉80端口的 Http 请求,这样对用户体验来讲不好,最好是能强制所有的 Http 请求都会被重定向到 Https 上面去,显然, IIS 自带的 ...
  • TCPIP 端口重定向记录.通过在服务器安装运行此程序, 可以使因特网上的计算机访问局部网内的计算机建立的HTTP、FTP与SMTP服务, 包含IP 安全(与Win2KWinXP 上秘密端口) 多数TCP都通过代理连接 能通过'PORT'与'...
  • 转发所有GET请求 httpApp.get(*, (req, res, next) => { let host = req.headers.host; host = host.replace(/\:\d+$/, ''); // Remove port number res.redirect(`https://${host}${req.path}`); }); 相当于...
  • 它具有例如将到端口445的所有传入SMB连接中继到另一台服务器的能力,或者仅将特定的一组源IP的特定传入SMB连接中继到另一台服务器。总结起来,StreamDivert能够: 将所有传入的连接中继到特定端口的另一个目标。 ...
  • 前些时候在局域网内,做端口映射,通过一台freebsd服务器,映射到自己...但自己的机器不在访问列表内,所以在freebsd上做了端口映射,映射到自己机器上,并且在freebsd服务器上做好静态路由,把所有访问机房的网...

空空如也

空空如也

1 2 3 4 5 ... 17
收藏数 333
精华内容 133
关键字:

所有端口重定向