Użyj iptables nat, aby przekierować bramę na komputery LAN

3

Mam serwer Linux, który działa jako brama do mojej sieci domowej. Ma dwa urządzenia Ethernet:

  • p3p1: WAN, publiczny adres IP a.b.c.d
  • p2p1: LAN, prywatny adres IP 10.0.3.1/24

Łączy się również tunelem OpenVPN typu punkt-punkt do zdalnego serwera Linux (którym również administruję). To dodaje urządzenie

  • tun2: VPN, prywatny adres IP 10.2.0.2/32

Pytanie brzmi: jak zrobić cały ruch z klientów w sieci LAN przekierowuje przez tunel OpenVPN?

Mogę przekierować cały ruch (w tym pochodzący z serwera bramy) za pomocą opcji konfiguracji klienta VPN redirect-gateway def1. Ale nie tego chcę.

Czy byłby na to sposób za pomocą IPTables NAT?

Dzięki!

Fela Maslen
źródło

Odpowiedzi:

1

Oto kroki, które powinieneś zrobić:

  1. W pierwszym kroku lokalny serwer DHCP musi skonfigurować domyślną bramę klienta na swój adres serwera 10.0.3.1
  2. Następnie użyj bazy danych zasad routingu, aby skierować ruch sieci lokalnej do bramy domyślnej VPN z tyłu p2p1i skierować ruch serwerów do bramy domyślnej z tyłup3p1
  3. Następnie musisz przejść do MASQUERADEruchu pochodzącego z sieci lokalnej i przechodzącego do sieci VPN:
# enable ip forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward

# configure iptables
iptables -t nat -A POSTROUTING -s 10.0.3.0/24 -d 10.2.0.2/32 -j MASQUERADE
iptables -P FORWARD DROP
iptables -A FORWARD -i p2p1 -o tun2 -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED -j ACCEPT
A. Fendt
źródło
Brama domyślna jest już ustawiona na serwerze. Nie chcę przekierowywać całego ruchu, tylko ruch pochodzący z sieci LAN (tzn. Nie chcę przekierowywać ruchu z samego serwera przez VPN).
Fela Maslen,
2
W takim przypadku usuń redirect-gateway def1dyrektywę i utwórz niektóre wpisy routingu oparte na zasadach: tldp.org/HOWTO/Adv-Routing-HOWTO/lartc.rpdb.simple.html Jak powiedziałeś: każdy ruch z sieci lokalnej trafia do domyślnej bramy VPN i ruch serwera trafia do bramy domyślnej za p3p1.
A. Fendt,
1

Udało mi się to zrobić za pomocą routingu IP opartego na zasadach, jak wspomniał A. Fendt w komentarzu:

  1. Wstaw nową tabelę routingu IP:

$ echo "200 vpndef1" | sudo tee -a /etc/iproute2/rt_tables

  1. Dodaj trasy dla przekierowania VPN:

$ sudo ip route add 10.0.3.0/24 via 10.0.3.1 dev p2p1 table vpndef1 $ sudo ip route add default via 10.2.0.1 dev tun2 table vpndef1

  1. Wstaw nową regułę, aby skierować ruch LAN do nowej tabeli routingu:

$ sudo ip rule add from 10.0.3.0/24 lookup vpndef1

Fela Maslen
źródło