Назад | Перейти на главную страницу

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

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

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

Настройте локальный мост. Запустите 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/

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