Оглавление Оглавление 1
Вид материала | Документы |
СодержаниеЗащита FTP-серверов Настройка демона WU-FTPD Настройка Wu-ftpd Организация защиты FTP-сервера Текст приглашения FTP Текст приветствия FTP Анонимный доступ Анонимная выгрузка |
- Кожич Павел Павлович Минск 2010 г Оглавление Оглавление 2 Применение информационных, 302.47kb.
- Оглавление оглавление, 63.5kb.
- Оглавление Оглавление, 259.29kb.
- Ланин Борис Евсеевич Оглавление Оглавление 1 лекция, 810.53kb.
- Оглавление: Оглавление:, 350.3kb.
- Октябрьской Революции Краснознаменной академии (ввиа) имени профессора Н. Е. Жуковского, 1685.68kb.
- Караваева Елена Леонидовна г. Светлый 2008 г. Оглавление оглавление 2 пояснительная, 130.81kb.
- Винарский Владимир Афанасьевич ассистент Шешко Сергей Михайлович Минск 2008 г. Оглавление, 156.88kb.
- Коледа Виктор Антонович, ст преподаватель Пол Кожич Минск 2010 г. Оглавление Оглавление, 340.48kb.
- Обуховский Виктор Степанович, ассистент Позняков Андрей Михайлович Минск 2006 г оглавление, 266.12kb.
Упражнения
Упражнение 1 :
- Установите утилиту portsentry, чтобы заблокировать сканирование портов.
- Создайте сценарий, запускаемый в ответ на атаку, который будет перенаправлять сканирование портов на сам атакующий хост (эмуляция цели MIRROR)
Упражнение 2 :
- Настройте свою систему на отбрасывание всех входящих пакетов кроме SSH и SMTP.
- Настройте «маскарадинг» всего исходящего трафика.
- Настройте перенаправление HTTP-пакетов на другой хост.
- Настройте регистрацию всех отклоненных пакетов в файле /var/log/kern.log и на 9-ой консоли.
Решения
Решение 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
-
Защита FTP-серверов
- Ключевые файлы, термины и утилиты:
- Ключевые файлы, термины и утилиты:
ftpaccess, ftpusers, ftpgroups
/etc/passwd
chroot
-
Настройка демона 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
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]$