Невозможно отучить людей изучать самые ненужные предметы.
Введение в CSS
Преимущества стилей
Добавления стилей
Типы носителей
Базовый синтаксис
Значения стилевых свойств
Селекторы тегов
Классы
CSS3
Надо знать обо всем понемножку, но все о немногом.
Идентификаторы
Контекстные селекторы
Соседние селекторы
Дочерние селекторы
Селекторы атрибутов
Универсальный селектор
Псевдоклассы
Псевдоэлементы
Кто умеет, тот делает. Кто не умеет, тот учит. Кто не умеет учить - становится деканом. (Т. Мартин)
Группирование
Наследование
Каскадирование
Валидация
Идентификаторы и классы
Написание эффективного кода
Вёрстка
Изображения
Текст
Цвет
Линии и рамки
Углы
Списки
Ссылки
Дизайны сайтов
Формы
Таблицы
CSS3
HTML5
Блог для вебмастеров
Новости мира Интернет
Сайтостроение
Ремонт и советы
Все новости
Справочник от А до Я
HTML, CSS, JavaScript
Афоризмы о учёбе
Статьи об афоризмах
Все Афоризмы
Помогли мы вам |
Первый шаг стандартный для установки чего угодно:
sudo apt update
Теперь ставим нужные пакеты:
libcharon-extra-plugins libcharon-extauth-plugins libstrongswan-extra-plugins libtss2-tcti-tabrmd-dev
Когда все скачается, перейдем к настройке.
Создаем каталоги для сертификатов и ключей:
mkdir -p~/pki/{cacerts,certs,private}
Убираем у этой папки лишние права — для надежности:
chmod 700 ~/pki
Генерируем корневой ключ RSA:
pki --gen --type rsa --size4096 --outform pem >~/pki/private/ca-key.pem
И корневой сертификат:
--dn "CN=VPN root CA" --outform pem ~/pki/cacerts/ca-cert.pem
Число 3650 — это десять лет (в днях), которые будет работать сертификат. Можешь изменить это значение на свое усмотрение.
Корневые сертификаты готовы, теперь нам нужен сертификат для нашего сервера.
Делаем приватный ключ:
pki --gen --type rsa --size4096 --outform pem >~/pki/private/server-key.pem
И сам сертификат. Обрати внимание, что IP в трех местах нужно изменить на IP твоего сервака.
--cacert~/pki/cacerts/ca-cert.pem --cakey~/pki/private/ca-key.pem --dn "CN=NNN.NNN.NNN.NNN" --san@NNN.NNN.NNN.NNN --sanNNN.NNN.NNN.NNN --flagserverAuth --flagikeIntermediate --outform pem ~/pki/certs/server-cert.pem
С этим закончили, можем перемещать ключи и сертификаты из домашнего каталога в папку настроек strongSwan:
sudo cp -r~/pki/*/etc/ipsec.d/
На всякий случай переименуем старый файл с настройками, если он есть:
sudo mv/etc/ipsec.conf{,.original}
Откроем его /
в nano:
sudo nano /etc/ipsec.conf
Добавляем раздел config
:
config setup
charondebug="ike 1, knl 1, cfg 0"
uniqueids=no
Дальше добавляем настройки туннеля IKEv2 (не забудь подставить свой IP):
conn ikev2-vpn
auto=add
compress=no
type=tunnel
keyexchange=ikev2
fragmentation=yes
forceencaps=yes
dpdaction=clear
dpddelay=300s
rekey=no
left=%any
leftid=NNN.NNN.NNN.NNN
leftcert=server-cert.pem
leftsendcert=always
leftsubnet=0.0.0.0/0
right=%any
rightid=%any
rightauth=eap-mschapv2
rightsourceip=10.10.10.0/24
rightdns=8.8.8.8,8.8.4.4
rightsendcert=never
eap_identity=%identity
ike=chacha20poly1305-sha512-curve25519-prfsha512,aes256gcm16-sha384-prfsha384-ecp384,aes256-sha1-modp1024,aes128-sha1-modp1024,3des-sha1-modp1024!
esp=chacha20poly1305-sha512,aes256gcm16-ecp384,aes256-sha256,aes256-sha1,3des-sha1!
Здесь забиты адреса гугловского DNS (8.
и 8.
), ты можешь использовать их или заменить, например, адресом своего роутера (его можно узнать, набрав ip
).
Сохраняем конфиг и выходим из nano (Ctrl-X, Y, Enter).
Сервер VPN мы настроили, осталось создать креды, с которыми клиент сможет авторизоваться. За них отвечает файл /
. Открываем его в nano:
sudo nano /etc/ipsec.secrets
Добавляем в него строчку
:RSA "server-key.pem"
Двоеточие и пробел после него важны, не убирай их!
Дальше задаем логин и пароль пользователя. Замени их своей комбинацией. Хороший стойкий пароль можешь создать в парольном менеджере.
логин :EAP "пароль"
Сохраняй файл, и перезапустим strongSwan, чтобы он прочитал новые конфиги:
sudo systemctl restart strongswan-starter
Наш VPN уже работает и готов принимать соединения, но сетевой трафик до него пока не доходит. Нужно настроить файрвол и IP-форвардинг.
Разрешаем пропускать трафик OpenSSH, а также UDP на портах 500 и 4500:
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw allow 500,4500/udp
Осталось сделать так, чтобы входящие пакеты IPSec обрабатывались нашей службой. Узнаем адрес нашего сетевого интерфейса:
ip route show default
Посмотри, что будет написано после слова dev
. Это может быть, например, eth0
или ens2
либо еще что‑нибудь в таком духе. Запомни или запиши куда‑нибудь эти буквы.
Открываем файл с настройками правил файрвола:
sudo nano /etc/ufw/before.rules
В самом начале файла, до секции *filter
, нам надо добавить два блока. Замени в трех местах ИНТЕРФЕЙС
тем, что мы нашли выше.
*nat
-A POSTROUTING -s 10.10.10.0/24 -o ИНТЕРФЕЙС -m policy --pol ipsec --dir out -j ACCEPT
-A POSTROUTING -s 10.10.10.0/24 -o ИНТЕРФЕЙС -j MASQUERADE
COMMIT
*mangle
-A FORWARD --match policy --pol ipsec --dir in -s 10.10.10.0/24 -o ИНТЕРФЕЙС -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1361:1536 -j TCPMSS --set-mss 1360
COMMIT
*filter
...
А в конце *filter
— такие две строки:
-A ufw-before-forward --match policy --pol ipsec --dir in --proto esp -s 10.10.10.0/24 -j ACCEPT
-A ufw-before-forward --match policy --pol ipsec --dir out --proto esp -d 10.10.10.0/24 -j ACCEPT
Закрываем, сохраняем. Теперь открываем файл с настройками службы файрвола:
sudo nano /etc/ufw/sysctl.conf
Добавляем в конец вот такие строки:
net/ipv4/ip_forward=1
net/ipv4/conf/all/accept_redirects=0
net/ipv4/conf/all/send_redirects=0
net/ipv4/ip_no_pmtu_disc=1
Выключаем и включаем файрвол для применения настроек:
sudo ufw disable
sudo ufw enable
Если система запросит подтверждение, жми Y.
Нам нужно забрать с сервера свой сертификат, с которым мы будем подключаться. Он лежит в файле по такому пути:
/etc/ipsec.d/cacerts/ca-cert.pem
Можешь вывести его командой cat
, скопировать и сохранить в файл на своем компьютере либо забрать, подключившись по SFTP.
Для подключения к VPN тебе понадобятся три вещи: IP твоего сервера, файл с сертификатом и пара из логина и пароля, которые ты задал в файле /
. Все это у тебя есть!
Настройки в разных ОС выполняются немного по‑разному.
В macOS тебе нужно:
В Windows процесс немного другой:
На iOS установка схожа с тем, что мы делали на macOS. Но поскольку я обещал продемонстрировать возможность автоматически включать и выключать VPN, мы вместо этого создадим файл с профилем, который заодно будет содержать и все настройки.
На Android, увы, strongSwan не поддерживается на уровне ОС, поэтому тебе придется скачать клиентское приложение и настроить его. Впрочем, эта статья ориентирована на пользователей iOS, так что я не предполагаю, что речь о твоем основном телефоне.
А теперь самая важная часть нашего приключения, ради которой все и затевалось. Мы создадим кастомный профиль для iOS, где пропишем, при каких условиях устройство должно подключаться к VPN. Не волнуйся — полностью полагаться на автоматизацию необязательно, и при желании ты сможешь деактивировать такое поведение в настройках, чтобы включать и выключать VPN вручную.
|
|