Швидка настройка proftpd, kan`скій блог

У статті описується швидке налаштування FTP сервера ProFTPD в декількох різних конфігураціях.

FTP сервер ProFTPD цілком виправдовує його назву. Цей демон досить стабільний, може працювати як «самостійно», так і в складі супер-сервера inted, підтримує віруальние хости, облікові записи і багато іншого.
Плюс до всього має конфіги в стилі Apache, що робить його налаштування досить зручною та зрозумілою.

У даній статті ми коротко розглянемо установку proftpd, тому що він є в портах і, отже, в установці немає нічого цікавого.

Детально зупинимося на настройці.

Отже, перший крок - Установка.
Як було написано вище, ставиться сервер дуже просто - з колекції портів.

На цьому установка закінчена.
Конфиг лежатиме як /usr/local/etc/proftpd.conf,
а скрипт як /usr/local/etc/rc.d/proftpd

Тепер переходимо до налаштування.
Спочатку розглянемо «скелет» конфіга. Він буде містити базові настройки.
Надалі цей конфіг можна доповнювати в відповідності з завданням.

Лістинг. заготівля конфіга


# Тип сервера. standalone означає отедльний демон, а inetd - в складі супер-сервера
ServerType standalone

# Повідомлення при підключенні клієнта.
ServerIdent on «FTP Server Ready.»

# Ім'я сервера
ServerName «My FTP Server»

# Порт, на якому буде слухати сервер (21 - стандартний)
Port 21

# Маска прав доступу для нових (згружаемих) файлів.
# При цьому реальні права доступу будуть як (777 - mask), тобто маска 022 буде
# Встановлювати права 755.
# Можна вказувати свою маску для кожного каталогу.
Umask 022

# Настройки продуктивності
# Чим більше числа, тим більше клієнтів одночасно зможе обслужити сервер, проте установка
# Великого числа на слабкому залозі підвищує ймовірність DDoS атаки.
MaxInstances 30
MaxLoginAttempts 3
MaxClients 128

# «Таймаут», по закінченню яких сервер буде закривати з'єднання
TimeoutLogin 120
TimeoutIdle 600
TimeoutNoTransfer 900
TimeoutStalled 300

# Секція, дії якої поширюються на всі сервери, описані в конфіги

# Файл, сеодержащій повідомлення вітають при підключенні
DisplayLogin .welcome

# Дозволяє перезапис файлів
AllowOverwrite on

# Налаштування обмеження за замовчуванням
# Забороняємо все і для всіх =)

DenyAll

Основа конфіга готова.
Надалі будемо дописувати до нього необхідні нам налаштування.

Простий публічний FTP сервер

Завдання дуже проста:
Необхідно налаштувати загальнодоступний «анонімний» FPT сервер, з якого користувачі зможуть завантажувати файли без введення логіна і пароля.
Також необхідно дозволити користувачам завантажувати файли в папку з ім'ям «incoming»

Лістинг. Простий публічний FTP


# Опеределяется анонімний FTP сервер c коренем в / usr / ftp

Користувач і група від яких буде працювати сервер
User ftp
Group ftp

# Алиас імені користувача.
# За стандартом прийнято ім'я anonymous. Саме на нього і ставимо алиас.
UserAlias ​​anonymous ftp

# Відключаємо вимоги валидного шелла користувача
# Дозволяє «пускати» в систему користувачем без доступу по SSH (nologin)
RequireValidShell off

# Приховувати файли і папки користувача root
HideUser root

# Права на папку incoming і все її вкладені папки
# Дозволяємо запис


AllowAll



Перевіряємо власника кореневої папки, він повинен бути «ftp: ftp».
Тепер можна запускати сервер.

Доступ за логіном / паролем

Конфиг в буде наступним:


# Оголошуємо анонімний сервер з коренем в Домашем каталозі користувача myuser

myuser>
# Від кого буде працювати демон
User myuser
Group myuser

# Установка власника на нові файли
UserOwner myuser
GroupOwner myuser

# Включаємо запит пароля
AnonRequirePassword on

# Приховуємо файли користувача root
HideUser root

# Дозволяємо все для нашого користувача

Order Allow, Deny
AllowUser myuser


Коректне створення анонімного користувача FTP

Спочатку під FreeBSD 7.2-RELEASE користувача з ім'ям ftp не існує. Мені він знадобився для організації також і анонімного доступу до ftp-серверу під керуванням proftpd-1.3.2c.

Спершу створюємо каталог для цього користувача:

# Mkdir / home / ftp
І заводимо користувача командою:

За допомогою команди vipw перевіряємо, чи правильно створився наш новий користувач:

# Chown ftp: nogroup / home / ftp
Тепер все готово для роботи анонімного користувача з вашим ftp-сервером.

Для підтримки Windows-клієнтів потрібно приписати рядок з кодуваннями:
LangEngine on
ClientCharset UTF-8
UseEncoding UTF8 CP1251

Схожі статті