Pull to refresh

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

Level of difficultyEasy
Reading time4 min
Views48K

Последнее время вижу очень много статей на тему 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, блокировки запрещенных ресурсов обходятся.

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

Tags:
Hubs:
Total votes 22: ↑13 and ↓9+4
Comments54

Articles