Эта статья – продолжение двух предыдущих статей "Альтернативная «прошивка» Zyxel NSA220. Запускаем Debian Lenny на NSA220" и "Установка Transmission и Mediatomb в Zyxel NSA220", здесь мы продолжим "нагружать" сетевое хранилище Zyxel NSA220 полезным контентом.
Установка proftpd:
Перед установкой создадим ассоциацию в файле /etc/hosts имени хоста с IP адресом на котором будет запущен фтп сервер, тем самым изначально оградим себя от проблемы с запуском proftd в дальнейшем в связи с не соответствием этих параметров.
Итак, первым шагом нужно посмотреть имя хоста:
root@NSA-220:~# cat /etc/hostname NSA-220
Теперь нужно создать файл etc/hosts и провести ассоциацию о которой я писал выше в этом файле(IP адрес на котором будет ожидать соединение фтп сервер у вас свой):
root@NSA-220:~# nano /etc/hosts 127.0.0.1 localhost 192.168.1.3 NSA-220
Все, теперь все готово к установке пакета proftpd. Сам пакет proftpd вы можете установить как из репозитариев (apt-get install proftpd или aptitude install proftpd) или собрать пакет самостоятельно из исходников, скачав архив с оффсайта. Я пошел вторым путем и собрал пакет из исходников, скачав архив с последней стабильной версией.
Переходим на сайт проекта proftpd.org и качаем архив с последней версией:
root@NSA-220:~# wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.3a.tar.gz
Распаковываем:
root@NSA-220:~# tar zxvf proftpd-1.3.3a.tar.gz
Переходим в директорию с исходными текстами:
root@NSA-220:~# cd proftpd-1.3.3a
Запускаем сборку:
root@NSA-220:~/proftpd-1.3.3a# ./configure --prefix=/usr --sysconfdir=/etc/proftpd --enable-nls
-
--prefix=/usr – директория установки
--sysconfdir=/etc/proftpd – директория с конфигурационными файлами
--enable-nls – поддержка различных языковых кодировок отличных от кодировки по умолчанию(может пригодиться, если вы будете обращаться к серверу с Windows хостов)
Компилируем:
root@NSA-220:~/proftpd-1.3.3a# make
Собираем и устанавливаем .deb пакет:
root@NSA-220:~/proftpd-1.3.3a# checkinstall -D
Для удобства работы создадим группу nasftp в которую будут входить все пользователи, которым будет предоставляться доступ к ftp серверу:
root@NSA-220:~# groupadd nasftp
Добавляем нового пользователя:
root@NSA-220:~# useradd -d /mnt/md0/ftp -m -g nasftp -p sdf2vfv6#v -s /bin/false nasftp
-
-d /mnt/md0/ftp – домашняя директория, в которую будет попадать пользователь после аутентификации на фтп сервере.
-g nasftp – в эту группу пользователь будет входить.
-p sdf2vfv6#v – пароль пользователя.
-s /bin/false – отсуствие командной оболочки, как следствие не возможность аутентификации и авторизации в системе локально и удаленно.
Nasftp – логин пользователя.
Далее приступаем к редактированию главного конфигурационного файла proftpd:
root@NSA-220:~# nano /etc/proftpd/proftpd.conf
Нужно выставить следующие параметры:
UseIPv6 off DefaultRoot ~ RequireValidShell off
Первый параметр отключает использование протокола Ipv6, второй параметр отвечает за перенаправление подключившегося пользователя в его домашнюю директорию, а третий отключает параметр отвечающий за не возможность подключения пользователей у которых отсутствует командная оболочка.
Последним и заключительным шагом проверяем присутствует ли скрипт автозагрузки фтп сервера, а если нет создаем его:
root@NSA-220:~/proftpd-1.3.3a# ls /etc/init.d/proftpd root@NSA-220:~/proftpd-1.3.3a# nano /etc/init.d/proftpd
Вставляем в скрипт следующее содержимое:
#!/bin/sh
# ProFTPD files
FTPD_BIN=/usr/sbin/proftpd
FTPD_CONF=/etc/proftpd/proftpd.conf
PIDFILE=/var/run/proftpd.pid
# If PIDFILE exists, does it point to a proftpd process?
if [ -f $PIDFILE ]; then
pid=`cat $PIDFILE`
fi
if [ ! -x $FTPD_BIN ]; then
echo "$0: $FTPD_BIN: cannot execute"
exit 1
fi
case $1 in
start)
if [ -n "$pid" ]; then
echo "$0: proftpd [PID $pid] already running"
exit
fi
if [ -r $FTPD_CONF ]; then
echo "Starting proftpd..."
$FTPD_BIN -c $FTPD_CONF
else
echo "$0: cannot start proftpd -- $FTPD_CONF missing"
fi
;;
stop)
if [ -n "$pid" ]; then
echo "Stopping proftpd..."
kill -TERM $pid
else
echo "$0: proftpd not running"
exit 1
fi
;;
restart)
if [ -n "$pid" ]; then
echo "Rehashing proftpd configuration"
kill -HUP $pid
else
echo "$0: proftpd not running"
exit 1
fi
;;
*)
echo "usage: $0 {start|stop|restart}"
exit 1
;;
esac
exit 0Сохраняем файл и делаем его исполняемым:
root@NSA-220:~/proftpd-1.3.3a# chmod +x /etc/init.d/proftpd
Добавляем скрипт в автозагрузку:
root@NSA-220:~# update-rc.d proftpd defaults
Для тестирования работы фтп сервера можно запустить его в режиме отладки, оценив результат работы и нет ли каких ошибок:
root@NSA-220:~/proftpd-1.3.3a# proftpd -n
Если все хорошо, запускаем сервер:
root@NSA-220:~/proftpd-1.3.3a# /etc/init.d/proftpd start
Страниц: 1 2
День добрый. Прошу помощи. Опять. :(
mazhor@NSA-220:~$ cd proftpd-1.3.3a
mazhor@NSA-220:~/proftpd-1.3.3a$ ./configure –prefix=/usr –sysconfdir=/etc/proftpd –enable-nls
configure: WARNING: you should use –build, –host, –target
configure: WARNING: invalid host type: –enable-nls
checking build system type… Invalid configuration `–enable-nls’: machine `–enable’ not recognized
configure: error: /bin/sh .//config.sub –enable-nls failed
mazhor@NSA-220:~/proftpd-1.3.3a$
Исправил, опять проблема с двойным тире в параметре, дело в том, что все команды я и из консоли копирую в отдельный текстовый файл, а потом, когда уже пишу статью копипастом вставляю, похоже копипаст не всегда отрабатывает как надо :)
Алексей, спасибо. ФТП встал.
Но если не трудно подскажите пожалуйста как сделать следующее.
Трансмиссион качает файлы
/mnt/md0/transmission/
Там есть папки Download куда попадают уже загруженные файлы.
Во-первых не удается сделать пользователя, чтобы он по фтп попадал к загруженным файлам.
И если такой пользователь уже сущществует, как его перенаправить опять же к этим файлам. Так как например уже завел пользвателя user и он попадает в папку ftp. Как его перенаправить на новый каталог.
Спасибо.