Nginx установка и настройка. Тонкая настройка Nginx. Защита, оптимизация. Отключи показ версии сервера на всех ошибочных страницах

Первое звено в нашем стенде! В этой статье мы разберемся откуда брать установочный образ, посмотрим системные требования, пошагово рассмотрим установку Ubuntu Server 16.04.4 LTS , а так же впервые его запустим. Проверим сеть и рассмотрим базовые команды для перезагрузки и выключения нашего новенького сервера.

Где скачать?

Скачать Ubuntu Server 16.04.4 LTS можно с двух официальных сайтов, на каждом из них есть раздел Download. Ссылки на этот раздел приведены ниже:

Рис.1 - Скачать Ubuntu Server 16.04.4 LTS с сайта Ubuntu.ru
Рис.2 - Скачать Ubuntu Server 16.04.4 LTS с сайта Ubuntu.com

Подготовка к установке.

Я скачал Ubuntu Server 16.04.4 64-bit в виде iso-образа ubuntu-16.04.4-server-amd64.iso

Системные требования.

Тип установки Процессор ОЗУ Место на жестком диске
Базовая установка Установлены все модули
Стандартная 1 Ггц 512 Мб 1,5 Гб 2,5 Гб
Минимальная 300 Mгц 384 Мб 1,5 Гб 2,5 Гб

Установка Ubuntu Server.

Шаг 1. - Выбор языка.

Выбираем язык интерфейса установки.(Рис.3)


Рис.3 - Выбираем язык интерфейса установки Ubuntu Server.

Шаг 2. - Меню установщика Ubuntu.

Выбираем "Установить Ubuntu Server " .(Рис.4) Идем далее...

Статья конечно не про обзор Меню установщика Ubuntu Server, но стоит отметить что для диагностики, тут есть полезные функции:

  • Проверить диск на наличие ошибок,
  • Проверить память.

Рис.4 - Меню установщика Ubuntu.

Шаг 3. - Выбор локации.

Так как курсора мыши тут нет, переход по элементам, выбор и подтверждение действий осуществляется с клавиатуры:

  • - переход по элементам;
  • <Пробел> - выбор;
  • - активация кнопок;

Выбираем страну в которой мы живём. Я живу в России , поэтому выбираю "Российская Федерация " .(Рис.5)

Выбранное местоположение будет учтено при настройке часового пояса и создании списка при выборе системной локации.

Данный сокращённый список основан на выбранном языке. Выберете "Другая " , если вашего местоположения нет в списке.


Рис.5 - Выбор локации.

Шаг 4. - Настройка клавиатуры.

Первым делом нам предлагают настроить раскладку , нажимая клавиши клавиатуры. - На экране появятся символы и вы должны будете их ввести на клавиатуре, в итоге определится раскладка вам останется только её подтвердить.

Мы рассмотрим выбор нужной нам раскладки вручную, следовательно, в диалоговом окне нажимаем "Нет " .(Рис.6)


Рис.6 - Определение раскладки нажимая клавиши.

Перед нами появляется список стран, нужно выбрать страну для которой произведена клавиатура(Рис.7), так как на моей клавиатуре русские буквы значит я выбираю "Russian " . Далее из списка разных региональных и системных раскладок выбираем нужную нам я выбираю обычную русскую - "Russian ". (Рис.8)


Рис.7 - Список "Выбор страны", для которой произведена клавиатура. Рис.8 - Список "Выбор раскладки".

Финальная настройка клавиатуры - указание способа переключения между национальной раскладкой и стандартной латинской. Лично мне нравится стандартный метод переключения языков, я его и выбираю - "Alt+Shift " .(Рис.9)


Рис.9 - Указание способа переключения языков.

Шаг 5. - Имя компьютера.

В диалоговом окне "Настройка сети" нас просят ввести "Имя компьютера". "Имя компьютера" - это одно слово предназначенное для идентификации нашей системы в сети. Я ввожу - "ubuntuserver" , вы можете сами что-нибудь придумать. Жмём "Продолжить " .(Рис.10)


Рис.10 - Имя компьютера.

Шаг 6. - Настройка учётных записей пользователей и паролей.

В окне "Настройка учётных записей и паролей" нас просят ввести данные для создания учётной записи, которая будет использоваться вместо учетной записи суперпользователя (root), для выполнения всех действий не связанных с администрированием.

Для начала просят ввести реальное имя пользователя . я ввожу - "FirstDeer" (Рис.11)


Рис.11 - Вводим реальное имя пользователя для учетной записи.
Рис.12 - Вводим имя пользователя/логин учетной записи.

Вводим пароль, без него никак. Можете нажать "Посмотреть Пароль "/"Show Password in Clear " , для того чтоб убедиться что вводите пароль в нужной вам языковой раскладке.(Рис.13) Проверка правильности ввода осуществляется путем повторного ввода пароля и сравнения результатов, поэтому после первого ввода пароля нас ожидает второе такое же окно, где нужно будет подтвердить пароль.(Рис.14)


Рис.13 - Вводим пароль учётной записи.
Рис.14 - Подтверждаем пароль учётной записи.
Рис.15 - Зашифровать домашний каталог?

Шаг 7. - Настройка времени.

<перевод> (Рис.16) "На основе вашего текущего физического местоположения, ваш часовой пояс - Европа/Москва .
Если это неверно, вы можете выбрать из полного списка часовых поясов.
Правильно ли выбран часовой пояс?"

В Санкт-Петербурге время московское, а значит все выбрано верно. Если ваш часовой пояс отличный от Москвы, то нажмите "Нет " и выберете свой часовой пояс в полном списке. Я жму "Да " . Идём далее.


Рис.16 - Подтверждение часового пояса.

Шаг 8. - Разметка диска.

Если вам интересен метод разметки "Вручную " - то приглашаю к прочтению отдельной статьи - , уж слишком много бессмысленных скриншотов в ней, не хочется захламлять основную статью:)

Переходим к разметке диска, так как объём диска у нас небольшой и рядом нет никаких установленных систем, то я выбираю "Авто - использовать весь диск и настроить LVM " .(Рис.17)

LVM(Logical Volume Management) - система управления дисковым пространством, позволяющая объединить несколько жестких дисков в единый пул дискового пространства, а после распределить это дисковое пространство на логические разделы.(Т.е. если вдруг на одном из разделов закончится место, мы сможем вставить дополнительный жесткий диск и расширить раздел, для серверов эта функция необходима.)


Рис.17 - Выбор метода разметки диска.
Рис.18 - Выбор жёсткого диска.

Перед настройкой логических томов предлагается записать таблицу разделов на диск, это уничтожит все данные с диска . (Рис.19)


Рис.19 - Запись информации о разделах.

Выберете размер группы томов используемый для установки. Минимальный размер который вы можете указать - 1.9 GB , но учтите что, установка выбранных вами пакетов может потребовать большего места. Максимально доступный размер это размер жесткого диска , в моем случае это - 21 GB . я оставляю всё как есть 21.0 GB - уже вписан. Жму "Продолжить " .(Рис.20)


Рис.20 - Выбор размера группы томов.

Перед нами список настроенных разделов и их точек монтирования. Если вы хотите подкорректировать разделы, то можете нажать на любой из них и изменить его настройки. Меня всё устраивает. Жму "Закончить разметку и записать изменения на диск " .(Рис.21)


Рис.21 - Окно "Ручная корректировка разделов".
Рис.22 - Записать изменения на диск?

Шаг 9. - Установка системы.

Дождитесь окончания установки системы.(Рис.23)


Рис.23 - Установка системы.

Шаг 10. - Настройка прокси.

Если для доступа к интернету вам требуется прокси сервер, то укажите информацию о нем в поле.(Рис.24)

Если нет - не указывайте. Я не указываю. Жму "Продолжить " .


Рис.24 - Указание прокси сервера.

Шаг 11. - Обновления.

Дождитесь окончания автоматического применения обновлений.(Рис.25)


Рис.25 - Применение обновлений.

Выбираем каким образом мы хотим управлять обновлениями. Лично мне больше нравится когда я сам решаю когда мне установить обновления. по этому выбираю первый пункт. Жму "Enter " .(Рис.26)


Рис.26 - Выбор параметров обновления.

Шаг 12. - Выбор программного обеспечения.

Выбор программного обеспечения которое вы хотите установить на сервер. По умолчанию стоит выбор только на "стандартных системных утилитах/standart system utilites" . Я не пробовал, но по моему этот выбор нельзя снять.(Рис.27)

Я ничего, из нестандартного, выбирать не буду. так как собираюсь в дальнейшем показать вам установку "вручную" каждого, из предоставленного в выборе, программного обеспечения. Жму "Продолжить " . И ждём, пока завершится установка выбранного программного обеспечения.(Рис.28)


Рис.27 - Выбор программного обеспечения.
Рис.28 - Установка программного обеспечения.

Шаг 13. - Установка системного загрузчика GRUB.

Ждем пока установится системный загрузчик GRUB .(Рис.29) Внимательно читаем (Рис.30) первый абзац. Наша Ubuntu Server не будет соседствовать с другими операционными системами, а значит смело устанавливаем GRUB в главную загрузочную запись. Жмём "Да " .


Рис.29 - Установка системного загрузчика GRUB.
Рис.30 - Выбор места установки GRUB.

Шаг 14. - Завершение программы установки.

Ждём финальную установку и настройку.(Рис.31)


Рис.31 - Финальная установка и настройка.

Пришло время загрузить нашу новую систему. Извлекаем все установочные носители и жмём "Продолжить " .(Рис.32)


Рис.32 - Завершение установки.

Первый запуск.

Шаг 1. - Авторизация.

После перезагрузки нас встречают две строки.(Рис.33)

В первой строке мы видим:

  • Версию операционной системы: Ubuntu 16.04.4 LTS
  • Hostname (Сетевое имя сервера): ubuntuserver
  • Первый виртуальный терминал: tty1

Рис.33 - Первое включение. Авторизация.

Вводим логин/login : firstdeer

И пароль/Password : - при вводе пароля UNIX системы не показывают количество введенных символов(***), мы вводим пароль и не должны замечать никаких изменений на экране.

После ввода жмём "Enter " . Вот и все мы авторизовались.(Рис.34)


Рис.34 - Авторизация.

Шаг 2. - Проверка сети.

Первым делом хочется проверить сеть, делается это при помощи команды:

Ifconfig

Видим нашу сетевую карту "ens33" ,она может другое название зачастую это "eth0" .

И видим, что определился IP адрес в локальной сети - inet addr:192.168.3.9 .(Рис.35)


Рис.35 - Проверка сети командой ifconfig.

Так как в нашей локальной сети есть интернет можно проверить внешний ping. Будем пинговать DNS-сервер Google его IP адрес - 8.8.8.8 . Вводим команду:

Ping 8.8.8.8

Пинги идут! ответ приходит, значит доступ в интернет у нас есть, следовательно сетевая карта настроена правильно.(Рис.36)


Рис.36 - Проверка ping.

Logout/Разлогиниться/Завершить сессию.

Это руководство о том, как подготовить сервер Ubuntu 9.10 (Karmic Koala) и установить на него ISPConfig 3. ISPConfig 3 - это панель управления веб-хостингом, которая позволяет вам управлять через веб-браузер следующими услугами: веб-сервером Apache, почтовым сервером Postfix, сервером баз данных MySQL, сервером имён MyDNS, файловым сервером PureFTPd, антиспамом SpamAssassin, антивирусом ClamAV и много чем ещё.

Обратите внимание, что это описание не работает для ISPConfig 2, оно действительно только для ISPConfig 3!

Требования

Предварительное замечание

В руководстве я использую имя хоста server1.example.com с IP-адресом 192.168.0.100 и шлюзом 192.168.0.1. У вас эти параметры могут отличаться, так что вам нужно будет их заменить, где необходимо.

Установка основной системы

Вставьте ваш установочный диск Ubuntu в привод и загрузитесь с него. Выберите язык установки, затем «Установить сервер Ubuntu»:

Выберите свой язык (снова), местоположение и раскладку клавиатуры.

Установщик проверит диск и ваше оборудование, настроит сеть с использованием DHCP , если, конечно, сервер DHCP присутствует в сети:

Введите имя своего компьютера. В этом примере моя система называлась server1.example.com, поэтому я ввожу server1:

Теперь вы должны разметить свой жёсткий диск. Для простоты я выбираю «Авто - использовать весь диск и настроить LVM». Это создаст один раздел с двумя логическими дисками: один - для корневой файловой системы (/), другой - для раздела подкачки (swap). Конечно, разметка - полностью ваше дело, поэтому, если знаете, что делаете, вы можете также разметить диск вручную. Если вы сделаете отдельными разделы /home и /var, в будущем вам это может пригодиться.

Выберите диск для разметки и на вопрос «Записать изменения на диск и изменить LVM?» ответьте «Да».

Если вы выбрали «Авто - использовать весь диск и настроить LVM», программа разметки создаст один большой раздел, используя всё дисковое пространство. Теперь вы можете определить, сколько из этого дискового пространства должно использоваться логическими дисками (/) и (swap). Имеет смысл оставить некоторое место неиспользованным, позже вы сможете расширить свои существующие логические диски или создать новые. Это даёт больше гибкости.

Когда закончите, на вопрос «Записать изменения на диск?» нужно ответить «Да»:

Будут созданы и отформатированы ваши новые разделы:

Затем будет устанавливаться основная система:

Создайте пользователя, например, Administrator, с пользовательским именем administrator. Не используйте в качестве имени пользователя admin, поскольку это зарезервированное имя в Ubuntu 9.10.

Я не нуждаюсь в шифровании домашней папки, поэтому здесь я выбрал «Нет»:

Я немного старомоден, и мне нравится обновлять мои серверы вручную, чтобы иметь больше контроля, поэтому я не включаю автоматические обновления. Конечно же, ваш выбор остаётся за вами.

Нам необходимы серверы DNS , Mail и LAMP, однако, сейчас я не выбираю ни один из них, потому что мне нравится иметь полный контроль над тем, что установлено в моей системе. Необходимые пакеты мы установим позже вручную. Единственный пункт, который я здесь отмечаю, это «OpenSSH server». Он понадобится мне для соединения с системой после окончания установки при помощи клиента SSH , такого как Putty:

Итак, установка основной системы закончена. Извлеките установочный диск из привода и выберите «Продолжить», чтобы перезагрузить систему:

В следующем месяце мы установим сервер SSH и vim-nox, используя нашу учётную запись администратора, а также настроим сеть.

Поднять веб-сервер Apache с php и MySQL на Ubuntu проще простого. Можно поставить LAMP. Первый вариант в подробном описании не нуждается, а вот про второй я сейчас напишу. Установка пройдет в несколько этапов. Для начала нам нужно зарегистрировать домен у какого-нибудь регистратора доменных имен, например www.sweb.ru Я им пользуюсь уже больше 5 лет. Рассмотрим перенос на собственный сервер вымышленного домена www.mysite.ru Я делал все на живой машине, а не на виртуальном сервере, поэтому для переноса на свой сервер у вас должен быть хотя бы один выделенный внешний ip.

Не забудте прописать в админке вашего хостера dns для вашего домена в виде внешнего ip, прикреплённого к вашему серверу.

Устанавливаем Ubuntu Server 10.04.3 , именно на ней я и создавал web server. Я знаю, есть много других дистрибутивов, но мне по душе ubuntu. Особое внимание при установке обратите на настройку сети (DHCP ), её лучше настраивать вручную. Также на последнем этапе когда вас попросят выделить из списка пакеты (почтовый сервер, lamp, ssh, java… прочее) выберите только ssh, остальное вам не нужно.

Во время установки сервера, если вдруг что-то пошло не так при установке какого либо пакета, его можно удалить. Для этого надо в консоли написать:

apt-get purge "тут название пакета для удаления"

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

sudo apt-get install apache2

Если все прошло без ошибок, сервер сразу загрузится и будет в рабочем состоянии. У меня сеть с внутренними ip и с привязанными к ним провайдером внешними ip. Поэтому набрав на другом компьютере внешний ip мы попадаем на страницу с текстом «It works!» , значит все получилось. Файлы хоста находятся в папке /var/www , нам это ни к чему. По крайней мере я решил что все данные лучше хранить в папке /home . Поэтому в дальнейшем перенесем наши папки доменов в раздел home .

Для управления сервером Apache мы можем воспользоваться утилитой apache2ctl . Например, можно просмотреть текущий статус сервера Apache, выполнив команду:

apache2ctl status - состояние сервера
sudo apache2ctl stop - остановить
sudo apache2ctl start - запустить
sudo apache2ctl restart - перезапустить

Есть и другие команды для этих же целей:

sudo /etc/init.d/apache2 status - состояние сервера
sudo /etc/init.d/apache2 stop - остановить
sudo /etc/init.d/apache2 start - запустить
sudo /etc/init.d/apache2 restart - перезапустить

Установка PHP

Сразу установим библиотеки для работы с мускулом и библиотеки для работы с графикой:

sudo apt-get install php5 libapache2-mod-php5 libapache2-mod-auth-mysql php5-mysql imagemagick

некоторые мануалы пишут еще об одном пакете: php-image-graph но у меня он не установился, написал что не доступен, поэтому я не стал разбираться почему, заработало и так. :)

Чтобы Apache подхватил только что установленный PHP перезагрузим его командой:

sudo apache2ctl restart или sudo /etc/init.d/apache2 restart

Установка MySQL

sudo apt-get install mysql-server

Во время установки MySQL, появится окошко, в которое нужно ввести пароль. По умолчанию MySQL создает административного пользователя с именем root. В это окошко нужно вписать пароль для этого пользователя и нажать Enter, затем повторно ввести пароль. Не забудьте записать пароль.

Если хотите поменять пароль на Mysql, это я к тому, что если вы ставили русскую версию ubuntu то иногда непонятно на каком языке вы вводите, то заменить можно так:

mysql -uroot –p

SET PASSWORD FOR root@localhost=PASSWORD("123456789");

вводим quit

Вообще все перезагружается автоматом, но если вдруг, то перезагружаем:

Mysql /etc/init.d/mysql restart

пробуем зайти под новым паролем.

Установка PhpMyAdmin

Для удобства управления базами данных установим phpMyAdmin. Большинство админов его не ставят, предпочитая работать с консолью, и сетуя на множество дырок, но он удобен и если сделать его доступным только для определенного ip либо так чтобы никто не смог набрав в браузере ip или имя домена перейти на него, то проблем нету.

sudo apt-get install phpmyadmin

В конце установки появится окошко, в котором нужно выбрать сервер apache2 (клавишей пробел) и нажать Enter. Далее вам предложат создать базу данных для phpMyAdmin. Выберите Да и нажмите Enter. Далее введите пароль административной учетной. Затем введите пароль для регистрации phpMyAdmin на сервере баз данных и в следующем окошке подтверждение пароля.

Панель управления phpMyAdmin будет доступна по адресу http://ваш_ip/phpmyadmin. В качестве имени пользователя введите root, а пароль тот, который вы указали для пользователя root при установке MySQL.

Для ограничения доступа к PhpMyAdmin вам надо выполнить несколько действий. Во-первых давайте скроем доступ к управлению базами данных через http://ваш_ip/phpmyadmin Отредактируем файл /etc/apache2/conf.d/phpmyadmin.conf в котором надо:

1. Изменить Alias /phpmyadmin на что нибудь своё, например Alias /skdjfhefjdv что не позволит злоумышленнику, если ваш сайт имеет выход в интернет, получить доступ к phpmyadmin из вне и натворить там не весть что.

2. В корневую дирректорию phpmyadmin которая находиться в /usr/share/phpmyadmin/ надо положить файл.htaccess со следующими данными:

deny from all
allow from ваш_IP

Теперь в phpMyadmin можно будет заходить с определённого ip.

Теперь создадим свой сайт www.mysite.ru . Создадим директорию для всех ваших сайтов, а заодно и для www.mysite.ru :

mkdir -p ~/www/mysite.ru/public_html

Данной командой мы создали общую www и в ней папку домена с папкой для файлов сайта, в директории /home .

Теперь сообщим апачу о новом сайте. Создаём файл:

sudo nano /etc/apache2/sites-available/mysite.ru

И вписываем туда следующие строки:


ServerName mysite.ru
ServerAdmin webmaster@localhost

DocumentRoot /home/username/www/mysite.ru/public_html

Options FollowSymLinks
AllowOverride None


Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all

ErrorLog /var/log/apache2/error.log

CustomLog /var/log/apache2/access.log combined

Сохраняем файл. Теперь нужно сообщить апачу, что сайт нужно обслуживать. Пишем в терминал:

sudo a2ensite mysite.ru

А затем перезагрузим его:

sudo /etc/init.d/apache2 reload

Теперь нам нужно, что бы при вводе в браузере адреса mysite.ru открывался наш локальный сайт, а не с интернета. Поэтому открываем файл hosts.

  • Tutorial

Привет, Хабр! В ходе обсуждения одной статьи про «идеальную» домашнюю сеть, возник спор, что лучше, аппаратный NAS или мини-компьютер с Linux дистрибутивом. Автор предлагал использовать аппаратный NAS, т. к. якобы он проще в администрировании, не требует знаний Linux, да и вообще NAS тихий. Но при этом, для просмотра на DLNA-телевизоре видео, который он не поддерживает, предлагал включать ноутбук с транскодирующим DLNA. Меня это, мягко говоря, удивило, т. к. в идеальной сети такого быть не должно. Поэтому хочу представить своё видение одного из ключевых компонентов домашней сети - централизованного хранилища данных, и основано оно будет на мини-ПК с ОС Ubuntu Server.

Что нам нужно?

В первую очередь от NAS требуется, конечно, надёжное хранение данных и удобный доступ ним. В первую очередь для надёжности необходим RAID, потому как потерять весь домашний медиа-архив из-за отказавшего жёсткого диска как минимум глупо. Для доступа к данным необходимо настроить FTP и Samba-доступ. Конечно потребности у каждого свои, поэтому если вы используете MacOS или Linux, то вам наверняка больше потребуются другие протоколы (NFS, AFP), я же опишу настройку так, как я её делал для себя.
Для доступа к медиа-данным со smart-телевизоров, нам потребуется DLNA-сервер. А для для удобства скачивания, нам нужен torrent-клиент. Ну и желательно всё это администрировать через веб-интерфейс.

Почему не аппаратный NAS?

Казалось бы, производители давно позаботились о пользователях, и давно выпускают готовые коробочки специально для домашнего применения. Но у них есть недостатки:
1) Они дорогие. Вы вряд ли найдёте дешевле 20000 руб. NAS c возможностью подключения 4-х жёстких дисков, с процессором Atom. Те, что стоят недорого, в них обычно применяется слабенький процессор, которого уже не хватет на тот же torrent при одновременном скачивании двух потоков данных (просмотр фильма по DLNA и копирование, например, фоток). Собрать же полноценный мини-ПК на основе mini-ITX материнской плате с Atom и 4 Гбайтами памяти у меня получилось всего за 6000 рублей!
2) Они ограничены. То есть в нём предусмотрены только те функции, которые заложил производитель. Чтобы расширить его возможности, обычно требуются «танцы с бубном», т. к. ядро в прошивке бывает сильно урезанным. Применяя же Ubuntu, вы практически ничем не ограничены - огромный репозитарий всевозможного софта позволит вам сделать из вашего сервера всё что угодно, вплоть до поднятия виртуальных машин.

Почему не FreeNAS или OpenFiler?

Спросите вы. Во-первых, смотри пункт №2 недостатков аппаратных NAS, то есть наращивание функционала данных дистрибутивов очень проблематично, тогда как у Ubuntu есть огромный репозитарий уже настроенного софта. Во-вторых, это огромные системные требования, в частности FreeNAS 8 требует минимум 2 Гб оперативной памяти, а новые версии OpenFiler вообще уже не выпускают под x86-архитектуру. Кроме того у FreeNAS как-то не гладко идёт развитие - версия 0.7 который имеет торрент клиент и DLNA-сервер давно устарела, в восьмой, коммерческой версии мне так и не удалось настроить DLNA, да и с предлагающейся файловой системой ZFS как то сложно, в случае отказа системы, как прикажете восстанавливать данные? Сложно.

Почему выбран дистрибутив Server 12.04 LTS?

LTS (Long Term Support) - это дистрибутив с длительным периодом поддержки и выпуском обновлений. Так как нам нужен сервер, который, по возможности, единожды настроив, мог бы спокойно работать в дальнейшем годами, то выбирать лучше именно эту версию дистрибутива.
Server версия выбрана очевидно, т. к. в идеале нам совершенно не нужно растрачивать ресурсы на графическую оболочку. Хотя если вы, пока только знакомитесь с linux, или уже работали с desktop-версией ubuntu, то в принципе можете выбрать и обычную версию дистрибутива, это не принципиально.

Начнём

Установка вполне прозрачна, поэтому особо подробно описывать её не буду. Подробнее лишь остановлюсь на разбивке жёстких дисков.


Я взял бюджетную материнскую плату без поддержки аппаратного RAID, да и на моей практике аппаратный RAID встроенный в материнскую плату часто показывает себя не с лучшей стороны, поэтому организовывать мы будем так называемый «программный» RAID. Для хранения данных будут использоваться два новеньких жёстких диска. Лишних носителей информации у меня не оказалось, поэтому диск буду разбивать на два раздела, один из которых будет системным, а второй - для данных. Оба раздела на двух жёстких дисках будут объединены в RAID 1 (все операции для удобства я выполняю на виртуальной машине, так что не обращайте внимание на маленький размер разделов).
Сначала создаём таблицу разделов на первом диске и разбиваем его на две части. Помечаем их как «раздел для RAID», хотя это и не обязательно.


Аналогично разбивается и второй диск. После чего выбираем пункт «Настройка программного RAID». Говорим «Создать MD-устройство», выбираем первые разделы на двух дисках. Аналогично с разделами для данных. К слову, RAID можно динамично менять и расширять, поэтому если у вас пока только один жёсткий, но планируете покупку второго - смело настраивайте, после покупки запросто сможете его подцепить.


После создания RAID, помечаем их для использования. Выбираем файловую систему ext4, и назначаем точки монтирования: системный раздел как корень (/), а раздел данных в произвольное место (я предпочитаю монтировать в папку /mnt).


Дальше система известит, хотим ли мы загружать систему если RAID-массив отказал. Советую ответить «нет», т. к. если откажет жёсткий диск, вы это даже не заметите - система продолжит работать с одним диском, но если откажет и второй диск, то тут придётся нести их в фирму по восстановлению данных.

Раздел подкачки создавать не буду, т. к. во-первых его можно сделать файлом, а во-вторых лично мне он не нужен - на моём мини-ПК установлено 4 Гб, при этом использование памяти никогда не превышало более 10% (400 Мбайт), а в обычном состоянии и того меньше (прямо сейчас используется всего 130 Мбайт). Хотя если вы планируете поднимать виртуальные машины, возможно, она вам и понадобится, поэтому после установки я опишу как создать файл подкачки, сейчас же на предложение создать swap-раздел отвечаем отрицательно.

После непродолжительного процесса копирования файлов система начнёт обновлять данные с репозитариев, а после спросит, каким образом будут устанавливаться обновления. Так как у нас администрирование системы сводится к минимуму, выбираем автоматическое обновление. Затем система спросит, какие пакеты необходимо установить сразу же. Я выбрал OpenSSH (нам нужна удалённая командная строка), LAMP (понадобится для веб-интерфейса), Print server (в этой статье я не буду описывать подключение принтера), и конечно Samba file server для доступа с windows-машин.

Ну и в финальной стадии система запросит пароль для MySQL и запрос на установку GRUB. Перезагружаемся - система установлена! Залогинемся, чтобы посмотреть какой ip-адрес нам присвоил DHCP (также это можно сделать с помощью команды ifconfig), в моём случае был выдан адрес 192.168.1.180.

Всё, можно отключать монитор и убирать системник в удобное место, дальше будем работать с ним через SSH. Я использую для этого PUTTY.

Конфигурация

1) файл подкачки
В первую очередь опишу как настроить файл подкачки, если он вам действительно нужен, всё делается буквально в несколько строчек команд.
Создаём файл заполненый нулями: > sudo dd if=/dev/zero of=/swap bs=1M count=2048
Подготавливаем его для использования как swap: > sudo mkswap /swap
Добавляем в файл fstab наш созданный файл для использования как файл подкачки:
> sudo nano /etc/fstab /swap none swap sw 0 0
Перезагружаемся: > sudo shutdown -r now
2) обновление ПО
Сразу же обновляем все пакеты, делается это двумя командами: > sudo apt-get update > sudo apt-get upgrade
3) Веб-интерфейс
Для управления системой через веб-интерфейс есть есть пакет webim, но его к сожалению в репозитарии нет, поэтому скачаем подготовленный пакет вручную: > wget http://prdownloads.sourceforge.net/webadmin/webmin_1.580_all.deb
Для установки webim потребуются некоторые зависимые пакеты, в моём случае это такой список, возможно, вам потребуется включить ещё что-нибудь. > sudo apt-get install libnet-ssleay-perl libauthen-pam-perl libio-pty-perl apt-show-versions
Ну и собственно установка: > sudo dpkg --install webmin_1.580_all.deb
Всё, можно заходить в веб-интерфейс: https://192.168.1.180:10000
4) Настраиваем ftp-доступ
Для ftp я использую pure-ftpd (хотя вы можете выбрать на свой вкус - proftpd и vsftpd)
Создадим публичную папку: > sudo mkdir /mnt/data/public
Устанавливаем pure-ftpd из репозитария: > sudo apt-get install pure-ftpd
В принципе можно уже заходить под системным аккаунтом, но это не совсем хорошо для повседневного использования. Сделаем виртуальный аккаунт с доступом только к публичной папке: > sudo pure-pw useradd public -u local -g nogroup -d /mnt/data/public
Обновим базу данных: > sudo pure-pw mkdb
Включим использование виртуальных пользователей: > sudo ln -s /etc/pure-ftpd/conf/PureDB /etc/pure-ftpd/auth/50pure
Перезапускаем сервис: > sudo service pure-ftpd restart
5) Samba
Настроим доступ к серверу с windows-машин, более того у меня лично дома семья большая и требуется разделение прав между несколькими пользователями. А для удобного редактирования прав на папки прямо из Windows (через вкладку «безопасность» в свойствах), будем использовать ACL.
Домена у нас нет, поэтому придётся создать пользователей таких же, как и на windows-машинах: > sudo useradd -d /home/PaulZi -s /bin/true -g users PaulZi
Задаём пароль, такой же, как на windows: > sudo passwd PaulZi
Добавляем созданного пользователя к Samba: > sudo smbpasswd -a PaulZi
Для управления расширенными правами, можете установить утилиты (необязательно): > sudo apt-get install acl > sudo apt-get install attr
Для того, чтобы samba работала с ACL, необходима файловая система с поддержкой POSIX ACL, ext4 вполне подходит, но по умолчанию она примонтирована без этой поддержки. Для включения этой возможности добавим опцию «acl» в файл /etc/fstab. Но более того, в Windows реализована поддержка наследования прав, чтобы и это реализовать в linux, нужно чтобы samba где-то хранила дополнительные данные. Для этого необходимо включить расширенные атрибуты файлов, опция «user_xattr». Заодно запретим выполнение файлов на всём разделе с данными, с помощью опции «noexec» (для безопасности): > sudo nano /etc/fstab /dev/md0 /mnt/data ext4 defaults,noexec,acl,user_xattr 0 2
Перезагружаемся: > sudo shutdown -r now
Редактируем настройки samba (для краткости привожу только изменения и добавления): > sudo nano /etc/samba/smb.conf workgroup = Home netbios name = Server security = user # add settings admin users = PaulZi # действие этих пользователей будут производиться от root map acl inherit = yes # включаем наследование acl store dos attributes = yes # включаем хранение dos атрибутов # отключаем хранения windows атрибутов: map archive = no map system = no map hidden = no map readonly = no # public share comment = Public path = /mnt/data/public browseable = yes # шара видна read only = no # включаем возможность записи guest ok = yes # разрешаем гостевой доступ inherit permissions = yes # включаем наследование прав inherit acls = yes # включаем наследование windows-прав inherit owner = yes # включаем наследование владельца hide unreadable = yes # прятать файлы недоступные для чтения
Перезапускаем сервис: > sudo service smbd restart
6) DLNA/UPnP - сервер
В качестве DLNA-сервера я выбрал minidlna. Выбрал его по одной просто причине, что он не тянет за собой кучу ненужных зависимостей, как MediaTomb и Serviio (они тянут Java либо графические библиотеки). Однако если вам необходим транскодинг, советую установить один из них, вместо minidlna.
Установка из репозитария: > sudo apt-get install minidlna
Настраиваем: > sudo nano /etc/minidlna.conf media_dir=/mnt/data/public friendly_name=Ubuntu
Перезапускаем: > sudo service minidlna restart
7) torrent
Ну и последний освещённый в данной статье сервис - torrent-клиент. Я использую Transmission, как успешно зарекомендовавший себя клиент с веб-интерфейсом.
Устанавливаем: > sudo apt-get install transmission-daemon
Останавливаем сервис, иначе все изменения затрутся после завершения процесса: > sudo service transmission-daemon stop
Настраиваем: > sudo nano /etc/transmission-daemon/settings.json "download-dir": "/mnt/data/public/torrents" "rpc-password": "local" "rpc-username": "local" "rpc-whitelist-enabled": false
Тут меняем четыре настройки - задаём путь для загрузки, имя пользователя и пароль для веб-интерфейса, а также отключаем «белый» список доступа к интерфейсу - разрешаем для всех. Пароль указываем в открытом виде, после последующего запуска он будет зашифрован.
Запускаем сервис: > sudo service transmission-daemon start
Заходим в веб-интерфейс, убеждаемся, что всё хорошо: http://192.168.1.180:9091/

Послесловие

В итоге мы получили вполне себе полноценный домашний сервер. Конечно в статье указано лишь базовые настройки сервисов, и скорее всего вам нужно будет что-то настроить под себя. Да и возможно вам потребуется какие-то дополнительные сервисы, но как видно из статьи, всё это делается довольно просто, без особых «плясок с бубном», достаточно всего лишь обратиться к гуглу - по настройке сервисов в Ubuntu информации очень много.

Чтобы создать терминальный, файловый (FTP) или почтовый сервер на Linux, надо уметь работать в этой операционной системе. Иначе разобраться будет сложно. ОС не нужен мощный компьютер. Потому что она не расходует лишние ресурсы на графическое оформление. Дистрибутивы Линукса можно развернуть даже на старом ПК. Поэтому для создания различных серверов часто используют Linux или Ubuntu Server.

Об этом написано много различной литературы. Некоторые книги о Линуксе насчитывают тысячу страниц. Работать придётся через терминал и все команды вводить вручную. Но всё же вы сможете сделать небольшой Linux-сервер своими руками, который будет включать файловое хранилище, Web-сервисы и почтовый протокол.

Ubuntu Server создана на базе операционной системы Linux. Для её работы не нужен современный процессор, хорошая видеокарта или большой объём оперативной памяти. С Линукс можно развернуть сервер даже на старом ноутбуке. И в нём будут все нужные компоненты: почта, FTP, Web.

Скачать образ диска с Linux можно с сайта Ubuntu.ru. Выбирайте любую версию с Server (не Desktop!). Загрузка будет проходить через Torrent-клиент . Этот образ надо записать на болванку или флешку (с помощью LiveUSB). Также можно воспользоваться виртуальным приводом.

У Ubuntu упрощённый интерфейс. В нём нет никаких графических излишеств. Эта ОС прекрасно подходит, чтобы сделать Linux-сервер своими руками. С ней ресурсы компьютера будут использоваться для нужд домена. Ведь ей для работы нужно совсем немного.

Её установка проходит так:

  • Выберите язык и регион, в котором проживаете.
  • Придумайте имя администратора. Оно используется для управления сервером.
  • Также задайте имя пользователя в поле «Username for your account». Под этим аккаунтом вы будете общаться с техподдержкой Ubuntu.

Указываем имя пользователя в Ubuntu

  • Введите пароль. Подтвердите его.

Вводим пароль учетной записи

  • Укажите домен, если он есть. На нём будут находиться все сервисы: файловый (FTP), почтовый, хостинг для сайтов и так далее.
  • Подождите, пока установится система.
  • После этого она предложит дополнительные компоненты.

Вот список того, что необходимо для сервера Linux и его полноценной работы:

  • Open SSh. Используется для удалённого администрирования. Пригодится, если вы решите управлять сервисом с другого компьютера. Тогда на ПК с Линуксом можно будет отключить монитор и видеоадаптер.
  • LAMP. Комплекс утилит Linux, который включает Apache (Web-сервер). MySQL (базы данных) и PHP (язык программирования для CMS). Эти компоненты нужны для создания управляющего интерфейса.
  • Samba file server. Позволяет настроить обмен файлами между компьютерами. Если вам нужен FTP-сервер, выберите этот пункт.
  • Virtual Machine host. Устанавливайте, если собираетесь пользоваться возможностями виртуализации.
  • Print server. Сетевые принтеры.
  • DNS server. Система доменных имён. С ней можно распознать IP-адрес по имени компьютера и наоборот.
  • Mail server. Почтовый сервер.
  • PostgreSQL database. Объектно-реляционные базы данных.

Выберите то, что вам нужно, и подтвердите установку. При первом запуске надо будет ввести логин администратора и пароль. Откроется консоль. Она похожа на командную строку Windows или интерфейс операционной системы MS DOS.

Изначально вам надо будет проверить наличие обновлений. Введите команду «Sudo apt-get update» или «Sudo apt-get upgrade» без кавычек. После апдейта можно заняться настройкой всех компонентов серверов: FTP, почтового, Веб.

Для Ubuntu существует псевдографический интерфейс - Midnight Commander. Это аналог оболочки Norton Commander, которая разработана для системы MS DOS. С таким интерфейсом легче работать - всё нагляднее, чем в консоли.

Запуск терминала Linux

В современных Linux вместо консоли используется терминал. Чтобы в него зайти:

  1. Откройте «Приложения».
  2. Нажмите «Стандартные».
  3. Там будет «Терминал».

В него можно вводить команды так же, как в Ubuntu Server.

  • Чтобы установить компоненты LAMP (если их ещё нет), надо последовательно ввести команды «sudo apt-get update», «sudo apt-get install tasksel» и «sudo tasksel install lamp-server». После каждой нажимайте Enter.
  • Чтобы загрузить Open SSh, введите «sudo apt-get install openssh-server».
  • Чтобы поставить Samba file server, напишите «sudo apt-get install samba».

При установке MySQL из пакета LAMP нужно будет задать пароль администратора, для SQL.

Локальный Web-сервер

Для создания Web у сервера должен быть свой выделенный IP. Тогда после установки LAMP по этому IP-адресу будет доступна тестовая страница Apache. Это и есть будущий Веб. В дальнейшем на него можно будет поставить FTP, базы данных, почтовый протокол. Для настройки Web-сервера:

  • Установите phpMyAdmin. Для этого в терминале или в консоли введите друг за другом введите «sudo apt-get install phpmyadmin»

  • И потом «sudo service apache2 restart».
  • Компонент загрузится. Apache будет перезагружен. Дальнейшие действия зависят от версии операционной системы.

Если у вас Ubuntu 13.1 и выше, используйте команды:

  1. sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf
  2. sudo a2enconf phpmyadmin
  3. sudo /etc/init.d/apache2 reload

Вбивайте их последовательно друг за другом, после каждой нажимайте Enter.

В Ubuntu 16.04, нужны другие указания:

  1. sudo apt-get install php-mbstring php-gettext
  2. sudo phpenmod mcrypt
  3. sudo phpenmod mbstring
  4. sudo systemctl restart apache2

После их ввода и автоматического перезапуска службы по адресу http:///phpmyadmin будет доступен веб-интерфейс.

  • Конфигурация и данные о ней находятся в папке сервера Apache «etc/apache2/». Apache2.conf - конфигурационный файл для дистрибутива
  • В директориях «mods-available»/«sites-available» и «mods-enabled»/«sites-enabled» находятся моды и сайты.
  • В Ports.conf расписаны прослушиваемые порты.
  • Если вы добавите после команды «sudo /etc/init.d/apache2» слово «Stop», Apache приостановит работу. Если «Start» - снова запустится. Если «Restart» - перезагрузится.
  • Чтобы самостоятельно выбирать путь для сохранения сайтов, последовательно введите в терминал «sudo a2enmod rewrite» и «sudo a2enmod userdir».

Каждый раз после внесения каких-либо изменений надо перезапускать службу командой «Restart».

Почтовый сервер

Чтобы создать почтовый сервер на Линукс, у вас уже должен быть зарегистрирован домен. Также нужно иметь статический IP.

  • Установите компонент Postfix. Для этого наберите в консоли «sudo apt-get postfix».
  • Когда он загрузится, напишите команду «sudo /etc/initd/postfix start». Сервис начнёт работать.
  • В Postfix уже прописаны параметры, которые нужны для полноценной работы с протоколом SMTP. Но всё же не помешает небольшая настройка.
  • Откройте файл /etc/postfix/main.cf.
  • Найдите в нём значение «mydomain =». После знака «=» напишите имя домена.
  • Потом отыщите «myhostname =». И введите имя машины.
  • Теперь почтовый сервер может отправлять письма другим компьютерам, которые находятся с ним в одной сети. Чтобы он мог посылать корреспонденцию и на другие домены в интернете, в файле «main.cf» найдите строчку «inet_interfaces =». Поставьте после неё слово «all».
  • В переменной «mynetworks =» пропишите диапазон адресов всех компьютеров вашей подсети (например, 127.0.0.0/8).

Если служба настроена верно, и выполнены все условия (постоянный IP-адрес, зарегистрированный домен), то Server сможет принимать и отправлять корреспонденцию. Если запись MX вашего домена ссылается на ваш хост.

Чтобы посмотреть логи ресурса, используйте команду «tail -f /var/log/mail/info». Чтобы получить от него сообщение, введите «mailq».

Файловый сервер

FTP-сервер Linux может понадобиться для обмена документами и загрузки файлов. Существует несколько версий таких ресурсов: vsFTPd, Samba, proFTPd.

Подробнее остановимся на vsFTPd. Его можно установить и запустить одной командой - «sudo apt-get install vsftpd». Дальнейшие настройки зависят от ваших предпочтений и от того, какой сервис вы хотите сделать. Для изменения параметров могут понадобиться права администратора.

  1. Сразу после загрузки программы система создаёт нового пользователя и добавляет в домашнюю директорию папку, которая предназначена для работы с серверным хранилищем. Также в каталоге «etc» появляется файл «ftpusers». Туда можно добавлять пользователей, которым запрещён доступ к файлам.
  2. После установки лучше сменить директорию, в которой должны находиться файлы, в папку «var». Для этого от имени администратора напишите команду «usermod -d /var/ftp ftp && rmdir /home/ftp».
  3. Создайте новую группу пользователей. Например, «userftp». Напечатайте в консоли «addgroup userftp».
  4. Добавьте в неё новый аккаунт (для простоты назовём пользователя и группу одинаково). Используйте команду «useradd -a /var/ftp -g userftp userftp». Она заодно создаёт пользователя. Чтобы включить в группу уже существующий никнейм, вместо «useradd» напишите «usermod».
  5. Надо придумать пароль новому пользователю. Введите в терминале «passwd userftp».
  6. Напечатайте «chmod 555 /var/ftp && chown root:userftp /var/ftp», чтобы предоставить аккаунту доступ к корневой папке файлового сервера.
  7. Теперь создайте публичную директорию. Последовательно введите «mkdir /var/ftp/pub» и «chown userftp:userftp /var/ftp/pub».

Изначально FTP запускается в автономном режиме. У неё есть скрипт, который играет роль демона. При такой функциональности доступно несколько команд. Они вводятся после строки «sudo service vsftpd».

  • Stop и Start. Отключение и включение.
  • Restart и Reload. Перезапуск. Нужен для применения новых настроек. Разница между командами в том, что во второй перезагрузка происходит без полного отключения.
  • Status. Информация о состоянии.

Дальнейшая настройка сервера заключается в переписывании файла конфигурации, который находится в etc/vsftpd.conf. У него простая и понятная структура. Разобраться в нём достаточно просто. Хотя для этого нужны определённые знания. Перед изменением этого файла имеет смысл сделать его резервную копию. Чтобы в случае выявления ошибок можно было всё восстановить. Введите команду «cp /etc/vsftpd.conf /etc/vsftpd_old.conf» и информация будет сохранена.

После этого можно приступать к редактированию.

  • В параметре «listen=» напишите «YES». Тогда сервер будет работать в независимом режиме.
  • «Local_enable» разрешает вход локальным пользователям.
  • «Write_enable» даёт им доступ в домашние каталоги.
  • «Anonymous_enable». Можно ограничить права анонимных пользователей, если поставить «NO». Также есть опция «no_anon_password» - анонимные входят без пароля. Её тоже можно запретить.

Если вы хотите делать публичный сервер, то после строки «listen» надо добавить несколько дополнительных параметров.

  • «Max_clients». Количество одновременных соединений.
  • «Idle_session_timeout» и «data_connection_timeout». Таймауты сессии.
  • «Ftpd_banner». Приветственное сообщение для посетителей. Можно написать, к примеру, «Hello!».

Терминальный сервер

Терминальный сервер на Linux предназначен для предприятий и офисов , все компьютеры в которых объединены в одну сеть. Очень удобно, когда с любого ПК (если у него есть доступ) организации можно зайти на терминал. Это открывает большие возможности для удалённого администрирования.

Для такой задачи подходит LTSP - Linux Terminal Server Project. Программа есть в стандартном пакете Ubuntu. Чтобы её установить:

  1. Введите команду «ltsp-server-standalone».
  2. Потом напишите «apt-get update && apt-get install ltsp-server-standalone».
  3. Подождите, пока всё загрузится и обновится.
  4. Теперь надо поставить клиентскую систему. Напечатайте «ltsp-build-client».
  5. Затем «ltsp-build-client -dist trusty -arch i386 -fat-client-desktop lubuntu-desktop».
  6. Используйте команду «debootstrap», и дистрибутив автоматически развернётся в директорию «opt/ltsp/i386».

Linux Server может работать даже на слабых ПК. Поэтому его очень часто используют для создания серверов и удалённого администрирования. На этой операционной системе делают почтовые сервисы, FTP-хранилища, терминалы.




Top