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

left Как и обешался, я расскажу о том как я настраивал свою Ubuntu Desctop для нужд HomeServer, да и не только. Многие вещи о которых будет вестись речь уже присутствуют на многих блогах, форумах и разных уголках интернета. Так что я решил не захломлять однообразными статьями нашу паутину, а указать ссылки и лишь добавить свои наработки. Плюс ка всему некоторые заметки как сделать жизнь проше. Ну начнем.

Советую обратить внимание на более свежую версию статьи

Ну сначала конечно грузим дистрибутив и устанавливаем. Теоритическ никаких проблем вызвать не должно. Но у меня почему то не смог определить логические диски после акроникса на теребайтной баракуде. Хотя в live режими я их монтировал и даже смотрел фильм!

Устанавливал я с флешки - привода нету. Долго искал программы позволяющие делать, и вот что мне помогло Ultra iso pornable.

Немного системе

Для получения в ubuntu прав Админестраторы (root'a), необходимо перед командами прописывать sudo.

Основные конфиги лежат в /etc/. а управления restart, start, stop в /etc/init.d/..

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

Полезные команды

mkdir /home/[user]/BackUp/ # создание директории
usermod -a -G root user # добавляем пользователя user в группу root
chmod 775 /var/www/default/ # Задаем права, точнее смотрим [здесь](http://www.chmod.ru/)
/Open\ as\ root # Это концольное обозначение файла Open as root
sudo reboot - и так думаю понятно.
cd /.././ # переход в концоли в некоторую директорию.

Упрощаем жизнь

Первым делом сделаем маленькую хитрость. Сделаем файлик Open as root

#!/bin/sh
for uri in $NAUTILUS_SCRIPT_SELECTED_URIS; do
gksudo "gnome-open $uri" &
done

Теперь копируем его и сделаем исполнительмым

sudo cp /home/[user]/Open\ as\ root /home/[user]/.gnome2/nautilus-scripts/Open\ as\ root
sudo chmod +x .gnome2/nautilus-scripts/Open\ as\ root

Теперь жмем на файлик правой кнопкой и заходим в сценарии, и приятно удивляемся :-)

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

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

После того как вы настроили визуал под себя, переходим к установке ПО.

NoMachine - Удаленное управление сервером

Сначала я решил поставить сервер удаленного управления. И это будет NoMachine.com free версия на 2 юзера. Есть еше просто FreeNx и NVC. Первый это и есть какая-то старая выкупленная версия NoMachine, распространяющаяся в исходниках, на любое количесво юзеров. Мне хватает 2 за галаз. Второй это встроенный в дистрибутив. Он просто передает монитор, мышь, клаву. И того ужасно тормозит и выкидывает. Зато ничего не надо устанавливать :-) Включаем его так /usr/lib/vino/vino-server start . А вот с NoMachine придется помучиться. Сначало необходимо установить ssh

sudo apt-get install openssh-server
sudo gedit /etc/ssh/sshd_config # настроиваем конфиг, если нужно.
sudo /etc/init.d/ssh restart

Далее заходим на ресурс и скачаваем версию для linux в deb пакетах, поочередно. FireFox скорее всего предложит отркыть их в уставношике, что и сделаем. Когда закончили, необходимо сгенерить новые ключи, которые будут только у вас. И скопируем их в домашнию директорию.

sudo /usr/NX/scripts/setup/nxserver --keygen
sudo cp /usr/NX/share/keys/default.id_dsa.key /home/[ваш аккаунт]/default.id_dsa.key

Теперь можно скачивать на винду клиент.Незабудьте в настройках соединения указать новый ключ. Конфиги сервера здесь /usr/NX/etc/server.cfg /usr/NX/etc/node.cfg Изначально Пользователь один - Вы. Но можно добавить еше.

sudo /usr/NX/bin/nxserver --useradd [user]--system

Автоматически будет довавлен системный пользователь [user] с такой же домашней директорией. Вот и все.

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 можно найти в нете.

Torrent client

Одной строкой напишу и о этом. Неплохой клиент deluge. Просто установите и посмотрите. Его можно найти в стандартных ресурсах ubuntu. Прелесть его в том, что в модулях можно включить веб интерфейс. Тоесть вам не придется каждый раз мучаться что бы довить торрент. А так же он может разом использовать ваши старые загрузки. Только вот он у меня капризничает при запуске.

Зашита

Причем здесь зашита? Разве linux не считается одним из стойких систем? Все он так, но есть одно но. Когда мы повесили ftp и ssh, мы самолично подписали себя на атаки ботов, которые пытаются подобрать пароль ежеминутно. Конечно большинство этих попыток - чушь, Админок никаких нет, да и пароли не хилые (надеюсь). Зато грузит это систему некисло. Порыскав в сети я наткнулся на замечательную прогу. Работает просто - смотрит логи, и банит по iptables. Ставить обязательно!

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. Также можно вставлять для каждого в отдельности параметры бана.

Дополнительные сведения

Сценарии или скрипты

Вот тут начинается самое интересное. Это пожалуй одна из самых замечательных штук в линухе. С ними можно и бэкапить файлы, и БД ,и устанавливать программы. Пришел я к этому как раз из-за последнего. Я не раз гробил ситему пока настроивал, и мне задолбало ее востанавливать. Решение оказалось очень простым. Сначало мы создаим папку, скажем BackUp и в ней еше одну - Configs. И будем мы туды копировать конфиги. А сам файл будет лежать в первой директории.

#!/bin/bash
cd /home/[user]/BackUp/
sudo cp /etc/fstab ./Configs/fstab
sudo cp /etc/apache2/sites-available/instantgame.ru ./Configs/instantgame.ru
sudo cp /etc/apache2/sites-available/vpotmneno.ru ./Configs/vpotmneno.ru
sudo cp /etc/apache2/sites-available/default ./Configs/default
sudo cp /etc/apache2/conf.d/phpmyadmin.conf /etc/phpmyadmin/apache.conf
sudo cp /etc/php5/apache2/php.ini ./Configs/php.ini
sudo cp /etc/crontab ./Configs/crontab
sudo cp /etc/ssh/sshd_config ./Configs/sshd_config
sudo cp /etc/samba/smb.conf ./Configs/smb.conf
sudo cp /etc/rc.local ./Configs/rc.local
sudo cp /etc/vsftpd.conf ./Configs/vsftpd.conf
sudo cp /etc/pam.d/vsftpd ./Configs/vsftpd
sudo cp /etc/fail2ban/jail.conf ./Configs/jail.conf

echo "Backup Configs : `date +%Y-%m-%d`" >> HomeServer.log # это что-то типа лога, елси строчка добвиться значит отработал. Фаил должен быть уже создан.

Есть еше отличная скрипт, он бэкапит определенную Базу данных, и упаковывает в архив.

#!/bin/bash
cd /home/[user]/BackUp/MySqlDumps/

mysqldump --add-drop-table --host=localhost --user=root --password=[Пароль] [База] > `date +%Y-%m-%d`-[Название].sql; gzip `date +%Y-%m-%d`-[Название].sql;
echo "Backup: `date +%Y-%m-%d`" >> backup.log

Теперь надо добавить 00 06 * * * bw /home/[путь]/[имя файла] в

sudo gedit /etc/crontab

И будет у нас в 6:00 Быкапится нужная нам база. Или можно каждую неделю. Особенности cron смотри здесь.

Послесловие

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

Например, у меня есть свои вопросы. Поршивый гном не загружается без монитора - орет Low Graphic mod. Кто то знает как решить проблему?!

И ешё, как можно увеличить производительность системы? Или даже скажем по другому, как дать приоритет выполнения программам?

Создана статья по настройки серверного дистрибутива

Categories: HowTo, Ubuntu Tags: