Установка vsftpd (Проблема с доступом)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

Andrey2005
Сообщения: 36
ОС: LinuxMint

Re: Установка vsftpd

Сообщение Andrey2005 »

Voler писал(а):
05.03.2008 09:42
Спасибо, попробую завтра т.к. сервак на работе. Захожу на него и правлю конфиги по SSH. Принципиально пробовать локально ??

Нет, это равно сильно. ssh способ входа на удаленный ПК. Самое главное, чтобы и он был нормально настроен.


Всё сделал так, как написано, но получается вот что, если имеет право входить на комп локально, то и по ФТП он удалённо зайдёт, если нет, то и ФТП он не может зайти. Почему так ?
Спасибо сказали:
Аватара пользователя
tmp13
Сообщения: 986
ОС: openSuse 11.2

Re: Установка vsftpd

Сообщение tmp13 »

так скорее всего потому что у вас стоит
local_enable=YES
на сколько я помню из-за этого)
Красных бей и белых бей!
Вот вам иерархия!
Я люблю тебя за это, милая моя,
Разудалая, хмельная мать моя – Анархия!
Спасибо сказали:
Andrey2005
Сообщения: 36
ОС: LinuxMint

Re: Установка vsftpd

Сообщение Andrey2005 »

tmp13 писал(а):
05.03.2008 12:48
так скорее всего потому что у вас стоит
local_enable=YES
на сколько я помню из-за этого)


Не помогло
Спасибо сказали:
Аватара пользователя
quadrik
Сообщения: 350
ОС: gentoo, только на серверах

Re: Установка vsftpd

Сообщение quadrik »

Andrey2005,
check_shell
Note! This option only has an effect for non-PAM builds of vsftpd. If disabled, vsftpd will not check /etc/shells for a
valid user shell for local logins.
Default: YES


Видимо, у вас vsftpd собран без поддержки PAM. установите

Код: Выделить всё

check_shell=No
Спасибо сказали:
Andrey2005
Сообщения: 36
ОС: LinuxMint

Re: Установка vsftpd

Сообщение Andrey2005 »

quadrik писал(а):
05.03.2008 13:29
Andrey2005,
check_shell
Note! This option only has an effect for non-PAM builds of vsftpd. If disabled, vsftpd will not check /etc/shells for a
valid user shell for local logins.
Default: YES


Видимо, у вас vsftpd собран без поддержки PAM. установите

Код: Выделить всё

check_shell=No



Опять не помогло, пользуюсь vsftpd в стандартной комплектации в Fedora 8 x64
Спасибо сказали:
Аватара пользователя
quadrik
Сообщения: 350
ОС: gentoo, только на серверах

Re: Установка vsftpd

Сообщение quadrik »

Andrey2005 писал(а):
05.03.2008 13:53
Опять не помогло

Не помогло это как? Входит с валидным шелом и не входит с /bin/nologin? Рестартовать сервис не забываете?
Спасибо сказали:
Andrey2005
Сообщения: 36
ОС: LinuxMint

Re: Установка vsftpd

Сообщение Andrey2005 »

quadrik писал(а):
05.03.2008 14:11
Andrey2005 писал(а):
05.03.2008 13:53
Опять не помогло

Не помогло это как? Входит с валидным шелом и не входит с /bin/nologin? Рестартовать сервис не забываете?


Именно так (пишет Login incorrect), сервис перестартовывать не забываю
Спасибо сказали:
Аватара пользователя
Voler
Сообщения: 498
ОС: Fedora

Re: Установка vsftpd

Сообщение Voler »

а дистрибутив какой uname -a

rpm -qa vsftp pam
Спасибо сказали:
Andrey2005
Сообщения: 36
ОС: LinuxMint

Re: Установка vsftpd

Сообщение Andrey2005 »

Voler писал(а):
05.03.2008 15:04
а дистрибутив какой uname -a

rpm -qa vsftp pam

Код: Выделить всё

[root@FEDORA ~]# rpm -qa vsftp pam
pam-0.99.8.1-10.fc8
pam-0.99.8.1-10.fc8
[root@FEDORA ~]# uname -a
Linux FEDORA 2.6.23.14-107.fc8 #1 SMP Mon Jan 14 22:07:11 EST 2008 x86_64 x86_64



Блин, забыл сказать, что я закоментирвал строку

Код: Выделить всё

local_root=/web/FTP_Zet-Techno


Чтоб при входе пользователи попадали в свои домашние каталоги. Может это из-за этого ?
Спасибо сказали:
Аватара пользователя
Voler
Сообщения: 498
ОС: Fedora

Re: Установка vsftpd

Сообщение Voler »

Дистр знакомый, стоит на ноутбуке. Ядрышко не помешало бы обновить!

Да и нестабильно работает данный дистр.

local_root=/web/FTP_Zet-Techno

Конечно нет это мало вероятно. Но стоит проверить.
Спасибо сказали:
Andrey2005
Сообщения: 36
ОС: LinuxMint

Re: Установка vsftpd

Сообщение Andrey2005 »

Voler писал(а):
05.03.2008 16:16
Дистр знакомый, стоит на ноутбуке. Ядрышко не помешало бы обновить!

Да и нестабильно работает данный дистр.

local_root=/web/FTP_Zet-Techno

Конечно нет это мало вероятно. Но стоит проверить.


Ядрышко обновил и заодно PAM модуль.
Не помогло.
Расскоментирвание строчки Local_root тоже не помогло :-(
Спасибо сказали:
Andrey2005
Сообщения: 36
ОС: LinuxMint

Re: Установка vsftpd

Сообщение Andrey2005 »

Помогло комметирование строчки

Код: Выделить всё

auth    required        pam_shells.so
Спасибо сказали:
Аватара пользователя
Voler
Сообщения: 498
ОС: Fedora

Re: Установка vsftpd

Сообщение Voler »

Выкладываю последнюю наработку, по vsftpd
Для начала удалим, vsftpd.

Код: Выделить всё

yum remove vsftpd или rpm -e vsftpd

Если, вы только что установили систему то вам нужно поставить,
yum install compat-db
в Fedora этот пакет не стоит.

Данный пакет включает в себя db_load без которого вы не сможете переконвертировать в Базу Беркли ваши логины.
Далее

Код: Выделить всё

cd /etc/vsftpd
touch ftp.sh
chmod 750 ftp.sh

Далее заходим на Сюда.
Правим скрипт под свои нужды.

Код: Выделить всё

#!/bin/sh
# LSN VSFTPD chroot install
# Version 1.0
# August 1, 2005
# Fire Eater <LinuxRockz@gmail.com>
# Released under the GPL License- http://www.fsf.org/licensing/licenses/gpl.txt
##############################################################################
#
IP_Address="`( /sbin/ifconfig | head -2 | tail -1 | awk '{ print $2; }' | tr --delete [a-z]:)`"
My_FTP_User="Ваше_имя"
My_FTP_Password="Ваш_пароль"

echo ""
echo "Setting up Vsftpd with non-system user logins"
echo ""
#
#
mv  /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.orig
cat <<EOFVSFTPD> /etc/vsftpd/vsftpd.conf
anon_world_readable_only=NO
anonymous_enable=NO
chroot_local_user=YES
guest_enable=NO
guest_username=ftp
hide_ids=YES
listen=YES
listen_address=$IP_Address
local_enable=YES
max_clients=100
max_per_ip=2
nopriv_user=ftp
pam_service_name=ftp
pasv_max_port=65535
pasv_min_port=40000
session_support=NO
use_localtime=YES
user_config_dir=/etc/vsftpd/users
userlist_enable=YES
userlist_file=/etc/vsftpd/denied_users
xferlog_enable=YES
anon_umask=0027
local_umask=022
async_abor_enable=YES
connect_from_port_20=YES
dirlist_enable=NO
download_enable=NO
EOFVSFTPD

cat /etc/passwd | cut -d ":" -f 1 | sort > /etc/vsftpd/denied_users; mkdir /etc/vsftpd/users
sed -e '/'$My_FTP_User'/d' < /etc/vsftpd/denied_users > /etc/vsftpd/denied_users.tmp
mv /etc/vsftpd/denied_users.tmp /etc/vsftpd/denied_users
chmod 644 /etc/vsftpd/denied_users

cat <<EOFPAMFTP> /etc/pam.d/ftp
auth    required /lib/security/pam_userdb.so db=/etc/vsftpd/accounts
account required /lib/security/pam_userdb.so db=/etc/vsftpd/accounts
EOFPAMFTP

cat <<EOFVSFTPU> /etc/vsftpd/users/$My_FTP_User
dirlist_enable=YES
download_enable=YES
local_root=/web/ftp/$My_FTP_User/public_html
write_enable=YES
EOFVSFTPU

echo $My_FTP_User > /etc/vsftpd/accounts.tmp
echo $My_FTP_Password >> /etc/vsftpd/accounts.tmp
/usr/bin/db_load -T -t hash -f  /etc/vsftpd/accounts.tmp /etc/vsftpd/accounts.db
chmod 600 /etc/vsftpd/accounts.db
#
echo "Done....."
#

vi ftp.sh #записываем в него наш скрипт, см. выше. Для тех кто не знаком с vi, есть аналог mcedit.
Запускаем скрипт

Код: Выделить всё

#./ftp.sh

Если вы увидели что то типо этого
Setting up Vsftpd with non-system user logins
Done.....

Все теперь, заходим на наш ФТП.
Но я немного переделал конфиг vsftpd.conf, под свои нужды.

Код: Выделить всё

#Разрешаем или нет анонимным пользователям
#чтение только, YES или NO
anon_world_readable_only=NO
#Разрешаем анонимных пользователей YES или NO
anonymous_enable=NO
#
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
#Лучим локальных пользователй в их каталогах.
chroot_local_user=YES
chmod_enable=YES
chown_uploads=YES
#Пользователь владелец.
chown_username=ftp
#Вертуальные пользователи используют локальные привелегии.
virtual_use_local_privs=YES
#Гостевой логин
guest_enable=YES
#Пользователь
guest_username=ftp
hide_ids=YES
listen=YES
#listen_address=192.168.1.200
#listen_port=21
local_enable=YES
local_root=/web/ftp
nopriv_user=ftp
session_support=NO
use_localtime=YES
user_config_dir=/etc/vsftpd/users
userlist_enable=YES
userlist_file=/etc/vsftpd/denied_users
xferlog_enable=YES
xferlog_std_format=YES
xferlog_file=/var/log/vsftpd.log
anon_umask=0007
local_umask=0022
file_open_mode=0777
async_abor_enable=YES
#connect_from_port_20=YES
dirlist_enable=NO
dirmessage_enable=YES
download_enable=NO
ftpd_banner=Welcome to Zet-Techno
tcp_wrappers=YES
trans_chunk_size=8192
max_clients=10
max_per_ip=2
pam_service_name=ftp
pasv_max_port=65535
pasv_min_port=40000
ftpd_banner=Welcome to Zet-Techno

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

Код: Выделить всё

mkdir /web/ftp/$My_FTP_User/
mkdir /web/ftp/$My_FTP_User/public_html
chown root.ftp /web/ftp/$My_FTP_User/
chmod 775 /web/ftp/$My_FTP_User/
chown root.ftp /web/ftp/$My_FTP_User/public_html
chmod775 /web/ftp/$My_FTP_User/public_html

Все теперь стартуем
#service vsftpd start

Теперь нам нужно, еще добавить пользователей.
Создадим файл

Код: Выделить всё

touch FTP_User.tpl и adduser_vsftp.sh
chmod 750 adduser_vsftp.sh
Откроем его
vi adduser_vsftp.sh

С таким содержанием

Код: Выделить всё

#!/bin/sh
# Vsftpd adduser
# Fire Eater <LinuxRockz@gmail.com>
# August 1, 2005
# Requires Server installation using the LSN Installer
# Released under the GPL License- http://www.fsf.org/licensing/licenses/gpl.txt
###############################################################################
Template_Dir="/etc/Templates" #обратите внимание на путь.Укажите свой, и создайте файл FTP_User.tpl в нем.
###############################################################################

# This option adds a ftp user
    clear
        echo "Now Adding FTP User"
        echo -n "Username (lowercase): "
        read FTP_USER_NAME
        echo -n "Password (case sensitive): "
        read FTP_USER_Password

cp $Template_Dir/FTP_User.tpl $Template_Dir/FTP_User.tpl.1
perl -pi -e "s/FTP_USER_NAME/$FTP_USER_NAME/g;" $Template_Dir/FTP_User.tpl.1
cat $Template_Dir/FTP_User.tpl.1 >> /etc/vsftpd/users/$FTP_USER_NAME
rm -f $Template_Dir/FTP_User.tpl.1
echo $FTP_USER_NAME >> /etc/vsftpd/accounts.tmp; echo $FTP_USER_Password >>/etc/vsftpd/accounts.tmp
rm -f /etc/vsftpd/accounts.db
db_load -T -t hash -f  /etc/vsftpd/accounts.tmp /etc/vsftpd/accounts.db
chmod 600 /etc/vsftpd/accounts.db


И так же в FTP_User.tpl

Код: Выделить всё

dirlist_enable=YES
download_enable=YES
local_root=/web/ftp/FTP_USER_NAME/public_html
write_enable=YES

Также для вновь созданного пользователя нужно создать каталоги.

Ну вот и все, данная конфигурация ФТП сервера позволяет использовать вертуальных пользователей.
Рекомендую, после запуска ftp.sh удалить или дать права на чтенеи только root
chmod 600 ftp.sh
Так же вы можете поиграться с правами на директории, ну и конфиг vsftpd.conf
Все выше приведенное, проверенно на Fedora 7.
Спасибо, в написании данной статье Lek и руководству.
Руководству.
Спасибо сказали:
Anybis
Сообщения: 99
ОС: GNU/Linux

Re: Установка vsftpd

Сообщение Anybis »

Устанавливал с репозитария, ос fedora 9

Код: Выделить всё

# cat /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=NO
xferlog_enable=YES
connect_from_port_20=YES
chown_uploads=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
nopriv_user=user
ftpd_banner=Welcome to FTP Server.
chroot_local_user=YES
chroot_list_file=/etc/vsftpd.chroot_list
chroot_list_enable=NO
pam_service_name=vsftpd
userlist_enable=YES
listen=YES
tcp_wrappers=NO

сервер запускается и сразу падает =(

Код: Выделить всё

[root@ ~]# /etc/init.d/vsftpd restart
Shutting down vsftpd:                                      [FAILED]
Starting vsftpd for vsftpd:                                [  OK  ]
[root@ ~]# /etc/init.d/vsftpd restart
Shutting down vsftpd:                                      [FAILED]
Starting vsftpd for vsftpd:                                [  OK  ]
Спасибо сказали:
Аватара пользователя
pehser
Сообщения: 333
ОС: sidux

Re: Установка vsftpd

Сообщение pehser »

Anybis писал(а):
07.07.2008 16:32
Устанавливал с репозитария, ос fedora 9
сервер запускается и сразу падает =(

смотри поблему в логе /var/log/vsftpd.log
Linux 2.6.30 (CPU Core2D 1.6 RAM 2Gb Video Nvidia 8500)
Тестю KDE4.3
Спасибо сказали:
Anybis
Сообщения: 99
ОС: GNU/Linux

Re: Установка vsftpd

Сообщение Anybis »

/var/log/vsftpd.log 0 bite
=(
Спасибо сказали:
Anybis
Сообщения: 99
ОС: GNU/Linux

Re: Установка vsftpd

Сообщение Anybis »

в messege тоже ничего не нашел(
Спасибо сказали: