В этой статье описывается как установить панель управления хостингом ISPConfig на Ubuntu 9.04. ISPConfig работает со следующими компонентами:
Apache 1.3.x/2.0.x/2.2.x
Proftpd & vsftpd
Supports The Following Mail Servers: Sendmail & Postfix
All POP3 & POP3s Servers
All IMAP & IMAPs Servers
BIND 8/9 (A, CNAME, MX, SPF Records)
Firewall Configuration
Monitoring Of Services And Automatic Restart
Web FTP
Web Mail Interface
phpMyAdmin Integration
После установки вам будут доступны следующие параметры для вашего хостинга, где любая из опций может быть включена или выключена для аккаунтов пользователей:
PHP incl. Safemode
SSI
CGI-Directories
SSL Sites and Certificates
Frontpage 2002 extensions (if installed on the server)
MySQL Databases
Disk Quota
Webalizer statisics
Traffic statistics
Traffic limits (for web sites and resellers)
Disk usage statistics and overquota warnings
Individual standard index and error pages per domain
Individual records for inclusion in apache vhost (admin only)
Один из читателей моего блога любезно предоставил свой скрипт для работы с пользователями фтп сервера VSFTPD настроенного на работу с базой данных MYSQL для хранения логинов и паролей пользователей. Прочитать статью об установке и настройке фтп сервера VSFTPD вы можете по ссылке http://sudouser.com/ustanovka-i-nastrojka-vsftpd-mysql-ubuntu-debian. Скрипт позволяет создавать, изменять, удалять пользователей (с созданием резервной копии домашней директории), работать с их домашними каталогами, менять пароли, просматривать всех пользователей. Скрипт полностью настраиваеся под ваши нужды, а именно имя базы, корневая директория для каталогов пользователей, минимальная длинна паролей, и тд. Посмотреть и скачать скрипт вы сможете в продолжении поста.
На протяжение длительного времени я все чаще замечаю в своих лог файлах, как некоторые индивидумы, а может просто ssh роботы пытаются сбрутить мой пароль на SSH сервер. Я обнаружил удивительнейший проект для реализации этой защиты. Как выяснилось позже, этот пакет лежит в репозиториях ветки [universe].
Код: sudo apt-get install fail2ban
Суть этого демона заключается в облегчении жизни пользователя, а именно, он в фоновом режиме сканирует логи (/var/log/pwdfail или /var/log/apache/error_log и др.) на наличие записей вида “Failed password for invalid user condor” для таких служб как sshd, apache, vsftpd и др., и после нескольких неудачных попыток производит блокировку по IP адресу.
Количество попыток авторизации, время блокировки и многие другие настройки находятся в файле:
Vsftpd считается одним из самых быстрых и хорошо защищенных FTP серверов под Linux. Обычно он устанавливается и конфигурируется под пользователей зарегистрированных в системе. В этом руководстве предполагается установка vsftpd под виртуальных пользователей, зарегистрированных в базе данных MySQL.
Такое решение позволяет открыть и управлять до тысячи ftp пользователей на одном сервере.
Управлять MySQL базой вы можете с помощью пакета phpMyAdmin.
Он имеет достаточно удобный графический интерфейс, который позволяет не применять коммандную строку.
1 Введение
Использовался дистрибутив Ubuntu 7.10.
Все пакеты взяты из штатных репозитариев.
2 Установка vsftpd, MySQL и phpMyAdmin
Vsftpd собран без поддержки MySQL, по этой причине неоходимо установить пакет libpam-mysql для PAM аутентификацию в MySQL базе данных. таким образом мы должны установить следующие пакеты libpam-mysql совместно с vsftpd, MySQL, и пакет phpMyAdmin:
Это если у вас имя хоста только локальное localhost.localdomain, в противном случае вы увидите что-то типа:
Код: tcp 0 0 *:mysql *:* LISTEN 2713/mysqld
Для смены пароля вашей базы данных MySQL под ваш hostname, примените следующую комманду:
Код: mysqladmin -h server1.example.com -u root password yourrootsqlpassword
3 Создаем в терминале суперпользователя MySQL базу данных под vsftpd
Код:
mysql -u root -p
в появившемся окне выполняем следующие команды (т.е. находясь в командной оболочке MySQL создадим базу):
Их можно скопировать выделить и затем вставить, нажав среднюю кновку мыши.
Код: CREATE DATABASE vsftpd;
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON vsftpd.* TO 'vsftpd'@'localhost' IDENTIFIED BY 'ftpdpass';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON vsftpd.* TO 'vsftpd'@'localhost.localdomain' IDENTIFIED BY 'ftpdpass';
FLUSH PRIVILEGES;
Далее таблицу для этой базы:
Код: USE vsftpd;
Код: CREATE TABLE `accounts` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`username` VARCHAR( 30 ) NOT NULL ,
`pass` VARCHAR( 50 ) NOT NULL ,
UNIQUE (
`username`
)
) ENGINE = MYISAM ;
quit;
Запустив в браузере ссылку- http://localhost/phpmyadmin/ (или ваш- например: server1.example.com, или можно вставить IP адрес вашего сервера) вы попадете в утилиту phpmyadmin.
С помощью этой утилиты вы можете создать или изменить эту же базу данных (vsftpd), и тут же просмотреть её.
Позже с помощью неё вы сможете управлять вашим vsftpd сервером.
4 Конфигурируем vsftpd
В начале создаем непривилегированного пользователя vsftpd (с домашней директорией: /home/vsftpd) входящего в группу: nogroup. Домашние директории виртуальных пользователей, в дальнешем будут расположены в этой /home/vsftpd директории (например: /home/vsftpd/user1, /home/vsftpd/user2, и т.д.).
Код: listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
nopriv_user=vsftpd
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
guest_enable=YES
guest_username=vsftpd
local_root=/home/vsftpd/$USER
user_sub_token=$USER
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd_user_conf
сохраняем созданный файл.
Посмотреть примеры можно по адресу:
Для использования в дальнейшем опций: user_config_dir, создадим вновь специальную директорию:
Код: mkdir /etc/vsftpd_user_conf
В эту директорию в дальнейшем вы можете класть файлы конфигурации VSFTPD для отдельных пользователей.
Так же должны сконфигурировать PAM для ваших виртуальных FTP пользователей с аутентификацией в MySQL базе данных вместо расположения в /etc/passwd и /etc/shadow. Конфигурационный файл для PAM под vsftpd должен находится в папке /etc/pam.d/vsftpd. Сохраняем оригинальный и создаем новый:
Помните теперь что вы единственный, кто может восстановить ваш MySQL пароль !
Перезапустим наш vsftpd сервер:
Код: /etc/init.d/vsftpd restart
5 Создаем первого виртуального пользователя
Заходим опять под root в оболочку MySQL :
Код: mysql -u root -p
Пишем или копируем команду:
Код: USE vsftpd;
Создаем пользователяпод именем: testuser и паролем secret:
Код: INSERT INTO accounts (username, pass) VALUES('testuser', PASSWORD('secret')); quit;
Домашняя директория testuser’а будет здесь /home/vsftpd/testuser.
Если она не создалась автоматически, создадим эту директорию вручную в группе: nogroup:
Теперь через любой FTP клиент для Linux или Windows, или используя просто браузер, вы можете соединится c вновь созданным сервером, используя имя testuser и пароль secret.