К основному контенту

Настройка сервера на Scaleway

Для создания сервера на Scaleway потребуется зарегистрироваться, ввести данные своей карты для оплаты, а также сгенерировать ssh ключи. Последние нужны для первоначальной авторизации на свежесозданном сервере.
Как сгенерировать ssh ключ, много написано, ищите ssh-keygen. Под windows можно попробывать Putty, но у меня как-то с ним не срослось. Мне же удобнее использовать программу JuiceSSH на android, удобный клиент, достаточно для работы в терминале.

Создаем в JuiceSSH идентификатор root, генерируем секретный ключ RSA, далее через меню на созданном идентификаторе экспортируем открытый ключ, который необходимо вставить в Поле SSH keys на странице Credentials, жмакаем Use this SSH key.

Далее переходим к созданию сервера. Я выбрал тип сервера VC1S, образ Ubuntu Xenial (16.04 latest), в Advanced Options указываем - использовать ли IPv6.

Всё. Сервер будет создан и запущен через непродолжительное время.

После его запуска, через терминал, где был сгенерирован вами ключ, в моём случае в JuiceSSH, где я создал соответствующее соединение, указал ip нового сервера, соединяемся по ssh, используя сгенерированные ключи.

После входа первым делом создаём пользователя, под которым будете работать:
# useradd -m -G wheel -s /bin/bash user

придумываем ему пароль:
# passwd user

Далее даём права sudo для нового пользователя:
# nano /etc/sudoers

дописываем строчку:
user ALL=(ALL) ALL
потом Ctrl+X, Y, Enter.

Правим конфиг сервера sshd
# nano /etc/ssh/sshd_config
где находим строчку с параметром PasswordAuthentication и приводим к виду:
PasswordAuthentication yes
тем самым разрешив вход по паролю.
При этом строку PermitRootLogin without-password предлагаю оставить в неизменном виде, данная строка запрещает вход пользователю root по паролю.

Далее дописываем конфиг следующей строкой, определяя, кто может ввойти в систему по ssh:
AllowUsers user root
потом сохраняем конфиг Ctrl+X, Y, Enter.

Если всё нормально, перезапускаем сервер sshd:
# systemctl restart sshd.service

Теперь можно перезайти под новым пользователем user по паролю.

Обновляемся..
$ sudo apt update && sudo apt upgrade

Далее, обязательно ставим firewall, например ufw.
$ sudo apt install ufw
Неоднократно сталкивался с тем, что ufw блокирует входящие соединения, даже при наличии соответствующих правил, разрешающих соединения, поэтому использую для себя правило "разрешено всё, что не запрещено".

$ sudo nano /etc/default/ufw
строку DEFAULT_INPUT_POLICY="DROP" приводим к виду DEFAULT_INPUT_POLICY="ACCEPT"

Включаем ufw:
$ sudo ufw enable
Ограничиваем число возможных попыток соединения на порт 22 для ssh:
$ sudo ufw limit 22
Если вы сменили порт на другой, то указываете другой.
Далее блокируем порты диапазоном, за исключением тех, что вам нужны. Например мне нужен ещё открытым 443 порт, поэтому делаю так:
$ sudo ufw deny 01:21/tcp
$ sudo ufw deny 01:21/udp
$ sudo ufw deny 23:442/tcp
$ sudo ufw deny 23:442/udp
$ sudo ufw deny 444:10000/tcp
$ sudo ufw deny 444:10000/udp

для протоколов tcp и udp правила блокировки диапазоном портов нужно указывать отдельно.

Просмотреть правила можно:
$ sudo ufw status numbered
где в квадратных скобкам номер правила, что позволяет по номеру удалить, например, лишнее правило командой ufw delete НОМЕР.

Для повседневной работы с сервером использую kitty.
Настраиваю перенаправлением портов в соответствующей вкладке Tunnels SSH, где в поле Source Port - нужный порт машины, где запущен kitty, например 8384, а Destination указываю как 127.0.0.1:8384, где 8384 - нужный порт на сервере.

Например, таким образом можно настроить http прокси через ваш сервер.
Для этого, устанавливаем polipo:
$ sudo apt install polipo
в настройках конфига polipo:
$ sudo nano /etc/polipo/config
находим соответствующую строку и приводим к виду:
allowedClients = 127.0.0.1
по умолчанию polipo использует порт 8123, можете изменить параметром ProxyPort.
Также отключаем дисковый кэш, разкомментировав строку:
diskCacheRoot = ""
Отключаем локальный веб-сервер polipo:
localDocumentRoot = ""
Сохраняем, включаем службу polipo и запускаем:
$ sudo systemctl enable polipo
$ sudo systemctl start polipo


Теперь с помощью kitty перенаправляем порт 8123 на 127.0.0.1:8123 и настраиваем свой браузер.
Бывает, редко, но бывает, что polipo подвисает, поэтому добавляем в crontab правило для его перезапуска раз в сутки, например в полночь:
$ sudo crontab -e
добавляем строчку:
0 0 * * * systemctl restart polipo

В дальнейшем напишу, как поднять торрент клиент transmission и программу для синхронизации файлов syncthing.

Популярные сообщения из этого блога

Оффлайн (полные) установщики некоторых программ

Очень часто нужны бывают ссылки на скачивание некоторых программ в offline/full виде, оффлайновые (полные) установщики. Здесь список ссылок, часто мною используемых, как памятка:
SkypeYandex БраузерYandex Диск классической версии 1.4Yandex Диск новой версии 3.0Opera БраузерFirefox БраузерThunderbird почтовый клиентOrigin

изменение и обновление Ubuntu LiveCD

Вот заказал через shipit диски Ubuntu Livecd, как всегда при релизах, многие пакеты серьёзно стали обновляться уже после выхода релиза. Вот как раз недавно, обновился Firefox до версии 3 RC в отличии от 5ой беты в релизе. Плюс в Livecd отсутствовали пакеты руссификации, что тоже не очень хорошо. Так почему бы не создать свой Livecd с нужным ПО. Предлагаемый способ не решает проблему с предустановленными настройками пакетов, но позволяет настроить некоторые параметры системы, к примеру, настройки времени по UTC и другое.

Целью модификации диска будет:
удаление ненужных пакетов поддержки других языков;
обновление программного обеспечения по настоящий момент;
подключение нужных репозитариев;
поддержка флеш, mp3, divx, ndiswrapper и т.п.
настройка работы со временем и другие настройки..
В результате может получится образ диска, превышающих размер компакт-диска, поэтому результат нужно будет использовать на DVD.

1. Подготовка:
Для начала нам будет нужен диск LiveCD Ubuntu 8.04 или его образ, также …