Установка Pure-FTPd на pfSense-1.2.3 Печать
Автор: Administrator   
25.10.10 08:16

Установка Pure-FTPd на pfSense-1.2

 

Постановка задачи:
1.Предприятию понадобился FTP Server (passive mode) доступный из вне.
2.Пользователи для доступа из вне виртуальные.
3.Доступ к папкам задействованых для FTP внутри предприятия осуществляется по SFTP (Red Drive File Transfer Extension).

Цель описания:
1.Попытка создания пошаговой краткой инструкции установки Pure-FTPd на pfSense-1.2.3
2.В надежде, что пост не забанять использовать её в будущем.

Использовались следующие внешние посты:

http://www.pureftpd.org/project/pure-ftpd
http://www.blackonsole.org/2009/10/pureftp-on-freebsd-71.html
http://www.lissyara.su/archive/pureftpd/
http://machiel.generaal.net/index.php?subject=pureftpd&language=eng#subject_6
http://forum.pfsense.org/index.php/topic,14532.0.html

Описание:

Работаем с WebМордой:
Interfaces: WAN->Disable the userland FTP-Proxy application->set check (для возможности достучаться из вне)
Firewall: Rules: WAN  "TCP    *    *    *    21 (FTP)    *         Pure-Ftpd" (разрешаем доступ из вне)

Работаем с консолью:
.Выясняем версию FreeBSD
#uname -a
#FreeBSD pfsense-vm.local 7.2-RELEASE-p5 FreeBSD 7.2-RELEASE-p5 #0: Sun Dec  6 23:20:31 EST 2009 sullrich@FreeBSD_7.2_pfSense_1.2.3_snaps.pfsense.org:/usr/obj.pfSense/usr/pfSensesrc/src/sys/pfSense_SMP.7  i386  

.Устанавливаем нужный pkg
#pkg_add -r http://ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-7.2-release/ftp/pure-ftpd-1.0.21_4.tbz

.Создаём и редактируем pure-ftpd.conf
#cd /usr/local/etc/
#cp pure-ftpd.conf.sample pure-ftpd.conf
#ee pure-ftpd.conf

BrokenClientsCompatibility  yes    (для кривых клиентских приложений)
PureDB                      /usr/local/etc/pureftpd.pdb    (база виртуальных пользователей, о ней ещё впереди)
CreateHomeDir               yes   (каталог пользователя будет создаваться автоматически)
IP4Only                     yes

-Остальные параметры я не менял. Их описание на рус. см. "http://www.lissyara.su/archive/pureftpd/"

.Создаём папку для "файловой помойки" FTP сервера
#mkdir /usr/home
#mkdir /usr/home/virftp

.Создаём пользователя в системе (один да нужен Smiley)
#pw user add virftp -s /sbin/nologin -w no -d /usr/home/virftp -c "virtual pure virtual ftp users" -m
-Где "virftp" имя пользователя в системе.

.Меняем владельца каталога
#chown -R virftp /usr/home/virftp

.Создаём виртуальных пользователей
#/usr/local/bin/pure-pw useradd uftp -u virftp -g virftp -d /usr/home/virftp/uftp
Password:[ uftp user pass ]
Enter it again: [ uftp user pass ]

#/usr/local/bin/pure-pw useradd umove -u virftp -g virftp -d /usr/home/virftp/umove
Password:[ umove user pass ]
Enter it again: [ umove user pass ]

-Где "uftp" и "umove" виртуальные пользователи

.Формируем  "/usr/local/etc/pureftpd.pdb" база пользователей Pure-FTPd
#/usr/local/bin/pure-pw mkdb
-При создании следующих виртуальных пользователей, не забываем переформировать базу пользователей.

.Так можно посмотреть чего получилось
#/usr/local/bin/pure-pw show uftp

.Стартуем FTP сервер
#/usr/local/etc/rc.d/pure-ftpd onestart

Starting pureftpd.
Running:/usr/local/sbin/pure-ftpd -A c50 -B -C8 -D -fftp -H -I15 -L2000:8 -m -s -U133:022 -u100 -k99 -Z

.Стучимся из консоли
#ftp localhost
Trying 127.0.0.1...
Connected to localhost.
220---------- Welcome to Pure-FTPd [privsep] ----------
220-You are user number 1 of 50 allowed.
220-Local time is now 07:23. Server port: 21.
220-IPv6 connections are also welcome on this server.
220 You will be disconnected after 15 minutes of inactivity.
Name (localhost:free): uftp
331 User uftp OK. Password required
Password:[ uftp user pass ]
230-User uftp has group access to:  1002  
230 OK. Current directory is /
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>quit

-Во блин сходу работает(извините Smiley).
-Представленное выше "эхо" FTP сервера не моё. У меня сейчас на экране что-то подобное.

Ну дальше стандартный рецепт:
#ee /cf/conf/config.xml

<service>
<name>Pure-FTPd</name>
<rcfile>pure-ftpd</rcfile>
<executable>pure-ftpd</executable>
<description> Pure-FTPd server Service</description>
</service>

#rm /tmp/config.cache
-На самом деле, не всё гладко в этом месте: "/usr/local/etc/rc.d/pure-ftpd onestart"

Ну и на сладкое:
#mkdir /usr/local/www/pureftp
#chown www:www /usr/local/www/pureftp
#/usr/local/sbin/pure-ftpwho -H -w » /usr/local/www/pureftp/index.html

 

оригинал: тут

Последнее обновление 25.10.10 08:25