четверг, 15 августа 2013 г.

Первоначальная настройка VPS на базе Ubuntu Server

Завел себе очередной VPS для своих проектов. На этот раз выбор пал на компанию KeyWeb.ru. Сервер находится в Германии, но соотношение конфигурация/цена меня привлекли. Так как сервер предоставляется "голым", с предустановленной ОС на выбор (мой выбор - Ubuntu, но информация применима так же к Debian), то нужно его настраивать. Делаю это не часто, так что порой забываю какие-то моменты. Хотел раз и навсегда записать полный лог производимых действий, дабы сделать пошаговую шпаргалку для начинающих админов и юниксоидов. Итак, буду описывать шаги "под себя". Так как изначально дается доступ под root, то первые шаги делаем без всяких sudo. Затем мы запретим коннект из под рута вне локалхоста и настроим судо. Мне комфортнее работать с MC и MCEDIT вместо VIM (раньше пользовлася, но, все таки, он не прижился у меня как инструмент). Соответственно, первым делом ставим Midnight Commander.

Установка MC (Midnight Commander)

Пробуем
$ apt-get install mc  

Говорит, что нет такого в репозивториях. Ну что же, добавляем:

deb http://archive.ubuntu.com/ubuntu/ intrepid main restricted universe
deb-src http://archive.ubuntu.com/ubuntu/ intrepid main restricted universe


В файл /etc/apt/sources.list

Далее просто делаем:

$ apt-get update  

Ну и завершаем установку

$ apt-get install mc  

Все должно пройти просто и гладко.

Настраиваем локали

Смотрим вывод команды locale

LANG=
LANGUAGE=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=



Проверяем, какие локали доступны
cat /usr/share/i18n/SUPPORTED | grep ru

Смотрим, есть ли там интересующие нас локали:
ru_RU.KOI8-R KOI8-R
ru_RU.UTF-8 UTF-8
ru_RU ISO-8859-5
ru_RU.CP1251 CP1251
ru_UA.UTF-8 UTF-8
ru_UA KOI8-U

Устанавливаем:

$ locale-gen ru_RU        
$ locale-gen ru_RU.UTF-8  
$ update-locale           

Можно проверить результат в фале

$ cat /var/lib/locales/supported.d/local

А так же проверяем, что у нас установлено командой locale -a

Командой dpkg-reconfigure locales можно обновить так же локали и перегенерить их.

Далее прописываем локали в /etc/default/locale

LANG="ru_RU.UTF-8"
LANGUAGE="ru_RU:en"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_CTYPE="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"

Теперь нужно перелогиниться, чтобы все заработало. Можно проверить, чтов се ок, выводом команды locale

Если Вы пользуетесь Putty для соединения с сервером (в слуыае, если Вы работаете из под Windows), то Вам следует в разделе Window / Translation / Remote character set выставить UTF-8
Логинимся, запускаем MC и наслаждаемся русифицированной версие Midnight Commander.

Настройка SCREEN

Я не представляю себе нормальной жизни на сервере без оконного менеджера SCREEN. На VPS от KEYWEB он уже был установлен (вроде как идет в поставке с ОС, но всякое бывает), так что процесс установки описывать не буду. Минимальная настройка, чтобы были видны табы:

mcedit ~/.screenrc

Вписывем

caption string "%{rk} %c %{dd} %{+b M}%n %{-b dd}%-w%{+b B.}%n* %t%{-}%+w%<"
caption always

Запускаем screen и переходим к настройке прав доступа и созданию пользователей.

Создаем рабочего пользователя и настраиваем SSH.
Добавляем нашего пользователя oxy командой

$ useradd oxy                                
$ mkdir /home/oxy                            
$ chown oxy:oxy /home/oxy                    
$ passwd oxy                                 
# Вводим пароль для нашего пользователя      

Редактируем файл /etc/passwd дописывая в конец строки с нашим пользователем вместо /bin/sh командную среду /bin/bash

Теперь нужно запретить возможность логиниться из под root через SSH
Редактируем /etc/ssh/sshd_config

# Authentication:
LoginGraceTime 120
PermitRootLogin no
StrictModes yes

далее применяем изменения

$ /etc/init.d/ssh reload   

Открываем новую сессию по SSH и пробуем войти по рутом (этого не должно получиться) и затем пробуем войти под нашим пользователем. Теперь все операции из под рута можно делать либо через sudo (если он настроен), либо через вход через su.
Незабываем сменить пароль через passwd для рута на свой, вместо выданного хостером (который светится в биллинг панели).

Украшаем консоль

У меня есть свой любимый стиль отображения консоли и пара полезностей. Открываем в mcedit ~/.bashrc и вписываем:

if [ -f /etc/bashrc ];then . /etc/bashrc;fi
if [ -f /etc/bash_completion ];then . /etc/bash_completion;fi

umask 002
HISTCONTROL=ignoreboth
declare -x EDITOR=mcedit

pingrf()
{
    ping $(idn --quiet "$@")
}

PS1='\[\e[1;32m\][ \A\[\e[m\] <\u@\h> \[\e[1;34m\]\w\[\e[m\] \[\e[1;32m\]]\n[ bash: \[\e[m\]\[\e[0;32m\]'

Применяем изменения через  $ source ~/.bashrc   или    $  . ~/.bashrc    

Для root в /root/.bashrc находится немного модифицированная строка

PS1='\[\e[0;33m\][ \A\[\e[m\] <\u@\h> \[\e[0;33m\]\w\[\e[m\] \[\e[0;31m\]]\n[ bash: \[\e[m\]\[\e[1;31m\]'

В результате, при входе через root консоль окрашивается красными буквами, что позволяет осознать всю опасноть =).

Настраиваем HTTP сервер

Далее я останавливаю предустановленный Appache, качаю последнюю версию Nginx, и устанавливаю его. Тут все делается по инструкции, так что проблем не должно быть. Пример конфига для сборки:

./configure \
    --sbin-path=/usr/local/nginx/nginx \
    --conf-path=/etc/nginx/nginx.conf \
    --error-log-path=/var/log/nginx/error.log \
    --http-log-path=/var/log/nginx/access.log \
    --user=www-data \
    --group=www-data \
    --with-http_ssl_module \
    --with-pcre=/root/pcre-8.32 \
    --with-pcre-jit \
    --with-zlib=/root/zlib-1.2.7 \
    --with-http_gzip_static_module \



Комментариев нет:

Отправить комментарий