Настройка VDS на Hetzner с дистрибутивом Ubuntu 12.04. Памятка.

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

Сразу после установки получаем работающего пользователя root, из под которого управляем системой без использования su. И получаем к нему доступ сразу по ssh после ввода пароля.

Любой админ знает, что это очень опасно. Т.к. если злоумышленнику удастся скомпрометировать ваш пароль, он получит доступ ко всей системе.

Настройка ssh

Для начала нам надо позволить себе заходить на сервер без ввода пароля. Открываем на локальной машине ~/.ssh/config и добавляем туда запись вида:

Host hetzner
    Hostname
    User root

Если нет своего ключа, то для его создания может потребоваться примерно такая команда:

ssh-keygen -b 1024 -t dsa

После этого можем добавить на сервер свой публичный ключ:

ssh-copy-id hetzner

На вопрос отвечаем yes и вводим свой пароль. После этого можно входить на сервер без пароля:

ssh hetzner

Убираем вход по root Когда мы научились продвинутому использованию ssh, в первую очередь надо исправить проблему входа из-под root. И заодно выполнить рекомендации хостера: "For your own security, we advise you to change your login data as soon as possible."

Для этого создадим нового пользователя:

useradd username

Создадим ему домашнюю директорию:

mkdir /home/username

Зададим новому пользователю пароль:

passwd username

Выставим права на домашнюю директорию:

chown username:username /home/username

Позволим нашему пользователю пользоваться привилегиями суперпользователя:

adduser username sudo

Чтобы забрать у пользователя права администратора, достаточно удалить его из группы sudo:

gpasswd -d username sudo

Теперь выйдем с сервера:

exit

Скопируем в профиль нового пользователя публичный ключ, чтобы мы так же могли заходить без ввода пароля:

ssh-copy-id username@hetzner

Надо будет ввести пароль, заданный для пользователя.

Далее, командой ssh username@hetzner мы можем уже войти на сервер под нашим профилем. Но, это опять же не очень удобно. Мы хотим всегда заходить на сервер из под этого пользователя. Для этого снова откроем локальный файл настроек ssh:

nano ~/.ssh/config

и добавленную ранее строку исправим на:

Host hetzner
    Hostname
    User username

После этих простых манипуляций мы заходим по команде

ssh hetzner

на наш удаленный vds без ввода пароля под нашим пользователем. Чтобы получить root-доступ, необходимо выполнить: $ sudo {command} для одной команды. После чего нужно будет ввести пароль нашего пользователя (здесь без пароля не обойтись; даже если кто-то сможет попасть на vds через наш локальный ПК, он не сможет без пароля сломать настройки). Чтобы получить привилегированный доступ для выполнения нескольких команд, и не вводить каждый раз sudo {command}, можно воспользоваться командой $ sudo su которая сделает нас на время суперпользователем. Работая в этом режиме нужно быть крайне осторожным, т.к. одним не верным движением можно снести всю систему.

Теперь, для большей надежности, нам надо предотвратить прямой вход на ssh из-под аккаунта root. Сделать это можно удалив пароль у пользователя root:

sudo passwd -l root

Теперь, чтобы прикрыть возможность входа под суперпользователем по ssh без ввода пароля, которую мы создали, просто удалим файл:

sudo rm /root/.ssh/authorized_keys

На этом мы сделали возможным управление сервером только из под созданного нами пользователя.

Настройка bash

По умолчанию для нашего пользователя подключается оболочка /bin/ch Мне так привычнее работать с /bin/bash, т.к. в нем работают автозаполнение и история введенных команд. Чтобы сделать bash оболочкой по умолчанию, надо выполнить команду:

chsh

На что будет запрошен пароль и после успешного ввода предложено выбрать новую оболочку:

Password:
Changing the login shell for username
Enter the new value, or press ENTER for the default
    Login Shell [/bin/sh]: /bin/bash

Я ввел /bin/bash

Если будут затруднения, в виде ошибки

You may not change the shell for 'username'.

Можно воспользоваться такой командой:

sudo chsh -s /bin/bash username

Теперь можно перелогиниться, и увидеть, что выбран именно bash ))

Если мы хотим иметь такое же оформление для приглашения командной строки, как было у root, то нам всего лишь достаточно скопировать к себе в домашний каталог соответствующие файлы настройки bash из домашнего каталога root и выставить себя их владельцами:

sudo cp -v /root/.bashrc /root/.profile /home/username
sudo chown username:username /home/username/.*

Теперь мы можем перелогиниться, и лицезреть красочное приглашение командной строки

Меняем название хоста

По умолчанию bash на хетзнере пишет такое приглашение:

username@Ubuntu-1204-precise-32-minimal ~ $

Мне тяжело видеть такую длинную надпись, и поэтому было решено заменить и ее тоже. Это оказалось возможно простой командой:

sudo hostname hetzner-vds

Но, как выяснилось по ссылке, чтобы новое имя применялось постоянно, необходимо отредактировать файл:

sudo nano /etc/hostname

и прописать в него нужное нам значение на место старого. Теперь, после перезагрузки vds будет показано то, что прописано в /etc/hostname

Но, это еще не все. Нам также надо открыть файл hosts:

sudo nano /etc/hosts

найти в нем все упоминания старого имени хоста, и заменить их на новое. После этого можно переподнять сеть:

sudo /etc/init.d/networking restart

Настройка apt-get

Для того, чтобы пользоваться последними версиями софта, порой приходиться брать их из неофициальных репозиториев. Но, попытавшись добавить новый репозиторий обнаруживается, что не работает команда add-apt-repository ppa:репозиторий/ppa. Для ее добавления нужно выполнить:

sudo apt-get update
sudo apt-get install python-software-properties
sudo apt-get install software-properties-common

После этого появляется возможность добавлять новые репозитории.

Настройка русской локали:

sudo apt-get install language-pack-ru-base
sudo locale-gen

Настройка php

Для работы проектов мне необходим php 5.6. Для этого проводим следующие действия:

add-apt-repository ppa:ondrej/php
apt-get update
apt-get install php5.6

После выполнения этих действий появляется PHP последней (или почти последней) версии. Проверить можно:

php -v

Установка MySQL

Вместо MySQL я бы рекомендовал установить PerconaDB.

sudo apt-get install mysql-server mysql-client

Прочитать про создание нового пользователя

Настройка отправки писем

Если мы хотим отправлять письма по взрослому, то нам потребуется свой домен. В его dns-зонах надо прописать адрес нашего сервера, а на сервере, в качестве hostname указать этот домен. Как это делается, написано выше.

Для этого могу рекомендовать лаконичную утилиту ssmtp:

sudo apt-get install ssmtp

И скрипты на php станут успешно отправлять почту через функцию mail.


Создано:
Автор:
« Назад на главную

comments powered by Disqus