Настраиваем Ubuntu Server под HomeServer

left Вот многое уже за плечами. Ubuntu Desktop давно удален и не его месте стоит Ubuntu Server. Может возникнуть вопрос: "а зачем?" И я поспешу ответить на него - потому что тонкая настройка все равно подразумевает консоль. А "Иксы" порой только отвлекают. Да и стабильность и отпимизированность серверной оси под данные задачи много больше. Плюс некоторые проблемы desktop'а просто отпадают.

Настройка будет более сложной и длительной. Зато в конце мы получим более стабильную, зашищенную и настроенную систему. С удаленным доступом по ssh.

Появилась более свежая версия статьи

Установка Ubuntu Server

Здесь нет ничего сложного и можно разобраться самому. В крайнем случае есть статьи со скринами и полной информацией. Так же есть Вики, например про LVM. Единственное скажу Из дистрибутива лучше стоит выбрать 64битную версию, если конечно она поддерживается.

Превым делом сеть!

Если у вас стоит Router/DHCP, то скорее всего вам при установке не будет выдана настройка статического ip. Следовательно нам надо сделать это самим. Тут поможет родная поддержка. Если вкратце, то надо заменить в /etc/network/interfaces

iface eth0 inet dhcp

на

iface eth0 inet static
address 192.168.0.2
netmask 255.255.255.0
gateway 192.168.0.1

и Добавить DNS сервера в /etc/resolv.conf

search mydomain.example
nameserver 192.168.0.1
nameserver 4.2.2.2

Пере загружаемся и проверяем сеть.

sudo reboot ifconfig

Удаленное управление

Тут мы подошли к самому интересному. Управление будет все тоже - через консоль. Но, теперь мы будем сидеть у себя за любимым компьютером, под любой операционной и наслаждаться прелестями копирование и вставления строк. Cтавим Open-ssh

sudo apt-get install openssh-server openssh-client

В общем настраика его может на этом и окончиться, если у вас закрыт 22 порт из вне. Но все же стоит попыхтеть и закрыть дыры, ведь если подберут пароль - "прости, прощай" Читаем здесь. После настройки, задвигаем наш сервер в дальний угол. Качаем Pytty, запускаем, бьем ip, в вкладке Translation ставим UTF-8. Сохраняем сессию, жмем Open!

Монтирование дисков

Здесь и говорить нечего, все уже написано - кликаем Переходим к установке ПО.

File Server

Для этих целей у нас есть Samba Server, о нем написано здесь.

FTP Server

Я выбрал vsFtpd + Mysql. Эта связка позволяет создвавать виртуальных пользователей, что весьма удобно. Описание установки и настройки находиться по этому адресу.

Лично я немного изменил. Ведь у нас личная система так что пусть еше и anonymous будет. Добавляем в конфиг

anonymous_enable=YES # включ anonymous (Изменяем с NO на YES!!!)
anon_upload_enable=NO # запрешаем ему загружать
anon_mkdir_write_enable=NO # и делать директории
anon_root=/home/ftp/anonymous/ # перенаправляем его в нужную директорию

Web Server

Тут совсем все просто. Мне понравилась вот эта статья. Есть только одна маленькая но очень важная заметка. надо включить один мод.

sudo a2enmod rewrite

Далее в настайках вирттуальных хостов надо сделать следуюшее в директориях

AllowOverride All
ServerAlias www.Name.com # Что бы сайти был доступен и по www..., добавте сразу после ServerName

Теперь можно в директории файлов создать .htaccess и добавить в него

ErrorDocument 404 /404.html

Этим мы уберем предательскую стандартную 404 стр. Конечно же новую делайте сами, на свой вкус. дополнительные сведения по .htaccess можно найти в нете.

Так же хорошо бы поставить Акселератор php кода, те ускоренин исполнения скриптов путём кэширования бинарного кода.

sudo apt-get install php5-xcache
sudo nano /etc/php5/conf.d/xcache.ini

xcache.size = 64M  # хотя бы
xcache.var_size = 32M
xcache.count = 4  # количество ядер, в конфиге написанно как посмотреть
xcache.cacher = On

Также вы можете установить логин и пароль для управления скриптом. Пароль должен быть в md5. Чтобы правильно установить пароль, создайте в веб-директории файл test.php, и поместите в него следующую строку: < ?php echo md5(”Мой Пароль”); ?>

Для просмотра статистики использования, оценки эффективности имеется веб-интерфейс администратора. В Ubuntu он устанавливается вместе с пакетом и находится в папке /usr/share/xcache в поддиректориях admin и coverage. Скопируйте их в директория веб сервера.

Перезагрузите Apache

Torrent client

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

Зашита

Fail2ban

Порыскав в сети я наткнулся на замечательную прогу. Работает просто - смотрит логи, и банит по iptables Ботов подбираюших пароли к ssh, ftp. Ставить обязательно!

sudo apt-get install fail2ban
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.cp # дублируем конфиг
sudo gedit /etc/fail2ban/jail.conf  # конфигим
sudo /etc/init.d/fail2ban restart

В настройках ничего военного нет. В начале файла. ignoreip - Добавляем ip через пробел, которые будут игнорироваться (свою статику например). bantime - время бана в секундах. maxretry - количесво попыток входа. Это все весчи, которые будут подставляться по дефолту. Так же я нашел в логах findtime - похоже это время между проверками логов, но я нигде не нашел подтверждение этого. Изначально стоит на 600. Если не боитесь можете поменять. Дальше меняем нужные сервисы с false на true. Также можно вставлять для каждого в отдельности параметры бана.

Ufw

Ёше стоит задумать о защите портов. Для этого есть программа ufw, она уже по умолчанию установлена. Требуется только, включение, настройка, перезагрузка.

sudo ufw enable # включаем
sudo ufw default deny # запрешаем все по умолчанию
sudo ufw allow [port] # разрешить порт
sudo ufw allow [присет] # Присеты смотри так: sudo ufw app list
sudo ufw delete allow [port] # удалить предыдущею запись
sudo ufw allow 80/tcp  # разрешить порт 80 tcp
sudo ufw deny from [ip address] # запрет адреса
sudo ufw allow from 192.168.0.0/24 to any port 22 # разрешение с некоторых ip
sudo ufw status # выведет все настойки
man ufw # хелп

О автоматизации

Речь пойдет все о тех же скриптах, написанных на языке bash/sh. Это штука может очень облегчать работу. И первое где это можно и нужно использовать, это backup баз данных. Конечно лучше всего написать его самому, но это не всегда возможно. Мой скрипт еше полностью не дописан и сильно оптимизирован под мои задачи. Поэтому я предлагаю воспользоваться этим. Он правдо на php. Но это ничего не меняет.

Но как понимаете, одним скриптом все не оканчивается. Тоже резервное копирование файлом и многое другое. Для этого нужно знать немного программирование, и на этом ресурсе очень хорошо описан bash в примерах.

Еше отличный пример многогранности скриптов можно посмотреть здесь.

Послесловие

Все выше написанное, это всего лишь опыт начинаюшего ubuntu-вода, полученный в настройке своего домашнего сервера. Если у вас есть какие то поправки или идеи, я с огромным удовольствием их послушаю!

Categories: HowTo, Ubuntu Tags: