|
С демона по нитке 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. К примеру, изменим возвращаемые версии клиентских бродилок. Сначала запретим передавать данные о браузере, а затем модифицируем информацию о нем: |