LinuxForum.Fans
Тема

Организация эффективного FTP-сервера с доступом к нему "снаружи"

Автор: Victorius 18 сообщений 6110 просмотров
#303377

Собственно читал вот эту статью по организации самого простейшего ftp - http://www.aitishnik.ru/linux/ftp-server-debian.html. Вопрос в том, что там разрешается всем анонимусам доступ к этому ftp, а как сделать так, чтобы всего несколько пользователей могли снаружи работать с ftp, причем так, чтобы могли только копировать файлы и папки оттуда, но не записывать туда ничего и не удалять ничего оттуда? Внешний ip есть. Хочу, чтобы было всего несколько прописанных мной пользователей с заданными мной паролями, которые могли бы снаружи пользоваться ftp, как я описал выше.

А ещё вопрос. А как мне работать самому с содержимым ftp сервера? Только чрез интерпретатор команд Линукса или могу, как в Самбе с Винды подсоединиться к машине и там работать с директорией и папкой?

#303406
"Victorius" написал:
Хочу, чтобы было всего несколько прописанных мной пользователей с заданными мной паролями, которые могли бы снаружи пользоваться ftp, как я описал выше.
text
anonymous_enable=NO

Входить смогут только пользователи которые у тебя есть, домашним каталогом по-умолчанию будет /home/$USER

#303594

Может быть я немного не верно написал. Я имел ввиду не пользователей системы (здесь мне одного root я думаю хватит, хоть и понимаю все возможные риски с этим связанные), а чтобы как-то отдельно прописать пользователей именно для ftp, но никак не для системы. То есть я хотел бы, чтобы можно было ну как в Самбе прописал пользователей и радуйся и они по логину и паролю смогут пользоваться ftp.

Или я просто неверно понял и вы именно это и предлагаете?

А ещё хотел бы понять, а могу я сделать так, чтобы через Самбу как-то указать папку в которой будет собственно храниться содержимое для ftp и потом заходить с Винды в эту папку и спокойно туда вставлять то что надо и удалять то, что не надо?

Добавил позже:

Вот: http://www.youtube.com/watch?v=SiiFFy1M4jU - здесь индус очень хорошо описывает установку и настройку ftp на Линукс Дебиан. Здесь он и как пользователей создавать показал и многое другое, НО как перекидывать файлы в папку ftp мне непонятно. Как он показал это ужас тихий, а если там файлов орда? Может есть какая-то альтернатива быстрая?

#303631

vsftpd + виртуальные пользователи, дока тут: /usr/share/doc/vsftpd/examples/VIRTUAL_USERS

ну и в гугле полно инфы

Да, мне в FTP папки достаточно заливать файлы с помощью smbclient

#303639

Да, мне в FTP папки достаточно заливать файлы с помощью smbclient

Ага, спасибо большое за инфу. Жаль на форуме нет кнопки "спасибо", так бы я надавил. :) А так, просто говорю вам спасибо. :) Это то, что я и хотел прочесть.

А вообще я не могу из Самбы сделать подобие ФТП? Ну чтобы к папке могли по внешнему айти пользователи коннектиться с определёнными правами, которые заключаются в разрешении копировать из этой спец. папки, но которым запрещено удалять и вставлять туда.

#303656
Victorius написал:
Жаль на форуме нет кнопки "спасибо", так бы я надавил. :)

эм... Тут на это под аватаркой каждого участника зеленая пиктограмка с плюсиком, правда минус не работает - даже не пробуйте)))

#303668
"Enzo_brn" написал:
правда минус не работает - даже не пробуйте)))

Работает, постов надо набрать сначала.

#305375

В общем попробовал я сделать ftp, получилось что-то странное. Могу ли я вообще сделать так, чтобы не создавать пользователей непосредственно vsftpd, а создать пользователей Самбы, расшарить папку для Винды и работать спокойно с этой папкой и чтобы пользователи могли снаружи заходить в эту папку по нашему внешнему ip?

Я вроде как-то так и сделал и попробовал чрез Total commander cимитировать будто снаружи ломлюсь на ftp. Происходит подсоединение, запрашивается авторизация и я не могу зайти под пользователями, которых создал для фтп, но захожу туда под пользователем Самбы (до этого расшарил папку в Самбе). А если пытаюсь под пользователями фтп зайти, то пишет, что мл не могу раздел /home поменять. (а папка FTP у меня лежит в home)

А могу я вообще сделать ftp на основе Самбы и без vsftpd вообще (это пожалуй самый главный вопрос)?

#305420
Victorius написал:


А могу я вообще сделать ftp на основе Самбы и без vsftpd вообще (это пожалуй самый главный вопрос)?

Ну на основе Самбы FTP не выйдет. Настройте нормально vsftpd с виртуальными пользователями.
Для начала чтобы помочь покажыте коняиг vsftpd.

#305423

Инструкция - писал для себя и коллег (с нуля)
FTP сервер vsftpd с Виртуальными пользователями

Для нормальной работы FTP в пассивном режиме требуется (или желателен) модуль nf_conntrack_ftp.
Посмотреть загружен ли он #lsmod | grep nf_conntrack_ftp, в случае отсутствия добавить:
#echo nf_conntrack_ftp >> /etc/modules
#modprobe nf_conntrack_ftp


Установка db4.8-util утилиты работы с БД Беркли #apt-get install db4.8-util
Установка FTP сервера vsftpd #apt-get install vsftpd
Остановка сервиса vsftpd #service vsftpd stop
Конфигурационный файл /etc/vsftpd.conf
Создание каталога настроек пользователей # mkdir /etc/vsftpd
Создание текстового файла с пользователями (простой список, котором указывается имя пользователя и, на следущей строчке, пароль) # cat /etc/vsftpd/user.list
Пример: vasja
123
fedor
345

Создание БД #db4.8_load -T -t hash -f /etc/vsftpd/user.list /etc/vsftpd_login.db
Установка прав на БД: #chmod 0600 /etc/vsftpd_login.db

Копирование файла конфигурации доступа к данным пользователей в каталог /etc/pam.d
#cp /usr/share/doc/vsftpd/examples/VIRTUAL_USERS/vsftpd.pam /etc/pam.d/vsftpd

В файле настроен досуп к данным пользователей
auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd_login

Создание каталога, в котором будут лежать каталоги виртуальных пользователей: #mkdir /var/ftp
Создание каталога для пользователя (имя каталога должно совпадать с именем пользователя), пример для пользователя vasja: #mkdir -p /var/ftp/vasja

Установка прав на каталог /var/ftp с рекурсией: #chown -R ftp:ftp /var/ftp

Создание файлов конфигурации для каждого пользователя, например для vasja /etc/vsftpd/vasja, а в файле конфигурации /etc/vsftpd.conf добавляется параметр user_config_dir=/etc/vsftpd
В пользовательском файле конфигурации на примере vasja /etc/vsftpd/vasja зададим корневой каталог пользователя local_root=/var/ftp/vasja


/etc/vsftpd.conf

text
# Отключить IPV6
listen_ipv6=NO
# Отключаем анонимных пользователей
anonymous_enable=NO
# Разрешаем работу локальным пользователям
local_enable=YES
write_enable=NO
# Запрет записи
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
download_enable=YES
# папка по умолчанию
local_root=/var/ftp
anon_root=/var/ftp
#Делаем chroot для всех локальных пользователей
chroot_local_user=YES
chroot_list_enable=NO
# список пользователей, которым нельзя на FTP
#userlist_enable=YES
#userlist_file=/etc/vsftpd/disableusers
#Разрешение работы виртуальным пользователям
guest_enable=YES
guest_username=ftp
# папка для хранения дополнительных конфигов
user_config_dir=/etc/vsftpd
virtual_use_local_privs=NO
# выставим нужные права
chmod_enable=YES
nopriv_user=ftp
# маска создание и чтение файлов
local_umask=022
anon_umask=022
file_open_mode=0666
# Работать своей службой и слушать 21 порт
listen=YES
listen_port=21
# Настройка пассивного режима
connect_from_port_20=NO
pasv_min_port=50000
pasv_max_port=50100
# Установка публичного FTP
max_clients=100
max_per_ip=50
max_login_fails=3
data_connection_timeout=400
idle_session_timeout=400
hide_ids=YES
ls_recurse_enable=NO
pam_service_name=vsftpd
xferlog_enable=YES
xferlog_std_format=YES
dual_log_enable=YES
xferlog_file=/var/log/xferlog
vsftpd_log_file=/var/log/vsftpd.log
log_ftp_protocol=YES
ftpd_banner=Wellcome

/etc/vsftpd/vasia

text

local_root=/var/ftp/vasia

/etc/pam.d/vsftpd

text

auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd_login

Правила iptables: eth0 - внешний интерфейс

text
iptables -A INPUT -i eth0 -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 50000:50100 -j ACCEPT
#305426

Спасибо большое! Очень подробная и довольно понятная инструкция, НО у меня всё равно остаётся главный вопрос, который таков:

Могу ли я как-то работать с папкой, в которой будет содержаться собственно наполнение моего FTP из Windows среды и её средствами? Я попробовал папку ftp открыть для видимости при помощи Самбы и тут начались проблемы с доступом к ftp, которые я описал выше.

Кстати, а как можно выкладывать большие описания конфигов и прочего подобного? Чем копировать столько текста в Линукс среде и как выкладывать этот текстовый файл с настройками?

iptables -A INPUT -i eth0 -p tcp --dport 50000:50100 -j ACCEPT

Что значит эта строка? Первая строка я так понял означает открытие порта ftp (21) для доступа снаружи.

#305427
"Victorius" написал:
Кстати, а как можно выкладывать большие описания конфигов и прочего подобного? Чем копировать столько текста в Линукс среде и как выкладывать этот текстовый файл с настройками?

http://linuxru.org/tips/28

#305431

Наполнение каталога FTP

Добавить файлы в каталог пользователя можно с помощью Samba клиента

1. Перейти в каталог пользователя
2. Загрузить файл: запустить клиента #smbclient //192.168.0.x/arh, посмотреть каталог ls, загрузить файл get
3. Установить права на каталог /var/ftp с рекурсией #chown -R ftp:ftp /var/ftp

"Victorius" написал:
Что значит эта строка? Первая строка я так понял означает открытие порта ftp (21) для доступа снаружи.

Открытие портов для пассивного режима работы FTP

#305432
"Victorius" написал:
text
iptables -A INPUT -i eth0 -p tcp --dport 50000:50100 -j ACCEPT

Что значит эта строка?

Добавить в таблицу filter в цепочку INPUT правило, разрешающее доступ к интерфейсу eth0 по протоколу tcp для пакетов, отправленных с порта в диапазоне 50000 - 50100.

#305441

А чем вообще хорошо создание виртуальных пользователей для vsftpd? Я так понимаю они всё равно будут на какой-то Oracle db находится, в чём тогда их виртуальность? Проясните пожалуйста этот момент.

#305443
"Victorius" написал:
Я так понимаю они всё равно будут на какой-то Oracle db находится, в чём тогда их виртуальность?

...или sqlite. А виртуальность, как я понимаю, их в том, что они не имеют собственного домашнего каталога и рабочей оболочки, что повышает безопасность сервера.

#305444

У тебя фактически один пользователь для системы - ftp, остальные псевдопользователи.

1. Организация безопасности
2. удобство управления (у тебя список пользователей - обыкновенная текстовка).

#321152

дОброго времени суток.
проблема:
установил debian и к нему купил лицензию ispmanager
настроил все работает, только файловые менеджеры не грузятся файлы. пробовал totolcommander выдает ошибку
"550 Permission denied"
возможно это не настроен vsftpd?

Войдите или зарегистрируйтесь, чтобы ответить.