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

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

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

0 ответов

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

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

Другие вопросы по тегам