FTP-сервер VSFTPd и virtual users MySQL, Web-админка для VSFTP

Thank you for reading this post, don't forget to subscribe!

Оригинал статьи:

FTP-сер­вер VSFTPd и virtual users MySQL на CentOS 7, Web-админ­ка для VSFTP

Установка Apache, PHP, MySQL

Добав­ля­ем репо­зи­то­рий EPEL и обновляемся

Ста­вим софт для удоб­ства работы

Уста­нав­ли­ва­ем MySQL-сер­вер MariaDB, Web-сер­вер Apache и PHP

Ста­вим Apache

Добав­ля­ем сер­вер в авто­за­груз­ку и запус­ка­ем его

Ста­вим MariaDB

Добав­ля­ем сер­вер в авто­за­груз­ку и запус­ка­ем его

Запус­ка­ем встро­ен­ный сце­на­рий безопасности

Вна­ча­ле будет запро­шен root-пароль, но т.к. в новой уста­нов­ке его нет, про­сто жмем Enter
После это­го сце­на­рий пред­ло­жит создать root-пароль и задаст ряд вопросов.

[codesyntax lang="php"]

[/codesyntax]

 

Добав­ля­ем репо­зи­то­рий REMI

Уста­нав­ли­ва­ем ути­ли­ту для рабо­ты с репозиториями

Под­клю­ча­ем репо­зи­то­рий для уста­нов­ки php вер­сии 7.2

Уста­нав­ли­ва­ем php и допол­ни­тель­ные биб­лио­те­ки для него

Пере­за­пус­ка­ем Apache

Отключение Selinux

Отклю­ча­ем Selinux

И редак­ти­ру­ем сле­ду­ю­щую строку:

Настройка Apache

Настра­и­ва­ем Apache, доба­вим vhosts — несколь­ко сай­тов на одном ip-адресе

Созда­ем ката­лог, где будут лежать кон­фи­гу­ра­ции vhosts

Созда­ем кон­фи­гу­ра­ци­он­ный файл для локаль­но­го IP

[codesyntax lang="php"]

[/codesyntax]

 

Созда­ем необ­хо­ди­мые ката­ло­ги и выстав­ля­ем пра­ва доступа

Пере­за­пус­ка­ем Apache

Установка VSFTPd

Уста­нав­ли­ва­ем FTP-сервер

Редак­ти­ру­ем кон­фи­гу­ра­ци­он­ный файл

[codesyntax lang="php"]

[/codesyntax]

 

Откры­ва­ем пор­ты 20-21 (актив­ный режим рабо­ты ftp-сер­ве­ра) и 40900-40999 (пас­сив­ный режим рабо­ты ftp-сервера)

Добав­ля­ем сер­вер в авто­за­груз­ку, запус­ка­ем его и про­ве­ря­ем статус

Настройка MySQL

Под­клю­ча­ем­ся к MySQL

Созда­ем базу дан­ных и поль­зо­ва­те­ля с пра­ва­ми толь­ко на эту базу

Выби­ра­ем эту базу и созда­ем таб­ли­цу. Струк­ту­ра таб­ли­цы зада­на с уче­том исполь­зо­ва­ния функ­ци­о­на­ла web-админки

[codesyntax lang="php"]

[/codesyntax]

 

Мой dump базы данных

[codesyntax lang="php"]

[/codesyntax]

 

Выхо­дим из MySQL

Уста­нав­ли­ва­ем модуль pam_mysql

Сохра­ня­ем копию pam файла

Созда­ем новый pam файл

cat /etc/pam.d/vsftpd

[codesyntax lang="php"]

[/codesyntax]

  • user=vsftpd_user — логин ароль для под­клю­че­ния к базе данных;
  • passwd=passwordftp — пароль для под­клю­че­ния к базе данных;
  • db=vsftpd — имя создан­ной базы данных;
  • table=users — таб­ли­ца с пользователями;
  • usercolumn=username — назва­ние колон­ки, из кото­ро­го извле­ка­ем логин;
  • passwdcolumn=password — назва­ние колон­ки, из кото­ро­го извле­ка­ем пароль;

Созда­ем файл с лога­ми для vsftpd и выстав­ля­ем на него права

Созда­ем файл, в кото­ром будет пере­чис­лен спи­сок поль­зо­ва­те­лей, кото­рым раз­ре­шен выход из домаш­не­го ката­ло­га. И добав­ля­ем в него поль­зо­ва­те­ля root

Зада­ем поль­зо­ва­те­ля и груп­пу для дирек­то­рии, где будут хра­нит­ся ката­ло­ги FTP-пользователей

Web-Админка для VSFTP

Web админ­ку мож­но ска­чать по ссыл­ке ниже

https://github.com/bullvinkl/ftpadmin

Основ­ной функ­ци­о­нал админки:

  • Доба­вить FTP-пользователя
  • Уда­лить FTP-пользователя
  • Поме­нять пароль FTP-пользователю

Допол­ни­тель­ный функ­ци­о­нал админки:

  • Поль­зо­ва­тель может быть посто­ян­ный или вре­мен­ный. Вре­мен­ный авто­ма­ти­че­ски уда­ля­ет­ся через месяц
  • Что­бы про­длить срок дей­ствия акка­ун­та вре­мен­но­го поль­зо­ва­те­ля, надо обно­вить ему пароль, тогда акка­унт будет дей­ство­вать еще месяц.
  • При добав­ле­нии поль­зо­ва­те­ля пароль гене­ри­ру­ет­ся авто­ма­ти­че­ски, его мож­но пере­ге­не­ри­ро­вать, но вруч­ную пароль вво­дить нельзя
  • При добав­ле­нии поль­зо­ва­те­ля вы може­те ука­зать e-mail. На него будет высы­лать­ся вся инфор­ма­ция (логин/пароль при пер­вом добав­ле­нии, новый пароль при изме­не­нии, пре­ду­пре­жде­ние об уда­ле­нии вре­мен­но­го акка­ун­та за день до уда­ле­ния, инфор­ми­ро­ва­ние об окон­ча­тель­ном уда­ле­нии вре­мен­но­го аккаунта)
  • Такие-же пись­ма высы­ла­ют­ся адми­ни­стра­то­ру Web-админ­ки (e-mail зада­ет­ся в php)