LinuxForum.Fans
Тема

Vsftpd

Автор: n2b 45 сообщений 9661 просмотров
#150792

И еще такой вопрос:
вот мой конфиг

text
pam_service_name=vsftpd
#
# When "listen" directive is enabled, vsftpd runs in standalone mode and
# listens on IPv4 sockets. This directive cannot be used in conjunction
# with the listen_ipv6 directive.
#listen=YES
#
# This directive enables listening on IPv6 sockets. To listen on IPv4 and IPv6
# sockets, you must run two copies of vsftpd with two configuration files.
# Make sure, that one of the listen options is commented !!
listen=YES
#
# Set to ssl_enable=YES if you want to enable SSL
ssl_enable=NO
#
# Limit passive ports to this range to assis firewalling
pasv_min_port=30000
pasv_max_port=30100
#ftpd_banner=Fin-Project FTP, 8-926-612-61-01
#idle_session_timeout=900
#log_ftp_protocol=NO
#max_clients=10
#max_per_ip=3
pasv_enable=YES
#ssl_sslv2=NO
#ssl_sslv3=NO
#ssl_tlsv1=YES

Канал 10мбит
А качает и заливает максимум на 200кбайт... почему?
При помощи фтп клиента - FileZIlla скорость сначала скачет, а потом уже нормально выдает 1мб в секунду, вопрос снят.
Кстати, оцените конфиг, что можно изменить для секьюрности или оптимизации, только сначала ответьте пожалуйста про пользователей.

#150832
n2b написал:
У меня пользователи созданы в самой системе, их фтп и подцепляет.

дело в том, что ftp сервер это (в Linux) другой вход в систему. Т.е. точно также, как вы входите в консоль, входят ваши юзеры. Они входят (логин/пароль), и далее могут выполнять команды (правда команды другие, не такие как в консоли). При этом, нет никакой разницы, через консоль вы вошли, или через FTP (с т.з. прав). Это удобно, ибо рут всегда может написать
[console]# su vasya[/console]
и потом в консоли проверить, что там этот вася может, и чего не может.

Опишите, что конкретно вы хотите сделать с правами. Всё это может сделать рут используя команду chmod
(если случай сложный, можно использовать chattr, а на больших серверах ещё и chacl).

В конфиге вы можете запрещать/разрешать некоторые команды, например DELE - юзер тогда не сможет удалять. Вообще.

n2b написал:
А качает и заливает максимум на 200кбайт... почему?
При помощи фтп клиента - FileZIlla скорость сначала скачет, а потом уже нормально выдает 1мб в секунду, вопрос снят.

вопрос этот наверное к той программе, что качает на 200кб.

n2b написал:
Кстати, оцените конфиг

дык он практически пуст.

#150856
n2b написал:
#idle_session_timeout=900 #log_ftp_protocol=NO #max_clients=10 #max_per_ip=3

я бы комментарии снял бы и настроил бы соответствующим образом, некий тюнинг конфига. Ну а для начало бы обратился бы к документации и почитал, что значит каждый параметр и опция.
И еще, не много не понял вот этой строчки:

n2b написал:
# with the listen_ipv6 directive. #listen=YES # # This directive enables listening on IPv6 sockets. To listen on IPv4 and IPv6 # sockets, you must run two copies of vsftpd with two configuration files. # Make sure, that one of the listen options is commented !! listen=YES

в чем разница между #listen=YES и listen=YES, хотя может там как пример идет, и значение default как бы.

drBatty написал:
дык он практически пуст.

да не то что пуст, даже к default или example не подходит, обрезан уж очень сильно. =(

#150899
i2ks написал:
в чем разница между #listen=YES и listen=YES, хотя может там как пример идет, и значение default как бы.

там было так:

text

listen
    If enabled, vsftpd will run in standalone mode. This means that vsftpd must not be run from an inetd of some kind. Instead, the vsftpd executable is run once directly. vsftpd itself will then take care of listening for and handling incoming connections.

Default: YES listen_ipv6 Like the listen parameter, except vsftpd will listen on an IPv6 socket instead of an IPv4 one. This parameter and the listen parameter are mutually exclusive.

Default: NO

а ТС переправил так... стёр _ipv6 и сменил NO на YES.
Я телепат? smile

вот вам документация же
http://vsftpd.beasts.org/vsftpd_conf.html

#150981

Конфиг использовался стандартный, с автоматическим добавлением строчек от yast2_ftp.
Спасибо большое за ответы, почти все понятно(пока не копал и не проверял на практике, но на теории все ясно), остался 1 вопрос:

i2ks написал:


[quote=n2b]. Как создать пользователя который мог бы записывать, но не мог удалять файлы, только скачивать и записывать?

vsftpd.conf
...
user_config_dir=/etc/vsftpd/userconf
...

/etc/vsftpd/userconf/user1
...
cmds_allowed=PASV,QUIT,LIST,CWD,RETR,STOR,MKD
....

А здесь можно узнать команды для пользователей http://www.faqs.org/rfcs/rfc959.html[/quote]
строчка user_config_dir=/etc/vsftpd/userconf - говорит от директории где записаны конфиги прав юзеров?
/etc/vsftpd/userconf/user1 - путь до файла конфы юзера 1?
cmds_allowed=PASV,QUIT,LIST,CWD,RETR,STOR,MKD - права записанные в файле user1, разрешающие действия юзеру 1?
Вопросы: Какой синтаксис файлa user1?
Что вообще можно указать в файле user1?

#150993
n2b написал:
cmds_allowed=PASV,QUIT,LIST,CWD,RETR,STOR,MKD - права записанные в файле user1, разрешающие действия юзеру 1?

это не права, а список разрешённых команд. Разница существенная - создание и удаление файлов разрешается/запрещается установкой/сбросом права модификации каталога. Тут удаление не разрешено, потому юзер не сможет удалить никаких файлов, даже если у него есть такое право. За то разрешено сохранение STOR, и потому этот юзер может заливать файлы (т.е. создавать новые). Если конечно у него есть право модификации каталога, куда он льёт.

n2b написал:
Вопросы: Какой синтаксис файлa user1?

ЕМНИП (поправьте кто знает), это просто часть общего конфига, вынесенная для удобства.

#151375

что такое ЕМНИП? Я так и не понял какие должны быть строчки в vsftpd.conf для указания на юзерконф и какой синтаксис файла user1 и так далее....

#151382
n2b написал:
что такое ЕМНИП?

http://lurkmore.ru/%D0%95%D0%9C%D0%9D%D0%98%D0%9F

n2b написал:
Я так и не понял какие должны быть строчки в vsftpd.conf

обычно, субконфиги просто ВКЛЮЧАЮТСЯ в общий конфиг.


user_config_dir
This powerful option allows the override of any config option specified in the manual page, on a per-user basis. Usage is simple, and is best illustrated with an example. If you set user_config_dir to be /etc/vsftpd_user_conf and then log on as the user "chris", then vsftpd will apply the settings in the file /etc/vsftpd_user_conf/chris for the duration of the session. The format of this file is as detailed in this manual page! PLEASE NOTE that not all settings are effective on a per-user basis. For example, many settings only prior to the user's session being started. Examples of settings which will not affect any behviour on a per-user basis include listen_address, banner_file, max_per_ip, max_clients, xferlog_file, etc.

http://vsftpd.beasts.org/vsftpd_conf.html#lbAB
читайте...

#151446

не нашел я там синтаксис файла user в папке /etc/vsftpd_user_conf... может плохо смотрел...?

#151555
n2b написал:
не нашел я там синтаксис файла user в папке /etc/vsftpd_user_conf... может плохо смотрел...?

facepalm... :o
ну я же процитировал!

drBatty написал:
The format of this file is as detailed in this manual page! PLEASE NOTE that not all settings are effective on a per-user basis. For example, many settings only prior to the user's session being started

формат файла детально расписан в мане!
ВАЖНОЕ ПРИМЕЧАНИЕ: не все настройки работают в юзерских конфигах. например не работают настройки, которые действуют ДО того, как этот юзер вошёл в систему (ваш К.О.)

UPD
формат юзерских конфигов такой-же, как и формат главного конфига. Ибо первые - части второго.

#151576

The format of this file is as detailed in this manual page!

Ну я и искал на этой же странице... а не в мане...

text
user=user1
cmds_allowed=PASV,QUIT,LIST,CWD,RETR,STOR,MKD

Буду пробовать так...

#151581
n2b написал:
Ну я и искал на этой же странице... а не в мане...

дык НА ЭТОЙ странице и написан формат! :[
и тех и других файлов!
ну можете в мане посмотреть... там наверное тоже самое.

#151789

то что все функции, так сказать, булевые аля function = parameters
Но вот ЧТО можно вписать в user1.conf я не знаю.. Но теперь понимаю вроде. Не злись :) Спасибо за ответы.

#152390
n2b написал:
Но вот ЧТО можно вписать в user1.conf я не знаю..

я тоже :P
ну можно запретить просмтр *porno* в рабочие дни wink

#199987

Ребята решение с userconf и

text
cmds_allowed=PASV,QUIT,LIST,CWD,RETR,STOR,MKD

суперовое!.
Но я пошел дальше и попробовал зайти фтп пользователем на консоль и все успешно получилось, при чем могу перейти в любую директорию и выполнить любую команду (прописывая /sbin...),
становиться понятным что это реальная дыра.
По этому родился вопрос как пользователю запретить доступ к консоли но оставить доступ с фтп. Прошу взять во внимание что пробовал запретить вход на консоль с помощью

text
/etc/passwd
........
ftpuser....:/bin/false:/sbin/nologin

после этого доступ к консоли пропадает но и на фтп зайти нельзя.

Помогите пожалуйста!

#199995

emptyxl,

text
# помещаем локальных юзеров в их домашние каталоги, 
# иначе пользователю будет доступен корень системы.
chroot_local_user=YES
chroot_list_enable=NO
#200041
emptyxl написал:
Но я пошел дальше и попробовал зайти фтп пользователем на консоль и все успешно получилось

а почему не получится то ? Оо

emptyxl написал:
при чем могу перейти в любую директорию и выполнить любую команду (прописывая /sbin...),
становиться понятным что это реальная дыра.

ну не любую команду, здесь вы переборщили слегка. smile

newzenon написал:
# помещаем локальных юзеров в их домашние каталоги,
# иначе пользователю будет доступен корень системы.
chroot_local_user=YES
chroot_list_enable=NO

это для ftp, а как я понял, он просто залогинился =) Здесь иной подход, хотя все равно надо chrootится =)

#200044
i2ks написал:

это для ftp, а как я понял, он просто залогинился =) Здесь иной подход, хотя все равно надо chrootится =)

Дак тема про ftp и я не особо вчитался что же emptyxl сделал, а оно оказывается:

emptyxl написал:


Но я пошел дальше и попробовал зайти фтп пользователем на консоль и все успешно получилось, при чем могу перейти в любую директорию и выполнить любую команду (прописывая /sbin...),
становиться понятным что это реальная дыра.

И куда ж дальше? о_О - естественно пользователь ftp существует, то же мне новость, проблема ftp бзеру /sbin/nologin прописать или что?
Или каталог ему прописать с монтированием noexec - вообще ничего не запустишь.
Так что это не дыра - это беда того кто разрешил.

#200681

проблему решил поместил фтп-юзера в группу FTP User (файл /etc/passwd ) и написал /bin/nologin
[console]#cat /etc/passwd | grep ftpu
ftpuser:x:502:502:FTP User:/tmp/ftp/:/sbin/nologin[/console]
Так что с этой проблемой мы расстаемся. Спасибо всем, но попрошу не расходиться т.к. есть еще вопросик:
стал wireshart-oм (далее -шарк) на сетевой интерфейс, когда залогинился и увидел в логе шарка что все в открітом виде передаеться, видно логин пароль, структуру каталогов, права на них и т.д.
Хочеться как то защититься. Почитал на оф. сайте vsftpd мануал. Решил включить SSL.

text
ssl_enable=YES
#ssl_sslv2=YES
#ssl_sslv3=YES
ssl_tlsv1=YES
force_local_logins_ssl=YES
force_local_data_ssl=YES

Но ТС не может авторизироваться.
Может кто то подскажет где я ошибся?

#200683
emptyxl написал:
Но ТС не может авторизироваться.
Может кто то подскажет где я ошибся?

а что в консоли сыпется?
А так же вывод команды:
[console]ldd /usr/sbin/vsftpd | grep ssl[/console]

И вообще, вы сертификаты делали, что бы авторизация проходила или нет?

How to Secure VSFTP with SSL and Two-factor Authentication

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