Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #93, СЕНТЯБРЬ 2006 г.

Каждому сервису - крейсерный ход

Денис Колисниченко

Хакер, номер #093, стр. 093-114-2


* MaxHostsPerUser число[сообщение] - максимальное количество узлов на одного пользователя. Предположим, что Вася Пупкин хочет нас обхитрить. Он раздал свой пароль всем своим знакомым, и теперь они будут пытаться зайти под логином Васи с разных компьютеров. Мы этого сделать не позволим, поскольку установим значение "1" для этого параметра.

* MaxInstances число - максимальное число одновременно запускаемых процессов в режиме standalone. Во избежание проведения успешной DoS-атаки, рекомендую уделить должное внимание выбору значения для этого параметра (опять-таки зависит от ширины канала и возможностей сервера). В своем конфиге я установил "MaxInstances 30".

* MaxLoginAttempts число - сколько раз пользователь может ввести пароль. После последней попытки сервер разорвет соединение. Рекомендуемое значение - "3".

* MaxRetrieveFileSize - максимальный размер получаемого файла. Можно не устанавливать, потому как файлы, загружаемые тобой на сервер, будешь контролировать ты сам, а файлы, который загружают пользователи, определяются с помощью директивы MaxStoreFileSize. Если никто не "зальет" на сервер файл размером, скажем, в 1 Гб, следовательно, никто не сможет и скачать этот файл.

* MaxStoreFileSize - максимальный размер файла, загружаемого на сервер пользователями. Тут все зависит от "ширины" канала и места на диске. На твое усмотрение.

Если у сервера "узкий" канал, можно попробовать несколько улучшить ситуацию с помощью следующих директив:

* RateReadBPS байт-в-секунду - задает максимальную скорость чтения информации с сервера в BPS (область действия - сервер, VirtualHost, Global, Anonymous, Directory)

* RateReadFreeBytes байт - указанное количество байтов учитываться не будет (область действия - сервер, VirtualHost, Global, Anonymous, Directory)

* RateReadHardBPS off | on - определяет, ждать после исчерпания первых бесплатных байт, пока средняя скорость не опустится до RateReadBPS, или нет

* RateWriteBPS байт-в-секунду - скорость записи информации на сервер в BPS (область действия - сервер, VirtualHost, Global, Anonymous, Directory)

* RateWriteFreeBytes байт - то же, что и RateReadFreeBytes, но для записи

* RateWriteHardBPS off | on - то же, что и RateReadHardBPS, но для записи

* TransferRate - заменяет старые директивы Rate* и позволяет задать максимальную скорость передачи данных (чтения/записи). Использовать директивы Rate* иногда даже предпочтительнее, поскольку можно указать отдельно скорость чтения и скорость записи, что бывает полезно, если сервер подключен по асинхронному каналу.

Также немного времени можно выиграть, если из строки формата протокола удалить модификатор "%h" (строка протоколирования задается директивой LogFormat). Это имя узла клиента, но, как мы знаем, для разрешения имени нужно сделать DNS-запрос, а на это требуется время.

Правильно установив вышеуказанные параметры, можно добиться существенного прироста в производительности FTP-сервера.

Назад на стр. 093-114-1  Содержание  Вперед на стр. 093-114-3