Колисниченко Д.Н. - Linux-сервер своими руками (1077324), страница 85
Текст из файла (страница 85)
После этого можноотредактировать файл /etc/php.ini и установить пароль для пользователяroot сервера MySQL (не путайте пользователя root всей системы с пользователем root сервера MySQL!). Обе операции уже были описаны в п. 16.3.1.Теперь только остается добавить запуск серверов в сценарии автозагрузкисистемы.
Напомню, что сервер MySQL должен запускаться до сервера Apache.36617Практические примеры.Обратный звонокВозможно, материал этой главы будет пересекаться с уже имеющимся вэтой книге, но при написании главы я ставил цель объяснить все «с нуля».Практически любой читатель сможет настроить шлюз и сервер входящихзвонков, не читая предыдущих глав. Конечно, этот читатель должен обладать некоторыми навыками работы в Linux.17.1. Настройка шлюзаСначала определим функции, которые должен выполнять шлюз:1.
Поддержка связи с провайдером.2. Маршрутизация IP-пакетов между локальной сетью и сетью Интернет длявыхода пользователей локальной сети в Интернет.3. Обеспечение IP-сервиса.4. Защита локальной сети от несанкционированного доступа из Интернет.Конфигурирование шлюза в операционной системе Linux состоит изследующих этапов:1.
Настройка ядра.2. Настройка сети.3. Конфигурирование IpChains.4. Настройка DNS.5. Настройка Squid.Для определенности будет использоваться два сетевых интерфейса ethO, идущий к провайдеру, и ethl — во внутренней сети. Пусть интерфейсу ethO назначен IP-адрес 111.111.111.111, a ethl — 192.168.1.117.1.1. Настройка ядраСкорее всего, вам придется перекомпилировать ядро.
При этом должныбыть активизированы следующие опции:N e t w o r k i n g support (CONFIG_NET) [у]T C P / I P n e t w o r k i n g (CONFIG_INET) [ у ]IP f o r w a r d i n g / g a t e w a y i n g (CONFIG_IP_FORWARD)[y]367Практические примеры. Обратный звонокIP m u l t i c a s t i n g (CONFIG_IP_MULTICAST) [у]IP f i r e w a l l i n g (CONFIG_IP_FIREWALL) [у]IP a c c o u n t i n g (CONFIG_IP_ACCT) [y]Можно также поэкспериментировать с набором опций Advanced Router,если данные функции есть в вашем ядре. Более подробно о процессекомпилирования ядра вы можете прочитать в следующей главе.17.1.2. Настройка сетиПосле перекомпилирования ядра нужно включить IP-forwarding.
Сделайте это при помощи следующей команды:# echo "1" > / p r o c / n e t / i p _ f o r w a r dНастройку сетевых карт произведите с помощью программы netconf. Отом, как это сделать, было рассказано в гл. 8.17.1.3. Конфигурирование IpChainsТеперь приступим к настройке IPChains. Создайте цепочку, через которую пойдет весь трафик от провайдера:ipchains -N provipchains -A input -i ethO -j provЗапретите ip-spoofing:ipchains -A prov -s 1 9 2 .
1 6 8 . 1 . 1 / 1 6 -1 -j DENYipchains -A prov -s 1 2 7 . 0 . 0 . 1 / 8 -1 -j DENYЗапретите Telnet снаружи:ipchains -A prov -p tcp -destination-port 23 -j REJECTЕсли вы не хотите, чтобы samba «светилась» наружу, запретите порты137-139:i p c h a i n s -A prov -p tcp — d e s t i n a t i o n - p o r t 137 -j REJECTipchains -A prov -p udp - d e s t i n a t i o n - p o r t 137 -j REJECTTo же самое проделайте для портов 138 и 129.О настройке samba вы можете прочитать в Samba-HOWTO.Создайте цепочку для подсчета трафика:ipchains -N t r a f i ni p c h a i n s -I input -i ethO -s ! 1 2 3 .
1 2 3 . 1 2 3 . 0 / 2 4trafini p c h a i n s -A t r a f i n -d 1 2 3 . 1 2 3 . 1 2 3 . 1 2 3-pall-jДля того, чтобы ваши правила были постоянными (при перезагрузкемашины правила IpChains теряются), используйте скрипты ipchains-save иipchains-restore. Настройте свои правила, а затем выполните команду:# ipchains-save > /etc/ipchains.rulesДалее создайте скрипт, подобный тому, что приведен в листинге 17.1.Листинг 17.1. Скрипт управления пакетной фильтрацией#! / b i n / s h# Скрипт управления пакетной фильтрацией.# Если правил нет, то ничего не делать.368Практические примеры.
Обратный звонок#'. /bin/shI Скрипт управления пакетной фильтрацией.# Если правил нет, то ничего не делать.[ -f /etc/ipchains . rules ] | | exit Оcase "$1" instart)echo -n "Включение пакетной фильтрации:"/sbin/ipchains-restore < /etc/ipchains . rules | | exit 1echo 1 > /proc/sys/net/ipv4/ip_forwardecho " . " ; ;stop)echo -n "Отключение пакетной фильтрации:"echo 0 > /proc/sys/net/ipv4/ip_forward/sbin/ipchains -X/sbin/ipchains -F/sbin/ipchains -P input ACCEPT/sbin/ipchains -P output ACCEPT/sbin/ipchains -P forward ACCEPTecho "." ;;*)echo "Использование: / e t c / i n i t .d/packetf ilter { start | stop} "exit 1 ; ;esacexit 0Этот скрипт добавьте в сценарии загрузки системы.17.1.4.
Настройка DNSНапомню, что основной задачей сервера доменных имен (Domain NameSystem) является преобразование мнемонических имен машин в IP-адреса иобратно. Обычно сервер DNS устанавливается на шлюзе, который используется для выхода в Интернет.Прежде чем приступить к настройке сервера, нужно определить, запущен ли он:# ps -ax|grep namedЕсли он запущен, его нужно остановить (с помощью ndc), а если онвообще не установлен, то придется установить пакет bind. Для работысервера должен быть активизирован сервис network.Теперь приступим к непосредственной настройке сервера. Основнаяинформация о параметрах сервера содержится в файле /etc/named.
conf(см. листинг 17.2).Листинг 17.2. Файл named.conflogging {category cname {null; } ;};options {directory "/var/named";369Практические примеры. Обратный звонокzone "." {type h i n t ;f i l e "named.ca";zone " d h s i l a b s . c o m " {type m a s t e r ;f i l e "dhsilabs.com";n o t i f y no;zone " 0 .
0 . 1 2 7 . i n - a d d r . a r p a " {type m a s t e r ;f i l e "named.local";zone " 1 . 1 6 8 . 1 9 2 . i n - a d d r . a r p a " {type master;f i l e "192.168.1";n o t i f y yes;Основной каталог сервера — /var/named. В нем сервер будет искатьфайлы d h s i l a b s .
c o m , n a m e d . l o c a l , 192.168.1, named.ca (см. листинги17.3, 17.4, 17.5). Обслуживаемая нашим сервером зона (домен)d h s i l a b s . c o m (см. листинг 17.3). Файл named.са -- корневой кэш содержит информацию о корневых серверах DNS. Позже займемся егообновлением.Листинг 17.3. Файл dhsilabs.com (для преобразования имен в IP-адреса)@dennswwwftpmailevgININININININININININININININlocalhost INгде: NSA..370SOA d e n . d h s i l a b s com. h o s t m a s t e r . d h s i l a b s .
c o m . (93011120серийный номеробновление каждые 3 часа108003600повтор каждый час3600000хранить информацию 1000 часовTTL записи — 24 часа86400)NS delden.dhsilabs.com.A19:192.168.1.1MX 150 d e n . d h s i l a b s . c o m .A19:192.168.1.1INTEL CELERON (LINUX)HINFOMX 100 denMX 150 evg.dhsilabs.com.CNAME d e n .
d h s i l a b s . c o m .CNAME d e n . d h s i l a b s . c o m .CNAME d e n . d h s i l a b s . c o m .CNAME d e n . d h s i l a b s . c o m .A19:192.168.1.2MX 100 d e n . d h s i l a b s . c o m .A12'127.0.0.1обозобозначаетname server;IP-aПрактические примеры. Обратный звонокMXпочтовик <приоритет>. Чем ниже значение, тем вышеприоритет;HINFOсведения об аппаратном обеспечении (заполнять нерекомендую);ТХТпрочие сведения;CNAMEканоническое имя, т.е. если вы в окне браузера введетеhttp://www.dhsilabs.com, то обращение будет произведенок den.dhsilabs.com.
Обратите внимание на точку в конце:@ IN SOA d e n . d h s i l a b s . c o m . hostmaster.dhsilabs.com.(Если точка не указана, то к имени будет добавлено имя домена (т.е.dhsilabs.com)).Листинг 17.4. Файл named.local@IN1SOA19960920328800720060480086400)NSPTRdhsilabs.com. root.dhsilabs.com.
(; серийный номер; обновление каждые 8 часов; повтор каждые 2 часа; хранить информацию 168 часов (7 дней); TTL записи -- 24 часаdhsilabs.com.localhost.Листинг 17.5. Файл 192.168.1 или файл обратного соответствия@INSOAden.dhsilabs.com. hostmaster.dhsilabs.com. (93011120; серийный номер10800; обновление каждые 3 часа3600; повтор каждый час3600000; хранить информацию 1000 часов86400 ); TTL записи -- 24 часа@IN NSden.dhsilabs.com1IN PTRden.dhsilabs.com2 . 1 .
1 6 8 . 1 9 2 IN PTR e v g . d h s i l a b s . c o mЗапись PTR используется для преобразования IP-адреса в имя. Еслиуказан не весь IP:1 . IN PTR d e n . d h s i l a b s . c o mто к нему будет добавлен адрес подсети 1.168.192. Обратите внимание: IPадреса указываются в обратном порядке!17.1.5. Настройка SquidУстановите пакет squid. Осталось настроить и запустить его. Для этогонужно отредактировать файл конфигурации / e t c / s q u i d / s q u i d , conf.