Архив метки: Ubuntu

Выборочная маршрутизация сети или разделенное туннелирование через VPN

Все работают из дома, а для многих это удаленная работа на серверах. Мы можем подключиться к ним только через VPN, но это замедляет мой просмотр и видеоконференции.

Мы пытались найти способ использовать VPN специально для сервера и позволить другому трафику двигаться нормально. Вот тогда-то мы и наткнулись на это решение. В этом блоге мы объясним решение шаг за шагом.

ps.: В конце этого блога вы сможете выбрать, какой веб-сайт или IP-адреса вы хотите маршрутизировать через VPN.

Требования:

 

  • Ubuntu (должен работать и на других дистрибутивах Linux)
  • Если вы используете windows, Этот метод работает с подсистемой Windows для Linux. Убедитесь, что у вас есть WSL2, прежде чем продолжить.
  • Openfortivpn
  • Убедитесь, что вы можете подключиться к VPN, используя его.

Шаги для выборочной маршрутизации

1. конфигурационный файл VPN

Этот файл сообщает нашему VPN-клиенту конфигурацию нашего VPN.

Сохраните приведенный ниже конфигурационный файл как vpn-config. conf в любом месте вашего компьютера

host = vpn.iiitd.edu.in

port = 10443

username = <your username>

password = <your pass>

set-routes = 0

set-dns = 0

pppd-use-peerdns = 0

set-routes = 0 указывает, чтобы не делать никаких маршрутов через VPN, теперь мы будем белый список веб-сайтов, чтобы использовать через VPN.

2. Настройка скрипта PPP

Что такое ППС?: PPP-это протокол точка-точка. Linux использует этот протокол для связи по протоколу TCP/IP с вашим интернет-провайдером.

Сейчас мы напишем скрипт, который внесет в белый список определенные домены для прохождения через VPN.

Для создания сценария используйте следующие команды

sudo touch /etc/ppp/ip-up.d/fortivpn

sudo chmod a+x /etc/ppp/ip-up.d/fortivpn

Что такое pppd? Демон PPP (pppd) — это свободно доступная реализация протокола Point-to-Point Protocol (PPP), который работает во многих системах Unix. читайте дальше

Что такое ip-up? /etc/ppp/ip-up-это shell — скрипт, выполняемый pppd при появлении ссылки/интернета. Читать далее

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

#!/bin/bash

#

# Whitelist here all domains that need to go through openfortivpn

# Domains and IPs are separated by a space

#

ips='192.168.2.217 192.168.29.151'

domains='example.com example.fr'



let resolved

for domain in $domains; do

  resolved=`dig +short $domain | tail -n1`

  ips="$ips $resolved"

done



for ip in $ips; do

  route add $ip dev ppp0

done

Теперь добавьте IP-адреса и домены, к которым вы хотите получить доступ через VPN.

3. запустите VPN

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

sudo openfortivpn -c vpn-config.conf

Ниже вы можете увидеть маршруты, добавленные для ip-адресов. ppp0-это vpn-интерфейс, а enp2s0-ethernet.

andreyex@andreyex ~> route                                                                  (base)

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

default         _gateway        0.0.0.0         UG    100    0        0 enp2s0

one.one.one.one 0.0.0.0         255.255.255.255 UH    0      0        0 ppp0

103.25.231.4    0.0.0.0         255.255.255.255 UH    0      0        0 ppp0

link-local      0.0.0.0         255.255.0.0     U     1000   0        0 enp2s0

192.168.0.0     0.0.0.0         255.255.255.0   U     100    0        0 enp2s0

192.168.2.217   0.0.0.0         255.255.255.255 UH    0      0        0 ppp0

192.168.29.151  0.0.0.0         255.255.255.255 UH    0      0        0 ppp0

Вот и все! Теперь вы можете работать на своем сервере и наслаждаться быстрым интернетом вместе с ним 🙂

Бонус: автоматический запуск VPN при загрузке

Это довольно раздражает, чтобы войти в VPN каждый раз, прежде чем начать работу. Поэтому мы создали системный сервис для автоматического подключения к VPN при загрузке. Отказ от ответственности: это не будет работать с WSL2

Выполните эти команды для настройки службы

sudo touch /etc/systemd/system/openfortivpn.service

Откройте его с помощью вашего любимого редактора и введите эту конфигурацию.

[Unit]

Description = OpenFortiVPN

After=network-online.target

Documentation=man:openfortivpn(1)



[Service]

Type=idle

ExecStart = /usr/bin/openfortivpn -c <path to your config file>

StandardOutput=file:<any-place-where you want to save your logs>

Restart=always

RestartSec=10



[Install]

WantedBy=multi-user.target

 

Чтобы запустить эту службу, просто запустите ее

sudo systemctl enable openfortivpn

sudo systemctl start openfortivpn

Чтобы проверить, работает ли он

andreyex@andreyex ~> sudo systemctl status openfortivpn

● openfortivpn.service - OpenFortiVPN

   Loaded: loaded (/etc/systemd/system/openfortivpn.service; enabled; vendor preset: enabled)

   Active: active (running) since Sat 2020-04-25 13:22:26 IST; 3h 43min ago

     Docs: man:openfortivpn(1)

 Main PID: 1851 (openfortivpn)

    Tasks: 6 (limit: 4915)

   CGroup: /system.slice/openfortivpn.service

           ├─1851 /usr/bin/openfortivpn -c /home/andreyex/Documents/vpn-configs/iiitd.conf

           └─1852 /usr/sbin/pppd 38400 :1.1.1.1 noipdefault noaccomp noauth default-asyncmap nopcomp



Apr 25 13:22:26 andreyex systemd[1]: Started OpenFortiVPN.

Apr 25 13:22:26 andreyex pppd[1852]: pppd 2.4.7 started by root, uid 0

Apr 25 13:22:26 andreyex pppd[1852]: Using interface ppp0

Apr 25 13:22:26 andreyex pppd[1852]: Connect: ppp0 <--> /dev/pts/0

Apr 25 13:22:27 andreyex pppd[1852]: local  IP address 10.212.134.101

Apr 25 13:22:27 andreyex pppd[1852]: remote IP address 1.1.1.1

 

Спасибо за чтение 🙂 Если это действительно помогло вам, не стесняйтесь ставить лайки, комментировать и делиться этим блогом.

Можно ли изменить имя компьютера в Linux?

Чтобы различать устройства, пакеты данных используют IP-адреса; однако людям может быть непросто распознать IP-адреса. К счастью, в Linux имя хоста используется в таких местах, как приглашение терминала, для идентификации используемого устройства. В этом руководстве мы покажем вам, как изменить имя хоста устройства в Linux.

Hostname в Linux

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

Для изменения имени хоста в Linux можно использовать несколько методов, и эти методы можно разделить на две категории: методы интерфейса командной строки (CLI) и методы графического интерфейса пользователя (GUI).

Методы CLI

Чтобы изменить имя хоста устройства в Linux, мы рекомендуем использовать инструменты командной строки. Эти методы универсальны и работают практически в любом дистрибутиве Linux. Кроме того, нет необходимости устанавливать какие-либо дополнительные пакеты.

Проверить имя хоста

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

$ hostname

$ hostnamectl

Изменить имя хоста с помощью hostname

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

$ sudo hostname

Наконец, проверьте изменение.

$ hostname

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

Измените имя хоста с помощью hostnamectl

Инструмент hostnamectl контролирует имя хоста системы. Этот инструмент может выполнять широкий спектр действий; например, его можно использовать для отображения текущего имени хоста, для изменения имени хоста, для настройки описания среды и для управления системной строкой LOCATION.

Чтобы использовать hostnamectl для изменения имени хоста, выполните следующую команду.

$ sudo hostnamectl set-hostname

Затем проверьте изменение.

$ hostname

Затем нам нужно вручную обновить файл хоста. Для этого откройте файл в текстовом редакторе.

$ sudo vim /etc/hosts

Измените старое имя хоста на новое имя хоста.

$ 127.0.1.1 localhost

$ 127.0.1.1

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

$ /etc/init.d/hostname restart

Изменить имя хоста (для системы инициализации)

Выделенный файл содержит имя хоста системы. Мы можем вручную обновить файл, чтобы изменить имя хоста. Для этого откройте файл в текстовом редакторе.

$ sudo vim /etc/hostname

На изображении ниже показано старое имя хоста.

Отредактируйте содержимое, чтобы обновить имя хоста.

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

$ hostname

GUI методы

В этом разделе мы будем использовать GNOME для изменения имени хоста устройства. Однако вы можете использовать YaST для изменения имени хоста в openSUSE.

Изменить имя хоста в GNOME

GNOME — мощная среда рабочего стола. Если вы используете GNOME, вы можете изменить имя хоста без выполнения каких-либо команд, открыв приложение «Настройки».

На левой панели прокрутите вниз и выберите «О программе». В этом примере имя хоста системы находится в поле «Имя устройства».

Щелкните «Имя устройства», чтобы открыть запрос на изменение имени хоста.

Введите новое имя хоста и нажмите «Переименовать», чтобы сохранить изменения.

Последние мысли

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



2020-12-15T12:09:37
Вопросы читателей

Как настроить WireGuard VPN в Ubuntu 18.04

WireGuard — это современная технология VPN (виртуальная частная сеть) с самой современной криптографией. По сравнению с другими аналогичными решениями, такими как IPsec и OpenVPN , WireGuard быстрее, проще в настройке и более производительно. Это кроссплатформенный и может работать практически где угодно, включая Linux, Windows, Android и macOS. Wireguard — это одноранговая VPN; он не использует модель клиент-сервер. В зависимости от конфигурации одноранговый узел может действовать как традиционный сервер или клиент. Читать →

Как просмотреть журналы Nginx

Журналы очень важны в системе для отслеживания действий приложения, поскольку они предоставляют полезную информацию для отладки и позволяют анализировать все аспекты веб-сервера. Как и другие программные приложения, Nginx также поддерживает такие события, как посещение вашего веб-сайта, обнаруженные проблемы и многое другое, для регистрации файлов. Полезная записанная информация используется для принятия превентивных мер, чтобы иметь дело с серьезными несоответствиями в событиях журнала. Читать →

Как установить браузер Tor на Ubuntu 20.04

Браузер Tor — это настроенная версия Firefox, которая направляет веб-трафик через сеть Tor, делая его приватным и анонимным. Читать →