Запираем FTP пользователей собственным домашним каталогом

Posted by

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

Итак, в нашем распоряжении операционная система Ubuntu 10.10.

ekzorchik@ub64amd:~$ uname -a && lsb_release -a

Linux ub64amd 2.6.35-22-generic #33-Ubuntu SMP Sun Sep 19 20:34:50 UTC 2010 i686 GNU/Linux

No LSB modules are available.

Distributor ID: Ubuntu

Description: Ubuntu 10.10

Release: 10.10

Codename: maverick

 

Произведём обзор имеющегося пакета в репозиториях Ubuntu 10.10:

ekzorchik@ub64amd:~$ sudo aptitude search vsftpd

p vsftpd — lightweight, efficient FTP server written for security

Какая версия и информация по необходимому пакету доступна:

ekzorchik@ub64amd:~$ sudo aptitude show vsftpd

Package: vsftpd

State: not installed

Version: 2.3.0~pre2-4ubuntu2.3

Priority: extra

Section: net

Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>

Uncompressed Size: 442k

Depends: debconf (>= 0.5) | debconf-2.0, upstart-job, libc6 (>= 2.7), libcap2 (>= 2.10), libpam0g (>= 0.99.7.1), libssl0.9.8 (>= 0.9.8m-1), libwrap0 (>= 7.6-4~), adduser, libpam-modules, netbase

Recommends: logrotate

Conflicts: ftp-server

Replaces: ftp-server

Provides: ftp-server

Description: lightweight, efficient FTP server written for security

This package provides the «Very Secure FTP Daemon», written from the ground up with security in mind.

It supports both anonymous and non-anonymous FTP access, PAM authentication, bandwidth limiting, and the Linux sendfile() facility.

Homepage: http://vsftpd.beasts.org/

 

Установим пакет в нашу систему:

ekzorchik@ub64amd:~$ sudo aptitude install vsftpd

The following NEW packages will be installed:

vsftpd

0 packages upgraded, 1 newly installed, 0 to remove and 385 not upgraded.

Need to get 116kB of archives. After unpacking 442kB will be used.

Get:1 http://ru.archive.ubuntu.com/ubuntu/ maverick-updates/main vsftpd i386 2.3.0~pre2-4ubuntu2.3 [116kB]

Fetched 116kB in 1s (101kB/s)

Preconfiguring packages …

Selecting previously deselected package vsftpd.

(Reading database … 118497 files and directories currently installed.)

Unpacking vsftpd (from …/vsftpd_2.3.0~pre2-4ubuntu2.3_i386.deb) …

Processing triggers for man-db …

Processing triggers for ureadahead …

ureadahead will be reprofiled on next reboot

Setting up vsftpd (2.3.0~pre2-4ubuntu2.3) …

Adding user ftp to group ftp

vsftpd start/running, process 3115
Создадим резервную копию конфигурационного файла:

ekzorchik@ub64amd:~$ sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.backup

 

Редактируем и ограничиваем работу только по IPv4.

ekzorchik@ub64amd:~$ sudo nano /etc/vsftpd.conf

Разрешаем запись:

write_enable=YES
ascii_upload_enable=YES
ascii_download_enable=YES

 

напишем свой баннер для входа.

ftpd_banner=Welcome to FTP Ubuntu 10.10 (blog www.ekzorchik.ru). 

 

Запираем пользователей в домашних директориях:

# You may restrict local users to their home directories. See the FAQ for

# the possible risks in this before using chroot_local_user or

# chroot_list_enable below.

chroot_local_user=YES 

 

Разрешаем вход локальным пользователям:

# Uncomment this to allow local users to log in. 
local_enable=YES 

 

Запрещаем анонимный доступ, необходимо найти строку:

# Allow anonymous FTP? (Disabled by default) 
anonymous_enable=NO 

Права доступа на файлы и директории

local_umask=023

Перейдем к созданию пользователя который будет работать с нашим FTP сервисом, в целях безопасности у него будет отлючен шелл:

ekzorchik@ub64amd:~$ sudo useradd user1 -b /home/ -m -U -s /bin/false

для пояснения:

user1это произвольное именование создаваемого пользователя.

homeэто директория где будет находится его собственный домашний каталог.

Ключ -mэто обозначение его домашнего каталога по создаваемому имени.

Ключ -Uэто создать персональную группу.

Ключ -s /bin/falseэто указывает, что пользователю будет отключён шелл (т. е. интерпретатор команд).

 

Присвоим нашему созданному пользователю пароль:

ekzorchik@ub64amd:~$ sudo passwd user1

Enter new UNIX password:
Aa1234567

Retype new UNIX password:
Aa1234567

passwd: password updated successfully

 

Для того чтобы пользовать смог получить доступ к FTP с отключённым шеллом, следует отредактировать файл:

ekzorchik@ub64amd:~$ sudo nano /etc/pam.d/vsftpd

и закомментировать строчку

#auth required pam_shells.so

 

И перезапускаем сервис vsftpd:

ekzorchik@ub64amd:~$ sudo service vsftpd restart

vsftpd start/running, process 3193

Вот собственно и наш FTP поднят и развернут. Продемонстрирую, как происходит подключение:

через консоль:

ekzorchik@ub64amd:~$ ftp ub64amd (подключение к ftp с именем системы ub64amd)

Connected to ub64amd.

220 Welcome to FTP Ubuntu 10.10 (blog www.ekzorchik.ru). (баннер который мы указали в конфигурационном файле, просто для информации)

Name (ub64amd:ekzorchik): user1
(созданный пользователь)

331 Please specify the password.

Password: Aa1234567
(Пароль для учетной записи user1)

230 Login successful.

Remote system type is UNIX. Using binary mode to transfer files.

ftp> pwd
(отобразить текущий каталог)

257 "/"

ftp> ls (вывести листинг каталогов)

200 PORT command successful. Consider using PASV.

150 Here comes the directory listing.

-rw-r--r-- 1 1001 1002 179 Sep 15 2010 examples.desktop

226 Directory send OK.

ftp> quit
(завершить работу с FTP сервисом)

221 Goodbye.

 

через GUI интерфейс:

 

Перейдем, в левом верхнем углу: «Places» — «Home Folder»
Открываем домашний каталог с помощью интерфейса Gnome.

 

 

в строке адреса, нажмём сочетание клавиш «Ctrl + L» для отображения полного пути к строке адреса

Отобразить полный путь в строке адреса. (Клавиатурное сокращение Ctrl+L)

и вместо /home/ekzorchik (в данный момент я из под него настраиваю FTP сервис), напишем

ftp://ub64amd

Вместо /home/ekzorchik набираем подключиться к ftp: ftp://ub64amd

 

 

, где ub64amd — имя машины с поднятым FTP сервисом. (В вашем случаем может быть другим, также можно писать IP — адрес системы)

В появившемся окне вводим аутентификационные данные для подключения:

Вводим аутентификационные данные для подключения к FTP.

 

 

 

 

 

 

 

 

В случаем правильного ввода необходимых данных, таких как имя пользователя и пароля мы попадём на наш FTP:

Успешное подключение к FTP сервису.

Вот собственно и всё, задача по ограничению пользователей работающих с FTP достигнута. Результат подключения, как через консоль, так и посредством GUI интерфейса продемонстрирован. Удачи!!!


Leave a Reply

Ваш e-mail не будет опубликован. Обязательные поля помечены *

шесть + шесть =