
Преамбула:
Это неполный перевод мануала с сайта HowToForge. Автор - Falco Timme.
Мануал предназначен для пользователей среднего уровня, так что консоль в руки и вперёд :)
P.S.: TRAFFIC ADVISORY!
P.P.S.: Много картинок. Очень.
Пост-преамбула:
По горькому опыту предыдущего поста буду вычислять и банить поклонников Windows. Если вам это не надо - не лезьте сюда с комментами о неоднозначной важности ;)
Взять Fedora 7 можно тут:
Итак...
Это достаточно полное руководство по превращению Fedora 7 в сервер, который предлагает все сервисы, требуемые от провайдера/хостера: веб-сервер Apache (с возможностью SSL-шифрования), почтовый сервер Postfix с SMTP-AUTH и TLS, сервер BIND DNS, сервер FTP Proftpd, сервер СУБД MySQL, Dovecot POP3/IMAP, Quota, Firewall и т.д. Это руководство написано для 32-битной версии Fedora 7, но, возможно, применимо и для 64-битной, с очень незначительными изменениями.

Я буду использовать следующие пакеты программ:
Веб-сервер: Apache 2.2.4
PHP 5.2.2
Сервер СУБД: MySQL 5.0.37
Почтовый сервер: Postfix
Сервер DNS: BIND9 (chrooted)
Сервер FTP: proftpd
POP3/IMAP сервер: Dovecot
Webalizer для статистики веб-сайта
В итоге мы получим надежную систему, на которую в последствие можно поставить утилиту контроля веб-хостинга ISPConfig (т.е., ISPConfig будет с нее запускаться).
Это не единственный вариант установки подобной системы. Есть и другие способы достижения поставленной цели, но я буду использовать этот. Я не даю никаких гарантий, что это будет у вас работать.
Часть первая. Требования.
Чтобы установить подобную систему вам потребуется:
● Образ Fedora 7 на DVD (список зеркал для закачки находится )
● Интернет-соединение
Часть вторая. Обозначения и прочие условности.
В этом руководстве я использую имя хоста server1.example.com с IP адресом 192.168.0.100 и шлюзом 192.168.0.1. Скорее всего, в вашем случае это будет отличаться, поэтому где встретится - замените.
Часть третья. Установка базовой системы.
Загрузитесь с DVD Fedora 7. Выберите Install or upgrade an existing system:

Пропускаем тест (Skip):

Кликаем Next, выбираем язык и раскладку клавиатуры:


Я устанавливаю Fedora 7 на чистый компьютер, поэтому отвечаю Yes на вопрос Would you like to initialize this drive, erasing ALL DATA?:

Далее разметим диски. Выберите Remove linux partitions on selected drives and create default layout. Это даст вам небольшой "/boot" раздел и большой "/" раздел, которые подходят для наших целей:

Мы хотим удалить все разделы, поэтому отвечаем Yes на следующий вопрос:

Настройки сети. По умолчанию предлагается настроить сеть с использованием DHCP, но так как мы ставим сервер - нам нужен статический IP... Кликните Edit сверху справа:

В появившемся окне выберите Enable IPv4 support > Manual configuration и назначьте вашей сетевой карте статический IP адрес и маску сети (в этом руководстве я использую IP адрес 192.168.0.100 и маску сети 255.255.255.0 в целях демонстрации; если вы не уверенны насчёт значений которые необходимы вам - http://www.subnetmask.info может помочь). Снимите флаг с Enable IPv6 support:

Введите вручную имя хоста, т.е. server1.example.com, шлюз (т.е. 192.168.0.1) и два DNS сервера (т.е. 213.191.92.84 и 145.253.2.75):

Выберите часовой пояс:

И введите пароль пользователя root:

Теперь выберем программы, которые нам нужны. Отмените выбор Office, Productivity и выберите Software Development и Web server. Далее выберите Customize now, и кликните Next:

Теперь мы выберем пакетные группы, необходимые для установки. Выберите Editors, Text-based Internet, Development Libraries, Development Tools, DNS Name Server, FTP Server, Mail Server, MySQL Database, Server Configuration Tools, Web Server, Administration Tools, Base, Hardware Support, Java, System Tools и кликните Next:

Инсталлятор проверит зависимости пакетов:

После чего кликаем Next:

Произойдёт форматирование дисков:

Начнётся непосредственно установка:

Установка завершена. Извлекаем DVD и перезагружаем систему:

После перезагрузки вы увидите следующий кран. Выберите Firewall и кликните Run Tool:

В конце этого руководства я хочу установить ISPConfig, поставляется со своим собственным фаерволом. Поэтому я сейчас отключу втроенный в Fedora 7 фаервол. Конечно, вы можете и не отключать его, настроив должным образом (однако позднее придётся отказаться от использования других фаерволов, так как они могут конфликтовать со втсроенным).
Я так же отключаю SELinux. Кликаем ОК в конце:

Выходим из Setup-агента, нажав Exit:

Войдите в систему под пользователем root и перезагрузите компьютер следующей командой:
shutdown -r now
Тепрь перейдём к конфигурации...
Часть четвертая. Настройка /etc/hosts.
Поправим /etc/hosts. Заставьте файл выглядеть примерно так:
# Do not remove the following line, or various programs
# that require network functionality will fail.
vi /etc/hosts
127.0.0.1 localhost.localdomain localhost
192.168.0.100 server1.example.com server1
::1 localhost6.localdomain6 localhost6
Важно чтобы вы добавили адрес для server1.example.com, удалив при этом server1.example.com и server1 из линии 127.0.0.1.
Часть пятая. Настройка дополнительных IP адресов.
(Эта часть зависит только от вас. Она просто показывает как добавить дополнительные IP в ваш сетевой интерфейс eth0, если вам нужен больше чем один IP адрес. Если вам и с одним IP адресом неплохо живётся, вы можете пропустить эту часть.)
Предположим, наш сетевой интерфейс имеет имя eth0. Значит существует файл /etc/sysconfig/network-scripts/ifcfg-eth0, который выглядит примерно так:
cat /etc/sysconfig/network-scripts/ifcfg-eth0# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
DEVICE=eth0
BOOTPROTO=static
BROADCAST=192.168.0.255
HWADDR=00:0C:29:03:96:51
IPADDR=192.168.0.100
NETMASK=255.255.255.0
NETWORK=192.168.0.0
ONBOOT=yes
Мы хотим создать виртуальный сетевой интерфейс eth0:0 с IP адресом 192.168.0.101. Всё что нам надо сделать - это создать файл /etc/sysconfig/network-scripts/ifcfg-eth0:0 который бы выглядел примерно вот так (мы можем опустить линию HWADDR так как это та же физическая сетевая карта):
vi /etc/sysconfig/network-scripts/ifcfg-eth0:0 DEVICE=eth0:0
BOOTPROTO=static
BROADCAST=192.168.0.255
IPADDR=192.168.0.101
NETMASK=255.255.255.0
NETWORK=192.168.0.0
ONBOOT=yes
После этого следует перезагрузить сеть, чтобы изменения вступили в силу:
/etc/init.d/network restart
Возможно, вы так же захотите настроить /etc/hosts после добавления новых IP адресов, но это не обязательно.
Выполните команду:
ifconfig
Вы должны увидеть новые IP адреса:
[root@server1 ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:03:96:51
inet addr:192.168.0.100 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe03:9651/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:314 errors:0 dropped:0 overruns:0 frame:0
TX packets:365 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:28797 (28.1 KiB) TX bytes:73983 (72.2 KiB)
Interrupt:17 Base address:0x1400
eth0:0 Link encap:Ethernet HWaddr 00:0C:29:03:96:51
inet addr:192.168.0.101 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:17 Base address:0x1400
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:8 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:560 (560.0 b) TX bytes:560 (560.0 b)
[root@server1 ~]#
Часть шестая. Отключение фаервола и SELinux.
(Можете пропустить эту часть, если уже выполнили описанные действия в третьей части)
В конце этого руководства я хочу установить ISPConfig, поставляется со своим собственным фаерволом и системой безопасности. Поэтому я сейчас отключу втроенный в Fedora 7 фаервол и SULinux. Конечно, вы можете и не отключать их, настроив должным образом (однако позднее придётся отказаться от использования других фаерволов, так как они могут конфликтовать со втсроенным).
Выполните следующую команду:
system-config-securitylevel
Установите Security Level и SELinux в состояние Disabled и кликните OK:

После этого надо перезагрузить систему:
shutdown -r now
Часть седьмая. Установка некоторых програмных пакетов.
Для начала надо импортировать ключи GPG для програмных пакетов:
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*
После чего стоит обновить имеющиеся пакеты:
yum update
Сейчас мы установим некоторые пакеты, которые потребуются позже:
yum install fetchmail wget bzip2 unzip zip nmap openssl lynx fileutils ncftp gcc gcc-c++
Часть восьмая. Квота.
(Если вы размечали диски не так как написано в данном руководстве, вы должны изменить эту часть, чтобы квота была применима для всех ваших разделов.)
Чтобы установить квоту, выполним следующую команду:
yum install quota
Отредактируйте /etc/fstab и добавьте ,usrquota,grpquota в раздел "/" (/dev/VolGroup00/LogVol00):
vi /etc/fstab/dev/VolGroup00/LogVol00 / ext3 defaults,usrquota,grpquota 1 1
LABEL=/boot /boot ext3 defaults 1 2
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
/dev/VolGroup00/LogVol01 swap swap defaults 0 0
После чего выполните следующее:
touch /aquota.user /aquota.group
chmod 600 /aquota.*
mount -o remount /
quotacheck -avugm
quotaon -avug
чтобы включить квоту.
Часть девятая. Установка Chrooted DNS сервера (BIND9)
Чтобы установить chrooted BIND9, выполняем следующее:
yum install bind-chroot
Далее мы изменяем несколько привелегий и стартуем BIND:
chmod 755 /var/named/
chmod 775 /var/named/chroot/
chmod 775 /var/named/chroot/var/
chmod 775 /var/named/chroot/var/named/
chmod 775 /var/named/chroot/var/run/
chmod 777 /var/named/chroot/var/run/named/
cd /var/named/chroot/var/named/
ln -s ../../ chroot
chkconfig --levels 235 named on
/etc/init.d/named start
BIND запустится в chroot jail под /var/named/chroot/var/named/. Я буду использовать ISPConfig для настройки BIND (зоны, прочее).
Часть десятая. Сервер MySQL (5.*)
Чтобы установить MySQL, делаем следующее:
yum install mysql mysql-devel mysql-server
Далее создаём для MySQL загрузочные ссылки (чтобы MySQL запускался автоматически при каждом включении системы) и запускаем MySQL сервер:
chkconfig --levels 235 mysqld on
/etc/init.d/mysqld start
Проверьте, запущена ли сеть. Выполните команду
netstat -tap | grep mysql
Должно выйти что-то типа этого:
[root@server1 named]# netstat -tap | grep mysql
tcp 0 0 *:mysql *:* LISTEN 2388/mysqld
[root@server1 named]#
Если нет - правим /etc/my.cnf и закомментируем строки:
vi /etc/my.cnf[...]
#skip-networking
[...]
После чего перезапускаем сервер MySQL:
/etc/init.d/mysqld restart
Выполните
mysqladmin -u root password yourrootsqlpassword
mysqladmin -h server1.example.com -u root password yourrootsqlpassword
чтобы установить пароль пользователя root для базы данных (иначе любой будет иметь доступ к базе данных MySQL).
Часть одиннадцатая. Почтовый сервер Postfix с SMTP-AUTH и TLS.
Теперь установим Postfix и Dovecot (Dovecot будет нашим POP3/IMAP сервером):
yum install cyrus-sasl cyrus-sasl-devel cyrus-sasl-gssapi cyrus-sasl-md5 cyrus-sasl-plain postfix dovecot
Теперь настроим SMTP-AUTH и TLS:
postconf -e 'smtpd_sasl_local_domain ='
postconf -e 'smtpd_sasl_auth_enable = yes'
postconf -e 'smtpd_sasl_security_options = noanonymous'
postconf -e 'broken_sasl_auth_clients = yes'
postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination'
postconf -e 'inet_interfaces = all'
postconf -e 'mynetworks = 127.0.0.0/8'
Нам так же следует отредактировать /usr/lib/sasl2/smtpd.conf чтобы Postfix позволял PLAIN и LOGIN входы в систему. Должно выглядеть так:
vi /usr/lib/sasl2/smtpd.confpwcheck_method: saslauthd
mech_list: plain login
Далее создаём сертифекаты для TLS:
mkdir /etc/postfix/ssl
cd /etc/postfix/ssl/
openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024
chmod 600 smtpd.key
openssl req -new -key smtpd.key -out smtpd.csr
openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt
openssl rsa -in smtpd.key -out smtpd.key.unencrypted
mv -f smtpd.key.unencrypted smtpd.key
openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650
Настраиваем Postfix для TLS:
postconf -e 'smtpd_tls_auth_only = no'
postconf -e 'smtp_use_tls = yes'
postconf -e 'smtpd_use_tls = yes'
postconf -e 'smtp_tls_note_starttls_offer = yes'
postconf -e 'smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key'
postconf -e 'smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt'
postconf -e 'smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem'
postconf -e 'smtpd_tls_loglevel = 1'
postconf -e 'smtpd_tls_received_header = yes'
postconf -e 'smtpd_tls_session_cache_timeout = 3600s'
postconf -e 'tls_random_source = dev:/dev/urandom'
postconf -e 'smtpd_sasl_authenticated_header = yes'
После этого устанавливаем имя нашего хоста в Postfix (убедитесь что заменили server1.example.com на ваш):
postconf -e 'myhostname = server1.example.com'
После этих манипуляций у вас должен быть файл /etc/postfix/main.cf который выглядит примерно так (я удалил все строки комментариев):
cat /etc/postfix/main.cf
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
mail_owner = postfix
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost
unknown_local_recipient_reject_code = 550
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
debug_peer_level = 2
debugger_command =
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
xxgdb $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/sbin/sendmail.postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix
setgid_group = postdrop
html_directory = no
manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/postfix-2.3.6/samples
readme_directory = /usr/share/doc/postfix-2.3.6/README_FILES
smtpd_sasl_local_domain =
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
mynetworks = 127.0.0.0/8
smtpd_tls_auth_only = no
smtp_use_tls = yes
smtpd_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key
smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt
smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
smtpd_sasl_authenticated_header = yes
myhostname = server1.example.com
Запускаем Postfix, saslauthd, и Dovecot:
chkconfig --levels 235 sendmail off
chkconfig --levels 235 postfix on
chkconfig --levels 235 saslauthd on
chkconfig --levels 235 dovecot on
/etc/init.d/sendmail stop
/etc/init.d/postfix start
/etc/init.d/saslauthd start
/etc/init.d/dovecot start
Чтобы убедиться, что SMTP-AUTH и TLS корректно работают, выполним следующую команду:
telnet localhost 25
После установки соединения с сервером Postfix, наберите следующее:
ehlo localhost
Если вы увидите строки
250-STARTTLS
и
250-AUTH LOGIN PLAIN
значит все в порядке.
[root@server1 ssl]# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 server1.example.com ESMTP Postfix
ehlo localhost
250-server1.example.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
quit
221 2.0.0 Bye
Connection closed by foreign host.
[root@server1 ssl]#
Напишите
quit
чтобы вернуться в shell.
Часть одиннадцатая, дополнение. Maildir.
Dovecot использует формат Maildir (а не mbox), так что если вы собираетесь установитьl ISPConfig на ваш сервер, пожалуйста, убедитесь что вы включили Maildir в Management -> Server -> Settings -> Email. ISPConfig позже выполнит необходимую конфигурацию.
если вы не хотите устанавливать ISPConfig, тогда вам нужно настроить Postfix, чтобы тот доставлял почту в пользовательский Maildir (то же самое можно сделать и используя ISPConfig - больно не будет ;) ):
postconf -e 'home_mailbox = Maildir/'
postconf -e 'mailbox_command ='
/etc/init.d/postfix restart
Часть двенадцатая. Apache2 с PHP5.
Установим Apache с PHP5 (5.2.2):
yum install php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc curl curl-devel perl-libwww-perl ImageMagick libxml2 libxml2-devel
Отредактируем /etc/httpd/conf/httpd.conf:
vi /etc/httpd/conf/httpd.conf
и поменяем DirectoryIndex to
[...]
DirectoryIndex index.html index.htm index.shtml index.cgi index.php index.php3 index.pl
[...]
Настроим автозапуск Apache:
chkconfig --levels 235 httpd on
Запустим Apache:
/etc/init.d/httpd start
Часть двенадцатая, дополнение. Глобальное отключение PHP.
(Если вы не планируете устанавливатьl ISPConfig на ваш сервер, пропустите эту часть)
В ISPConfig вы можете настроить PHP на основе посайтового базиса, т.е. вы можете указать, какие сайты могут запускать скрипты PHP и какие не могут. Это можно сделать только если PHP глобально отключен, потому как иначе все сайты смогут запускать PHP скрипты, независимо от того что вы указали в ISPConfig.
Чтобы глобально отключить PHP, правим /etc/httpd/conf.d/php.conf и комментируем строки AddHandler и AddType:
vi /etc/httpd/conf.d/php.conf
#
# PHP is an HTML-embedded scripting language which attempts to make it
# easy for developers to write dynamically generated webpages.
#
LoadModule php5_module modules/libphp5.so
#
# Cause the PHP interpreter to handle files with a .php extension.
#
#AddHandler php5-script .php
#AddType text/html .php
#
# Add index.php to the list of files that will be served as directory
# indexes.
#
DirectoryIndex index.php
#
# Uncomment the following line to allow PHP to pretty-print .phps
# files as PHP source code:
#
#AddType application/x-httpd-php-source .phps
Перезапускаем Apache:
/etc/init.d/httpd restart
Часть тринадцатая. Сервер ProFTPd.
ISPConfig более качественно поддерживает proftpd, нежели vsftpd, так что удалим vsftpd и установим proftpd:
yum remove vsftpd
yum install proftpd
Далее меняем /etc/pam.d/proftpd (естественно сделав резервную копию оригинала /etc/pam.d/proftpd) потому как иначе пользователи не смогут логиниться на FTP:
cp /etc/pam.d/proftpd /etc/pam.d/proftpd_orig
cat /dev/null > /etc/pam.d/proftpd
vi /etc/pam.d/proftpd#%PAM-1.0
auth required pam_unix.so nullok
account required pam_unix.so
session required pam_unix.so
Делаем Proftpd запускающимся при включении системы и стартуем его:
chkconfig --levels 235 proftpd on
/etc/init.d/proftpd start
Часть четырнадцатая. Webalizer.
Для установки webalizer, просто выполните команду
yum install webalizer
Часть пятнадцатая. Синхронизация системных часов.
Если вы хотите синхронизировать системные часы с NTP-сервером, сделайте следующее:
yum install ntp
chkconfig --levels 235 ntpd on
ntpdate 0.pool.ntp.org
/etc/init.d/ntpd start
Часть шестнадцатая. Установка некторых модулей Perl.
ISPConfig поставляется вместе со SpamAssassin которому нужны некоторые модули Perl для работы. Установим их одной командой:
yum install perl-HTML-Parser perl-DBI perl-Net-DNS perl-Digest-SHA1
Часть семнадцатая. Конец :)
Итак, установка и настройка сервера почти закончена. Теперь можно установить IPSConfig, который можно взять с
Удачи :)
P.s.: лучшая благодарность - подключение к доку ;)
P.p.s.: повторяю для дятлов - я НЕ автор этой статьи, я только перевёл её на великий и могучий ;)
Loading... (Longer if IE explorer)
Гороскоп - ОвенКонтактыНаши RSSПо материалам:В помощь |
Fedora 7. Готовим сервер.
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы предлагаем Вам зарегистрироваться либо войти на сайт под своим именем.
На сайте функционирует система коррекции ошибок. Обнаружив неточность в тексте, выделите её и нажмите Ctrl+Enter.
Администрация не несёт ответственности за файлы и их содержание предоставленные пользователями сайта. Мы не храним никаких материалов на своих серверах, кроме ссылок на файлы других сервисов. |


Упс...... 











Сегодня в Мире









