Воскресенье
17-11-2024
20:48
Главная страница
Каталог статей
Информист Приветствую Вас Гость | RSS
Регистрация
Вход
Меню сайта

Категории каталога
Без категории [60]
Статьи требующие создания отдельной категории

Наш опрос
Что Вы веберете
Всего ответов: 230

Копилка
Если вам понравился наш сайт или вы нашли полезную информацию, то у вас есть возможность отблагодарить администрацию.

Начало » Статьи » Статьи » Без категории

FTP Сервер (pureftpd) на Linux за 60 секунд (linux ftp)
Используемое ПО: PureFTPd - вот он сам сервер красавец. Достаточно
защищенный сервер, не падает, не глючит, поддерживает много функций,
включая даже интеграцию с mysql если оно надо конечно, но в тоже время
настолько легко и быстро настраиваемый. У этого FTP сервера есть 2
варианта настройки. Первый вариант используя config файл, и второй
вариант не используя. В данной статье будет рассмотрен именно второй
вариант.

Взять можно отсюда: PureFtpd Official Site

Скачали, распаковали, далее делаем стандартные операции установки из исходников:

Распаковываем и простыми сочетаниями команд устанавливаем
./configure --with-rfc2640 --with-everything --prefix=/usr/local/pure-ftpd
make
sudo make install

--with-rfc2640 - необходима для перекодировки названий файлов на лету в разные кодировки
(в моем случае клиенты подсоединяются к серверу с кодировкой cp1251 а на
сервере же кодировка UTF-8)

--with-everything - создание демона с поддержкой всех функций Pure-FTPd

--prefix=/usr/local/pure-ftpd - каталог, куда собственно демон устанавливать

Теперь когда сервер установлен переходим к базовой конфигурации. Копируем
конфигурационный файл в /etc из каталога с исходниками

cp configuration-file/pure-ftpd.conf /etc/pure-ftpd.conf

Добавляем следующие строки в конфигурационный файл:

ExtAuth /var/run/ftpd.sock # Включаем авторизацию по скрипту
UserBandwidth 100 # Ограничиваем полосу в 100 Kb/c для каждого пользователя,
# чтобы они не забивали весь канал
MaxDiskUsage 90 # Установив это значение, мы запрещаем загрузку файлов на сервер,
# в случае если осталось всего 10% свободного места
FileSystemCharset UTF-8 # Говорим что на сервере кодировка UTF-8
ClientCharset CP1251 # А у пользователей CP1251

Создаем авторизующий скрипт /usr/local/pure-ftpd/sbin/ftp-auth-handler
Со следующим содержанием:

if test "$AUTHD_REMOTE_IP" = "192.168.0.102"; then
echo 'auth_ok:1'
echo 'uid:69'
echo 'gid:42'
echo 'dir:/tmp'
else
echo 'auth_ok:0'
fi
echo 'end'

Этот скрипт успешно авторизует любого пользователя с IP 192.168.0.201

Кроме $AUTHD_REMOTE_IP в скрипте можно использовать следующие переменные:

AUTHD_ACCOUNT
AUTHD_PASSWORD
AUTHD_LOCAL_IP
AUTHD_LOCAL_PORT
AUTHD_REMOTE_IP
AUTHD_ENCRYPTED

В ответе скрипта можно передавать следующие параметры

uid:xxx - UID пользователя в системе
gid:xxx - GID пользователя в системе
dir:xxx - Абсолютный путь до домашней директории
throttling_bandwidth_ul:xxx - Ширина канала закачки на сервер
throttling_bandwidth_dl:xxx - Ширина канала скачки с сервера
user_quota_size:xxx - Дисковая квота пользователя в байтах
user_quota_files:xxx - Максимальное количество файлов для пользователя
per_user_max:xxx - Максимальное количество одновременных сессий

После этого осталось запустить сам сервер.

Скопируем запускающий скрипт pure-config.pl из каталога с исходниками

cp configuration-file/pure-config.pl /usr/local/pure-ftpd/sbin/

Для запуска сервера выполняем следующую команду:

/usr/local/pure-ftpd/sbin/pure-config.pl /etc/pure-ftpd.conf

Для запуска демона авторизации выполняем это:
/usr/local/pure-ftpd/sbin/pure-authd -s /var/run/ftpd.sock -r /usr/local/pure-ftpd/sbin/ftp-auth-handler &

К примеру в моем любимом дистрибутиве Slackware Linux - каталог /home/ftp
В SUSE Linux 9.3 Professional - каталог /srv/ftp
В RedHat Based - каталог /var/ftp

Собственно я надеюсь что менять домашние директории у пользователей вы
умеете, если Вам это надо.

В данной статье будет директория /home/ftp

Далее надо создать 2 директории:

mkdir /home/ftp/pub
mkdir /home/ftp/incoming


Создать пользователя ftpadmin , это будет админский аккаунт FTP,
его домашняя директория будет /home/ftp

adduser ftpadmin


Далее надо назначить права на директорию incoming

chmod -R 0777 /home/ftp/incoming


Далее надо назначить права на директорию pub

chmod -R 0755 /home/ftp/pub


Сделали.

Ну а теперь запустим сам FTP сервер.

pure-ftpd -4 -A -B -M -l unix -U 022:022


Параметры: -4 - ipv4only, -A - chroot everyone - обязательный параметр
(запирает пользователя в его домашней директории) -B - режим демона, -l
unix использовать для аутентификации пароли unix, -U - выбираем маску
для файлов и директорий - подробнее об этом параметре - man pure-ftpd.

Вариант анонимного FTP с поддержкой учетных записей:

pure-ftpd -4 -A -B -M -l unix -U 022:022


Вариант только анонимного FTP:

pure-ftpd -4 -A -B -M -e -U 022:022


Вариант только НЕ анонимного FTP:

pure-ftpd -4 -A -B -M -E -U 022:022


Все ;) FTP работает

Автозагрузка:

Файл автозагрузки в Slackware Linux - /etc/rc.d/rc.local

Просто добавляем в конец файла строчку

pure-ftpd -4 -A -B -M -l unix -U022:022


Все просто ;)

Источник: http://www.opennet.ru/base/net/linux_pureftp.txt.html

Категория: Без категории | Добавил: Judge (12-10-2009)
Просмотров: 3034 | Комментарии: 2 | Рейтинг: 4.0 |

Всего комментариев: 1
1 Judge  
0

Имя *:
Email *:
Код *:
Форма входа

Поиск по каталогу
Яндекс


Поиск по Информисту

Наша кнопка


Друзья сайта

Статистика


Copyright MyCorp © 2006Сайт создан в системе uCoz