|
|
www.lissyara.su
—> статьи
—> FreeBSD
—> программы
—> vsftpd + mysql
vsftpd + mysql + virtual users
Автор: helloworld.
Делать было в понедельник нечего сутра, вот решил написать статью, как поднять рабочий фтп сервер vsftpd с пользователями в mysql базе с шифрованными паролями.
OS: FreeBSD 6.3-STABLE
Суть механизма: vsftpd общается с pam, а pam общается с mysql.
# cd /usr/ports/ftp/vsftpd/
# make install clean
| Я ставил без поддержки SSL.
Поставили, далее модуль pam_mysql.so
# cd /usr/ports/security/pam-mysql
# make install clean
| После установки делает линк
#ln -sf /usr/local/lib/pam_mysql.so /usr/lib/pam_mysql.so
| Ставим mysql.
# /usr/ports/databases/mysql41-server
# make install clean
| В /etc/rc.conf добавим:
mysql_enable="YES"
mysql_limits="NO"
mysql_dbdir="/var/db/mysql"
| Запускаем mysql
# /usr/local/etc/rc.d/mysql-server start
| Создадим базу где будут храниться логины и пароли от пользователей. Владелец базы vsftpd, пароль ftpdpass
CREATE DATABASE vsftpd;
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, \
DROP ON vsftpd.* TO 'vsftpd'@'localhost' IDENTIFIED BY 'ftpdpass';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, \
DROP ON vsftpd.* TO 'vsftpd'@'localhost.localdomain' IDENTIFIED BY 'ftpdpass';
FLUSH PRIVILEGES;
| Создаем таблицу:
USE vsftpd;
CREATE TABLE `accounts` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`username` VARCHAR( 30 ) NOT NULL ,
`pass` VARCHAR( 50 ) NOT NULL ,
UNIQUE (
`username`
)
) ENGINE = MYISAM ;
quit;
| Далее командой # adduser создаем пользователя с похожими данными /etc/passwd
vsftpd:*:1003:1003:User &:/home/vsftpd:/usr/sbin/nologin
| Теперь конфиг фтп сервера:
/usr/local/etc/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
nopriv_user=vsftpd
chroot_local_user=YES
secure_chroot_dir=/usr/local/share/vsftpd/empty
listen=YES
pasv_min_port=50000
pasv_max_port=50100
pam_service_name=vsftpd
guest_enable=YES
guest_username=vsftpd
local_root=/home/vsftpd/$USER
user_sub_token=$USER
virtual_use_local_privs=YES
user_config_dir=/usr/local/etc/vsftpd_user_conf
| Далее создадим директорию (если чесно я пока сам не разобрался зачем, но видимо так надо)
# mkdir /usr/local/etc/vsftpd_user_conf
| Создаем конфигурационный файл vsftpd, что бы pam функционировал с фпт сервером
# ee /etc/pam.d/vsftpd
auth required pam_mysql.so user=vsftpd passwd=ftpdpass \
host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=2
account required pam_mysql.so user=vsftpd passwd=ftpdpass \
host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=2
| В файле /etc/pam.d/vsftpd убедитесь, что бы было только 2 строки(первая начинается с auth required, вторая account required), без переносов.
Добавим тестового пользователя с логином testuser и паролем secret:
#mysql -u root
USE vsftpd;
INSERT INTO accounts (username, pass) VALUES('testuser', PASSWORD('secret'));
quit;
| И еще немного прав пользователям на каталоги:
mkdir /home/vsftpd/testuser
chown vsftpd:nogroup /home/vsftpd/testuser
| Создадим загрузочник фтп сервера:
# ee /usr/local/etc/rc.d/vsftpd.sh
#!/bin/sh
echo 'vsftpd starting...'
/usr/local/libexec/vsftpd &
| Запускаем:
#/usr/local/etc/rc.d/vsftpd.sh
| Или можете перегрузиться...
ps: в качестве фаервола я всегда использую pf, добавляем в /etc/pf.conf правила для фтп сервера:
pass in on $ext_if inet proto tcp from any port 1024:65535 to \
ваш.ip.адрес port 21 flags S/SA keep state
pass in on $ext_if inet proto tcp from any port 1024:65535 to \
ваш.ip.адрес port 50000:50100 flags S/SA keep state
| Строки
pasv_min_port=50000
pasv_max_port=50100
в /usr/local/etc/vsftpd.conf означают, что открываются порты с 50000 до 50100 для пассивного режима работы фтп сервера и максимально может быть только 100 одновременных сессий.
pss: пользователей можно заводить и при помощи обычного phpmyadmin
ОЧЕНЬ ПОЛЕЗНО: читайте оригинал статьи - он написан для линупса Дибиван
http://www.howtoforge.com/vsftpd_mysql_debian_etch
размещено: 2008-03-11,
последнее обновление: 2008-03-11,
автор: helloworld
|
|
|
|
2014-07-27, lissyara
gmirror
Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9
Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту
Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis
Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS
Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT
В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat
Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp
Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration
Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster
HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS
История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
2011-02-03, Капитан
1-Wire
Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
2011-01-28, Капитан
Температура в серверной
Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
2011-01-21, m4rkell
Syslog server
Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
2011-01-07, lissyara
Canon/gphotofs
Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты.
2010-12-13, Al
IPSec
Описание принципов работы IPSEC и способов аутентификации.
|
Статистика сайта
|
Сейчас на сайте находится: 12 чел.
|
За последние 30 мин было: 47 человек
|
За сегодня было 7517 показов, 853 уникальных IP
|
|
|
|
Этот информационный блок появился по той простой причине,
что многие считают нормальным, брать чужую информацию не уведомляя автора
(что не так страшно), и не оставляя линк на оригинал и автора — что более существенно.
Я не против распространения информации — только за. Только условие простое — извольте
подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой,
незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
Если соизволите поставить автора в известность — то вообще почёт вам и уважение.
© lissyara 2006-10-24 08:47 MSK
|
|
|
Комментарии пользователей [30 шт.]