V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
2397613259qqq
V2EX  ›  Linux

请教一个关于 iptables 转发 IPsec VPN 的问题

  •  
  •   2397613259qqq · 2018-07-01 12:57:52 +08:00 · 6035 次点击
    这是一个创建于 2344 天前的主题,其中的信息可能已经有所发展或是发生改变。
    先上个效果

    WAN Computer -- (eth1/80.10.3.5)Server1(eth0/10.10.2.4) -- (eth0/10.11.2.3)Server2(eth1/111.1.1.2) -- WAN

    现在手上有两个服务器,打算拿 server1 做跳板连接到 server2 的 IPsec VPN server,但是尝试配置了 iptables 之后无法通过 server1 的 IP 连接到 server2,VPN Server 是 l2tp with IPsec 和 Cisco IPsec 都配置有的。

    内网可以通信

    eth1 是外网接口,eth0 是内网接口

    尝试的配置如下

    iptables -t nat -A POSTROUTING -p udp -d 10.11.2.3 --dport 4500 -j SNAT --to-source 10.10.2.4
    iptables -t nat -A POSTROUTING -p udp -d 10.11.2.3 --dport 500 -j SNAT --to-source 10.10.2.4
    iptables -t nat -A POSTROUTING -p udp -d 10.11.2.3 --dport 1701 -j SNAT --to-source 10.10.2.4
    iptables -t nat -A PREROUTING -p udp --dport 500 -j DNAT --to-destination 10.11.2.3
    iptables -t nat -A PREROUTING -p udp --dport 4500 -j DNAT --to-destination 10.11.2.3
    iptables -t nat -A PREROUTING -p udp --dport 1701 -j DNAT --to-destination 10.11.2.3
    iptables -A FORWARD -p esp -j ACCEPT
    iptables -A FORWARD -p ah -j ACCEPT

    测试了转发至 server2 上的 httpd 之类的都可以正常链接,请问是哪里配置错了呢?
    xuanliang
        1
    xuanliang  
       2018-07-01 16:24:52 +08:00   ❤️ 1
    IP 转发开了么?

    修改 /etc/sysctl.conf,设置 net.ipv4.ip_forward = 1。重启。
    msfra
        2
    msfra  
       2018-07-01 16:36:07 +08:00
    一个小问题:配置前几行中 nat table 限定了 UDP 协议,最后 filter table 怎么换成了 esp 和 ah 呢?
    henryshen233
        3
    henryshen233  
       2018-07-01 20:37:31 +08:00   ❤️ 1
    iptables -t nat -A PREROUTING -p udp --dport 500 -j DNAT --to-destination 10.11.2.3:500
    iptables -t nat -A POSTROUTING -d 10.11.2.3 -p udp -m udp --dport 500 -j SNAT --to-source 10.10.2.4

    iptables -t nat -A PREROUTING -p udp --dport 4500 -j DNAT --to-destination 10.11.2.3:500
    iptables -t nat -A POSTROUTING -d 10.11.2.3 -p udp -m udp --dport 4500 -j SNAT --to-source 10.10.2.4

    iptables -t nat -A PREROUTING -p udp --dport 1701 -j DNAT --to-destination 10.11.2.3:1701
    iptables -t nat -A POSTROUTING -d 10.11.2.3 -p udp -m udp --dport 1701 -j SNAT --to-source 10.10.2.4
    defunct9
        4
    defunct9  
       2018-07-01 21:52:46 +08:00 via iPhone
    开 ssh,让我上去试试
    DevNet
        5
    DevNet  
       2018-07-01 22:27:26 +08:00 via Android   ❤️ 1
    IPsecVPN 穿越放火墙需要放过的只有 ike 协议(UDP500),NAT-T(UDP4500),esp 协议( IP 协议号 50 )。AH 没人用的。
    2397613259qqq
        6
    2397613259qqq  
    OP
       2018-07-01 23:44:13 +08:00
    @xuanliang ip 转发开了的,ss 之类的都可以链接
    2397613259qqq
        7
    2397613259qqq  
    OP
       2018-07-02 00:43:59 +08:00
    @henryshen233 感谢回复

    不过有一点疑问,在第三行的 prerouting 里面,为什么要把 4500 转发到 500 呢?

    还有就是 postrouting 除了增加了 extend match 似乎和我在主题上贴的没有区别。另外按照指教的参数配置后还是没有转发成功
    henryshen233
        8
    henryshen233  
       2018-07-02 08:47:48 +08:00   ❤️ 1
    @2397613259qqq 不好意思打错了。。。我这个是用来转发 WebDAV 的和 ssh 的 tcp 流量的,我是可以用的
    jinhan13789991
        9
    jinhan13789991  
       2018-07-02 11:07:00 +08:00 via Android
    哪里的 vps,有的 vps 商是带防火墙管理的,比如谷歌云,需要在外面手动再次配置一次防火墙
    jinhan13789991
        10
    jinhan13789991  
       2018-07-02 11:07:40 +08:00 via Android
    不好意思 看错了 以为是 vps
    cattyhouse
        11
    cattyhouse  
       2018-07-02 13:27:32 +08:00
    还在用 IPSec ?这种分分钟给你断掉
    moln
        12
    moln  
       2018-07-02 16:58:45 +08:00   ❤️ 1
    换 ssl vpn 吧
    2397613259qqq
        13
    2397613259qqq  
    OP
       2018-07-02 23:26:13 +08:00
    @cattyhouse 又不是用来绕过某个设备用的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2772 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 09:35 · PVG 17:35 · LAX 01:35 · JFK 04:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.