Как написать свой vpn на python
Перейти к содержимому

Как написать свой vpn на python

  • автор:

VPN сервер, создание VPN подключения

Запустить из питона программу или батник/скрипт, который в свою очередь запустит vpn-клиента, поднимет туннельные интерфейсы и т.д. и т.п. А если найдёте системные вызовы для этого и как вызывать их из питона, то будет ещё лучше.

5 июл 2022 в 2:34
если подключаемся средствами ОС, то какой ОС?
2 ноя 2022 в 7:16
а так то щас как напишу впн сервер и клиента на питоне — тут на часик делов то
2 ноя 2022 в 7:19

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

Попробуй через http.server:

import http.server import urllib PORT = 9097 class MyProxy(http.server.SimpleHTTPRequestHandler): def do_GET(self): url=self.path[1:] self.send_response(200) self.end_headers() self.copyfile(urllib.urlopen(url), self.wfile) httpd = socketserver.ForkingTCPServer(('', PORT), MyProxy) print ("Now serving at", str(PORT)) httpd.serve_forever()``` 

Отслеживать
ответ дан 30 окт 2023 в 21:10
389 10 10 бронзовых знаков

Можно использовать requests

import requests proxies = resp = requests.get('http://example.com', proxies=proxies ) 

Отслеживать
ответ дан 25 июн 2018 в 7:59
3,199 2 2 золотых знака 25 25 серебряных знаков 45 45 бронзовых знаков

Это решение для получения страницы из кода, я имел в виду создание постоянного подключения к vpn посредством ОС.

Свой VPN сервер дома

Последнее время вижу очень много статей на тему vds с впн для тех или иных задач.

В основном людям нужен такой сервер для обычного неторопливого серфинга.

В связи с тем что сервер за пределами РФ стало получить сложнее и дороже решил поделиться этим способом. Он подойдет если у вас есть возможность создать виртуалку дома или рф хостинг который заметно дешевле зарубежного.

1) Создаем отдельную виртуальную машину с ОС linux, например ubuntu.

2) Настроим машину, все команды выполняются от root.

echo net.ipv4.ip_forward=1 > /etc/sysctl.conf sysctl -p
apt update && apt install iptables-persistent -y systemctl enable iptables systemctl start iptables

Можно очистить все текущие правила если вы понимаете зачем это делаете

iptables -F -t nat && iptables -F

Базовые правила которые нужны для работы:

Также обратите внимание что мой сетевой интерфейс в машине называется ens18, у вас может быть другой. внесите правки самостоятельно.

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 9051 iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 9051 iptables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 9053 iptables -t nat -A POSTROUTING -o ens18 -j MASQUERADE 

Установим tor и obfsproxy

apt install obfs4proxy tor -y systemctl enable tor

Обратите внимание что в конфиге используются Bridge, если с этими не заработает можно взять здесь.

 cat /etc/tor/torrc DataDirectory /var/lib/tor Log notice file /var/log/tor/notice.log VirtualAddrNetworkIPv4 10.192.0.0/10 AutomapHostsOnResolve 1 SocksPort 0.0.0.0:9052 TransPort 0.0.0.0:9051 DNSPort 0.0.0.0:9053 ClientTransportPlugin obfs4 exec /usr/bin/obfs4proxy Bridge obfs4 94.140.115.5:443 28CA5C42872FD6FBEDA9658F2A63618776A54416 cert=GYIbAY5uvHsfB9lBMGOS9/0+nU3uIO+DdxBZsOWwfwZsjUlxz3YIOqFKQg5GRzINiy1jAw iat-mode=0 Bridge obfs4 162.19.245.215:42001 9953E998B6C65012A49A6B48BE42065E6559804A cert=vBTn9bnFVGxcL067lP3zwqkN1gKv9VsKVZIgUIYOirVXd0D2KaPQnZjgKTgIt1sk1sZyFA iat-mode=0 UseBridges 1 # для жителей СНГ рекомендую исключить Exit-ноды следующих стран ExcludeExitNodes ,, EOF cat /etc/tor/torsocks.conf TorAddress 127.0.0.1 TorPort 9050 OnionAddrRange 127.42.42.0/24 EOF systemctl restart tor 

Чтобы убедиться что служба тор успешно работает можете ввести команду:

tail -f /var/log/tor/notice.log

Если увидели Bootstrapped 100% (done) : Done значит все хорошо.

Далее нам нужно установить любой удобный вам vpn, я предпочитаю этот.

apt install wget -y wget https://raw.githubusercontent.com/hwdsl2/setup-ipsec-vpn/master/vpnsetup_ubuntu.sh -O vpn.sh && sh vpn.sh 

Скрипт выведет вам настройки для подключения. ip адрес локальной машины можете посмотреть через команду ip a .

Сохраним правила iptables

iptables-save > /etc/iptables/rules.v4

Если ваш сервер доступен по публичному адресу рекомендую немного настроить безопасность:

# разрешаем ssh iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT # разрешаем весь трафик через впн соединения iptables -A INPUT --in-interface ppp+ -j ACCEPT iptables -A INPUT --in-interface lo -j ACCEPT # запрещаем все что не разрешили iptables -P INPUT DROP # сохраним правила iptables-save > /etc/iptables/rules.v4 

На всякий случай выложу полный листинг правил iptables.

# Generated by iptables-save v1.8.4 on Fri May 12 08:00:50 2023 *nat :PREROUTING ACCEPT [41:9322] :INPUT ACCEPT [22:3346] :OUTPUT ACCEPT [39:2458] :POSTROUTING ACCEPT [27:1638] -A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 9051 -A PREROUTING -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 9051 -A PREROUTING -p udp -m udp --dport 53 -j REDIRECT --to-ports 9053 -A POSTROUTING -s 192.168.42.0/24 -o ens18 -j MASQUERADE -A POSTROUTING -s 192.168.43.0/24 -o ens18 -m policy --dir out --pol none -j MASQUERADE -A POSTROUTING -o ens18 -j MASQUERADE COMMIT # Completed on Fri May 12 08:00:50 2023 # Generated by iptables-save v1.8.4 on Fri May 12 08:00:50 2023 *filter :INPUT DROP [2:256] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [348:126087] -A INPUT -p udp -m udp --dport 1701 -m policy --dir in --pol none -j DROP -A INPUT -m conntrack --ctstate INVALID -j DROP -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT -A INPUT -p udp -m multiport --dports 500,4500 -j ACCEPT -A INPUT -p udp -m udp --dport 1701 -m policy --dir in --pol ipsec -j ACCEPT -A INPUT -p udp -m udp --dport 1701 -j DROP -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT -A INPUT -i ppp+ -j ACCEPT -A INPUT -i lo -j ACCEPT -A FORWARD -m conntrack --ctstate INVALID -j DROP -A FORWARD -i ens18 -o ppp+ -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT -A FORWARD -i ppp+ -o ens18 -j ACCEPT -A FORWARD -i ppp+ -o ppp+ -j ACCEPT -A FORWARD -d 192.168.43.0/24 -i ens18 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT -A FORWARD -s 192.168.43.0/24 -o ens18 -j ACCEPT -A FORWARD -s 192.168.43.0/24 -o ppp+ -j ACCEPT -A FORWARD -j DROP COMMIT # Completed on Fri May 12 08:00:50 2023 

UPD для тех кто читает через слово или видит ФР хостинг и пугается:

  • трафик выходит через tor, блокировки запрещенных ресурсов обходятся.
  • статья что это еще один способ который подойдет для некоторых ситуаций, а не лучший итп

VPN за 60 секунд

Если Вы предпочитаете простые и красивые решения, или Вам нравится всё, что попадает под категорию It Just Works, то эта статья для Вас. Для запуска шифрованного подключения достаточно иметь на своем компьютере SSH-клиент, установить sshuttle (об этом чуть позже) и приобрести VPS с любым тарифным планом в интересующей Вас стране. На удалённой VPS-машине в большинстве случаев абсолютно ничего настраивать не нужно (достаточно, чтобы были установлены пакеты python и сервер SSH).

На своем компьютере установим sshuttle:

pip install sshuttle
git clone https://github.com/sshuttle/sshuttle.git && python setup.py install
apt-get install sshuttle
sudo sshuttle -r username@sshserver 0.0.0.0/0

где username — логин на удаленном виртуальном сервере, sshserver — его IP-адрес или доменное имя, параметр 0.0.0.0/0 означает, что мы собираемся добавить в нашу таблицу маршрутизации правило, благодаря которому весь исходящий трафик будет отправляться на удалённый сервер, за исключением DNS-запросов. Разработчик намеренно не включает по умолчанию этот функционал для DNS, потому что у некоторых пользователей для выхода в интернет должны использоваться провайдерские серверы разрешения имен. Если мы можем пользоваться любыми DNS-серверами, то и запросы к ним можем “завернуть” в наш шифрованный SSH-туннель:

sshuttle --dns -r username@sshserver 0.0.0.0/0 

Помимо этого мы можем направлять в туннель наш исходящий трафик не полностью, а только для определенных IP-подсетей, указывая соответствующий параметр:

sshuttle -r username@sshserver 11.12.13.14/0

Преимущества этого решения в следующем:

  • у Вас нет необходимости иметь права администратора на удалённом сервере, используемом для выхода в интернет
  • Вам не нужно создавать правила SSH для форварда каждого порта

Инструкция по созданию собственного VPN-сервера ⁠ ⁠

Инструкция по созданию собственного VPN-сервера VPN, Настройки, Не мое, Собственный VPN-сервер, Длиннопост

Я создал VPN-сервер на DigitalOcean, это сервер Scaleway в связке с Amazon Web Services. Через пару минут после этого я уже смог подключиться ко всем этим VPN-сетям с моего Mac и iPhone.

Algo VPN автоматизирует процесс установки VPN, поэтому вам не нужно устанавливать соединение SSH с сервером и запускать сложные командные строки.

Для начала, вы должны подписаться на облачного провайдера (в данном случае это DigitalOcean) и запустить мастер настройки Algo VPN на вашем терминале. Я подробно опишу процесс установки позже, однако он может измениться после публикации этого поста. Все объявления можете найти в официальном репозитории GitHub.

В DigitalOcean нам не нужно создавать и настраивать собственный сервер. Algo VPN позаботится об этом для нас, так как он использует API DigitalOcean для создания сервера и установки всего необходимого для VPN.

В конце установки вы получите несколько файлов на локальном жестком диске. Например, в macOS двойной щелчок на профиле конфигурации добавит VPN-сервер к вашим сетевым настройкам и подключит вас к вашему VPN-серверу. Вам не нужно устанавливать VPN-клиент, он работает изначально на macOS и iOS.

Подробная инструкция со скриптами

1. Создайте учетную запись на хостинг-провайдере DigitalOcean.

Algo поддерживает DigitalOcean (наиболее доверенный), Amazon EC2, Google Compute Engine, и Microsoft Azure.

2. Загрузите Algo VPN на свой локальный компьютер.

Содержимое архива разархивируйте в отдельную директорию.

3. Установите зависимости с командной строкой на этой странице.

Откройте терминал. Интерпретатор python, который вы используете для развертывания Algo, должен быть второй версии. cd в algo-master директорию (где вы разархивировали Algo), далее:

$ python -m ensurepip —user
$ python -m pip install —user —upgrade virtualenv
Для Linux (deb-based):

$ sudo apt-get update && sudo apt-get install \
build-essential \
libssl-dev \
libffi-dev \
python-dev \
python-pip \
python-setuptools \
python-virtualenv –y

Более подробная информация для каждой ОС содержится в официальной документации.

4. Установите остальные зависимости Algo для вашей операционной системы.

Используя то же окно терминала, что и на предыдущем шаге, выполните команду ниже:

$ python -m virtualenv env && source env/bin/activate && python -m pip install -r requirements.txt

В macOS вам может быть предложено установить cc, установите его, если это так.

5. Укажите пользователей, которых вы хотите создать.

Откройте config.cfg в вашем любимом текстовом редакторе, после чего укажите пользователей в списке users.

6. Начинайте развертывание.

Вернитесь к своему терминалу. В директории Algo запустите ./algo и следуйте инструкциям. Существует несколько дополнительных функций. Эти дополнительные функции более подробно описаны в ROLES.md (на GitHub).

На этом все! Подробную инструкцию вы сможете найти в официальном репозитории GitHub.

Запуск собственного VPN-сервера не означает, что вы будете в полной безопасности в Интернете. Еще раз, вы переносите ваш риск на туннель к провайдеру облачного хостинга.

Если вы используете Algo VPN для Microsoft Azure, Роскомнадзор или АНБ может запрашивать у Microsoft дополнительную информацию о вас, если они посчитают это необходимым. Не забывайте, что у Microsoft есть ваша платежная информация.

Но в Algo VPN есть возможность настроить одноразовые VPN. Вы можете загрузить новый VPN-сервер и подключиться к этой VPN всего за несколько минут. Как только вы закончите, вы можете просто удалить свой экземпляр и сделать вид, что этот VPN-сервер никогда не существовал.

Это намного дешевле, чем подписка на услугу VPN, оплата которой стоит около 0,006 долл. США за час использования или даже меньше. И вы получите гораздо лучшую производительность, так как вы не будете передавать свой VPN-сервер другим пользователям VPN. Я добился удивительных сетевых характеристик от моего сервера AWS VPN:

Инструкция по созданию собственного VPN-сервера VPN, Настройки, Не мое, Собственный VPN-сервер, Длиннопост

Хотя Algo VPN упрощает настройку VPN-сервера на DigitalOcean, AWS, Microsoft Azure и Google Cloud, он отлично справится и на самом маленьком облачном сервере под Ubuntu.

Поддержать
6 лет назад
SoftEther VPN.
раскрыть ветку
6 лет назад

Тот, кто в IT не очень — вряд ли захочет платить от 300 руб./мес. за то, что можно получить бесплатно и с меньшим геморроем. Тому, кто шарит — эта статья вряд ли нужна.

раскрыть ветку
6 лет назад

Чтобы зарегистрировать AWS и Azure нужно ввести свои данные + кредитку для проверки. Причем в Azure дебетовая не канает. Думаю у гугла и гита способ регистрации на сервисы не проще. В чем тогда смысл? Страдать гемороем с регистрацией и настройкой, чтобы посмотреть заблокированный видосик на ютубе? Так есть куча бесплатных сервисов, работающих в один клик доя этого. Стать анонимным в сети? Ну да, анонимность прям на высоте, можно сразу с повинной идти сдаваться. Может я что-то упустил? В чем смысл этого поста? Создать себе проблем на жопу?

раскрыть ветку
6 лет назад

Мммм, а в чем плюс использования именно этой балалайки? Можно так же на DO развернуть готовый образ, зайти по SSH, запустить скрипт, который поменяет пароли и поднимет VPN и все. Будет чуть секурнее, но добавится пункт «почитать мануал и скачать putty».

6 лет назад

Пиздец. Это верх лени. Увидеть ссылку на Zen и тупо перепостить ее на пикабу.

Похожие посты
6 лет назад

Анонимность в интернете своими руками. Подключение клиентов к SoftEther VPN Server⁠ ⁠

Начало про настройку сервера тут и тут.

В предыдущей статье мы установили и настроли SoftEther VPN Server. Теперь подключим к нему клиентов.

Откроем страницу загрузок SoftEther и укажем следующие параметры:

Анонимность в интернете своими руками. Подключение клиентов к SoftEther VPN Server VPS, VPN, Softether, iOS, Android, Настройки, Инструкция, Длиннопост

Скачем клиент по полученной ссылке и запустим установку. Выберем устанавливаемый компонент:

Анонимность в интернете своими руками. Подключение клиентов к SoftEther VPN Server VPS, VPN, Softether, iOS, Android, Настройки, Инструкция, Длиннопост

В остальных окнах со всем соглашаемся. После установки будет запущен менеджер подключений.

Анонимность в интернете своими руками. Подключение клиентов к SoftEther VPN Server VPS, VPN, Softether, iOS, Android, Настройки, Инструкция, Длиннопост

Жмём «Add VPN Connection». Нам будет предложено сделать виртуальный сетевой адаптер. Соглашаемся.

Анонимность в интернете своими руками. Подключение клиентов к SoftEther VPN Server VPS, VPN, Softether, iOS, Android, Настройки, Инструкция, Длиннопост

Придумаем ему любое название

Анонимность в интернете своими руками. Подключение клиентов к SoftEther VPN Server VPS, VPN, Softether, iOS, Android, Настройки, Инструкция, Длиннопост

Создание адаптера займет некоторое время

Анонимность в интернете своими руками. Подключение клиентов к SoftEther VPN Server VPS, VPN, Softether, iOS, Android, Настройки, Инструкция, Длиннопост

После того, как виртуальный адаптер создан, опять жмём «Add VPN Connection». Заполняем параметры как на скриншоте:

Анонимность в интернете своими руками. Подключение клиентов к SoftEther VPN Server VPS, VPN, Softether, iOS, Android, Настройки, Инструкция, Длиннопост

Разберём по шагам:

1. Любое название для этого соединения.

2. Выбираем аутентификацию по сертификатам.

3. Указываем то имя пользователя, которое мы указали при настройке сервера.

4. После нажатия кнопки указываем сертификаты, которые были созданы при настройке сервера (сначала открытый, потом закрытый).

6. Вписываем имя сервера, которое мы указали при настройке Dynamic DNS или IP-адрес нашей VPS.

7. Порт подключения 443.

8. Имя виртуального хаба. Если все настройки до этого правильные, его имя будет подтянуто с сервера и появится в выпадающем списке.

Появится строчка с нашим соединением

Анонимность в интернете своими руками. Подключение клиентов к SoftEther VPN Server VPS, VPN, Softether, iOS, Android, Настройки, Инструкция, Длиннопост

Щелкнем по нему двойным кликом. Если всё хорошо, то появится соответствующее уведомление

Анонимность в интернете своими руками. Подключение клиентов к SoftEther VPN Server VPS, VPN, Softether, iOS, Android, Настройки, Инструкция, Длиннопост

Все, ваш компьютер подключен к VPN.

Теперь настроим наш смартфон.

В настоящее время не существует «родного» клиента SoftEther для IOS и Android. Можно, конечно, использовать клиента OpenVPN, но мы пока не будеи этого делать и воспользуемся встроенными в операционную систему механизмами подключения к VPN. При этом, текущая версия SoftEther при таком способе подключения не позволит нам использовать сертификаты. Подключаться будем по ключу.

Для начала создадим пользователя. Открываем Server Manager, жмём «Manage Virtual Hub» -> «Manage Users» -> «New». Вписываем имя для нового клиента и придумываем длинный, стойкий пароль.

Анонимность в интернете своими руками. Подключение клиентов к SoftEther VPN Server VPS, VPN, Softether, iOS, Android, Настройки, Инструкция, Длиннопост

Жмём ОК. Пользователь создан.

Теперь берём смартфон на Android. Открываем настройки.

Анонимность в интернете своими руками. Подключение клиентов к SoftEther VPN Server VPS, VPN, Softether, iOS, Android, Настройки, Инструкция, Длиннопост

Анонимность в интернете своими руками. Подключение клиентов к SoftEther VPN Server VPS, VPN, Softether, iOS, Android, Настройки, Инструкция, Длиннопост

Внизу окна кнопка с плюсиком. Жмём её.

Анонимность в интернете своими руками. Подключение клиентов к SoftEther VPN Server VPS, VPN, Softether, iOS, Android, Настройки, Инструкция, Длиннопост

Название сети — любое понятное вам имя.

Общий ключ IP Sec указываем тот, который мы вписывали при настройке сервера вот в этом окне

Анонимность в интернете своими руками. Подключение клиентов к SoftEther VPN Server VPS, VPN, Softether, iOS, Android, Настройки, Инструкция, Длиннопост

В дополнительных настройках указываем следующее

Анонимность в интернете своими руками. Подключение клиентов к SoftEther VPN Server VPS, VPN, Softether, iOS, Android, Настройки, Инструкция, Длиннопост

И жмём «Сохранить»

В списке появится наше подключение

Анонимность в интернете своими руками. Подключение клиентов к SoftEther VPN Server VPS, VPN, Softether, iOS, Android, Настройки, Инструкция, Длиннопост

Жмем на него и вводим имя пользователя и пароль. Мы их настраивали выше.

Если всё сделано без ошибок, смартфон подключиться. Вверху экрана появится ключик. Скорее всего андроид предупредит вас, что соединение может отслеживаться VPN сервером. Это нормально. Сервер-то наш.

Для IOS настройки абсолютно такие же. И точно также вы можете подключить любое устройство с поддержкой L2TP/IPSec PSK

Показать полностью 16
6 лет назад

Анонимность в интернете своими руками. Установка и настройка SoftEther VPN Server (Часть2)⁠ ⁠

Пробуем запустить dnsmasq

systemctl restart dnsmasq

и смотрим состояние

systemctl status dnsmasq

Должно быть типа такого:

Анонимность в интернете своими руками. Установка и настройка SoftEther VPN Server (Часть2) VPN, VPS, Softether, Linux, Настройки, Инструкция, Длиннопост

Если не так, то смотрим в лог /var/log/messages

Если есть ошибка «warning: interface tap_softether does not currently exist», то либо вы ошиблись где-то в настройках ранее, либо не запущен VPN-сервер. Как запустить, написано выше.

Если ошибка «failed to bind DHCP server socket: Address already in use», то смотрим вывод команды

netstat -anlp | grep -w LISTEN

Скорее всего увидим что-то типа:

tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/init
tcp 0 0 0.0.0.0:53 0.0.0.0:* LISTEN 19819/dnsmasq
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 110/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 196/sendmail: accep
tcp6 0 0 . 111 . * LISTEN 15492/rpcbind
tcp6 0 0 . 80 . * LISTEN 104/httpd
tcp6 0 0 . 53 . * LISTEN 19819/dnsmasq
tcp6 0 0 . 22 . * LISTEN 110/sshd

Видим, что висит процесс dnsmasq и занимает интерфейс. Запоминаем число перед /dnsmasq (в моём случае это 19819) и используем его в команде

kill 19819

После этого пробуем

systemctl start dnsmasq
systemctl status dnsmasq

Всё должно стать хорошо.

Теперь открываем наш скрипт запуска VPN-сервера /etc/rc.d/init.d/sevpnserver и редактируем по образцу (можно просто очистить содержимое и вставить отсюда):

#!/bin/sh
#
# chkconfig: 2345 20 80
# description: SoftEther VPN Server
#
#
#
#
DAEMON=/etc/sevpn/vpnserver/vpnserver
LOCK=/var/lock/vpnserver/vpnserver
TAP_ADDR=10.8.0.1
test -x $DAEMON || exit 0
case «$1» in
start)
echo Starting SoftEther VPN Server.
$DAEMON start
touch $LOCK
sleep 3
/sbin/ifconfig tap_softether $TAP_ADDR
sleep 3
systemctl restart dnsmasq
;;
stop)
echo Stopping SoftEther VPN Server.
$DAEMON stop
rm $LOCK
;;
restart|reload)
echo Reloading SoftEther VPN Server.
$DAEMON stop
sleep 5
$DAEMON start
sleep 3
/sbin/ifconfig tap_softether $TAP_ADDR
sleep 3
systemctl restart dnsmasq
;;
*)
echo Usage: $0 ««
exit 1
esac
exit 0

По традиции скрипты и конфиги с нормальным форматированием здесь

Добавим скрипт в автозагрузку

chkconfig sevpnserver on

Проверить, что скрипт добавился можно командой

chkconfig —list

В выводе команды должна присутствовать строчка

sevpnserver 0:off 1:off 2:on 3:on 4:on 5:on 6:off

Теперь идём в статью про файрволл и маршрутизацию и делаем всё, как там написано, но с единственным отличием: содержимое файла ipt-set взять указанное ниже.

В переменную IP_EXT вместо 123.123.123.123 вписываем IP-адрес своего VPS.

#!/bin/sh
IF_EXT=»venet0″
IF_VPN=»tap_softether»
VPN_PORT=»443″
IPT=»/sbin/iptables»
IPT6=»/sbin/ip6tables»
IP_EXT=»123.123.123.123″
# flush
$IPT —flush
$IPT -t nat —flush
$IPT -t mangle —flush
$IPT -X
$IPT6 —flush
# loopback
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT
# default
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP
$IPT6 -P INPUT DROP
$IPT6 -P OUTPUT DROP
$IPT6 -P FORWARD DROP
# allow forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward
# NAT
# #########################################
# SNAT — local users to out internet
$IPT -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT —to-source $IP_EXT
# INPUT chain
# #########################################
$IPT -A INPUT -p tcp ! —syn -m state —state NEW -j DROP
$IPT -A INPUT -m state —state ESTABLISHED,RELATED -j ACCEPT
# ssh
$IPT -A INPUT -i $IF_EXT -p tcp —dport 22 -j ACCEPT
# DNS
$IPT -A INPUT -i $IF_VPN -p udp —dport 53 -s 10.8.0.0/24 -j ACCEPT
# vpn
$IPT -A INPUT -i $IF_VPN -p icmp -s 10.8.0.0/24 -j ACCEPT
$IPT -A INPUT -i $IF_EXT -p tcp —dport $VPN_PORT -j ACCEPT
$IPT -A INPUT -p udp —dport 500 -j ACCEPT
$IPT -A INPUT -p udp —dport 4500 -j ACCEPT
$IPT -N syn_flood
$IPT -A INPUT -p tcp —syn -j syn_flood
$IPT -A syn_flood -m limit —limit 500/s —limit-burst 2000 -j RETURN
$IPT -A syn_flood -j DROP
# FORWARD chain
# #########################################
$IPT -A FORWARD -i $IF_VPN -o $IF_EXT -m state —state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -i $IF_EXT -o $IF_VPN -m state —state ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -s 10.8.0.0/24 -d 10.8.0.0/24 -j ACCEPT
# OUTPUT chain
# #########################################
$IPT -A OUTPUT -m state —state NEW,ESTABLISHED,RELATED -j ACCEPT

В Server Manager откроем «Encryption and Network»

Анонимность в интернете своими руками. Установка и настройка SoftEther VPN Server (Часть2) VPN, VPS, Softether, Linux, Настройки, Инструкция, Длиннопост

И выставляем опции как на скриншоте (обведено красным)

Анонимность в интернете своими руками. Установка и настройка SoftEther VPN Server (Часть2) VPN, VPS, Softether, Linux, Настройки, Инструкция, Длиннопост

Перезагрузим VPS командой из консоли

Теперь наш сервер готов принимать подключения.

Как их настроить, читайте здесь.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *