Шрифт:
Интервал:
Закладка:
Создайте сценарий smaller в своем домашнем каталоге (листинг 14.4).
Листинг 14.4. Сценарий smailer
#!/bin/bash
DT=`date`
echo $DT >> log
for user in `cat users`
do
echo "Sending message to $user"
mail $user -s Subscribe < msg 2>> log
done
Сообщение, которое вы хотите отправить, запишите в файл msg, а список подписчиков по одному в строке — в файл users.
Программу mail можно использовать и для чтения почты. Для этого просто введите команду mail. Если в пашем почтовом ящике есть новые сообщения, программа выведет на экран нумерованный список, и вы сможете ввести номер сообщения, которое хотите прочитать. Для удаления сообщения используется команда d <номер> или d <диапазон>. Выйти из программы можно, введя команду q.
Программа mail — это исключительно пользовательский агент: она работает только с вашим локальным ящиком, В другие почтовые клиенты обычно встроен и агент доступа, забирающий сообщения с внешнего сервера, например, pop.mail.ru. Я советую использовать в качестве почтового клиента программу kmail, входящую в состав KDE.
Эта программа поддерживает несколько учетных записей электронной почты, в том числе и локальный ящик, отправку сообщений с помощью SMTP и локального транспортного агента, а также сообщения в формате HTML.
14.6. Защита программы sendmail. Программа smrsh
Однажды неизвестный хакер может заставить ваш sendmail выполнить какую-нибудь программу. Какая это будет программа — зависит от его фантазии: безобидная команда echo или «rm -rf /». О том, как это сделать, я писать не буду — лучше разберемся, как этого не допустить.
По умолчанию для запуска внешних программ используется оболочка /bin/sh (или /bin/bash), которая позволяет запускать любые программы без ограничения. Вместо оболочки /bin/sh рекомендуется использовать защищенную оболочку smrsh, которая позволяет определить, какие программы можно запускать, а какие — нет.
Определим список программ, которые можно запускать. В него войдут пользовательские агенты (mail), агент доставки procmail и, может быть, что-нибудь еще. Категорически нельзя разрешать запускать командные оболочки (sh, bash, tcsh и другие), потоковый редактор sed, интерпретаторы perl, php и программу uuencode.
Создайте в каталоге /etc/smrsh ссылки на программы, которые можно запускать:
$ cd /etc/smrsh
$ ln -s /bin/mail mail
$ ln -s /usr/bin/procmail procmail
Откройте файл sendmail.cf и замените строки:
Mprog, P=/bin/sh, F=lsDFMoqeu9, S=EnvFromL/HdrFromL,
R=EnvToL/HdrToL, D=$z:/,
T=X-Unix/X-Unix/X-Unix,
A=sh -c $u
строками:
Mprog, P=/usr/sbin/smrsh, F=lsDFMoqeu9, S=EnvFromL/Hdr-FromL,
R=EnvToL/HdrToL, D=$z:/,
T=X-Unix/X-Unix/X-Unix,
A=smrsh -c $u
После этого перезапустите программу sendmail:
# service sendmail restart
Глава 15
Настройка сервера FTP
FTP (File Transfer Protocol) — один из старейших протоколов Интернета — используется для обмена файлами между системами. Обычно на FTP-сервере размещают свободно распространяемое программное обеспечение, документацию, обновления программ, драйверы и прочую публичную информацию. Примером FTP-сервера может послужить сервер ftp://ftp.redhat.com. На этом сервере вы можете найти как саму операционную систему Linux Red Hat, так и обновления ее пакетов, а также дополнительные программы.
Доступ к серверу FTP осуществляется с помощью FTP-клиента. В любой сетевой операционной системе есть простейший FTP-клиент — программа ftp. Обычно для того, что бы начать работу с FTP-сервером, вы должны зарегистрироваться на нем, то есть ввести имя пользователя и пароль. После регистрации вы получаете доступ к своему каталогу. Существуют также общедоступные (анонимные) серверы, к которым имеют доступ все пользователи. Для регистрации на таких серверах обычно нужно использовать имя пользователя anonymous, а в качестве пароля — адрес электронной почты.
Над файлами и каталогами вы можете производить обычные операции: создание, удаление, копирование, перемещение, переименование. Как правило, при выполнении операции копирования вы либо копируете файлы на сервер (команда put) — загружаете на сервер, либо копируете файлы с сервера на свою локальную машину (команда get) — скачиваете с сервера. Работа с FTP-клиентом рассмотрена в п.6.4.5.3, а в этой главе я покажу, как создать FTP-сервер.
15.1. Сервер WU-FTPD
Сервер FTP wu-ftpd, разработанный в Вашингтонском университете, очень широко распространен. Он устанавливается из пакета wu-ftpd, входящего в состав практически каждого дистрибутива.
Демон in.ftpd может быть либо постоянно загружен в память (режим standalone), либо вызываться суперсервером xinetd (inetd) по мере необходимости. Режим standalone и применяется, как правило, если FTP-серверу нужно часто обрабатывать запросы клиентов. Второй режим используется в целях экономии памяти, когда нагрузка на FTP-сервер не очень велика.
Чтобы запускать сервер FTP из-под супердемона, добавьте в файл inetd.conf следующую строку:
ftpstream tcp nowait root /usr/sbin/tcpd in.ftpd -l -a
Таким образом, FTP-сервер вызывается не напрямую, а через TCP-wrapper, чем обеспечивается дополнительная безопасность. Если вы используете супердемон xinetd, описание FTP-сервера должно выглядеть так (листинг 15.1).
Листинг 15.1. Фрагмент файла xinetd.conf
service ftp
{
socket_type = stream
wait = no
user = root
server = /usr/etc/in.ftpd
server_args = -1
instances = 4
log_on_success += DURATION USERID
log_on_failure += USERID
access_times = 2:00-8:59 12:00-23:59
nice = 10
}
Ключ -l регистрирует все сеансы FTP в службе syslog. Другие ключи, с которыми можно запускать FTP-сервер, перечислены в таблице 15.1.
Ключи командной строки сервера wu-ftpd Таблица 15.1
Ключ Назначение -d Записывает отладочную информацию в журнал syslog -l Регистрирует все FTP-сеансы в журнале syslog -L Регистрирует в журнале syslog все команды, отправленные серверу FTP -tсекунды Устанавливает предел времени ожидания дли пассивных клиентов (по умолчанию 15 минут). Если за этот промежуток времени от клиента не поступит ни одной команды, то FTP-сеанс с сервером будет разорван -Tсeкунды Максимально допустимое время сеанса FTP (по умолчанию 2 часа) -a Разрешает использование файла конфигурации ftpaccess -A Запрещает использование файла конфигурации ftpaccess. Эта опция установлена по умолчанию -I Регистрирует в журнале xterlog файлы, полученные сервером FTP -o Регистрирует в журнале xferlog файлы, переданные сервером во время сеанса15.1.1. Настройка WU-FTPD. Конфигурационные файлы
Сервер wu-ftpd использует пять файлов конфигурации:
♦ /etc/ftpaccess — основной файл конфигурации;
♦ /etc/ftphosts — файл, позволяющий запретить доступ к wu-ftpd с определенных узлов или определенным пользователям;
♦ /etc/ftpusers — этот файл содержит список локальных пользователей (зарегистрированных на сервере), которым запрещается взаимодействовать с wu-ftpd;
♦ /etc/ftpservers — позволяет задавать и использовать различную конфигурацию FTP-сервера для различных узлов;
♦ /etc/ftpconversions — определяет типы файлов архивов, которые будут использоваться при сжатии (архивировании) передаваемых данных. Само сжатие включается и выключается в файле /etc/ftpaccess.
Основной файл ftpaccess. Директивы сервера WU-FTPDВ этом файле содержатся директивы, которые управляют правами доступа и регистрацией пользователей, задают параметры TCP/IP-взаимодействия, виды регистрируемых событий, используются для конфигурирования анонимного доступа к FTP-серверу и т.п. Пример файла /etc/ftpaccess приведен в листинге 15.2.
Листинг 15.2. Примерный файл ftpaccess
- Операционная система UNIX - Андрей Робачевский - Программное обеспечение
- Разработка приложений в среде Linux. Второе издание - Майкл Джонсон - Программное обеспечение
- Искусство программирования для Unix - Эрик Реймонд - Программное обеспечение
- Linux - Алексей Стахнов - Программное обеспечение
- Fedora 8 Руководство пользователя - Денис Колисниченко - Программное обеспечение
- Недокументированные и малоизвестные возможности Windows XP - Роман Клименко - Программное обеспечение
- Изучаем Windows Vista. Начали! - Дмитрий Донцов - Программное обеспечение
- Windows Vista - Виталий Леонтьев - Программное обеспечение
- Архитектура операционной системы UNIX - Морис Бах - Программное обеспечение
- Windows Vista. Трюки и эффекты - Юрий Зозуля - Программное обеспечение