Модификация Freebsd под названием pfsense очень хороша в качестве шлюза для офиса. Но хотелось бы чуть-чуть расширить ее возможности, хотелось бы еще файлообменник замутить. Решил поднять ftp сервер в качестве файлообменника, но вот незадача в готовых пакетах ftp серверов нет.
Но это не беда. pfsense та же freebsd, поэтому можно скачать готовый пакет proftpd для FreeBSD 7.0 отсюда. Заходим в webGUI pfsense в раздел Diagnostics –> command -> Upload и закачиваем этот пакет (у меня был proftpd-1.3.1_4.tbz)
Потом заходим в pfsense через ssh, выбираем пункт shell и устанавливаем пакет
pkg_add /tmp/proftpd-1.3.1_4.tbzПотом правим конфигурационный файл ProFTPd
ee /usr/local/etc/proftpd.confВ примерно такой вид:
ServerName "FTP"Теперь создаем файлы и что-нибудь туда пишем, а можно и ничего не писать:
ServerType standalone
DefaultServer on
ScoreboardFile /var/run/proftpd.scoreboard
DelayTable /var/run/proftpd.delay
Port 21
Umask 022
User ftp
Group nogroup
SystemLog /var/log/proftpd.log
TransferLog /var/log/xferlog
DisplayConnect /etc/ftp_connect.msg
DisplayLogin /etc/ftp_login.msg
DefaultRoot ~ users
touch /etc/ftp_connect.msgЗаводим пользователя, допустим ftp с домашней директорией /var/ftp/
touch /etc/ftp_login.msg
pw add user ftp -d /var/ftpИ ставим выставляем пароль:
passwd ftpЕсли директории /var/ftp не существует создаем ее
mkdir /var/ftp/выставляем хозяина папки пользователя ftp
chown ftp /var/ftpПравим скрипт запуска proftpd, /usr/local/etc/rc.d/proftpd
#!/bin/shТеперь заходим в webGUI, в Interfaces –> LAN и ставим галочку “Disable the userland FTP-Proxy application” (рисунок ниже) и жмем SAVE
proftpd_enable="YES"
. /etc/rc.subr
name=proftpd
rcvar=`set_rcvar`
command=/usr/local/sbin/proftpd
pidfile=/var/run/proftpd.pid
required_files=/usr/local/etc/proftpd.conf
stop_postcmd=stop_postcmd
stop_postcmd()
{
rm -f $pidfile
}
extra_commands="reload"
load_rc_config $name
run_rc_command "$1"
В принципе наш ftp сервер готов, пробуем запустить:
/usr/local/etc/rc.d/proftpd startи подключаемся ftp://192.168.0.1
Если что-то не получается, смотрим логи:
tail –f /var/log/proftpd.logP.S. Но у нас же pfsense, где все управление происходит через webGUI, потом правим файл /cf/conf/config.xml где пошло описание сервисов, добавляем:
<service>
<name>Proftpd</name>
<rcfile>proftpd</rcfile>
<executable>proftpd</executable>
<description>ProFTPd server Service</description>
</service>
Чтобы изменения сразу применились удаляем кеш конфига
rm /tmp/config.cacheТеперь заходим в webGUI Status –> Services и наблюдаем новый сервис, который можно останавливать и запускать, мелочь, а приятно =)
Пока не нашел как автоматически запускать сервис при рестарте, как найду, обязательно допишу.
6 коммент.:
/usr/local/etc/rc.d/proftpd Нужно переименовать в /usr/local/etc/rc.d/proftpd.sh
А какая разница? попробуйте и так
а как в 2.0.1?
там ftp helper вроде бы уже включен по умолчанию?
внутри локалки ftp работает, а вот снаружи на ftp попасть не могу :(
Для перезаписи очень советую добавить в конфиг
"
AllowOverwrite on
"
все сделал по инструкции, при старте пакета возникает следующая ошибка
Starting proftpd.
/usr/local/sbin/proftpd: 1: Syntax error "(" unexpected
/usr/local/etc/rc.d/proftpd: WARNING: failed to start proftpd
Отправка комментария