Настройка сетевых сервисов.

1  Кэширующий сервер имён
2  Электронная почта
    2.1  sendmail
    2.2  fetchmail
3  Суперсервер inetd
4  NFS
5  ProFTP
6  Apache

1  Кэширующий сервер имён

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

Slackware Linux 8.0 "Etta" поставляется с BIND версии 9.1.2. Настроить кэширующий DNS сервер здесь достаточно просто. Для этого в файле /etc/rc.d/rc.inet2 найдите строки, относящиеся к запуску named. Там предложены два варианта запуска. Первый - программа выполняется из-под root. По некоторым причинам, настоятельно рекомендуется воспользоваться второй опцией - запустить программу от имени пользователя daemon из группы daemon. Это более безопасный вариант. Я пользуюсь именно им:


 if [ -x /usr/sbin/named ]; then
   echo "Starting BIND:  /usr/sbin/named -u daemon"
   /usr/sbin/named -u daemon
 fi

И выполните root-ом такие действия:


chown -R daemon /var/named
chown -R daemon /var/run/named

Если вы пожелаете использовать несколько DNS серверов, перечислите их в файле /etc/resolv.conf:


nameserver 127.0.0.1 # кэширующий сервер
nameserver 137.224.129.4 # DNS в нашем домене

В моём /etc/ressolv.conf вообще нет строк nameserver. В этом случае компьютер при поступлении запроса на обработку имени по умолчанию ищет DNS на локальном компьютере. Что меня вполне устраивает.

2  Электронная почта

2.1  sendmail

Вначале опишу ситуацию. Мой компьютер постоянно в сети. Он имеет постоянный IP адрес 137.224.129.135 и находится в домене fenk.wau.nl. Имя хоста pc135 (по каким-то причинам иногда он получает старое имя mac135, и не виден из внешней сети, кроме как напрямую через IP адрес). Это университетская сеть.

Я хочу, чтобы вся уходящая почта подписывалась @fenk.wau.nl, а не @pc135.fenk.wau.nl. Эта ситуация довольно проста и не потребует создания своего собственного .cf файла. Можно просто подправить несколько строк в одном из .cf файлов, поставляемых со Slackware (они находятся в каталоге /usr/src/sendmail).

  • linux.smtp.cf Это наиболее простой вариант настройки. Предназначен для тех, кто постоянно включён в интернет (скорее всего через ethernet или slip). Это вариант, используемый в Slackware по умолчанию.

  • linux.smtp-rbl.cf То же что и выше, но с антиспамовым фильтром. Если адрес того, кто написал вам письмо перечислен в одной из баз данных "спамовых адресов", письмо будет проигнорировано.

  • linux.smtp-rbl+.cf Этот вариант настройки игнорирует письма с сайтов, известных как распространителей спама, с сайтов, имеющих плохо защищённый сервер электронной почты и отказывающихся фиксировать ошибки в безопасности. Так же этой настройкой будут проигнорированы письма, отправленные с dial-up машин (или других машин с динамическим IP) напрямую, а не через почтовый сервер провайдера.

  • linux.uucp.cf Если у вас есть один UUCP хост, через который вы собираетесь посылать всю почту (через uucp), то это вариант настройки для вас. Вначале вам необходимо настроить UUCP. Затем укажите имя uucp хоста, к которому вы подключены.

Итак, первым делом:

# cat /usr/src/sendmail/linux.smtp.cf > /etc/mail/sendmail.cf

Далее открываем его текстовым редактором. И указываем директиву Dj:


# my official domain name
# ... define this only if sendmail cannot automatically determine your domain
Djfenk.wau.nl

Это позволит sendmail указывать имя отправителя в виде имя_локального_пользователя@fenk.wau.nl. Если я захочу использовать smtp сервер нашей лаборатории (metten.fenk.wau.nl), я укажу:


# "Smart" relay host (may be null)
DSsmtp:metten.fenk.wau.nl

С настройкой почти всё. Загляните в файл /etc/mail/aliases. Может быть вы пожелаете, чтобы вся почта переправлялась на одного пользователя, например:


bin:		root
daemon:		root
games:		root
ingres:		root
nobody:		root
system:		root
toor:		root
uucp:		root
manager:	root
dumper:		root
webmaster:	root
abuse:		root
decode:		root
root:		tolpyekin

Теперь собственно, откроем /etc/rc.d/rc.M и откомментируем запуск sendmail:


# Start the sendmail daemon:
if [ -x /usr/sbin/sendmail ]; then
  echo "Starting sendmail daemon:  /usr/sbin/sendmail -bd -q15m"
  /usr/sbin/sendmail -bd -q15m
fi

2.2  fetchmail

Эта программа используется для того, чтобы забирать почту с удалённых почтовых серверов. Если её запустить в фоновом режиме, она периодически будет опрашивать удалённые серверы (указанные в командной строке или в конфигурационном файле, с использованием указанного протокола) на предмет наличия почты. Если таковая имеется, программа скачает письма и передаст их местной спулинговой системе, которая доставит письма конечным пользователям.

Итак, модель: имеется два удалённых почтовых ящика (tolpyekin и dolphin77), на серверах, работающих по POP протоколу (metten.fenk.wau.nl и mail.od.ua). Мы хотим проверять их с интервалом в 15 минут. Для этого в каталоге /root создадим файл .fetchmailrc такого содержания:


set daemon 900
defaults
poll metten.fenk.wau.nl with protocol POP3:
                no dns, user tolpekin password 'UgaDa;tesami' is tolpyekin here;
poll mail.od.ua with protocol POP3:
                no dns, user dolphin77 password TrivIaLNij is tolpyekin here;

Для проверки можете выполнить от root fetchmail -cv (-c означает проверить есть ли для вас почта в указанных ящиках, не забирая её; -v (verbose) означает, выводить диалог с серверами на экран). Далее в /etc/rc.d/rc.local добавьте такую строку:


/usr/bin/fetchmail -f /root/.fetchmailrc

3  Суперсервер inetd

Если вы не знаете, что такое inetd, рекомендую почитать соответствующий раздел в Slackware Linux Essentials.

Подключая ваш компьютер к сети важно осознавать, что чем больше открытых сервисов вы оставляете, тем более "уязвима" становится ваша система. Так что если вы помешаны на безопасности, просто закройте все сервисы...:). Slackware поставляется с inetd в котором открыто множество сетевых сервисов. Скорее всего о многих из них вы никогда не слышали. И практически наверняка совсем немногие из них вам понадобятся на практике.

Для того, чтобы открыть (закрыть) какой-либо из сервисов, удалите (вставьте) в начале соответствующей этому сервису строке файла /etc/inetd.conf символ #. Я лично не использую такие сервисы, открытые в Slackware по умолчанию, как: time, comsat, shell, login, ntalk и auth.

4  NFS

5  ProFTP

FTP сервер, поставляемый сегодня со Slackware - ProFTP. Для того, чтобы открыть анонимный FTP на вашем компьютере, закомментируйте строку "ftp" в файле /etc/ftpusers (этот файл описывает тех пользователей, которые не имеют права входить в систему через FTP сервис). Вы так же можете добавить в этот файл тех пользователей, которые по вашему усмотрению не должны иметь доступа через FTP к своим домашним каталогам.

По умолчанию анонимный FTP предоставляет на общее рассмотрение файлы из каталога /home/ftp. Если вы хотите создать каталог, в который анонимные пользователи смогут заливать данные, создайте каталог /home/ftp/incoming и откомментируйте в файле /etc/proftpd.conf строки:


   <Directory incoming/*>
     <Limit READ>
      DenyAll
     </Limit>

     <Limit STOR>
      AllowAll
     </Limit>
   </Directory>

Файл /etc/proftpd.conf является главным настроечным файлом ProFTP сервера.

6  Apache

Web сервер apache, поставляемый со Slackware 8.0 "Etta" настроен следующим образом. Все настроечные фалы ноходятся в каталоге /etc/apache. А каталог из которого по умолчанию берётся содержимое web страницы /var/www/htdocs. Здесь я привиду лишь самый минимум необходимой информации для корректной настройки этого сервера для работы с русским языком.

Скажем, содержимое вашей страницы мы поместим в каталог /var/www/mypage. Для этого найдите в /etc/apache/httpd.conf строки:
DocumentRoot "/var/www/htdocs"
и <Directory "/var/www/htdocs">
и замените их на:
DocumentRoot "/var/www/mypage"
и Directory "/var/www/mypage">
соответственно. Или же просто удалите всё содержимое оригинального каталога /var/www/htdocs и разместите там свою страницу.

Теперь мы попросим apache обращать внимание на файл .htaccess, через который мы собственно и произведём правильную русификацию. Итак, чуть ниже строки <Directory "/var/www/mypage"> найдите строку


AllowOverride None
и замените её на:
AllowOverride FileInfo

После этого разместите в корневом каталоге вашей страницы файл .htaccess такого содержания:


AddDefaultCharset koi8-r
AddLanguage ru .html .txt

И не забудьте в шапке документа добавить: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML LANG=ru>

Теперь по идее apache сам позаботится о том, как правильно предоставить документ просмотрщику пользователя.


Last update 19 Jul 2001.