Как настроить доступ к заблокированным доменам Роскомнадзора через VPN в Linux?

Как настроить шлюз на Debian 12 таким образом, чтобы клиенты могли получать доступ к определенным заблокированным сайтам через VPN-соединение, которое также настроено на этом компьютере, а к другим сайтам - через прямое подключение провайдера? Требуется прозрачная настройка, без необходимости устанавливать дополнительное программное обеспечение на клиентских компьютерах. Предпочтительно предоставить пошаговую инструкцию для наименее сложного способа решения этой задачи на Linux.
  • 23 декабря 2023 г. 21:37
Ответы на вопрос 2
Для настройки доступа к заблокированным доменам Роскомнадзора через VPN в Linux можно использовать следующую инструкцию:

1. Установите программу OpenVPN на сервере и клиентах. На Debian 12 это можно сделать с помощью команды:
```
sudo apt install openvpn
```

2. Создайте конфигурационный файл VPN-сервера (server.conf) на сервере. Пример конфигурационного файла может выглядеть следующим образом:
```
local SERVER_IP_ADDRESS
port 1194
proto udp
dev tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
dh /etc/openvpn/dh.pem
server 10.8.0.0 255.255.255.0
cipher AES-256-CBC
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
keepalive 10 120
comp-lzo
persist-key
persist-tun
status /var/log/openvpn/status.log
log /var/log/openvpn/openvpn.log
verb 3
```
В данном примере сервер будет слушать на адресе SERVER_IP_ADDRESS, порту 1194 по протоколу UDP. Используются сертификаты и ключи, которые необходимо создать.

3. Создайте директорию /etc/openvpn на сервере и клиентах и скопируйте туда файлы ca.crt, server.crt, server.key и dh.pem.

4. Создайте директорию /var/log/openvpn на сервере и клиентах и установите права доступа на запись для нее:
```
sudo mkdir /var/log/openvpn
sudo chown nobody:nogroup /var/log/openvpn
```

5. Запустите VPN-сервер на сервере:
```
sudo openvpn --config /etc/openvpn/server.conf
```

6. Создайте конфигурационный файл VPN-клиента (client.conf) на клиентах. Пример конфигурационного файла может выглядеть следующим образом:
```
client
dev tun
proto udp
remote SERVER_IP_ADDRESS 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/client.crt
key /etc/openvpn/client.key
cipher AES-256-CBC
comp-lzo
verb 3
```
В данном примере клиент подключается к серверу по адресу SERVER_IP_ADDRESS на порту 1194 по протоколу UDP. Используются сертификаты и ключи, которые необходимо создать.

7. Запустите VPN-клиент на клиентах:
```
sudo openvpn --config /etc/openvpn/client.conf
```

8. Настройте маршрутизацию на сервере, чтобы клиенты могли получать доступ к определенным заблокированным сайтам через VPN-соединение. Например, чтобы перенаправить трафик к доменам *.blocked.ru через VPN-соединение и остальной трафик - через прямое подключение провайдера, можно использовать следующие команды:
```
sudo iptables -A FORWARD -p tcp -m string --string ".blocked.ru" --algo bm -j ACCEPT
sudo iptables -A FORWARD -i tun0 -j ACCEPT
sudo iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT
sudo iptables -A FORWARD -i eth0 -o tun0 -j REJECT
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
```
Где eth0 - интерфейс сетевого подключения провайдера, tun0 - интерфейс VPN.

9. Настройте маршрутизацию на клиентах для того, чтобы весь трафик сети был направ
Идешь на https://antifilter.download/ , скачиваешь листы адресов на маршрутизатор, берешь пакет ipset, пишешь скрипт который будет парсить лист и добавлять адреса в iplist, дальше пишешь что-то подобное 
Похожие вопросы