ipvpniptablespptpl2tp

L2TP / PPTP server with multi external IP


I have a Debian VPS with 2 IP addresses : example 1.1.1.1 and 2.2.2.2

I've already setup a PPTP service and a L2TP service that work great.

When a VPN client connect to the VPS (IP 1.1.1.1) : his public IP address is 1.1.1.1

But the issue is that when a VPN client connect to the VPS (IP 2.2.2.2) : his public IP address is still 1.1.1.1 instead of 2.2.2.2

How can I fix this ?

Thanks !


Solution

  • assuming you have multiple pptpd listening on 1.1.1.1 and 2.2.2.2 with different configurations for their subnets and also the interfaces are actually up (eth0, eth0:1 etc.)

    i.e. for 1.1.1.1 you could use a config like this (lets call it config1)

    option /etc/ppp/pptpd-options
    logwtmp
    localip 192.168.30.1
    remoteip 192.168.30.2-100
    

    and for 2.2.2.2 (lets call it config2)

    option /etc/ppp/pptpd-options
    logwtmp
    localip 192.168.50.1
    remoteip 192.168.50.2-100
    

    then listen on both ip's like this

    pptpd --listen 1.1.1.1 --conf config1
    pptpd --listen 2.2.2.2 --conf config2
    

    you would then use iptables rules like this

    iptables -t nat -A POSTROUTING -s 192.168.30.0/24 -o eth0 -j SNAT --to-source 1.1.1.1
    iptables -t nat -A POSTROUTING -s 192.168.50.0/24 -o eth0 -j SNAT --to-source 2.2.2.2