|
Настройка сетевых сервисов
В. Толпекин
- Кэширующий сервер имён
- Электронная почта
2.1 sendmail
2.2 fetchmail
- Суперсервер inetd
- NFS
- ProFTP
- 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 сам позаботится о том, как правильно
предоставить документ просмотрщику пользователя.
©"Slackware
Linux Essentials" на русском
наверх
|