Linux весь трафик через vpn

linux notes

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

Я уже писал о настройке OpenVPN сервера, но тогда задача стояла только связать несколько компьютеров в одну сеть, основная часть описана в этой заметке. Но я бегло накидаю команды для сетапа сервера, за пояснениями можно обратиться к той заметке.

Установка OpenVPN сервера на Ubuntu 12.04

# apt-get update
# apt-get install openvpn -y
# mkdir /etc/openvpn/easy-rsa
# cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa/
# vim /etc/openvpn/easy-rsa/vars
# cd /etc/openvpn/easy-rsa
# source vars
# ./clean-all
# ./build-ca



# ./build-key-server server1
# ./build-dh
# cd keys/
# cp ca.crt dh1024.pem server1.crt server1.key /etc/openvpn
# cd /etc/openvpn
# cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn
# gzip -d server.conf.gz
# vim server.conf
Изменим:
port 1195 (что бы сразу не палился стандартный 1194 порт, немного усложним задачу хакеров в поиске OpenVPN сервера).
и главное, что добавим это директиву: push redirect-gateway

Данная директива, как раз и означает, что весь трафик клиента будет направлен через OpenVPN сервер (он просто редактирует route и добавляет нужные записи).

Настроим NAT, что бы трафик ходил через сервер:
# iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT
# iptables -A FORWARD -d 10.8.0.0/24 -m state -state ESTABLISHED,RELATED -j ACCEPT
# iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT -to-source IP.IP.IP.IP

Что бы данные правила сохранились после перезагрузки, добавим данные правила в /etc/rc.local.

И включим форвардинг пакетов в ядре отредактировав файл:
# vim /etc/sysctl.conf
и раскомментируем строчку: net.ipv4.ip_forward=1

И что бы не перезагружаться лишний раз, применим данные изменения:
# echo 1 > /proc/sys/net/ipv4/conf/all/forwarding

Источник

Как пустить весь трафик на удаленном сервере через OpenVPN?

Как пустить весь трафик на удаленном сервере через OpenVPN?
Однако нужно оставить 22 порт, для доступа к этому удаленному серверу.

Т.е. грубо говоря я захожу на удаленный сервер (на сервере IP 23.23.23.23) по SSH, но весь исходящий трафик идет через впн (IP 25.25.25.25)

chumayu

Господа, вы не подз***ались задавать одни и тежи» вопросы?

Здесь смотреть как пускать трафик через VPN, SSH и так будет напрямую ходить

Это как поднять openvpn-server, мне же нужно настроить клиента на удаленном сервере.
Если на удаленном сервере запустить openvpn —config client.conf
Весь траф пойдет через VPN (включая 22 порт), следовательно доступ к серверу потеряется до ребута.

Читайте также:  Windows programs work on linux

chumayu

habola: Давай так, попробуем в игру под зае баЙка:

1.Есть сервер
2.Есть клиент
3.Между ними связь, какая *** разница как она пойдет через ВПН или не через ВПН, тебе же нужно законнектится с SSH так коннекться или по IP адресу сервера или уже по IP адресу сервера ну уже в тунеле, логично?

Maksim: ты попробуй на сервере включить впн, и подключится к нему, если бы было все по твоей логике. то я не задавал бы вопросов.

chumayu

habola: ковырятся в SSH всегда с одной сети будете (ну всегда с с дома, всегда, с работы, всегда с питера и т.д.) если всегда с одной стороны то прописывайте статичный маршрут (с метрикой по меньше) чтобы сервер гонял трафик в вашу сеть чисто, т.е. не через VPN канал

Согласен с предыдущим оратором и его мнением про зайку.

1. Сервер имеет внешний интерфейс.
2. Сервер имеет внутренний интерфейс (впн).

Коннект производится через внешний и впн ходит через внешний.

Что ещё надо подсказать?
Айпи у нас 23.23.23.23 внешний.
Мы к нему коннектимся и получаем всё то, что получаем.
Если коннектимся овер впн, то попадаем в впн.
Если коннектимся овер ссш, то попадаем на сервер.
Попутно отрабатывают правила самого впн и иптаблес.

Войдите, чтобы написать ответ

Существует ли приложение для управления дистрибутивами linux на подобие WinBox у Mikrotik?

Источник

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

В этой статье мы рассмотрим, как создать VPN подключение из консоли Linux и подключиться к удаленному VPN серверу из CLI. Отдельно рассмотрим, как создать L2TP и PPTP VPN подключения.

Как создать L2TP VPN подключение в Linux?

Вы можете использовать NetworkManager для создания VPN подключений L2TP из консоли Linux.

Для установки NetworkManager с поддержкой L2TP выполните команду:

  • В CentOS/RHEL/Fedora: # yum -y install NetworkManager-l2tp
  • Для установки в Ubuntu/Debian, нужно сначала добавить репозиторий:
    $ sudo add-apt-repository ppa:nm-l2tp/network-manager-l2tp
    $ sudo apt-get install network-manager-l2tp

установка network-manager-l2tp в linux

Для создания нового VPN подключения L2TP используется команда:

$ nmcli connection add connection.id [VPNConnectionName] con-name [VPNConnectionName] type VPN vpn-type l2tp ifname — connection.autoconnect no ipv4.method auto vpn.data «gateway = [ipv4], ipsec-enabled = yes, ipsec-psk = 0s»$(base64

  • [VPNConnectionName] — имя VPN соединения
  • [ipv4] — ip адрес VPN сервера L2TP/IPSEC
  • [PSK] — ключ PSK (Pre Shared Key)
  • [user] — имя пользователя VPN
  • [user-password] — пароль

Настройки нового VPN подключения сохраняются в файл /etc/NetworkManager/system-connections/.

Вывести все подключения в NetworkManager:

Показать информацию о созданном VPN подключении:

$ nmcli c show id [VPNConnectionName]

Для Для подключения к VPN серверу из командной строки:к VPN серверу их командной строки:

$ nmcli c up [VPNConnectionName]

При подключении к удаленному VPN серверу может появится ошибка:

Error: Connection activation failed: Could not find source connection.
  • Проверьте логи journactl
  • Для физического интерфейса (например, ens33 ) задан шлюз по-умолчанию
  • Возможно на сервере используется интерфейс br0 , который не используется. Попробуйте удалить его
Читайте также:  Определить версию ядра linux

Чтобы завершить сессию VPN, выполните:

nmcli c down [VPNConnectionName]

Создаем PPTP VPN подключение в Linux

Для установки PPTP клиента VPN в Ubuntu/Debian, установите утилиту:

$ sudo apt-get install pptp-linux network-manager-pptp

Добавьте следующее содержимое:

pty "pptp YOUR_VPN_SERVER --nolaunchpppd --debug" name VPNUsername password VPNPassword remotename PPTP require-mppe-128 require-mschap-v2 refuse-eap refuse-pap refuse-chap refuse-mschap noauth debug persist maxfail 0 defaultroute replacedefaultroute usepeerdns

Сохраните файл, нажав CTLR+X, Y -> Enter.

$ chmod 600 /etc/ppp/peers/PPTP

Чтобы подключится к PPTP VPN серверу, выполните:

Настройка SSTP VPN подключения в командной строке Linux

Вы можете настроить SSTP подключение к VPN серверу в Linux. В Ubuntu можно использовать пакет sstp для nmcli.

$ sudo add-apt-repository ppa:eivnaes/network-manager-sstp
$ sudo apt update
$ sudo apt install network-manager-sstp sstp-client

Для подключения к SSTP серверу используется команда:

$ sudo sstpc —cert-warn —save-server-route —user —password usepeerdns require-mschap-v2 noauth noipdefault nobsdcomp nodeflate

Можно сохранить настройки подключения к VPN серверу в текстовый файл:

remotename sstptest linkname sstptest ipparam sstptest pty "sstpc --ipparam sstptest --nolaunchpppd sstpvpn.vmblog.ru" name user1 plugin sstp-pppd-plugin.so sstp-sock /var/run/sstpc/sstpc-sstp-test usepeerdns require-mppe require-mschap-v2 refuse-eap refuse-pap refuse-chap refuse-mschap nobsdcomp nodeflate

Имя пользователя и пароль для аутентификации на VPN сервере нужно задать в файле /etc/ppp/chap-secrets

# Secrets for authentication using CHAP # client server secret IP addresses user1 * xxxxxx *

Теперь для подключения к SSTP серверу с помощью настроенного подключения, выполните:

Чтобы отправить весь трафик через VPN подключение, нужно добавить маршрут:

$ sudo route add default (обычно это устройствл ppp0 )

Или только трафик к определенным подсетям/хостам:

$ sudo route add -net 192.168.2.0/24 dev ppp0

Подключение к OpenVPN серверу из консоли Linux

Для установки пакета OpenVPN в Linux:

  • Debian, Ubuntu, Linux Mint, Kali Linux:
    $ sudo apt-get update && apt-get upgrade
    $ sudo apt-get install openvpn
  • RedHat, Fedora, CentOS, Oracle, Rocky Linux:
    # yum install epel-release –y
    # yum install openvpn –y

Для подключения к OpenVPN серверу вам понадобится файл конфигурации ovpn. Чтобы подключиться к VPN с помощью ovpn файла:

$ sudo openvpn —config /etc/openvpn/client.ovpn —daemon

Введите имя пользователя и пароль (если настроена AD аутентификация для OpenVPN).

Проверьте что VPN подключение установлено:

Чтобы завершить OpenVPN подключение, нажмите CTRL+C (если клиент запущен без параметра –daemon) или выполните команду:

Чтобы OpenVPN подключение автоматически устанавливалось при старте Linux, нужно создать отдельный юнит systemd:

$ sudo vi /lib/systemd/system/OpenVPNClientCorp.service

[Unit] Description=Hide.me OpenVPN Client Corp After=multi-user.target [Service] Type=idle ExecStart=/usr/sbin/openvpn --config /etc/openvpn/client.ovpn [Install] WantedBy=multi-user.target

Измените разрешения на файл:

$ sudo chmod 644 /lib/systemd/system/OpenVPNClientCorp.service

Добавьте юнит через systemctl

$ sudo systemctl daemon-reload
$ sudo systemctl enable OpenVPNClientCorp.service

Источник

Как пускать весь трафик на сервере Ubuntu через VPN?

5fae6d0760ddc151615582.png

Доброго времени суток, прошу помощи советом, как мне реализовать схему как я нарисовал ниже?

Читайте также:  Linux mint cinnamon тормозит

Нужно основной сервер закрыть шлюзом.

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

На шлюз я установил и настроил OpenVpn по данной статье

Затем я пытаюсь подключить в качестве клиента основной сервер данной командой:
openvpn —config client1.ovpn

Через Tunnelblick все работает корректно.

После у меня вот такие сообщения, пауза без возможности ввести какую либо команду в терминале и я выхожу из терминала.

Fri Nov 13 14:19:43 2020 OpenVPN 2.4.4 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] built on May 14 2019 Fri Nov 13 14:19:43 2020 library versions: OpenSSL 1.1.1 11 Sep 2018, LZO 2.08 Fri Nov 13 14:19:43 2020 Outgoing Control Channel Authentication: Using 256 bit message hash 'SHA256' for HMAC authentication Fri Nov 13 14:19:43 2020 Incoming Control Channel Authentication: Using 256 bit message hash 'SHA256' for HMAC authentication Fri Nov 13 14:19:43 2020 TCP/UDP: Preserving recently used remote address: [AF_INET]:7653 Fri Nov 13 14:19:43 2020 Socket Buffers: R=[212992->212992] S=[212992->212992] Fri Nov 13 14:19:43 2020 UDP link local: (not bound) Fri Nov 13 14:19:43 2020 UDP link remote: [AF_INET]:7653 Fri Nov 13 14:19:43 2020 NOTE: UID/GID downgrade will be delayed because of --client, --pull, or --up-delay Fri Nov 13 14:19:43 2020 TLS: Initial packet from [AF_INET]:7653, sid=2c36f517 9738c2a0 Fri Nov 13 14:19:43 2020 VERIFY OK: depth=1, CN=Easy-RSA CA Fri Nov 13 14:19:43 2020 VERIFY KU OK Fri Nov 13 14:19:43 2020 Validating certificate extended key usage Fri Nov 13 14:19:43 2020 ++ Certificate has EKU (str) TLS Web Server Authentication, expects TLS Web Server Authentication Fri Nov 13 14:19:43 2020 VERIFY EKU OK Fri Nov 13 14:19:43 2020 VERIFY OK: depth=0, CN=server Fri Nov 13 14:19:43 2020 Control Channel: TLSv1.3, cipher TLSv1.3 TLS_AES_256_GCM_SHA384, 2048 bit RSA Fri Nov 13 14:19:43 2020 [server] Peer Connection Initiated with [AF_INET]:7653 Fri Nov 13 14:19:44 2020 SENT CONTROL [server]: 'PUSH_REQUEST' (status=1) Fri Nov 13 14:19:44 2020 PUSH: Received control message: 'PUSH_REPLY,redirect-gateway def1 bypass-dhcp,dhcp-option DNS 208.67.222.222,dhcp-option DNS 208.67.220.220,route 10.8.0.1,topology net30,ping 10,ping-restart 120,ifconfig 10.8.0.6 10.8.0.5,peer-id 0,cipher AES-256-GCM' Fri Nov 13 14:19:44 2020 OPTIONS IMPORT: timers and/or timeouts modified Fri Nov 13 14:19:44 2020 OPTIONS IMPORT: --ifconfig/up options modified Fri Nov 13 14:19:44 2020 OPTIONS IMPORT: route options modified client_loop: send disconnect: Broken pipe

Заново подключиться могу к серверу только после перезагрузки сервера через ЛК у хостера.

Как решить такую проблему или есть варианты более правильной реализации?

Источник

Оцените статью
Adblock
detector