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

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

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).

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

# 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 сам позаботится о том, как правильно предоставить документ просмотрщику пользователя.

7  rsync

Если вы решились зеркалировать какой-либо сайт, наилучшим способом будет использование утилиты rsync. Давайте для примера рассмотрим зеркалирование slackware-current. Итак, "источник" будет ftp.slackware.com. Давайте вначале проверим, поддерживает ли этот сайт rsync. Для этого выполним:
tolpyekin@pc170:~$ rsync ftp.slackware.com::

что выдаст нам такой текст (если сайт не перегружен):
slackware       Slackware

Как вы видите, данный сайт поддерживает rsync. Слева выводится список каталогов, доступных для rsync, а справа - описание каталога. Итак, для зеркалирования воспользуемся командой:

/usr/bin/rsync -avr --delete ftp.slackware.com::slackware/slackware-current/ /home/ftp/pub/linux/ 

Опция --delete в общем-то весьма опасна, так как удалит все файлы, отличающиеся от "источника" даже временной отметкой. Но нам необходимо ей воспользоваться, дабы избавиться от всякого мусора. Это опция удаляет локальные файлы, которых не существует на сайте "источнике".

А теперь давайте запустим rsyncd дабы помочь нашим единомышленникам и разгрузить малость сайт ftp.slackware.com. Для этого создадим файл /etc/rsyncd.conf такого содержания:

uid = nobody
gid = nobody
use chroot = no
max connections = 10
syslog facility = local5
pid file = /var/run/rsyncd.pid

[slackware]
path = /home/ftp/pub/linux/slackware-current
comment = Slackware current tree

Теперь только осталось добавить в файл /etc/inetd.conf такую строчку:

rsync stream tcp nowait root /usr/bin/rsync rsyncd --daemon

Ну и естественно, пере-загрузить inetd:

root@pc170:/home/tolpyekin# killall -HUP inetd

Автор статьи - dolphin.
Домашняя страница документа sle.how-to.ru.
Last update 10 Apr 2002.