Как маршрутизировать трафик конкретного клиента в VPN (PPTP)?

Настройка:

  • У меня есть сервер, настроенный как DHCP (isc-dhcp-server) и DNS (bind9) сервер (действующий как маршрутизатор).
  • Он подключается к Интернету через pppoe (ppp0) с помощью устройства eth0.
  • Интерфейс eth1 подключен к маршрутизатору, выступающему в качестве точки доступа.
  • Через точку доступа клиенты могут подключаться через Ethernet или Wi-Fi.
  • Трафик от eth1 перенаправляется на ppp0 с использованием iptables, как определено здесь (с некоторыми изменениями для соответствия интернет-устройству): https://killtacknine.com/building-an-ubuntu-16-04-router-part -3-брандмауэры / .
  • IPV6 также настраивается таким же образом.
  • ufw также включается правилом «Anywhere ALLOW 192.168.1.0/24».
  • Сервер также подключается к VPN (PPTP) через ppp0, и когда он подключается, он получает ppp1 в качестве имени устройства.

Я бы хотел перенаправить определенный клиентский интернет-трафик (на основе IP или MAC-адреса), который подключается через устройство eth1 к VPN через ppp1.

Я пытался настроить iptables со следующими правилами:

iptables -A INPUT -i ppp1 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth1 -s 192.168.1.113 -o ppp1 -j ACCEPT
iptables -A FORWARD -i ppp1 -o eth1 -m conntrack  --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o ppp1 -j MASQUERADE

Но похоже, что это не работает, я не знаю, что мне не хватает, у меня почти 0 знаний об iptables.

0
04.07.2018, 01:21
1 ответ

1 )Убедитесь, что ваша точка доступа, подключенная через eth1 соединяет свой собственный интерфейс Ethernet с интерфейсом WLAN, в противном случае DHCP будет бесполезен, и если он выполняет NAT (по умолчанию со многими домашними маршрутизаторами ), вы не сможете увидеть IP-адрес клиента.

2 )Вам не нужно iptablesдля трассировки (моей любимой мозоли; по какой-то причине многие люди в Интернете думают, что им нужны правила брандмауэра для маршрутизации... ). В частности, вам не нужно использовать NAT (, если только ваша VPN не требует этого по какой-либо причине, но в вопросе нет информации, чтобы решить, что ).

Если вы хотите маршрутизировать пакеты от конкретного клиента, вам нужна политика маршрутизации(Google, есть много туториалов ). По сути, вы делаете

ip rule add from <source address> lookup <table name>

, а затем добавьте таблицу, определяющую маршрутизацию в вашем случае через ppp1и связанный с ней шлюз.

ip route get <dest address>сообщит вам, куда, по мнению ОС, должен идти пакет. Гораздо проще, чем отлаживать правила брандмауэра.

3 )Используйтеwireshark(или tcpdump, в разных окнах по одному на каждый сетевой интерфейс, что интересно )делайте отладку всего. Не видя, какие пакеты куда и с какими адресами приходят, трудно сказать, что пошло не так.

0
28.01.2020, 04:19

Теги

Похожие вопросы