{DATE}
Денис Колисниченко
В статье рассматривается ограничение доступа с помощью демона tcpd, таблиц доступа пользователей, программы sendmail, а также с помощью сервера ProFTPD. Естественно, существуют многие способы ограничения доступа. Практически у каждой службы есть директивы, запрещающие или разрешающие отдельным пользователям доступ к ней. Например, можно ограничить доступ к серверу Apache или прокси-серверу Squid, а также задать время работы сервиса с помощью суперсервера xinetd, но рассмотрение всего этого выходит за рамки данной статьи.
Демон tcpd аутентифицирует удаленных пользователей и проверяет корректность их запросов. С помощью этого демона можно ограничить запросы с удаленных компьютеров. Файл hosts.allow содержит список хостов, которым разрешено подключаться к вашей системе, а hosts.deny - запрещено. Записи имеют формат
служба:хост.доменЕсли вы хотите разрешить или запретить доступ всем, используйте модификатор ALL. Запись ALL:ALL открывает или закрывает доступ к вашей машине всем компьютерам для всех видов сервисов (см. листинг 1).
Листинг 1. Файл /etc/hosts.allow
http:ALL ftp:ALL ALL:main.dhsilabs.com
В листинге 1 доступ к http и ftp разрешен всем, доступ ко ВСЕМ сервисам разрешен только компьютеру main.dhsilabs.com.
Обычно настройку доступа рекомендуется проводить следующим образом. Сначала запрещается доступ всем узлам, а потом разрешается отдельным узлам (или подсетям) по мере необходимости.
Для ограничения пересылки почты через ваш сервер используется файл /etc/mail/access (точнее access.db, в который преобразуется файл access). Данный файл используется программой sendmail. В нем вы можете указать узлы, которым разрешено (запрещено) использовать ваш сервер SMTP. Формат этого файла такой:
узел | сеть | пользователь действиеНапример:
localhost.localdomain RELAY localhost RELAY 127.0.0.1 OK spammer@spamworld.com REJECT spamworld.com ERROR:"550 Access denied" 192.168.1 RELAY host.mydomain.ru REJECT mydomain.ru RELAY
В первой-третьей строках мы разрешаем самим себе использовать SMTP сервер. Затем мы запрещаем пересылку почты пользователю spammer@spamworld.com, а также всему домену spamworld.com. Шестая строка разрешает пересылку почты всей нашей локальной подсети - 192.168.1.*. Последняя строка разрешает использовать сервер SMTP нашему домену, а предпоследняя запрещает использовать наш сервер одному узлу из домена mydomain.ru - host.
Разница между действием OK и RELAY заключается в том, что в первом случае (ОК) пересылка разрешается, даже если другие правила sendmail запретили пересылку почты, например, имя узла не разрешено (при использовании DNS).
Для запрещения пересылки можно просто использовать REJECT. Тогда пользователь увидит сообщение Access denied. Действие ERROR более информативно, так как вы можете указать любое свое сообщение (установить реакцию на ошибку). Действие ERROR можно записать по-другому: ERROR:D.S.N:Message, где D.S.N - это код ошибки в соответствии с RFC 1893.
Для того чтобы новые правила доступа вступили в силу, введите команду:
makemap hash /etc/mail/access < /etc/mail/access
Р