Linux proftpd список пользователей

FTP-сервер ProFTPd на CentOS 7

Сервер FTP является простым средством передачи данных. Несмотря на наличие облачных систем, которые позволяют делать то же самое, собственный FTP имеет меньше ограничений и является более безопастным средством для обмена конфиденциальной информацией.

Подготовка системы

Прежде чем начать настройку нашего сервера, выполним следующие действия:

  • Настроим правильное время на сервере. Это позволит нам видеть корректное значение в соответствующем атрибуте файлов и папок.
  • Настроим брандмауэр. Откроем порты, которые нужны для работы ftp.
  • Отключим или настроим SELinux. На выбор.

Рассмотрим эти действия подробнее.

1. Настройка времени

Зададим правильный часовой пояс:

timedatectl set-timezone Europe/Moscow

* в данном примере будет задана зона по московскому времени. Список всех доступных зон можно посмотреть командой timedatectl list-timezones.

Теперь установим утилиту для синхронизации времени и запустим ее в качестве сервиса:

yum install chrony

systemctl enable chronyd —now

2. Настройка брандмауэра

Нам нужно открыть порты 20, 21 для работы ftp и динамический диапазон — мы будем использовать 60000-65535.

В CentOS, как правило, используется утилита управления брандмауэром на базе firewalld, но мы также рассмотрим и iptables.

а) При использовании Firewalld:

firewall-cmd —permanent —add-port=20-21/tcp —add-port=60000-65535/tcp

б) При использовании iptables:

iptables -I INPUT -p tcp —match multiport —dports 20,21,60000:65535 -j ACCEPT

service iptables save

3. Настройка SELinux

Для отключения SELinux вводим две команды:

sed -i ‘s/^SELINUX=.*/SELINUX=disabled/g’ /etc/selinux/config

Для настройки рекомендую ознакомиться с другой инструкцией Настройка SELinux в CentOS.

Установка и базовая настройка ProFTPd

Устанавливаем EPEL репозиторий:

yum install epel-release

yum install proftpd

Внесем небольшие правки в начальный конфигурационный файл:

UseIPv6 off
IdentLookups off
PassivePorts 60000 65535

Разрешаем сервис и запускаем его:

systemctl enable proftpd —now

Можно пробовать подключаться под любой системной учетной записью. Если необходимо добавить отдельного пользователя, вводим команду:

useradd ftpuser -m

* в данном примере мы создали пользователя ftpuser. Второй командой мы задали пароль.

ProFTPd через TLS

Редактируем конфигурационный файл (приводим к следующему виду):

#
TLSEngine on
TLSRequired on
TLSRSACertificateFile /etc/pki/tls/certs/proftpd.pem
TLSRSACertificateKeyFile /etc/pki/tls/certs/proftpd.pem
TLSCipherSuite ALL:!ADH:!DES
TLSOptions NoCertRequest
TLSVerifyClient off
TLSRenegotiate ctrl 3600 data 512000 required off timeout 300
TLSLog /var/log/proftpd/tls.log
#
# TLSSessionCache shm:/file=/var/run/proftpd/sesscache
#
#

Читайте также:  Как избавиться от надписи срок действия вашей лицензии windows истекает

openssl req -x509 -days 1461 -nodes -newkey rsa:2048 -keyout /etc/pki/tls/certs/proftpd.pem -out /etc/pki/tls/certs/proftpd.pem -subj «/C=RU/ST=SPb/L=SPb/O=Global Security/OU=IT Department/CN=test.dmosk.local/CN=test»

systemctl restart proftpd

Виртуальные пользователи

Хранить пользователей можно в файле и базе данных. Рассмотрим настройку и того, и другого.

В файле

yum install proftpd-utils

Создаем каталог для хранения конфигурационных файлов froftpd:

Создаем файл с паролями:

ftpasswd —passwd —file=/etc/proftpd.d/ftpd.passwd —name=vuser1 —uid=48 —gid=48 —home=/var/www —shell=/sbin/nologin

* где /etc/proftpd/ftpd.passwd — полный путь до файла, в котором хранятся пользователи; vuser1 — имя пользователя (логин); uid и gid — идентификаторы пользователя и группы системной учетной записи, от которой будет выступать сервер; /var/www — домашний каталог пользователя; /sbin/nologin — оболочка, запрещающая локальный вход пользователя в систему.

Комментируем следующую строку:

RequireValidShell off
AuthUserFile /etc/proftpd.d/ftpd.passwd
AuthPAM off
LoadModule mod_auth_file.c
AuthOrder mod_auth_file.c

systemctl restart proftpd

Можно пробовать подключиться под созданным пользователем (в нашем примере, vuser1).

В базе данных MySQL (MariaDB)

Устанавливаем компонент proftpd-mysql:

yum install proftpd-mysql

Если не установлена, ставим MariaDB:

yum install mariadb mariadb-server

Разрешаем и запускаем сервис:

systemctl enable mariadb

systemctl start mariadb

Задаем пароль для суперпользователя базы данных:

mysqladmin -u root password

Подключаемся к базе данных:

Создаем базу данных, таблицу и пользователя:

> CREATE DATABASE proftpd DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

> CREATE TABLE `proftpd`.`users` (
`username` VARCHAR( 32 ) NOT NULL ,
`password` CHAR( 41 ) NOT NULL ,
`uid` INT NOT NULL ,
`gid` INT NOT NULL ,
`homedir` VARCHAR( 255 ) NOT NULL ,
`shell` VARCHAR( 255 ) NOT NULL DEFAULT ‘/sbin/nologin’,
UNIQUE (`username`)
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci;

> GRANT SELECT ON proftpd.* TO proftpu@localhost IDENTIFIED BY ‘proftpdpass’;

* данными командами мы создали базу данных proftpd. В ней таблицу users и пользователя proftpu с паролем proftpdpass, которому дали право подключаться только с локального сервера.

Добавляем пользователя в таблицу и отключаемся от базы:

> INSERT INTO `proftpd`.`users` VALUES (‘sqluser1’, ENCRYPT(‘sqlpassword’), ’48’, ’48’, ‘/var/www’, ‘/sbin/nologin’);

* в данном примере мы создаем пользователя sqluser1 с паролем sqlpassword.

Источник

Заметки Лёвика

web программирование, администрирование и всякая всячина, которая может оказаться полезной

proftpd — шпаргалка по настройке

proftpd — несложный в настройке FTP сервер

При установке на Ubuntu/Debian в режиме inetd выдаёт ошибку.. следует отредактировать файл /etc/proftpd/proftpd.conf и задать режим standalone.

Хитрости с пользователями — можно добавить псевдонимы и задать каждому свой пароль (часто используется для “публичных” FTP-каталогов)

UserPassword aliaswm SHA_PASSWORD1
UserPassword webmaster SHA_PASSWORD2

#алиас для пользователя
UserAlias aliaswm webmaster

# ограничиваем всех пользователей в домашнем каталоге
DefaultRoot

# а алиас наш — в подкаталоге
DefaultRoot

ProFTPD добавить пользователя

Чтобы настроить proftpd для корректной работы с виртуальными пользователями, в конец конфигурационного файла /etc/proftpd/proftpd.conf добавляем информацию, где будут храниться профили пользователей:

Читайте также:  Убрать надпись тестовый режим windows server 2012 r2

Самих пользователей proftpd будем создавать командой
ftpasswd —passwd —file=/etc/proftpd/ftpd.passwd —name=test1 —shell=/bin/false —home=/www/test1/ —uid=108 —gid=65534
В данном случае, мы добавили пользователя test1 с uid=108 и gid=65534 (совпадает с id группы ftp-пользователя по умолчанию), домашним каталогом /www/test1 и без shella (false)

Создадим второго пользователя
ftpasswd —passwd —file=/etc/proftpd/ftpd.passwd —name=test2 —shell=/bin/false —home=/www/test2/ —uid=108 —gid=65534

Ограничения для пользователей можно прописать в файле .ftpaccess
vi /www/test1/.ftpaccess


Order deny,allow
Allowuser test1

Курить маны тут:
http://www.proftpd.org/docs/faq/linked/faq-ch4.html#AEN383
http://www.proftpd.org/docs/directives/linked/by-context.html
http://www.proftpd.org/localsite/Userguide/other/userguide_full.html — большой док

Метки: linux ftp

Опубликовано Пятница, Ноябрь 11, 2011 в 16:12 в следующих категориях: Без рубрики. Вы можете подписаться на комментарии к этому сообщению через RSS 2.0. Вы можете добавить комментарий, или trackback со своего сайта.

Автор будет признателен, если Вы поделитесь ссылкой на статью, которая Вам помогла:
BB-код (для вставки на форум)

html-код (для вставки в ЖЖ, WP, blogger и на страницы сайта)

ссылка (для отправки по почте)

1 комментарий к записи “proftpd — шпаргалка по настройке”

При настройке UserPassword и UserAlias совместно для существующего пользователя не нужно указывать пароль псевдонима. Полчаса убил на поиск ошибки. Если пользователь webmaster а его алиас aliaswm достаточно: UserPassword webmaster SHA_PASSWORD1 UserAlias aliaswm webmaster Строчка не нужна! UserPassword aliaswm SHA_PASSWORD2

Источник

Виртуальные пользователи proftpd, как добавить пользователя

В качестве дистрибутива будем использовать Ubuntu 18.

Конфигурационные файлы располагаются в каталоге /etc/proftpd, перейдем в него

В файл нужно добавить 2 директивы. Первую из них можно просто раскомментировать (строка 34)


AuthUserFile /etc/proftpd/ftpd.passwd

В файлах /etc/passwd и /etc/groups выясняем идентификатор пользователя и группы. Для www-data это обычно 33.

Создаем файл для proftpd с пользователями

ftpasswd —uid 33 —gid 33 —name ftpuser —shell /bin/bash —home /var/www/web/ —passwd

ftpasswd: creating passwd entry for user ftpuser

Password:
Re-type password:

ftpasswd: entry created

Создаем файл для proftpd, содержащий группу

ftpasswd —group —name=ftpgroup —gid=33 —member=ftpuser

ftpasswd: creating group entry for group ftpgroup
ftpasswd: entry created

Меняем права на файлы

chmod 400 /etc/proftpd/ftpd.passwd /etc/proftpd/ftpd.group

Устанавливаем пользователя proftpd и группу nogroup

chown proftpd.nogroup /etc/proftpd/ftpd.passwd /etc/proftpd/ftpd.group

[ ok ] Restarting proftpd (via systemctl): proftpd.service.

Теперь можно авторизоваться в FileZilla

Описание настройки proftpd с системными пользователями.

Источник

Настройка ProFTPd для хостинга

Виртуальные ftp-пользователи

Для хостинга нецелесообразно заводить пользователей в системе. Гораздо логичнее завести виртуальных ftp-пользователей.
В первую очередь нужно определиться, где будем хранить их учетные записи.
У ProFTPd есть несколько вариантов, но я рассмотрю лишь два:

  1. Альтернативный файл пользователей и паролей;
  2. СУБД MySQL.

Сразу оговорюсь, что у меня установлена система Ubuntu 10.04.
Apache работает от имени www-data, у которого UserId=33, GroupId=33.
Логи ftp-сервера по умолчанию можно посмотреть тут: /var/log/proftpd/
В руководстве я создам пользователя tester, для работы с виртуальным хостом test.ru.

Читайте также:  Linux getting environment variables

Общая настройка ProFTPd

Открываем конфиг ProFTPd, по-умолчанию он располагается /etc/proftpd/proftpd.conf.
Из соображений безопасности добавляем в него следующие строки:

ServerIdent on «FTP Server ready.»

Так рекомендовано сделать в официальном руководстве пользователя.
Остальное по умолчанию можно оставить, так как есть.

Хранение виртуальных пользователей в текстовом файле

Нам нужно, чтобы ftp пользователь имел возможность редактировать и удалять файлы, созданные скриптами.
Создаем нового виртуального ftp-пользователя с логином tester, идентификатором 33, группой 33 и домашним каталогом /var/www/test.ru.

ftpasswd —passwd —file=/etc/proftpd/ftpd.passwd —name=tester —uid=33 —gid=33 —home=/var/www/test.ru —shell=/bin/false

После выполнения команды система попросит ввести дважды пароль пользователя.
В итоге, у нас появится файл /etc/proftpd/ftp.passwd с записью о пользователе.
Кстати, изменить пароль пользователя можно следующей командой:

ftpasswd —passwd —name=tester —change-password

Теперь редактируем /etc/proftpd/proftpd.conf, для подключения виртуального пользователя:

RequireValidShell off
AuthUserFile /etc/proftpd/ftpd.passwd

Перезапускаем ftp:
/etc/init.d/proftpd restart

Хранение виртуальных пользователей в СУБД MySQL

Для хранения виртуальных пользователей в СУБД MySQL необходим пакет proftpd-mod-mysql.
Через PHPMyAdmin или любым другим удобным способом создаем новую базу, к примеру proftpd.
Так же создаем нового пользователя proftpd_user с паролем proftpd_password с правами на чтение этой базы.
В базе создаем одну таблицу:

CREATE TABLE `proftpd`.`users` (
`username` VARCHAR( 32 ) NOT NULL ,
`password` VARCHAR( 32 ) NOT NULL ,
`uid` INT NOT NULL ,
`gid` INT NOT NULL ,
`homedir` VARCHAR( 255 ) NOT NULL ,
`shell` VARCHAR( 255 ) NOT NULL ,
UNIQUE (`username`)
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci;

И добавляем запись о пользователе:

INSERT INTO `proftpd`.`users` (`username`, `password`, `gid`, `homedir`, `shell`) VALUES (
‘tester’, ‘pass’, ’33’, ’33’, ‘/var/www/test.ru’, ‘/bin/false’ );

На этом настройка MySQL окончена.
Теперь, что касается конфигурации FTP-сервера.
Редактируем файл /etc/proftpd/modules.conf – уберем комментарий со строк

LoadModule mod_sql.c
LoadModule mod_sql_mysql.c

Редактируем файл /etc/proftpd/proftpd.conf.
Дописываем строку

А так же уберем комментарий или допишем строку:

Файл /etc/proftpd/sql.conf приводим к следующему виду:

# Cообщаем, что намерены работать с СУБД MySQL
SQLBackend mysql
SQLEngine on
# Пароли в базе храняться в открытом формате
SQLAuthTypes Plaintext
# Подключаемся к БД proftpd пользователем proftpd_user с паролем proftpd_password
SQLConnectInfo proftpd@localhost proftpd_user proftpd_password
# Выбираем данные из таблицы users
SQLUserInfo users username password uid gid homedir shell
# Аутентифицируем пользователей из этой таблицы
SQLAuthenticate users*
# По умолчанию минимальный UserID пользователя и GroupID =999
SQLMinUserUID 33
SQLMinUserGID 33
# На время отладки пишем логи
SQLLogFile /var/log/proftpd/sql.log

Перезапускаем ftp:
/etc/init.d/proftpd restart

Настройка доступа ftp-пользователей к директориям

Изменяем владельца директории /var/www/test.ru

сhown www-data:www-data /var/www/test.ru

Выставляем права доступа к директории, иначе увидим permission denied

chmod 775 /var/www/test.ru

Теперь виртуальные пользователи могут создавать, редактировать и удалять файлы и папки.

Источник

Оцените статью