Оглавление Оглавление 1

Вид материалаДокументы

Содержание


Защита FTP-серверов
Настройка демона WU-FTPD
Настройка Wu-ftpd
Организация защиты FTP-сервера
Текст приглашения FTP
Текст приветствия FTP
Анонимный доступ
Анонимная выгрузка
Подобный материал:
1   ...   18   19   20   21   22   23   24   25   ...   29

Упражнения


Упражнение 1 :


  • Установите утилиту portsentry, чтобы заблокировать сканирование портов.
  • Создайте сценарий, запускаемый в ответ на атаку, который будет перенаправлять сканирование портов на сам атакующий хост (эмуляция цели MIRROR)



Упражнение 2 :


  • Настройте свою систему на отбрасывание всех входящих пакетов кроме SSH и SMTP.
  • Настройте «маскарадинг» всего исходящего трафика.
  • Настройте перенаправление HTTP-пакетов на другой хост.
  • Настройте регистрацию всех отклоненных пакетов в файле /var/log/kern.log и на 9-ой консоли.
      1. Решения


Решение 1 :
  • Следуйте инструкциям, описанным в этой главе.
  • KILL_ROUTE="/sbin/iptables -t nat -A PREROUTING -s $TARGET$ -j DNAT --to-destination $TARGET$



Упражнение 2 :
  • используйте опции --dport 22, --dport 25 и -j DROP
  • используйте опцию -j MASQUERADE
  • используйте опции -j DNAT --to-destination
  • используйте опции цели LOG и модифицируйте файл /etc/syslog.conf


    1. Защита FTP-серверов

                  1. Ключевые файлы, термины и утилиты:

ftpaccess, ftpusers, ftpgroups
/etc/passwd
chroot
      1. Настройка демона WU-FTPD

Введение


Во время создания протокола передачи файлов (FTP - File Transport Protocol) никто не думал о безопасности. Сегодня, во времена большой популярности Интернет и существования небезопасных беспроводных технологий передачи данных протокол FTP должен быть заменен на более безопасный протокол передачи файлов, например, sftp.

В случаях, когда такая замена неприемлема, можно поместить открытые ftp-сессии в отдельную корневую файловую систему (chroot jail) – упрощенную копию нормальной системы.


Утилита Wuarchive-ftpd, известная как WU-FTPD - это ftp-демон для Unix-систем, разработанный в Университете Вашингтона Крисом Майерсом (Chris Myers) и, позднее, Брайаном О'Коннором (Bryan D. O'Connor). Этот демон не считается особо безопасным FTP-сервером, так что если вам нужен действительно защищенный продукт, стоит взглянуть на демон vsftpd («very secure ftp server» – «очень безопасный ftp сервер»).



Настройка Wu-ftpd


Основные конфигурационный файлы демона Wu-ftpd находятся в /etc :
  • /etc/ftpusers
  • /etc/ftpaccess
  • /etc/ftpconversions
  • /etc/ftphosts



Файл ftpusers содержит список пользователей, которым запрещен доступ к вашему FTP-серверу. Как вы могли догадаться, пользователь root должен быть указан в этом файле. Вам таже нужно убедиться, что и другие особые пользователи, такие как lp, shutdown, mail, и т.п. также перечислены в нем.


Пример:

[root@test root]# cat /etc/ftpusers

root

bin

daemon

adm

lp

sync

shutdown

halt

mail

news

uucp

operator

games

nobody

[root@test root]#


Файл ftpaccess используется для настройки таких параметров, как безопасность, пользователи и т.п. На самом деле, это основной конфигурационный файл. Некоторые из интересных настроек, которые вы можете указать здесь:

loginfails [число]


Здесь «число» – это количество неудачных попыток входа в систему, которое пользователь может сделать, прежде чем его учетная запись будет полностью заблокирована.

shutdown [имя файла]


Здесь «имя файла» – это имя файла, появление которого на диске приведет к автоматическому останову FTP сервера, без необходимости закрытия порта в файле /etc/inetd.conf с последующим рестартом демона inetd.

[root@test root]# cat /etc/ftpaccess

class all real,guest,anonymous *


email root@localhost


loginfails 5


readme README* login

readme README* cwd=*


message /welcome.msg login

message .message cwd=*


compress yes all

tar yes all

chmod no guest,anonymous

delete no guest,anonymous

overwrite no guest,anonymous

rename no guest,anonymous


log transfers anonymous,real inbound,outbound


shutdown /etc/shutmsg


passwd-check rfc822 warn

[root@test root]#


Файл ftpconversions существует для обеспечения переконвертации файлов на лету, например автоматической декомпрессии файлов во время скачивания.


Пример:

[root@test root]# cat /etc/ftpconversions

:.Z: : :/bin/compress -d -c %s:T_REG|T_ASCII:O_UNCOMPRESS:UNCOMPRESS

: : :.Z:/bin/compress -c %s:T_REG:O_COMPRESS:COMPRESS

:.gz: : :/bin/gzip -cd %s:T_REG|T_ASCII:O_UNCOMPRESS:GUNZIP

: : :.gz:/bin/gzip -9 -c %s:T_REG:O_COMPRESS:GZIP

: : :.tar:/bin/tar -c -f - %s:T_REG|T_DIR:O_TAR:TAR

: : :.tar.Z:/bin/tar -c -Z -f - %s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+COMPRESS

: : :.tar.gz:/bin/tar -c -z -f - %s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+GZIP

[root@test root]#


Файл ftphosts используется для разрешения или запрещения доступа к серверу определенным учетным записям с различных хостов.


Синтаксис, используемый в этом файле:

allow/deny login host


Пример:

# Example host access file

#

# Everything after a '#' is treated as comment,

# empty lines are ignored


allow bartm somehost.domain

deny fred otherhost.domain 131.211.32.*




Организация защиты FTP-сервера

  • Изменение текста предупреждающего сообщения
  • Изменение текста приветствия
  • Защита, запрет и ограничение пользовательских учетных записей
  • Защита анонимного доступа
  • Зашита анонимной выгрузки данных на сервер

Текст приглашения FTP


Хорошей идеей является изменение предупреждающего сообщения, выдаваемого клиентам FTP-сервера, поскольку это позволяет скрыть от них, какой именно сервер FTP их обслуживает.

Добавьте следующую строку в файл /etc/ftpaccess:

banner /etc/banners/warning.msg


Содержимое файла, может выглядеть примерно так:

Hello, all activity on ftp.example.com is logged.

Текст приветствия FTP


После в систему всем пользователям показывается текст приветствия. По умолчанию приветствие включает информацию о версии сервера, которая будет полезна хакерам, пытающим идентифицировать слабые места в системе.

Чтобы изменить этот текст, добавьте следующую директиву в файл /etc/ftpusers:

greeting text Welcome to XYZ FTP server




Анонимный доступ


Наилучшим способом настройки анонимного доступа к FTP-серверу считается организация специальной корневой файловой системы (chroot jail): вместо того, чтобы позволить полный доступ к системе, такая файловая система ограничит действия пользователя только заданным каталогом. Другими словами, после анонимного входа в такую систему, пользователь будет иметь доступ только к домашнему каталогу учетной записи ftp и не более того.


Важно не давать вашим FTP-пользователям учетных записей с оболочкой Linux-системы. В этом случае, если по какой-либо причине кто-то смог выбраться из специальной корневой системы, он не будет иметь возможности исполнить какие-либо программы, поскольку не будет иметь оболочки bash.


Создание корневой файловой системы для демона wu-ftpd выполняется довольно легко.


Создайте каталог для пользователя ftp:

[root@test root]# mkdir /home/ftp

[root@test root]# chown -R ftp.ftp /home/ftp


Смените его домашний каталог в файле /etc/passwd :

ftp:x:76:76:system user for WU-FTPD:/home/ftp:/bin/false


Протестируйте анонимный ftp :

[user@test user]$ ftp localhost

Connected to localhost.

220-Hello, all activity on ftp.example.com is logged.

220-

220 Hello you

530 Please login with USER and PASS.

530 Please login with USER and PASS.

KERBEROS_V4 rejected as an authentication type

Name (localhost:user): ftp

331 Guest login ok, send your complete e-mail address as password.

Password:

230 Guest login ok, access restrictions apply.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp> ls

200 PORT command successful.

150 Opening ASCII mode data connection for directory listing.

total 16

drwxr--r-- 2 76 76 4096 Aug 18 15:40 incoming

drwxr-xr-x 2 76 76 4096 Aug 18 15:40 pub

226 Transfer complete.

ftp> cd /

250 CWD command successful.

ftp> ls

200 PORT command successful.

150 Opening ASCII mode data connection for directory listing.

total 16

drwxr--r-- 2 76 76 4096 Aug 18 15:40 incoming

drwxr-xr-x 2 76 76 4096 Aug 18 15:40 pub

226 Transfer complete.

Ftp>D

[user@test user]$




Анонимная выгрузка


Если вы хотите разрешить выгрузку данных на сервер для анонимных пользователей, вам необходимо позаботиться о дополнительной защите.


Прежде всего, нам нужно определиться с каталогом для выгрузки. Обычно такой каталог называется incoming, давайте назовем его /home/ftp/incoming.


Чтобы избежать переполнения диска, нам необходимо создать отдельную файловую систему для каталога incoming и смонтировать ее в /home/ftp/incoming. Таким образом, даже если файловая система будет полностью заполнена, это никак не отразится на свободном пространстве корневой файловой системы.


Далее нам нужно разрешить закачку в файле /etc/ftpaccess :

upload /home/ftp /incoming yes ftp ftp 0440 nodirs


Как правило, запрет создания каталогов является хорошей идеей. Те, кто ищет на FTP-серверах каталоги с возможностью записи для распространения Warez'а и тому подобных материалов, любят создавать поддиректории с очень длинными именами.


Протестируйте выгрузку файлов на сервер:

[user@test user]$ ftp localhost

Connected to localhost.

220-Hello, all activity on ftp.example.com is logged.

220-

220 Hello you

530 Please login with USER and PASS.

530 Please login with USER and PASS.

KERBEROS_V4 rejected as an authentication type

Name (localhost:user): ftp

331 Guest login ok, send your complete e-mail address as password.

Password:

230 Guest login ok, access restrictions apply.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp> ls

200 PORT command successful.

150 Opening ASCII mode data connection for directory listing.

total 16

drwxr--r-- 2 76 76 4096 Aug 18 15:40 incoming

drwxr-xr-x 2 76 76 4096 Aug 18 15:40 pub

226 Transfer complete.

ftp> put gq.png

local: gq.png remote: gq.png

200 PORT command successful.

553 gq.png: Permission denied on server. (Upload)

ftp> cd incoming

250 CWD command successful.

ftp> put gq.png

local: gq.png remote: gq.png

200 PORT command successful.

150 Opening BINARY mode data connection for gq.png.

226 Transfer complete.

49841 bytes sent in 0.043 seconds (1.1e+03 Kbytes/s)

ftp> mkdir test

550 test: Permission denied on server. (Upload dirs)

ftp>D

[user@test user]$