Михаил Флёнов - Linux глазами хакера
- Название:Linux глазами хакера
- Автор:
- Жанр:
- Издательство:БХВ-Петербург
- Год:2005
- Город:Санкт-Петербург
- ISBN:5-94157-635-8
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Михаил Флёнов - Linux глазами хакера краткое содержание
Рассмотрены вопросы настройки ОС Linux на максимальную производительность и безопасность. Описаны потенциальные уязвимости и рекомендации по предотвращению возможных атак. Дается подробное описание настройки прав доступа и конфигурирования сетевого экрана. Показано, как действовать при атаке или взломе системы, чтобы максимально быстро восстановить ее работоспособность и предотвратить потерю данных.
Для пользователей, администраторов и специалистов по безопасности
Linux глазами хакера - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
bin
daemon adm lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
Обратите внимание, что пользователю root тоже запрещен доступ. Это связано с тем, что у администратора слишком много прав, и если злоумышленник получит возможность пользоваться этой учетной записью, то сможет удаленно уничтожить систему (например, стереть файлы). Никогда не допускайте к FTP пользователей с повышенными привилегиями (администратора root и пользователей группы root).
Если вам нужно работать с файлами или директориями, которые доступны только администратору с нулевым идентификатором, то не используйте для этого FTP. Лучше производить изменения, сидя непосредственно за компьютером или через промежуточную папку (закачать файлы в свой каталог, а потом локально или через удаленный, но безопасный терминал, корректировать).
Лучше всего доступ по FTP запретить всем системным учетным записям, ID которых менее 500. Для этого достаточно в файле ftpaccess добавить следующую строку:
deny-uid %-500
В этом случае можно быть уверенным, что никого не забыли. Тем более что с одним идентификатором (например, с ID, равным нулю) может быть несколько пользователей.
10.5.2. Компьютерам вход запрещен
Как говорит великая администраторская мудрость — на сетевой экран надейся, а сам не плошай. Firewall позволяет запретить доступ к серверу на определенные порты с конкретных компьютеров. Конфигурационный файл /etc/ftphostsвыполняет схожие задачи — разрешает или запрещает доступ с указанных IP-адресов или целой сети.
По умолчанию файл пустой, потому что разработчики дистрибутива не могут знать, как вы планируете организовать доступ. Вы можете прописать в нем следующие директивы:
allow имя шаблон
deny имя шаблон
Например, если вы хотите запретить доступ анонимным пользователям с адреса 192.168.1.1, то добавьте строку:
deny anonymous 192.168.1.1
Если исходить из нашего принципа "Что не разрешено, то запрещено", то может показаться, что строка с директивой deny
не нужна. Это неверно, потому что необходимо закрепить разрешение на доступ с указанного адреса для определенного типа пользователей, чтобы остальным закрыть возможность входа на FTP.
10.5.3. Группировка
В файле ftpgroups находятся описания групп (равносильны правам доступа), при создании которых можно использовать команды SITE GROUP
и SITE GPASS
. Это нестандартные директивы FTP, и мало кем из производителей поддерживаются, поэтому для пользователей работа с этими командами может оказаться слишком неудобной.
Файл ftpgroups содержит строки примерно следующего вида:
test:ENCRYPTED PASSWORD HERE:archive
Строка-описание состоит из трех параметров, разделенных двоеточием: имя группы, пароль и реальное (системное) имя группы.
10.6. Гостевые учетные записи
Если сейчас попытаться войти в систему под любым аккаунтом, то вы сможете путешествовать по всей файловой системе. Но в большинстве случаев пользователям нужно работать только с собственными документами, поэтому для всех своих FTP-пользователей я завожу гостевые учетные записи. Давайте рассмотрим на примере, как это происходит.
Для начала нужно создать новую учетную запись для пользователя, например robert_ftp. Для этого выполняем команду:
add robert_ftp
Теперь посмотрим на созданную для него строку в файле /etc/passwd. Она должна выглядеть примерно следующим образом:
robert_ftp:x:507:507::/home/robert_ftp:/bin/bash
Классическая запись для нового пользователя. Но через нее можно входить в систему локально, а мы должны ограничиться только FTP-доступом. Изменим командную оболочку (shell) для этого пользователя на /bin/ftponly. Такой оболочки пока нет, и мы ее еще создадим чуть позже. Помимо этого, необходимо директорию /home/robert_ftpсделать корневой. Для этого нужно добавить в конце пути папку с именем в виде точки.
Отредактируйте соответствующим образом строку, и вы получите такой результат:
robert_ftp:x:507:507::/home/robert_ftp/.:/bin/ftponly
Обратите внимание, что в качестве командной оболочки указан файл /bin/ftponly, который не существует. Давайте его создадим. Это делается только один раз и потом используется всеми гостевыми учетными записями. Для создания файла можно воспользоваться командой cat
:
cat >> /bin/ftponly
В ответ на это все команды, которые теперь будут вводиться в консоли, попадут в файл /bin/ftponly. Наберите следующий текст:
#! /bin/sh
echo 'You are not allowed to log in interactively'
exit 0
Для завершения ввода в файл нужно нажать сочетание клавиш +, и вы вернетесь в нормальный режим работы.
В файле /bin/ftponlyу нас хранится всего две команды: первая выводит на экран эхо-сообщение о том, что нельзя входить в систему интерактивно, вторая — завершает сеанс.
Теперь необходимо сделать наш скрипт /bin/ftponlyисполняемым. Для этого выполните команду:
chmod 755 /bin/ftponly
Итак, у нас создан файл командной оболочки и пользователь, который использует ее. Если сейчас попытаться войти в систему как пользователь robert_ftp, то на секунду появится сообщение "You are not allowed to log in interactively" и произойдет выход из системы. Таким образом, работать под учетной записью robert_ftp нельзя.
Вместо файла /bin/ftponlyможно использовать в качестве командного интерпретатора /dev/null— нулевое устройство, которое не может обрабатывать команды и не позволит входить в систему под этой учетной записью. Оно определено в качестве консоли в файле /etc/passwdдля всех системных учетных записей, которые не предназначены для локальной работы.
Теперь осталась самая малость — сказать серверу FTP, что пользователь с именем robert_ftp является гостем. Для этого в файл ftpaccess добавим строку:
guestuser robert_ftp
Если теперь подключиться к серверу по FTP, то пользователь сможет увидеть только свой каталог, который будет казаться корнем. Все остальные папки, расположенные выше, будут не видны.
В моих системах все пользователи работают только как гости, со своими каталогами или анонимно с общедоступными папками. Действительные учетные записи устанавливаются только избранным администраторам и только в крайних случаях, потому что ими сложнее управлять.
Для гостевых пользователей достаточно только ограничить доступ определенной директорией, а все остальное защитит сервер. Правда, и здесь иногда бывают проблемы. Рассмотрим классическую ошибку программистов. Допустим, что пользователю открыта директория /home/robert, и для обеспечения этого сервер банально проверяет, чтобы путь к каталогу начинался с этой строки. Хакер видит эту директорию как корневую (/) и выше подниматься не должен. Теперь посмотрите на следующую команду:
Читать дальшеИнтервал:
Закладка: