Чтение онлайн

на главную - закладки

Жанры

Linux глазами хакера

Флёнов Михаил Евгеньевич

Шрифт:

Если вам нужно работать с файлами или директориями, которые доступны только администратору с нулевым идентификатором, то не используйте для этого 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

Для завершения ввода в файл нужно нажать сочетание клавиш <Ctrl>+<X>, и вы вернетесь в нормальный режим работы.

В файле /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, то пользователь сможет увидеть только свой каталог, который будет казаться корнем. Все остальные папки, расположенные выше, будут не видны.

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

Поделиться:
Популярные книги

Слово мастера

Лисина Александра
11. Гибрид
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Слово мастера

Законы Рода. Том 3

Андрей Мельник
3. Граф Берестьев
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Законы Рода. Том 3

Офицер Красной Армии

Поселягин Владимир Геннадьевич
2. Командир Красной Армии
Фантастика:
попаданцы
8.51
рейтинг книги
Офицер Красной Армии

Последний Паладин. Том 5

Саваровский Роман
5. Путь Паладина
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Последний Паладин. Том 5

Я снова князь. Книга XXIII

Дрейк Сириус
23. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
5.00
рейтинг книги
Я снова князь. Книга XXIII

Антимаг его величества

Петров Максим Николаевич
1. Модификант
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Антимаг его величества

Личный аптекарь императора. Том 2

Карелин Сергей Витальевич
2. Личный аптекарь императора
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Личный аптекарь императора. Том 2

Дважды одаренный. Том IV

Тарс Элиан
4. Дважды одаренный
Фантастика:
городское фэнтези
альтернативная история
аниме
7.00
рейтинг книги
Дважды одаренный. Том IV

Мой муж – чудовище! Изгнанная жена дракона

Терин Рем
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Мой муж – чудовище! Изгнанная жена дракона

Барон не играет по правилам

Ренгач Евгений
1. Закон сильного
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Барон не играет по правилам

Адепт

Листратов Валерий
4. Ушедший Род
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Адепт

Неудержимый. Книга XXX

Боярский Андрей
30. Неудержимый
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Неудержимый. Книга XXX

Убивать чтобы жить 6

Бор Жорж
6. УЧЖ
Фантастика:
боевая фантастика
космическая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 6

Лекарь Империи 7

Карелин Сергей Витальевич
7. Лекарь Империи
Фантастика:
городское фэнтези
аниме
боевая фантастика
попаданцы
5.00
рейтинг книги
Лекарь Империи 7