PureFTPD на pfSense 2.0 с хранилищем на втором HDD
-
Привет всем. Это мой первый пост. Написал статейку, на новизну и гениальность не претендую, но для новичка самое оно + для себя, чтобы не забыть. Описано все от установки, до подключения, включая форматирование винта. К каждому действию комментарий.
Установка FTP на pfSense 2.0 с хранилищем на втором HDD
1. ставим pfSense 2.0, настраиваем первичные интерфейсы (чтобы работал хотя бы интернет)
2. выходим в shell, добавляем второй винт (ad6 мой винт, ваш можно найти через ls -l /dev/ad*):
dd if=/dev/zero of=/dev/ad6 bs=1k count=1 (затираем заголовок)
bsdlabel -Bw ad6 auto (получаем геометрию)
bsdlabel -e ad6 (смотрим все ли сходится)
newfs /dev/ad6a (создаем файловую систему)
mkdir /ftproot (создаем mount-point, куда будет монтироваться наше хранилище)
ee /etc/fstab (меняем таблицу носителей, добавляем наш новоиспеченный раздел под фтп)
создаем новую строчку в конце и добавляем (напоминаю, ad6 это мой винт)
/dev/ad6a /ftproot ufs rw 2 2
перезагружаемся и заходим обратно в shell
3. смотрим uname -a (конкретно версию), по результатам добавляем источник пакетов
setenv PACKAGESITE ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8-stable/Latest/
(почему выбрали package-8-stable? потому что uname -a показал нам sullrich@FreeBSD_8.0)
4. ставим pure-ftpd (все пакеты можно глянуть через ls -l /var/db/pkg)
pkg_add -vr pure-ftpd (-v полный лог, -r установка)
5. теперь создаем конфиг из примера
cd /usr/local/etc (переходим в папку с примерами конфигураций)
ls -l (видим pure-ftpd.conf.sample)
cp pure-ftpd.conf.sample pure-ftpd.conf (копируем пример в рабочий конфиг)
6. теперь редактируем конфиг, можно пойти по одному из двух путей, первый (6.1) – юзаем системных пользователей, второй
(6.2) – юзаем пользователей из PureDB (база юзеров pureftp)
6.1. юзаем системных пользователей (юзеры складируются в /etc/passwd)
6.1.1. редактируем конфиг
ee pure-ftpd.conf
ищем строчки и убираем знак # перед ними (т.е. раскомментируем)
UnixAuthentication yes (авторизация через /etc/passwd)
CreateHomeDir yes (для каждого нового пользователя прошедщего авторизацию создаем свою папку, иначе отлуп)
Bind 172.31.20.20,21 (раскомметировать необязательно, биндинг на конкретный интерфейс, иначе слушаем всё)
6.1.2. добавляем юзеров
pw useradd buhanka -d /ftproot/buhanka (добавляем юзера buhanka)
passwd buhanka (ставим пароль)
pw user show buhanka (посмотрим что получилось)
6.1.3. переходим к пункту 7.
6.2. юзаем пользователей PureDB (юзеры складируются в указанную в конфиге файловую базу PureDB)
6.2.1. редактируем конфиг
ee pure-ftpd.conf
ищем строчки, убираем знак # перед ними (т.е. раскомментируем)
PureDB /etc/pureftpd.pdb (задаем файловую базу)
CreateHomeDir yes (для каждого нового пользователя прошедщего авторизацию создаем свою папку, иначе отлуп)
Bind 172.31.20.20,21 (раскомметировать необязательно, биндинг на конкретный интерфейс, иначе слушаем всё)
6.2.2. добавляем юзеров
pw user add ftpaccount -s /sbin/nologin -w no -d /ftproot -c "ftp users" –m (добавляем ftpaccount, через него наши юзеры из
файловой базы будут ходить на сервер)
chown -R ftpaccount /ftproot (рекурсивно меняем владельца файлов и папок)
/usr/local/bin/pure-pw useradd buhanka -u ftpaccount -g ftpaccount -d /ftproot/buhanka (добавляем пользователя в базу)
/usr/local/bin/pure-pw mkdb (после изменения нужно заново создать базу)
/usr/local/bin/pure-pw show buhanka (посмотрим что получилось)
6.2.3. переходим к пункту 7.
7. итак, винт работает и смонтирован, пользователи созданы и жаждут работы, теперь нужно запустить pureftpd
cd /usr/local/etc/rc.d/ (меняем папку)
ls -l (смотрим листинг)
файл pure-ftpd должен лежать, теперь нужно сделать чтобы служба запускалась после перезапуска сервера
mv pure-ftpd pure-ftpd.sh (переименовываем скрипт автозапуска, чтобы pfsense смог его загрузить)
cd /etc/defaults
ee rc.conf
где-нибудь, например вначале, добавляем строчку
pureftpd_enable=”YES” (включаем запуск pureftpd)
перезагружаемся и снова лезем в shell
8. проверяем подключение
ftp localhostПара моментов:
- в режиме 6.2. после каждого добавления/удаления пользователей нужно пересоздавать базу
- для подключения кроме как с localhost нужно создавать правила
-
Ну что так скромно-то? Написал, так пости в топ. Отформатируй чтобы читабельно было.