Регистрация на DigitalOcean.com и создание дроплета (виртуального сервера).
Подробно рассмотрена регистрация на "DigitalOcean.com" и создание дроплета (виртуального сервера). На виртуальном сервере будет установлен "SoftEther VPN" сервер. В результате получим собственный VPN сервер для безопасного хождения по интернет-ресурсам. Для вашего провайдера, весь ваш трафик будет неотличим от обычного https трафика. Итак, идем на "digitalocean.com"
Для регистрации заполняем форму в левой части страницы, или нажимаем кнопку "Sing Up" в верху справа.
Вписываем свой емейл и придумываем пароль, который будем использовать для входа на DigitalOcean. После оправки формы, появится страница сообщающая, что вам отправлено письмо, в котором нужно перейти по ссылке, для подтверждения емейла. Если вы не получили такого письма, то на этой странице есть кнопка "Resend Invite", нажмите на нее для повторной отправки сообщения. Если письмо получено, то жмем на ссылку в письме. Откроется страница с билинговой информацией.
Тут нужно выбрать способ оплаты за дроплет, который будет создан чуть позже. Возморжны два варианта, оплата банковской картой или через PayPal. Выберем оплату банковской картой. Я например, пользуюсь для этого виртуальной картой MasterCard. Практически все банки предоставляют возможность выпустить виртуальную карту для оплаты товаров и услуг в интернете. Заполняем необходимые поля формы. Если все заполнено верно, то кнопка "Save Card" станет активной. Нажимаем. Если с картой все в порядке, с нее снимут 1 доллар, и вернут его обратно, карта будет добавлена.
Теперь можно создавать дроплет. Нажимаем "Create a New Droplet". Первым делом, нужно выбрать имидж системы, из которого будет создан наш дроплет. Выбрать можно из Ubuntu, FreeBSD, Fedora, Debian, CoreOS, CentOS. Так же можно выбрать разрядность 32 или 64 бит, а также версию.
Выбираем Debian 8.9 x64, самую последнюю версию Debian 9.1 на текущий момент, пока выбирать не стоит, так как туда SoftEther VPN нормально не ставится. Затем выбираем размер, 512 МБ память, 1 ЦПУ, 20 ГБ SSD диск, 1000 ГБ трафик. Стоить это будет 5$ в месяц или 0.007$ в час.
Теперь выберем датацентр, в котором будет размещен дроплет. Датацентры есть в Нью-Йорке, Сан-Франциско, Амстердаме, Сингапуре, Лондоне, Франкфурте, Торонто и Бангалоре. В первых трех городах имеется несколько датацентров, в остальных по одному датацентру.
Выберем Амстердам, как наиболее близкий географически. Из дополнительных опций полезно выбрать "Backups", бекап будет выполнятся раз в неделю, но это будет стоит дополнительно 20% от стоимости дроплета. При желании, любые опции можно будет добавить позже. Поэтому сейчас ничего не выбираем.
Сейчас можно указать, сколько таких дроплетов нам нужно, для это надо нажать на знак "плюс" нужное количество раз. Так же, для дроплета можно прописать свое имя или оставить по умолчанию. В итоге нажимаем на большую зеленую кнопку "Create".
На емейл указанный при регистрации вышлют письмо с ip адресом и рутовым паролем для удаленного доступа к дроплету по ssh. Подключтся к серверу можно прямо в браузере, для этого щелкним мышкой по выпадающему списку "More" в левой части. В списке выберем "Access console". Откроется новое окно браузера, если вы не увидите никаких надписей, нажмите несколько раз на клавишу "Enter". Вы увидите стандартное консольное окно Linux, так как будто бы вы подключены непосредственнок серверу.
Введите логин "root" и пароль полученный по почте. Если вы входите через браузер, то имейте ввиду, что "Copy/Paste" не работает и нужно пароль вводить вручную. Если пароль удалось ввести правильно, то увидите такую строчку "(current) UNIX password:" нужно будет ввести пароль еще раз и дважды ввести новый пароль. На этом смена пароля завершена. Вы в консоли только что созданного дроплета. Если вам не удалось правильно ввести пароль, то попробуйте это сделать подключившись по ssh. Для встаки пароля скопируйте его из письма как обычно, а вот всталять нужно просто нажав правую кнопку мышки, это если у вас PuTTY. Если ваша основная рабочая система Windows, то надо установить PuTTY. Если у вас Windows 10, то можно воспользоваться нативной поддержкой оболочки Bash в окружении дистрибутива Ubuntu. Как это сделать, легко найти в любом поисковике. Мы же будем использовать PuTTY. Качаем тут и устанавливаем. Запускаем PuTTY.
В поле "Host Name (or IP address)" вписываем ip адрес нашего дроплета, в "Saved Sessions" впишем например "mydroplet" и нажмем кнопку "Save". В следующий раз будет достаточно два раза кликнуть по "mydroplet" для подключения к дроплету. Подключаемся к дроплету, вводим логин "root" и пароль установленный при первом подключении.
В свежеустановленном дроплете, перед его использованием нужно обязательно сделать следующее:
1. Обновить систему.
2. Создать своп файл.
3. Добавить обычного пользователя для удаленного входа.
4. Запретить удаленный вход для пользователя "root".
Делаем.
1. Обновляем систему.
root@debian-512mb-ams2-01:~# apt-get update
root@debian-512mb-ams2-01:~# apt-get upgrade
2. Создаем своп файл.
Так как у нас объем оперативной памяти 512 МБ, то размер своп файла рекомендуется создать в пределах 512-1024 МБ.
root@debian-512mb-ams2-01:~# dd if=/dev/zero of=/swapfile bs=1024k count=1000
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB, 1000 MiB) copied, 5.17721 s, 203 MB/s
root@debian-512mb-ams2-01:~# chmod 600 /swapfile
root@debian-512mb-ams2-01:~#
Своп файл создан. Теперь в начало этого файла нужно записжать некоторую системную информацию, что бы ядро могло его использовать как своп. Это делается с помощью команды "mkswap".
root@debian-512mb-ams2-01:~# mkswap /swapfile
Setting up swapspace version 1, size = 1000 MiB (1048571904 bytes)
no label, UUID=74c00d37-8ae5-44ea-80fa-a1cb409d779d
root@debian-512mb-ams2-01:~#
Чтобы система использовала своп его нужно включить, Делается это с помощью команды "swapon", проверить можно с помощью команды "free". отключается командой "swapoff".
root@debian-512mb-ams2-01:~# free
total used free shared buff/cache available
Mem: 504404 34492 15164 6984 454748 450040
Swap: 0 0 0
root@debian-512mb-ams2-01:~# swapon /swapfile
root@debian-512mb-ams2-01:~# free
total used free shared buff/cache available
Mem: 504404 35052 14600 6984 454752 449480
Swap: 1023996 0 1023996
root@debian-512mb-ams2-01:~#
Необходимо отметить, что команда swapon включает своп, который будет работаь до перезагрузки системы. Чтобы своп был включен и после перезагрузки систмы, необходмо вставить запись в файл "/etc/fstab". Сделать это можно с помощью такой команды:
root@debian-512mb-ams2-01:~# echo "/swapfile none swap sw 0 0" >> /etc/fstab
Теперь систему можно перегрузить и проверить наличие свопа с помощью команды "free". Перегрузим дроплет с помощью команды "init 6".
root@debian-512mb-ams2-01:~# init 6
3. Добавим пользователя для удаленного входа в систему.
root@debian-512mb-ams2-01:~# useradd -s /bin/bash -m barion
Установим пароль
root@debian-512mb-ams2-01:~# passwd barion
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
root@debian-512mb-ams2-01:~#
Добавим пользователя barion в группу sudo, для того чтобы выполнять команды от суперпользователя (от пользователя "root").
root@debian-512mb-ams2-01:~# adduser barion sudo
Теперь нет необходимости заходить на сервер под пользователем "root". Зайдем на сервер под пользователем "barion" и отключим возможность удаленного входа на сервер пользователю "root". Таким образом мы повысим безопасность сервера, так как исключим возможность подбора пароля пользователя "root".
4. Запретим пользователю "root" удаленный вход по ssh.
Для этого откроем в редакторе файл "/etc/ssh/sshd_config".
barion@debian-512mb-ams2-01:~$ sudo nano /etc/ssh/sshd_config
найдем строку содержащую "PermitRootLogin yes" заменим "yes" на "no". Сохраним нажав комбинацию "Ctrl+O" и выйдем из редактора с помощью комбинации "Ctrl+X". Перезапустим ssh.
barion@debian-512mb-ams2-01:~$ sudo service ssh restart
То что сделать желательно, но не обязательно.
1. Установить русскую локализацию.
2. Установить свой часовой пояс.
3. Установить Midnight Commander
Делаем.
1. Устанавливаем русскую локализацию.
barion@debian-512mb-ams2-01:~$ sudo dpkg-reconfigure locales
Выбираем "ru_RU.UTF8 UTF8" и нажимаем "OK".
В следующем окне выбираем локализацию для системного окружения (это означает, что например в выводе команды "date" названия дней недели и месяцев будут по русски).
2. Устанавливаем часовой пояс для своего региона.
Смотрим список доступных часовых поясов:
barion@debian-512mb-ams2-01:~$ timedatectl list-timezones | less
Находим в списке название своего часового пояса, пусть например это будет "Europe/Rome". Устанавливаем свой часовой пояс:
barion@debian-512mb-ams2-01:~$ timedatectl
Local time: Пт 2017-08-25 07:12:20 UTC
Universal time: Пт 2017-08-25 07:12:20 UTC
RTC time: Пт 2017-08-25 07:12:20
Time zone: Etc/UTC (UTC, +0000)
Network time on: yes
NTP synchronized: yes
RTC in local TZ: no
barion@debian-512mb-ams2-01:~$ sudo timedatectl set-timezone Europe/Rome
[sudo] пароль для barion:
barion@debian-512mb-ams2-01:~$ timedatectl
Local time: Пт 2017-08-25 09:14:45 CEST
Universal time: Пт 2017-08-25 07:14:45 UTC
RTC time: Пт 2017-08-25 07:14:45
Time zone: Europe/Rome (CEST, +0200)
Network time on: yes
NTP synchronized: yes
RTC in local TZ: no
3. Установим Midnight Commander (Мощный файловый менеджер работающий в текстовой консоли).
barion@debian-512mb-ams2-01:~$ sudo apt-get install mc
После установки запускаем
barion@debian-512mb-ams2-01:~$ mc
Теперь все готово, чтобы установить свой собственный VPN как это описано здесь.
Качаем архив по прямой ссылке:
barion@debian-512mb-ams2-01:~$ wget http://www.softether-download.com/files/softether/v4.22-9634-beta-2016.11.27-tree/Linux/SoftEther_VPN_Server/64bit_-_Intel_x64_or_AMD64/softether-vpnserver-v4.22-9634-beta-2016.11.27-linux-x64-64bit.tar.gz
Распаковываем архив:
barion@debian-512mb-ams2-01:~$ tar -xzf softether-vpnserver-v4.22-9634-beta-2016.11.27-linux-x64-64bit.tar.gz
Переходим в папку vpnserver:
barion@debian-512mb-ams2-01:~$ cd vpnserver
barion@debian-512mb-ams2-01:~/vpnserver$
Для создания vpn сервера нужна команда make, а также компилятор gcc. Установим:
barion@debian-512mb-ams2-01:~/vpnserver$ sudo apt-get install make
barion@debian-512mb-ams2-01:~/vpnserver$ sudo apt-get install gcc
Теперь создадим vpn сервер:
barion@debian-512mb-ams2-01:~/vpnserver$ make
Соглащаемся со всем, для чего три раза выбираем "1". Спустя некоторое время наш vpn сервер готов.
Осталось сделать так, что бы наш vpn сервер стартовал при перезагрузке дроплета. Сделаем это через systemd. Для начала перенесем папку с сервером из домашнего каталога, например в /usr/local
sudo cp -r ~/vpnserver /usr/local/
Теперь создадим файл softether-vpnserver.service в папке /etc/systemd/system
sudo touch /etc/systemd/system/softether-vpnserver.service
Откроем файл в редакторе nano:
sudo nano /etc/systemd/system/softether-vpnserver.service
Поместим туда следующее содержимое:
[Unit]
Description=SoftEther VPN Server
After=network.target auditd.service
ConditionPathExists=!/usr/local/vpnserver/do_not_run
[Service]
Type=forking
EnvironmentFile=-/usr/local/vpnserver
ExecStart=/usr/local/vpnserver/vpnserver start
ExecStop=/usr/local/vpnserver/vpnserver stop
KillMode=process
Restart=on-failure
# Hardening
PrivateTmp=yes
ProtectHome=yes
ProtectSystem=full
ReadOnlyDirectories=/
ReadWriteDirectories=-/usr/local/vpnserver
CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_BROADCAST CAP_NET_RAW CAP_SYS_NICE CAP_SYS_ADMIN CAP_SETUID
[Install]
WantedBy=multi-user.target
Обновим информацию systemd:
barion@debian-512mb-ams2-01:~$ sudo systemctl daemon-reload
Запускаем сервис:
barion@debian-512mb-ams2-01:~$ sudo systemctl start softether-vpnserver.service
Проверяем статус:
barion@debian-512mb-ams2-01:~$ sudo systemctl status softether-vpnserver.service
● softether-vpnserver.service - SoftEther VPN Server
Loaded: loaded (/etc/systemd/system/softether-vpnserver.service; disabled)
Active: active (running) since Сб 2017-08-26 06:40:12 CEST; 41s ago
Process: 7220 ExecStart=/usr/local/vpnserver/vpnserver start (code=exited, status=0/SUCCESS)
Main PID: 7222 (vpnserver)
CGroup: /system.slice/softether-vpnserver.service
├─7222 /usr/local/vpnserver/vpnserver execsvc
└─7223 /usr/local/vpnserver/vpnserver execsvc
авг 26 06:40:12 debian-512mb-ams2-01 vpnserver[7220]: The SoftEther VPN Server service has been started.
авг 26 06:40:12 debian-512mb-ams2-01 systemd[1]: Started SoftEther VPN Server.
barion@debian-512mb-ams2-01:~$
Если все в порядке, добавляем в автозагрузку:
barion@debian-512mb-ams2-01:~$ sudo systemctl enable softether-vpnserver.service
Created symlink from /etc/systemd/system/multi-user.target.wants/softether-vpnserver.service to /etc/systemd/system/softether-vpnserver.service.
Дальнейшая настройка сервера произоводится по упомянутой выше статье.