Содержание


ArchLinux, Fedora, ASPLInux, Mandriva, Debian, Ubuntu, FreeBSD

Часть 3. Fedora, ASPLinux, Mandriva Linux – подготовка систем для использования в качестве Web-сервера

Comments

Серия контента:

Этот контент является частью # из серии # статей: ArchLinux, Fedora, ASPLInux, Mandriva, Debian, Ubuntu, FreeBSD

Следите за выходом новых статей этой серии.

Этот контент является частью серии:ArchLinux, Fedora, ASPLInux, Mandriva, Debian, Ubuntu, FreeBSD

Следите за выходом новых статей этой серии.

В предыдущих статьях описывалась актуальность построения связки php+apache+mysql на базе известных и стабильных операционных систем, таких как Linux и FreeBSD. Решение этого вопроса видится в установке операционной системы, ее настройке под решаемую задачу (в первую очередь – правка ядра и конфигурационного файла httpd), установке интерпретатора php, подключение его как модуля httpd, установке и настройке СУБД mysql и общей интеграции всех перечисленных компонентов в проект. Таким образом, весь процесс требует от человека понимания происходящего и опыта в развертывании. На сегодняшний день вариантов использования linux-дистрибутивов может быть очень много, поэтому важно уметь быстро и качественно подготовить такую платформу для любой поставленной задачи. Поэтому данная серия статей охватывает такой широкий круг связанных общей темой вопросов. В предыдущих статьях были рассмотрены системы Ubuntu/Debian и FreeBSD, в этой статье мы рассмотрим rpm-based дистрибутивы – Fedora, ASPLinux, и Mandriva Linux.

Установка и настройка Mandriva Linux Free 2009 с поддержкой php+apache+mysql

Общее впечатление от дистрибутива с Mandriva Linux Free 2009 отличное. Добротное, выполненное еще в стиле Mandrake приглашение к установке, сам установщик – все притягивает рабочей простой (рисунок 1). После установки дистрибутива и настройки сети можно перейти в «Центр управления Mandriva Linux 2009» и там продолжить все необходимые действия. Начнем с обновления источников установки пакетов. После обновления источников необходимо перейти к установке пакетов, которые составят наш интегрированный проект. Там же, в «Центре управления…», в меню «установка …» поиском найдите, а затем выберите пакеты php-mysql, apache-mod_php, mysql, затем нажмите «применить». Если из источников убрать установочный диск, то все пакеты будут устанавливаться из сетевых центров, где расположены более поздние их версии.

Рисунок 1.
Рисунок 1.
Рисунок 1.

После установки пакетов и их зависимостей (это генерирует около 7,4 МБ трафика) необходимо обеспечить старт соответствующих служб. Для начала проверим их статус на данный момент времени командами:

	#chkconfig --list | grep httpd 
	#chkconfig --list | grep mysqld

Изначально они выключены, значит, их надо включить соответственно командами:

	#chkconfig --level 345 httpd on
	#chkconfig --level 345 netfs on
	#chkconfig --level 345 mysqld on

Включение mysqld на этих уровнях потребовало включения и netfs – просто обратите на это внимание.

После старта служб, что можно сделать как вручную, так и после перезагрузки, их рабочее состояние можно проверить, выполнив в консоли под root следующие команды:

	#pstree | grep mysqld
	#pstree | grep httpd

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

Рисунок 2.
Рисунок 2.
Рисунок 2.

В завершение этого процесса создадим файл my.php с содержанием:

	<?php
		echo phpinfo();
	?>

запуск которого в браузере приведет в показу красивой и очень информативной картинки, как на рисунке 3.

Рисунок 3.
Рисунок 3.
Рисунок 3.

Не забываем в конце подредактировать под свои нужды конфигурационные файлы apache и php и сделать все необходимые процедуры для СУБД mysql, о чем говорилось ранее в статьях этого цикла, а также настроить сетевой экран, который здесь, в Mandriva, настраивается легко и свободно, в «Центре управления Mandriva Linux 2009».

Установка и настройка Fedora Linux с поддержкой php+apache+mysql

Процесс инсталляции Fedora выполнен очень привлекательно. Прекрасный установщик (рисунок 4), все стильно, выдержанно и ласкает взгляд.

Рисунок 4.
Рисунок 4.
Рисунок 4.

Сам процесс, в среднем, занимает времени не больше, чем у Mandriva, – все этапы описаны вполне понятно и удобны при использовании.

После удачной установки и настройки всех необходимых параметров, таких как ip-адрес, маска подсети, шлюз по умолчанию, адрес DNS-сервера, можно перейти к заданию требуемого программного обеспечения для построения нужного нам комплекса. Отредактируйте требуемые файлы для обеспечения нужных настроек – /etc/sysconfig/network-scripts/ifcfg-eth0, где прописаны все основные параметры; файл /etc/resolv.conf – для записи о DNSсервере. При использовании редактора vim (улучшенная версия vi) процесс будет выглядеть как на рисунке 5. В режиме графического рабочего стола можно воспользоваться для этих целей утилитой “system-config-network”. После этих манипуляций нужно сделать перезагрузку сетевых служб командой:

# /etc/rc.d/init.d/network restart
Рисунок 5.
Рисунок 5.
Рисунок 5.

Что использовать – консоль или утилиты – зависит от приоритетов и личных предпочтений. Если изначально устанавливается сервер и делается отказ от использования графического рабочего стола (минимальная установка с необходимым набором программ для работы сервера), то предпочтительнее использовать yum – штатный установщик Fedora. Если вы устанавливаете сервер и планируете использовать графический рабочий стол с его фирменными утилитами для администрирования системы, то там есть свои оболочки для установки пакетов. Рабочее окружение стола я описывать не буду, а в консоли процесс установки нужных нам компонентов будет выглядеть следующим образом. Для получения нужной информации об устанавливаемых пакетах до их установки, можно воспользоваться командой:

# yum info httpd(php mysql и т.д.),

затем необходимо в консоли, от имени пользователя root, набрать команду:

# yum install httpd php mysql mysql-server php-mysql

что обеспечит установку всех необходимых компонентов и их зависимостей для правильной работы сервера с поддержкой apache+php+mysql.

Для начала проверим их статус на данный момент времени командами:

	#chkconfig --list | grep httpd 
	#chkconfig --list | grep mysqld

И, если они выключены, их надо включить соответственно командами:

	#chkconfig --level 345 httpd on
	#chkconfig --level 345 mysqld on

После этого можно запустить нужные службы:

	# service httpd start
	# service  mysqld start

затем в рабочий каталог сервера (/var/www/html) положить файл со следующими строками:

	<?php
		echo phpinfo();
	?>

и именем name.php. Набрав в браузере адрес (или имя) сервера и имя файла (у меня это 10.0.16.77)

 http://10.0.16.77/name.php

вы получите картинку, как на рисунке 6, где также можно видеть имя операционной системы, дату построения системы и многие другие параметры.

Рисунок 6.
Рисунок 6.
Рисунок 6.

Защитить свою систему можно как в графическом режиме специальными утилитами из раздела «Администрирование», так и в консоли фирменной утилитой от Fedora, выполнив команду:

	# system-config-firewall

Кроме того, в графическом режиме можно использовать утилиту для настройки SELinux, которая может облегчить этот процесс.

Установка и настройка ASP Linux с поддержкой php+apache+mysql.

Отдельной строкой в ряду описываемых дистрибутивов стоит ASPLinux, отечественный клон Fedora Linux. Основан ASPLinux на системе управления пакетами RPM и полностью совместим с дистрибутивом Fedora. Поддержка русского языка в нем работает сразу «из коробки» и не требует дополнительных усилий при настройке. Ранее поддерживались локализации почти для всех общеизвестных кодировок кириллицы: KOI8-R, KOI8-U, CP1251, ISO 8859-5, UTF-8. С 12-й версии, команда разработчиков ASPLinux отказалась от поддержки множества кодировок кириллицы, оставив только UTF-8, а также отказалась от фирменного инсталлятора и перешла на Anaconda, хотя раньше установщик был предметом их особой гордости. До 9-й версии включительно ASPLinux базировался на операционной системе Red Hat Linux, а все последующие версии базируются на дистрибутиве Fedora. Как правило, за основу нового дистрибутива ASPLinux берётся предпоследняя версия Fedora, а так как разница между выпусками этих дистрибутивов составляет несколько месяцев, то новый ASPLinux включает в себя очень многие из выпущенных обновлений и исправлений для пакетов. Одним из основных отличий ASPLinux является полная поддержка мультимедиа прямо «из коробки» без дополнительных манипуляций по настройке. В Fedora, по законам США, отсутствует поддержка многих популярных мультимедийных форматов. Кроме настольного варианта, ASPLinux также выпускается в виде серверной версии ASPLinux Server, основанной на последней версии RHEL.

Рассмотрим процесс установки и настройки коплекса программных решений для реализации сервера с поддержкой apache+php+mysql (рисунок 7).

Рисунок 7.
Рисунок 7.
Рисунок 7.

В силу идентичности Fedora, процесс установки ASPLinux выглядит практически аналогично. Хорошая русификация «из коробки» может облегчить понимание вопросов администрирования начинающим инженерам и пользователям системы.

После нормальной и безаварийной установки, а затем и входа в систему, должна быть картинка, как на рисунке 8. Далее, проверив все основные настройки и убедившись в работоспособности сети и всего, что дает возможность серверу обслуживать запросы, устанавливаем необходимые пакеты:

# yum install httpd php mysql mysql-server php-mysql
Рисунок 8.
Рисунок 8.
Рисунок 8.

что обеспечит установку всех необходимых частей и их зависимостей для правильной работы сервера с поддержкой apache+php+mysql.

Проверим, как было описано ранее, их статус на данный момент времени командами:

	#chkconfig --list | grep httpd 
	#chkconfig --list | grep mysqld

Если они выключены, их надо включить соответственно командами:

	#chkconfig --level 345 httpd on
	#chkconfig --level 345 mysqld on

После этого можно запустить нужные службы командами:

	# service httpd start
	# service  mysqld start

Затем в рабочий каталог сервера (а это /var/www/html) положить файл со следующими строками:

<?php
		echo phpinfo();
?>

и именем name.php. Набрав в браузере адрес (или имя) сервера и имя файла (у меня это 10.0.16.77)

 http://10.0.16.77/name.php

вы получите картинку, как на рисунке 9, где уже традиционно можно видеть имя операционной системы, дату построения системы и многие другие параметры.

Рисунок 9.
Рисунок 9.
Рисунок 9.

Если по какой-то причине (а это возможно при установке в минимальном режиме) вы не нашли у себя в системе утилит типа “system-config-firewall”, то всегда можно настроить firewall вручную, заручившись знаниями в области построения iptables. Давайте для примера создадим рабочую конфигурацию такого firewall вручную. Я приведу свой рабочий файл конфигурации. Он выполнен как раз для такой конфигурации. Комментарии внутри файла достаточно информативны, но базовое знание iptables будет не лишним для понимания механизма работы фильтра в целом.

##################################################################
!/bin/sh

#Internet Configuration.
INET_IP="10.0.16.77"
INET_IFACE="eth0"
INET_BROADCAST="10.0.16.255"

#Localhost Configuration.
LO_IFACE="lo"
LO_IP="127.0.0.1"

#IPTables Configuration.
IPTABLES="/sbin/iptables"

#Filter table

#Set policies
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP

# Create chain for bad tcp packets
$IPTABLES -N bad_tcp_packets

# Create separate chains for ICMP, TCP and UDP to traverse
$IPTABLES -N allowed
$IPTABLES -N tcp_packets
$IPTABLES -N udp_packets
$IPTABLES -N icmp_packets

#Create content in userspecified chains

# bad_tcp_packets chain
$IPTABLES -A bad_tcp_packets -p tcp --tcp-flags SYN,ACK SYN,ACK \
-m state --state NEW -j REJECT --reject-with tcp-reset 
$IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j LOG \
--log-prefix "New not syn:"
$IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j DROP

# allowed chain
$IPTABLES -A allowed -p TCP --syn -j ACCEPT
$IPTABLES -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A allowed -p TCP -j DROP

# TCP rules - allow ftp, ssh, web
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 21 -j allowed
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 22 -j allowed
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 80 -j allowed

# UDP ports - allow 53DNS, 123NTP
 $IPTABLES -A udp_packets -p UDP -s 0/0 --destination-port 53 -j ACCEPT
 $IPTABLES -A udp_packets -p UDP -s 0/0 --destination-port 123 -j ACCEPT

# ICMP rules
$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT
$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT

#NPUT chain
$IPTABLES -A INPUT -p tcp -j bad_tcp_packets

# Rules for special networks not part of the Internet
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LO_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $INET_IP -j ACCEPT


# Rules for incoming packets from the internet.
$IPTABLES -A INPUT -p ALL -d $INET_IP -m state --state ESTABLISHED,RELATED \
-j ACCEPT
$IPTABLES -A INPUT -p TCP -i $INET_IFACE -j tcp_packets
$IPTABLES -A INPUT -p UDP -i $INET_IFACE -j udp_packets
$IPTABLES -A INPUT -p ICMP -i $INET_IFACE -j icmp_packets

# Log weird packets that don't match the above.
$IPTABLES -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG \
--log-level DEBUG --log-prefix "IPT INPUT packet died: "



#OUTPUT chain
# Bad TCP packets we don't want.
$IPTABLES -A OUTPUT -p tcp -j bad_tcp_packets

# Special OUTPUT rules to decide which IP's to allow.
$IPTABLES -A OUTPUT -p ALL -s $LO_IP -j ACCEPT
$IPTABLES -A OUTPUT -p ALL -s $INET_IP -j ACCEPT

# Log weird packets that don't match the above.
$IPTABLES -A OUTPUT -m limit --limit 3/minute --limit-burst 3 -j LOG \
--log-level DEBUG --log-prefix "IPT OUTPUT packet died: "
#############################################################################

Здесь INET_IP – это ip-адрес, он единственный и находится во внутренней сети. Открыты для доступа ftp, ssh, web по протоколу TCP, по UDP – открыты 53DNS, 123NTP. Можно использовать эти правила как основу для собственных , поменяв только имена интерфейса и собственно адрес.

Выводы

В статье последовательно рассмотрены операционные системы Mandriva Linux, Fedora Linux и ASPLinux в контексте их установки и настройки как серверных систем с поддержкой php+apache+mysql. Даны общие рекомендации и детально рассмотрен процесс развертывания наиболее популярных комплексных решений при построении Web-сервера на основе свободных программных продуктов с поддержкой php+apache+mysql.

Изложен процесс активизации системных служб, отвечающих за поддержку описываемых системных решений. Все наиболее значимые этапы сопровождаются снимками экрана, помогающими восприятию излагаемого материала.

Детально описаны методы конфигурации сетевого фильтра (firewall) применительно ко всем рассматриваемым системам. Эти моменты были описаны как с использованием встроенных системных утилит, так и с использованием синтаксиса для написания правил сетевого брандмауэра iptables. Приведена полностью работоспособная конфигурация iptables для типового Web-сервера. Следующая статья.


Ресурсы для скачивания


Комментарии

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

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Linux
ArticleID=500237
ArticleTitle=ArchLinux, Fedora, ASPLInux, Mandriva, Debian, Ubuntu, FreeBSD: Часть 3. Fedora, ASPLinux, Mandriva Linux – подготовка систем для использования в качестве Web-сервера
publish-date=07132010