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

от автора

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

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

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

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

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

Включим роутинг

echo net.ipv4.ip_forward=1 > /etc/sysctl.conf sysctl  -p

Установим iptables

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 << EOF > /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 {RU},{UA},{BY} EOF  cat << EOF > /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.

cat /etc/iptables/rules.v4
# 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, блокировки запрещенных ресурсов обходятся.

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


ссылка на оригинал статьи https://habr.com/ru/articles/734650/


Комментарии

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

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