Я думаю кожен розуміє про необхідність ftp сервера. І мене не оминуло :) Свій вибір я зупинив на vsftpd.
- Віртуальні ip.
- Віртуальні користувачі.
- працює як через [x] inetd так і окремо.
- потужна система настройки для кожного (!) користувача.
- збільшення смуги пропускання.
- настройка для кожного ip.
- ліміти для кожного ip.
- підтримка протоколу IPv6
Я ставив vsftpd з пакета, з сирців було лінь, але складнощів там не повинно бути.
# Apt-get install vsftpd
Якщо ви збираєте vsftpd з сирців. перед установкою треба виконати кілька обов'язкових дій.
Для дефолтной конфігурації:
# Useradd -d / var / ftp ftp
# Chown root.root / var / ftp
# Chmod og-w / var / ftp
Далі зазвичай створюються / var / ftp / pub та / var / ftp / icoming
# Chmod 2775 / var / ftp / pub
# Chown root.psycho / var / ftp / pub
Поясню останню сходинку. Власником каталогу є root а група до якої належить каталог / var / ftp / pub це psycho тобто моя група, це зроблено для того щоб я під своїм користувачем міг змінювати вміст. Бо, робити це під рутом погана ознака :)
Каталог під аплоад.
# Chmod 3773 / var / ftp / incoming
# Chown psycho.psycho / var / ftp / incoming
Ну з власниками я думаю все ясно а права я виставив щоб анонімні користувачі могли писати але не могли переглядати вміст :)
Після виконання цих дій можна починати інсталяцію.
Якщо ви використовуєте стандартний "inetd" вам треба відредагувати /etc/inetd.conf і додати такий рядок
ftp stream tcp nowait root / usr / sbin / tcpd / usr / local / sbin / vsftpd
Якщо у вас не встановлені tcp_wrappers і ви не збираєтеся їх використовувати то приберіть з рядка / usr / sbin / tcpd
Ну і відповідно рестартнуть inetd.
Якщо ви використовуєте НЕ inetd а xinetd то в каталозі. / Vsftpd / EXAMPLE / INTERNET_SITE / лежить приклад файлу конфігурації.
Якщо у вас на машині запущений PAM то вам необхідно створити файл /etc/pam.d/ftp Приклад можна взяти в. /vsftpd/RedHat/vsftpd.pam Якщо ви цього не зробите то локальні користувачі не зможуть залогінитися.
# Приблизний конфиг /etc/vsftpd.conf
# Дозволити вхід дядечкові anonymous'у?
# Чи не запускати через inetd
# Дозволяти вхід локальним користувачам.
# Дозволити будь-яку форму команди записи FTP.
# Umask за замовчуванням для локальних користувачів 077. Можливо хочеться
# Змінити на 022, (022 використовується в більшості ftpd's)
# Дозволити аплоад для анонімусів.
# Має сенс коли дозволена запис (write_enable = YES)
# Крім того каталог повинен бути доступний для запису FTP користувачем.
# Дозволити анонімусів створювати каталоги
# Дозволити мессаги каталогів - повідомлення які видаються при
# Вході в певну директорію.
# Переконатися що PORT коннект вилазять з порту 20 (ftp-data).
# Можна змінювати автоматично власника на аплоадних файлах
# Природно використовувати тут root'а я не раджу
# В який файл пишемо логи
# Можна побачити лог і в форматі xferlog
# Таймаут на відкриту неиспольз сесію.
# Таймаут на коннект по порту data.
# Рекомендується створити в системі користувача, якого
# Ftp стервер буде використовувати як конкретно приниженого в своїх
# Це для розпізнання асинхронних ABOR запитів.
# Не рекомендується з міркувань безпеки (цей код досить
# Складний (і перевіряти його розробникам мабуть влом Demige)).
# А якщо його не включити то можливо старі FTP клієнти вас не зрозуміють.
# За замовчуванням сервер буде вирішувати ASCII режим, але фактично
# Ігнорувати реквест. Тут можна дозволити використовувати ASCII.
# Є ппасность при вкл. ascii_download_enable що деякі нехороші
# Користувачі будуть гальмувати вашу машину командою "SIZE / великий / файл" в
# Ці ASCII опції розбиті на аплоад і даунлоад тому ви можете захотіти
# Дозволити ASCII-аплоаду (для роботи аплоад скриптів), без
# Дозволу даунлоад через DoS ризику по командам SIZE і ASCII.
# Підтримка ASCII на стороні клієнта повинна бути.
# Банер при вході
ftpd_banner = Welcome to Psycho FTP.
# Юзабельно для захисту від DoS атак.
# Можна дозволити деяким користувачам chroot () ится в їх домашній каталог
# Якщо chroot_local_user = YES, тоді це буде лістинг користувачів, які
# Не можуть chroot () ится.
# Якщо chroot_local_user = NO то в ftp_chroot_list прописується якого
# Віртуального користувача куди chroot`іть
# Для локальних юзверей
# Можна дозволити опцію "-R" для вбудованого ls.
# За умовчанням заборонена тому сильно завантажує систему на великих сайтах
# Проте деякі FTP-клієнти такі як "ncftp" і "mirror" предпологают
# Її наявність. Так що краще її включити.
Вобщем це мій робочий конфіг, нічого складного в налаштуванні немає.
Connected to 192.168.5.13.
220 Welcome to Psycho FTP.
331 Please specify the password.
230 Login successful. Have fun.
Remote system type is UNIX.
Using binary mode to transfer files.
В. / vsftpd / EXAMPLE лежать різноманітні приклади файлу конфігурації вже заточені під конкретні цілі, можна вибрати з готового.
Сторінка згенерована за 0,0261 s
Налаштування NAT
Налаштування NAT (natd) на прикладі надання доступу до ресурсів зовнішньої мережі (інтернет) з внутрішньої локальної мережі.
Налаштування роутера на базі FreeBSD
Налаштування роутера на базі FreeBSD.
Налаштування шлюзу на FreeBSD
Покрокове керівництво по налаштування інтернет-шлюзу на операційній системі FreeBSD.
FreeBSD як сервера доступу. Частина 3. Налаштування FireWall
FreeBSD як сервера доступу. Частина 3. Налаштування FireWall.
FreeBSD як сервера доступу. Частина 2. Трохи про безпеку
FreeBSD як сервера доступу. Частина 2. Трохи про безпеку.
FreeBSD як сервера доступу. Частина 1. Простий сервер доступу з NAT
FreeBSD як сервера доступу. Частина 1. Простий сервер доступу з NAT.