Установка FTP сервера на базе pure-ftpd+openssl
Доброго дня дорогие читатели. В этой статье я вам поведаю как правильно поставить ftp сервер.
Что для этого нам нужно:
- pure-ftpd – Pure-FTPd FTP server
- openssl – Secure Socket Layer (SSL) binary and related cryptographic tools
- libssl-dev – SSL development libraries, header files and documentation
Установка
Для начала мы все это установим. Так как имеющиеся сборка pure-ftpd в репозитариях Debian нам не подходит (нет поддержки openssl), будем устанавливать его из исходников.
# sudo aptitude source pure-ftpd
Исходные коды получены, но перед тем как перейти в каталог, поставим дополнительные пакеты, такие как OpenSSL и библиотеки к нему.
# sudo aptitude install openssl
# sudo aptitude install libssl-dev
Cоздадим самоподписывающиеся цифровой сертификат по алгоритну RSA c 1024-битным ключем:
sudo openssl req -x509 -nodes -newkey rsa:1024 -keyout
/etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem
Теперь перейдем в каталог с исходными кодами Pure-FTPd и запустим конфигуратор с нужными для нас ключами:
./configure –with-rfc2640 –with-puredb –with-tls
–with-certfile=/etc/ssl/private/pure-ftpd.pem –with-ftpwho –with-altlog
Теперь расмотрим каждый параметр. Кто за что отвечает:
- –with-rfc2640 – использовать спецификацию rfc2640 для работы "кодировки на лету"
- –with-puredb – для аутентификации и авторизации использовать свою БД (puredb)
- –with-tls – включаем поддерку SSL/TLS
- –with-certfile – использовать сертификат с указанного места
- –with-ftpwho – опция необходимая для утилиты мониторинга ftpwho
- –with-altlog – используем журналирование
И откомпилируем пакеты командами:
# make && make install
Настройка Pure-ftpd
Итак начнем настройку. Цифровые сертефикаты мы уже сделали, теперь займемся puredb, создадим ее и наполним пользовательскими учетными записями.
Для начала нам нужна отдельная группа
# groupadd ftpgroup
Создадим реального системного пользователя, под правами которого будут работать наши виртуальные пользователи ftp.
# useradd -m -g ftpgroup -d /dev/null -s /etc ftpuser
- -m – автоматически создавать папку пользователя;
- -g – использовать gid (group indentificator). У нас ftpgroup;
- -d – указывает домашнюю папку пользователя. В нашемслучаии в некуда (/dev/null);
- -s – указывает на используемую оболочку (shell);
И последнее, конечно же, указываем имя пользователя ftpuser
Проверим, создан ли пользователь
# getent passwd ftpuser
ftpuser:x:1003:1005::/dev/null:/etc
Создадим виртуального пользователя
# sudo pure-pw useradd valek -u ftpuser -d /home/ftpusers/valek
- useradd – имя пользователя, например valek;
- -u – uid реального системного пользователя ftpuser
- -d – домашний каталог
Проверим это дело
# sudo cat /etc/pureftpd.passwd
valek:$1$v5nQVd80$11quL9FgRbL37knEcxIK80:1003:1005::/home/ftpusers/valek/./::::::::::::# sudo pure-pw show valek
Login : valek
Password : $1$v5nQVd80$11quL9FgRbL37knEcxIK80
UID : 1003 (ftpuser)
GID : 1005 (ftpgroup)
Directory : /home/ftpusers/valek/./
Full name :
Download bandwidth : 0 Kb (unlimited)
Upload bandwidth : 0 Kb (unlimited)
Max files : 0 (unlimited)
Max size : 0 Mb (unlimited)
Ratio : 0:0 (unlimited:unlimited)
Allowed local IPs :
Denied local IPs :
Allowed client IPs :
Denied client IPs :
Time restrictions : 0000-0000 (unlimited)
Max sim sessions : 0 (unlimited)
И создаем базу данных
# sudo pure-pw mkdb
На этом мы закончили. Осталось только запустить pure-ftpd в режиме демона.
sudo ./pure-ftpd -4 -A -B -j -U 022:022 -l puredb:/etc/pureftpd.pdb
Как вы заметили сборка проходила с поддержкой OpenSSL, это я делал с заделом на будующее. Для запуска FTP сервера с зашифрованным каналом нужно добавить пару ключей, но это уже совсем другая история





Добавить комментарий
Вы должны войти