Softether VPN - Как настроить прокси Squid без отключения SecureNAT DHCP ?

У меня запущен сервер Softether VPN и настроен на использование DHCP (SecureNAT) вместо локального моста, так как я не мог понять, как это сделать (несмотря на то, что прочитал все доступные учебные руководства в Интернете). Так что я подумал, что просто бросу все это.

Как я могу перенаправить весь трафик через установку squid (сейчас не установлен) и позволить ему обрабатывать весь трафик должным образом?

0
задан 5 February 2019 в 22:21
1 ответ

Настройте локальный мост. Запустите sudo vpncmd и вернитесь в меню администратора. Отключите SecureNAT, если он был включен ранее:

VPN Server/DEFAULT>SecureNatDisable
SecureNatDisable command - Disable the Virtual NAT and DHCP Server
Function (SecureNat Function)
The command completed successfully.

VPN Server/DEFAULT>

Теперь мы создаем мостовое устройство. Мы создадим устройство с ответвлением, а не мост с существующим устройством, так как это упрощает настройку прозрачного прокси. Я предполагаю, что вы называете мостовое устройство программным, но этот выбор произвольный. К этому имени автоматически будет добавлен префикс tap_. Мы используем команду BridgeCreate, которая принимает концентратор DEFAULT, именованный аргумент / DEVICE с именем программного обеспечения устройства и именованный аргумент / TAP со значением yes.

VPN Server/DEFAULT>BridgeCreate DEFAULT /DEVICE:soft /TAP:yes
BridgeCreate command - Create Local Bridge Connection

....

The command completed successfully.

VPN Server/DEFAULT>BridgeList
BridgeList command - Get List of Local Bridge Connection
Number|Virtual Hub Name|Network Adapter or Tap Device Name|Status
------+----------------+----------------------------------+---------
1     |DEFAULT         |soft                              |Operating
The command completed successfully.

VPN Server/DEFAULT>exit

Теперь мы включаем DHCP-сервер для подсети VPN. Я настроил /etc/dhcpd.conf следующим образом. Важный бит - для подсети 10.10.1.0.

/etc/dhcpd.conf

# /etc/dhcpd.conf

# option definitions common to all supported networks...
option domain-name "xxx";
# DNS servers
option domain-name-servers 8.8.8.8, 8.8.4.4;

default-lease-time 600;
max-lease-time 7200;

# Use this to enable / disable dynamic dns updates globally.
ddns-update-style none;

# No service will be given on this subnet, but declaring it helps the
# DHCP server to understand the network topology.

subnet $PUBLIC_IP netmask 255.255.255.0 {
}

subnet $PRIVATE_IP netmask 255.255.128.0 {
}

subnet 10.10.1.0 netmask 255.255.255.0 {
  option subnet-mask 255.255.255.0;
  option routers 10.10.1.1;
  range 10.10.1.47 10.10.1.57;
}

Затем мы запускаем устройство ответвления и DHCP-сервер:

sudo systemctl start network@tap_soft
sudo systemctl start dhcpd4@tap_soft

Было бы разумно добавить их как зависимости к softethervpn-server.service. Это можно сделать, установив следующее переопределение: /etc/systemd/system/softethervpn-server.service.d/dhcpd.conf

# /etc/systemd/system/softethervpn-server.service.d/dhcpd.conf
[Unit]
Before=dhcpd4@tap_soft.service network@tap_soft.service
Requires=dhcpd4@tap_soft.service network@tap_soft.service

Перед тем, как настраивать пересылку трафика для VPN, мы должны убедиться, что в ядре включена пересылка ipv4. Создайте следующий файл переопределения, затем запустите sysctl --system . /etc/sysctl.d/ipv4_forwarding.conf

# /etc/sysctl.d/ipv4_forwarding.conf
net.ipv4.ip_forward = 1

Наконец, мы должны перенаправить трафик с устройства с ответвлением на устройство с Интернетом. Вы можете выполнить следующие команды с помощью iptables или настроить ufw для добавления их при запуске.

Во-первых, принять весь трафик, исходящий от VPN:

sudo iptables -A INPUT -s 10.10.1.1/24 -m state --state NEW -j ACCEPT
sudo iptables -A OUTPUT -s 10.10.1.1/24 -m state --state NEW -j ACCEPT
sudo iptables -A FORWARD -s 10.10.1.1/24 -m state --state NEW -j ACCEPT

Также принять весь трафик от установленных подключений:

sudo iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

Наконец, перенаправить весь трафик с устройства с ответвлением на интернет-интерфейс. Если вы используете статический IP-адрес на сервере, используйте эту команду:

sudo iptables -t nat -A POSTROUTING -s 10.10.1.1/24 -j SNAT --to-source $PUBLIC_IP

Если ваш публичный IP-адрес не статический, используйте эту команду:

sudo iptables -t nat -A POSTROUTING -s 10.10.1.1/24 -o eth0 -j MASQUERADE

Прозрачное проксирование

Для проксирования HTTP-соединений (squid или что-то еще) настройте прозрачное проксирование. Все запросы HTTP, поступающие из VPN, будут автоматически проксироваться через прокси.

Во-первых, нам нужно еще одно правило iptables. Это правило перенаправляет весь трафик из VPN с портом назначения 80 на прокси, используя динамический NAT для обработки мультиплексирования.

iptables -t nat -A PREROUTING -s 10.10.1.1/24 -p tcp -m multiport --dport 80 -j DNAT --to-destination $PRIVATE_IP:8118

Где 8118 - порт вашего прокси-сервера.

Это было взято из https://www.williamjbowman.com/blog/2015/12/22/a-transparent-ad-blocking-vpn-via-softether-privoxy/

Надеюсь, это поможет.

0
ответ дан 24 November 2019 в 01:04

Теги

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