С демона по нитке

Andrushock

Xakep, номер #051, стр. 051-076-3


Скопируем из директории с сырцами ftp-сервера пример конфигурационного файла для базы данных и изменим в нем записи, связанные с именем пользователя, имеющего доступ к MySQL, его паролем, базой данных для pureftpd и методом шифрования паролей (по умолчанию разработчики предлагают нам insecure метод - хранить пароли plaintext'ом).

# cp pureftpd-mysql.conf /etc/

# vi /etc/pureftpd-mysql.conf

MYSQLUser shocker

MYSQLPassword my_password

MYSQLDatabase warezzz

MYSQLCrypt crypt

Остальные настройки в этом файле можно оставить без изменений. Настала очередь запустить ftp-сервер:

# /usr/local/pureftpd/sbin/pure-ftpd -4 -A -B -c 5 -C 3 -I 12 -E -H -k 90 -j -r -T 250:100 -l mysql:/etc/pureftpd-mysql.conf -O clf:/var/log/pureftpd.log

Для создания зашифрованных паролей с помощью функции crypt() библиотеки glibc воспользуемся программой htpasswd, которая входит в поставку Apache. Напомню, что во введенной строке для шифрации значащими являются только первые восемь символов, последующие символы ввиду специфики алгоритма отсекаются.

$ /usr/local/apache/bin/htpasswd -n -d xakep

Теперь подключаемся к MySQL, создаем базу данных warezzz и таблицу users, в которой будут храниться имя ftp-пользователя, его криптованный пароль, уникальные пользовательский и групповой идентификаторы, а также домашний каталог (если каталога в системе еще нет, то он будет автоматически создан при первом входе варезника на сервер и при запущенном pureftpd с ключом '-j'):

$ /usr/local/mysql/bin/mysql -h localhost -u shocker -p

mysql> CREATE DATABASE warezzz;

mysql> SHOW DATABASES;

mysql> USE warezzz

mysql> CREATE TABLE users (

-> User varchar(12) NOT NULL default '',

-> Password varchar(64) NOT NULL default '',

-> Uid varchar(8) NOT NULL default '',

-> Gid varchar(8) NOT NULL default '',

-> Dir varchar(128) NOT NULL default '',

-> PRIMARY KEY (User)

-> );

mysql> SHOW TABLES;

mysql> DESCRIBE users;

mysql> INSERT INTO users VALUES ('xakep','XQ4udTKGGiDxw','666','666','/home/xakep');

mysql> SELECT * FROM users;

Обращу твое внимание, что работа с uid и gid в буквенном представлении возможна в том случае, когда они уже зарегистрированы в системе и в таблице users для них используется тип переменной varchar(). Если ты планируешь оперировать только виртуальными ftp-юзверями и цифровыми идентификаторами, то смело применяй тип int() вместо varchar().

<Портим статистику спайлогам>

Предоставление централизованного доступа клиентских машин в глобальную сеть, кэширование входящего трафика, ограничение пропускной способности интернет-канала, авторизация пользователей, обеспечение дополнительного уровня безопасности - все это входит в задачи кэширующего прокси-сервера Squid http://www.squid-cache.org/. Но сегодня нас будет интересовать не менее интересная функция кальмара – возможность подменять заголовки http-запросов клиентов с помощью директивы anonymize_headers. К примеру, изменим возвращаемые версии клиентских бродилок. Сначала запретим передавать данные о браузере, а затем модифицируем информацию о нем:

Назад на стр. 051-076-2  Содержание  Вперед на стр. 051-076-4