LINUX.ORG.RU

iptables nat vpn


0

0

Значиться так имееться сервер mdk 10.1, на нем через vpn выход в инет:

ppp0 Link encap:Point-to-Point Protocol inet addr:10.10.10.15 P-t-P:192.168.1.20 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1496 Metric:1 RX packets:7 errors:0 dropped:0 overruns:0 frame:0 TX packets:9 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:3 RX bytes:82 (82.0 B) TX bytes:204 (204.0 B)

К серверу также по vpn подключаеться клиент:

ppp1 Link encap:Point-to-Point Protocol inet addr:192.168.1.1 P-t-P:192.168.1.3 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1396 Metric:1 RX packets:25 errors:0 dropped:0 overruns:0 frame:0 TX packets:10 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:3 RX bytes:2135 (2.0 Kb) TX bytes:118 (118.0 B)

Задача 1: Дать клиенту который висит на ppp1 инет через ppp0. Задача 2: Допустим будет еще одно подключение к инету сервака (ppp3) Сделать так, чтобы исходящий трафик шел через ppp0 а входящий через ppp3 (для спутникова инета).

anonymous

для начала разреши форвардинг командой
echo 1 > /proc/sys/net/ipv4/conf/all/forwarding

потом делаешь SNAT:
iptables -t nat -A POSTROUTING -s IP_КЛИЕНТА -d 0.0.0.0/0 -o твой_инет_интерфейс -j SNAT --to-source ТВОЙ_ИНЕТ_IP

должно работать.

по поводу спутникового инета - для него будет не pptp подключение, у тебя будет еще один интерфейс типа pentanet0 или DVB_0 (зависит от карточки), а по наземному каналу будут идти только запросы, т.е. у тебя в любом случае не будет наземного входящего траффика. Единстенное "но", нужно отключить rp_filter чтобы линукс принимал ответы не с того интерфейса с которого идут запросы, это делается командой

echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter

нат для тарелки делается аналогично

iptables -t nat -A POSTROUTING -s IP_КЛИНТА -d 0.0.0.0/0 -o ТВОЙ_НАЗЕМНЫЙ_ИНТЕРФЕЙС* -j SNAT --to-source ТВОЙ_СПУТНИКОВЫЙ_IP

* "наземнным" интерфейсом может быть либо VPN подключение к спутниковому прову, либо ipip/gre тоннель, либо что ты там еще используешь... если у тебя есть автономная система, и реальный IP на тарелке то все еще проще...

anonymous
()
Ответ на: комментарий от anonymous

Имею следущее: dvb0_0 Link encap:Ethernet HWaddr 00:D0:D7:0C:DA:A5 inet addr:192.168.238.238 Bcast:192.168.238.255 Mask:255.255.255.0 inet6 addr: fe80::200:ff:fe00:0/64 Scope:Link UP BROADCAST RUNNING NOARP MULTICAST MTU:4096 Metric:1 RX packets:38 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:2914 (2.8 Kb) TX bytes:0 (0.0 b) Base address:0x22b

eth0 Link encap:Ethernet HWaddr 00:40:F4:7E:12:A6 inet addr:192.168.0.22 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::240:f4ff:fe7e:12a6/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:95478 errors:0 dropped:0 overruns:0 frame:0 TX packets:54208 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:12460232 (11.8 Mb) TX bytes:27349204 (26.0 Mb) Interrupt:11 Base address:0x7000

lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:83 errors:0 dropped:0 overruns:0 frame:0 TX packets:83 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:7193 (7.0 Kb) TX bytes:7193 (7.0 Kb)

ppp0 Link encap:Point-to-Point Protocol inet addr:10.10.10.15 P-t-P:192.168.1.20 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1496 Metric:1 RX packets:201 errors:0 dropped:0 overruns:0 frame:0 TX packets:203 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:3 RX bytes:15333 (14.9 Kb) TX bytes:12193 (11.9 Kb)

ppp1 Link encap:Point-to-Point Protocol inet addr:192.168.213.226 P-t-P:213.138.112.2 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:5 errors:0 dropped:0 overruns:0 frame:0 TX packets:87 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:3 RX bytes:72 (72.0 b) TX bytes:4964 (4.8 Kb)

ppp2 Link encap:Point-to-Point Protocol inet addr:192.168.1.1 P-t-P:192.168.1.2 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1396 Metric:1 RX packets:117 errors:0 dropped:0 overruns:0 frame:0 TX packets:10 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:3 RX bytes:9586 (9.3 Kb) TX bytes:366 (366.0 b)

Где dvb0_0 - спутниковая карточка skystar 2, ppp0 - подключение по земле, ppp1 - подключение через skystar 2, т.е. через спутник, ppp2 - подключение к этому серваку через vpn. Надо сделать так чтобы инет работал у того кто подключился по ppp2, если прописать: iptables -t nat -A POSTROUTING -s 192.168.1.2 -d 0.0.0.0/0 -o ppp0 -j SNAT --to-source 192.168.213.226 , то не работает... как правильно написать?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.