Безопасность и оптимизация Linux.Редакция для Red Hat

       

Настройка бюджета пользователя FTP без командного процессора (shell)


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

Первое, создайте нового пользователя, которому вы планируете разрешить подключаться к вашему FTP серверу. Это должна быть учетная запись независимая от регулярно используемых, в связи с особенностями работы "chroot" окружения. Chroot создаст пользователю ощущение, будто каталог в который его поместили находится на самом верху файловой системы.

Шаг 1

Используйте следующие команды для создания пользователя в файле “/etc/passwd”. Этот шаг должен выполняться для каждого пользователя, кому нужен доступ к FTP серверу.

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

[root@deep /]# useradd -d /home/ftp/ftpadmin/ -s /dev/null ftpadmin > /dev/null 2>&1

[root@deep /]# passwd ftpadmin

Changing password for user ftpadmin

New UNIX password:

Retype new UNIX password:

passwd: all authentication tokens updated successfully

Команда “mkdir” создаст каталог “ftp” в “/home” для хранения всех домашних каталогов FTP пользователей. Команда “useradd” добавит нового пользователя с именем “ftpadmin” в вашей системе. В заключении, команда “passwd” установит пароль для него. После того, как каталог “/home/ftp/” создан, вам не нужно будет создавать его для каждого нового пользователя.

Шаг 2

Редактируйте файл “/etc/shells” (vi /etc/shells) и добавьте в него несуществующий командный процессор, например “null”. Этот ложный shell ограничит доступ FTP пользователям к системе.



[root@deep /]# vi /etc/shells

/bin/bash

/bin/sh

/bin/ash

/bin/bsh

/bin/tcsh

/bin/csh

/dev/null (это ваш несуществующий командный процессор)

ЗАМЕЧАНИЕ. В Red Hat Linux, специальное имя устройства (/dev/null) существует для подобных целей.

Шаг 3

Сейчас, редактируйте ваш файл “/etc/passwd” и вручную добавьте подстроку “/./”, разделяющую каталоги “/home/ftp” и “/ftpadmin”, где “ftpadmin” должен автоматически изменить каталог. Этот шаг должен быть выполнен для каждого FTP пользователя, добавляемого в файл “passwd”.

Редактируйте файл passwd (vi /etc/passwd) и добавьте/измените строку для пользователя “ftpadmin”:

ftpadmin:x:502:502::/home/ftp/ftpadmin/:/dev/null

на:

ftpadmin:x:502:502::/home/ftp/./ftpadmin/:/dev/null ^^

Обратите внимание, что путь к домашнему каталогу пользователя “ftpadmin” немного нечеткий. Первая часть “/home/ftp/” показывает файловую систему, которая должна стать новый корневым каталогом. Разделяющая точка “.” говорит, что из текущего каталога необходимо автоматически переходить в “/ftpadmin/”. Еще раз отметим, что часть “/dev/null” отключает вход в систему, как регулярного пользователя. С этим изменением, пользователь “ftpadmin” имеет ложный командный процессор вместо реального, тем самым имея ограничения в доступе к системе.



Содержание раздела