четверг, 4 апреля 2013 г.

Идеальный сервер — Ubuntu Server Precise Pangolin 12.04


Все действия практически те же самые, но только в качестве системы будет использоваться Ubuntu Server 12.04 (Precise Pangolin) i386.

В этот туториале рассказано об установке Ubuntu Server 12.04, который будет предоставлять все необходимые услуги для интернет-провайдеров и хостеров:
  • веб-сервер Apache (с шифрованием SSL); 
  • почтовый сервер Postfix с SMTP-AUTH и TLS; 
  • DNS сервер BIND; 
  • FTP-сервер Proftpd; 
  • MySQL-сервер; 
  • Courier POP3/IMAP; 
  • брандмауэр и т. д. 
Я буду использовать следующее ПО:
  • Веб-сервер Apache  и PHP, Python, Ruby и WebDAV; 
  • Сервер баз данных: MySQL; 
  • Почтовый сервер: Postfix; 
  • DNS-сервер: BIND9; 
  • FTP-сервер: ProFTPD; 
  • POP3/IMAP: буду использовать форматы Maildir, POP3/IMAP; 
  • Webalizer для статистики веб-сайта. 
Я хочу сказать, что это не единственный способ создания такой системы. Существует много способов достижения этой цели. Я не даю никаких гарантий, что у вас это будет работать!

1. Требования

Для установки системы необходимо скачать образ и записать его на носитель.

Страница загрузки Ubuntu Server 12.04: http://www.ubuntu.com/download/server

Компьютер с минимальными системными характеристиками:
  • 1 GHz Pentium 4; 
  • 1 Gb RAM; 
  • <=10 Gb места на жестком диске; 
  • доступ к интернету. 

2. Предварительные замечания

В этом туториале используется имя хоста server.example.com с IP адресом 192.168.1.104. Эти параметры могут отличаться от ваших, поэтому вам придется заменить их в случае необходимости.

Все действия выполняются на виртуальной машине (VirtualBox):
  • 512 Mb RAM; 
  • Сетевой мост; 
  • VDI, 30 Gb. 

3. Инсталляция базовой системы

Открыть спойлер

4. Предоставление прав суперпользователя

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

Примечание!

Если у вас вместо русского языка «квадратики», то нужно добавить строки в файл /etc/rc.local:
setupcon
exit 0


Теперь создадим пароль суперпользователя:
$ sudo su
$ sudo passwd root

5. Установка SSH-сервера (опционально)

SSH-сервер необходим для удаленного доступа к серверу.
# aptitude install ssh openssh-server

Теперь вы можете подконнектиться к вашему серверу через удаленный терминал.
К примеру:
$ ssh [email protected]

6. Установка vim (опционально):

Vim мой любимый текстовый редактор, поэтому предлагаю и вам установить и изучать его, он гибок в настройке и удобен.
# aptitude install vim

Небольшая настройка vim: http://beginsysadmin.blogspot.com/2013/04/vim.html

7. Конфигурирование сети

Так как программа установки Ubuntu настроила систему через DHCP, то мы должны изменить их, так как сервер должен иметь статический IP-адрес.
# vim /etc/network/interfaces 
auto lo iface 
   lo inet loopback 

auto eth0 iface eth0 inet static 
   address 192.168.0.100 
   netmask 255.255.255.0 
   network 192.168.0.0 
   broadcast 192.168.0.255 
   gateway 192.168.0.1

Перезагрузить демон сети:
# /etc/init.d/networking restart

8. Обновляем ПО 

# aptitude update
# aptitude safe-upgrade


Скорее всего у вас обновится ядро до версии 3.5.0-26. На всякий случай рекомендую обновить конфиг загрузчика:
# update-grub

Перезагружаемся:
# reboot

9. Выбор стандартного шелла

(Это необходимо для инсталляции ISPConfig, если вы это не сделаете, ISPConfig не установится).
# dpkg-reconfigure dash
На вопрос отвечаем «Нет».

10. Удаление apparmor

Почему? Очень часто именно из-за apparmor бывают проблемы, поэтому его лучше удалить. 
# /etc/init.d/apparmor stop 
# update-rc.d -f apparmor remove 
# aptitude remove apparmor

11. Синхронизация времени с интернетом

# aptitude install ntp
# ntpdate

12. Установим кое-какое ПО

# aptitude install binutils cpp fetchmail flex gcc libarchive-zip-perl libc6-dev libcompress-zlib-perl libdb4.8-dev libpcre3 libpopt-dev lynx m4 make ncftp nmap openssl perl perl-modules unzip zip autoconf automake1.9 libtool bison autotools-dev g++ build-essential zlib1g-dev

13. DNS сервер

# aptitude install bind9

По соображениям безопасности, мы хотим запустить BIND изолированным.:
# /etc/init.d/bind9 stop

Редактируем файл /etc/default/bind9:
RESOLVCONF=yes
OPTIONS="-u bind -t /var/lib/named"


Создаем каталоги в /var/lib:
# mkdir -p /var/lib/named/etc
# mkdir /var/lib/named/dev
# mkdir -p /var/lib/named/var/cache/bind
# mkdir -p /var/lib/named/var/run/bind/run


Перемещаем конфиг из одной папки в другую:
# mv /etc/bind /var/lib/named/etc

Символьная ссылка:
# ln -s /var/lib/named/etc/bind /etc/bind

Создать устройства null и random, назначить права доступа к каталогам:
# mknod /var/lib/named/dev/null c 1 3
# mknod /var/lib/named/dev/random c 1 8
# chmod 666 /var/lib/named/dev/null /var/lib/named/dev/random
# chown -R bind:bind /var/lib/named/var/*
# chown -R bind:bind /var/lib/named/etc/bind


Создадим файл конфигурации /etc/rsyslog.d/bind-chroot.conf и запишем в него:
$AddUnixListenSocket /var/lib/named/dev/log

Перезагружаем демон логгирования:
# /etc/init.d/rsyslog restart

Запускаем BIND, исправляем ошибки (/var/log/syslog):
# /etc/init.d/bind9 start

14. MySQL

# aptitude install mysql-server mysql-client libmysqlclient18 libmysqlclient-dev

Устанавливаем пароль для MysSQL:


Мы хотим, чтобы MySQL слушал все интерфейсы, а не только локальный, поэтому редактируем файл /etc/mysql/my.cnf и комментируем строчку:
# bind-address = 127.0.0.1

Перезапускаем MySQL:
# /etc/init.d/mysql restart

Проверяем:
# netstat -tap | grep mysql

Вывод должен быть примерно таким:
tcp 0 0 *:mysql *:* LISTEN 6525/mysqld

2 комментария:

Иван Везучий комментирует...

Амет, вот не хочется говорить гадости, но ответь плиз, ты сам эту статью писал или скопировал откуда-то? Я по таким статейкам неделю пытался все это настроить, в итоге пришлось нанять спецов из osshelp. Тут подводных камней миллион, неужели нельзя писать более подробно и понятно. Пункт 12, кое какие пакеты(что за пакеты?) Уверен, что права нужно будет на половину файлов менять, где это все? Хочу сказать, что для человека, который уже это делал, статья не плоха как напоминалка, а для начинающего админа темный лес. Сори, не хотел обидеть.

Амет Умеров комментирует...

Ну написано же в начале, что это перевод.
Знаешь, я же в первую очередь для себя это делаю, наверняка в будущем оно мне пригодится.
Подводные камни конечно есть и будут, время идет, linux меняется.
Если каждую свою заметку писать с полным разбором, то времени не оберешься.
Если есть вопросы, задавайте, я такой же начинающий админ, что-то вы подскажете, что-то я.

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

Оригинал статьи: http://www.howtoforge.com/perfect-server-ubuntu-10.04-lucid-lynx-ispconfig-2