LINUX.ORG.RU

Статья очень перекликается с "Разбиение диска для увеличения производительности" (в плане секурности).

Но у меня вопросы:
1. Это где же сейчас делают Web-сервера _БЕЗ_ PERL, PHP, MYSQL??? И _ДАЖЕ__БЕЗ_ CGI??? Да такого (с позволения сказать) web-master'а уволят в 5 минут...
Ну и соответствующие мысли про статические страницы и т. п.

2. Не совсем понятен процесс компиляции. Никаких рекомендаций не заметно. А ведь для действительно нормального применения "нестандартных" CFLAGS (к примеру, "-march=pentium4 -msse2" для gcc 3.2.2) нужно ручками править configure-скрипт...

3. Не совсем понятна необходимость в chroot. IMHO, тут нужно что-то одно: либо делать персональный UID/GID для Апача, либо chroot... Делать и то, и другое - это особо острая форма шизофрении. И примерно как "масло масляное"...

4. Не совсем понятен отказ от динамических библиотек: ведь динамическая загрузка библиотек на то и создана, чтобы система работала наиболее продуктивно под высокими нагрузками.

5. Не совсем понятен принцип первоначального отказа собирать достаточно много модулей (тот же PHP, к примеру). Ведь всё-равно, в httpd.conf в AddModule эти модули не прописаны... Зато в случае необходимости была бы возможность быстренько модуль добавить без пересборки Апача...

Есть ещё много менее существенных вопросов... Но не суть. Хотелось бы получить вразумительные ответы хотя бы на эти вопросы.

R00T
()


Для целей отдачи статического контента есть гораздо более
легкие, гораздо более быстрые и безопасные веб-серверы.
Безопасный Апаче - мертвый Апаче.
И может уже хватит постить подобные пробы пера разных недоучек?

anonymous
()

Дополню предыдущего оратора, сразу цитатой из статьи: "...Скрыв номер версии Apache, выключив службу индексации каталогов...". Ну и где в статье написано - какой хидер-файл нужно править для скрытия версии Апача? Собственно, достаточно добавить всего 3-4 строчки, чтобы слова в конце статьи не расходились с делом. В общем, статья выглядит не до конца завершённой.

DaRk_SoUl
()

2ROOT
1. Наверно бесплатный хостинг. Или домашняя (или корпоративная)
страничка. Хотя не совсем ясно зачем тогда сюда Апач.
2. А тут про оптимизацию вообще ни слова. Статья то не про оптимизацию,
а про защищенность
3. Вот ни фига. Если сделаешь только UID/GID, то при взломе появляется возможность проверить что вообще на сервере. Если сделать только chroot,
то это вообще бесполезно (root'овый процесс спокойно поднимается наверх).
Хотя с учетом того, что "Apache Web server должен быть единственной
службой, запущенной в системе" действительно можно просто скинуть
то что автор положил в chroot в корень.
4. Разве? Динамическая загрузка к продуктивности работы практически
перпендикулярна. Единственное на что она влияет -- динамическая
библиотека не грузится, если не использована. Но то что тут указано
используется всегда по определению.
5. Чтобы соблазна не было :-))
Хотя, если честно напоминает процедуру сертификации WinNT
на безопасность.
Шаг 1: устанавливаем WinNT на компьютер без сетевой карты и модема
......

monk ★★★★★
()
Ответ на: комментарий от R00T

Вот неповеришь, апач для lor - без perl, без php, без cgi и без mysql собран ;)

По поводу uid change/chroot: если просто поменять uid - то остается шанс увеличить привилегии через локальную дыру коих обычно всегда больше чем ремотных. А если делать chroot от рута, то тебе из него любой пионер за две секунды выйдет.

По поводу динамических библиотек - они как раз привносят определенные тормоза при загрузке, а так же расходуют память больше (ну или там своп, у кого как) по сравнению со статически слинкованными. к тому же статически слинкованный бинарь проще ложить в chroot по очевидным причинам.

По поводу модулей - опять же чтобы эта байда с загрузкой ложила - сильно больше всего нужно пихать в chroot. Хотя chroot все равно отстой. Нужно юзать что-нибудь адванцнутое. Например UML. Ну или специальные виртуализирующие патчи.

green ★★★★★
()
Ответ на: комментарий от green

Если автор пишет о скрытии версии Апача, то (IMNSHO) - он должен написать в статье САМ - какую строку надо править. Впрочем, я не жадный - вот приблизительный текст.
----------------
Для изменения заголовка, отправляемого Вэб-сервером Apache, необходимо отредактировать файл src/include/httpd.h и изменить строки:
#define SERVER_BASEPRODUCT "Apache"
#define SERVER_BASEREVISION "1.3.x"
на (например):
#define SERVER_BASEPRODUCT "Bill_Gates"
#define SERVER_BASEREVISION "666"
После чего выполнить компиляцию и установку Web-сервера. До запуска также необходимо добавить директиву в hhtpd.conf:
ServerTokens Min
-----------------
WBR. SOLDIER from UINC Team.

DaRk_SoUl
()
Ответ на: комментарий от green


> Напиши достойное хавту и будет тебе риспект ;)

Не нужен мне, green, твой "риспект". Найди еще 199 green'ов и
будет тебе отличная статья по тематике ;) За меньшее я не
работаю. А ламерье естесно пишет забесплатно. Я бы еще с них
брал деньги за потраченное на просмотр время.

anonymous
()

[q]Web сервер будет доступен через Интернет;[/q]
приколол -)

[q]Будут использоваться только статические HTML страницы[/q]
в профессиональном хвостинге тоже? -). имха в этом случае всем надо раздавать статичные страницы, и брать определ?нные бабки и ставить на особый контроль тех, кто хочет SSI, PHP, CGI, Perl.

[q]Сервер будет поддерживать name-based virtual hosting механизм[/q]
в проф. хостинге без vhosts запутаешься, а если минимальный веб-стервак можно и без ентой хрени. прям в httpd.conf все виртуальные хвосты (что, кстати вполне удовлетворяет большинству провайдеров).

[q]Некоторые Web страницы будут доступны только пользователям с определенным IP адресом[/q]
ну предоставление такой возможности -- само собой =), имха http://server.com/phpmyadmin/ должно контролироваться не только: order allow, deny deny from all allow from 212.212.212.* а и с помощью authtype basic, и вообще лучше по SSL =)

[q]Сервер будет записывать все Web запросы (включая информацию о Web браузерах)[/q]
логи -- фарефа ;)
root@FreeBSD:~# cat /etc/apache/httpd.conf|grep combined
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
CustomLog /var/log/apache/access.log combined

[q]Даже маленький неприметный сценарий может очень сильно уменьшить уровень защиты Web сервера.[/q]
например в php большинство проблемм решается довольно просто -- safe_mode =)

[q]Операционная система должна быть максимально защищена как от локальных, так и от удаленных атак;[/q]
например ставить nosuid и noexec на партиции, куда можно писать с правами веб-сервера.

[q]Сервер не должен предоставлять какие-либо сетевые сервисы, кроме HTTP: (80/TCP);[/q]
про SSL/443 забыли?.. ;) или OpenSSL -- дырка 1? ;)
поэтому е? за борт, как и проч. типа пхп, cgi и т.п.?.. ;) к тому ж не всегда можно выделять отдельно сервер под веб, отдельно под мыло, отдельно под днс, отдельно под другую хрень. довольно часто все три начала объединяют под одним веб-стерваком -)

[q]Перед установкой Apache мы должны выбрать операционную систему, на которой будет работать наш Web сервер.[/q]
имхо, опять лучше юзать либо *BSD либо солярку. Линух со своей дырищей ptrace/kmode в ядре изрядно подмочил свою репутацию.

[q]Единственная операционная система, которую я не рекомендую использовать MS Windows[/q]
имха, кто решил ставить винду -- понимает, что становится целью номер один для хакеров -)

[q]pw groupadd apache[/q]
имха, лучше groupadd -g 65534 apache (если этот gid занят, то юзаем чуть ниже ;) 65533 -))

[q]pw useradd apache -c "Apache Server" -d /dev/null -g apache -s /sbin/nologin[/q]
читай выше

[q]Следующий шаг вы должны загрузить самую последнюю версию Apache Web server.[/q]
имха, ветка 2.0.x черезчур сырая и дырявая! лучше юзать 1.3.x, на момент написания 1.3.27 -- the best choice =)

[q]./configure --prefix=/usr/local/apache --disable-module=all --server-[/q]
мну, к примеру, юзало:
EAPI_MM=../mm-1.3.0 SSL_BASE=../openssl-0.9.7b ./configure --with-layout=Slackware --enable-module=so --enable-module=info --enable-shared=env --enable-shared=setenvif --enable-shared=mime --enable-shared=negotiation --enable-shared=alias --enable-shared=dir --enable-shared=autoindex --enable-shared=access --enable-shared=auth --enable-shared=expires --enable-shared=asis --enable-shared=include --enable-shared=cgi --enable-shared=actions --enable-shared=status --enable-shared=log_config --enable-shared=rewrite --enable-shared=vhost_alias --enable-shared=expires --enable-suexec --with-perl=/usr/bin/perl --with-port=80 --server-uid=apache --server-gid=apache --suexec-caller=apache --suexec-docroot=/web/default/html --suexec-logfile=/var/log/apache/suexec.log --enable-shared=ssl с php, ssl, mm, cgi, perl, suexec, mod_rewrite, vhosts.

в конфиге апача, по умолчанию нифига не включаем поддержки ssi, ssl, php, cgi, делаем ето непосредственно в виртуал хвостах. тоесть вот так: user@server:/etc/apache/vhosts$ cat /etc/apache/vhosts/host.server.ru #///////////////////////////////////////////////////////////////////////////// #//// #//// http://host.server.ru/ #//// #/////////////////////////////////////////////////////////////////////////////

<VirtualHost 212.212.212.212:80> ServerName host.server.ru ServerAdmin admin@server.ru DocumentRoot /web/vhosts/server.ru/host/html CustomLog /web/vhosts/server.ru/host/logs/access.log combined ErrorLog /web/vhosts/server.ru/host/logs/error.log AddType application/x-httpd-php .php </VirtualHost>

Если включаете поддержку SSI, незабудьте отключить всякие левые команды, типа <!-- #exec "cat /etc/passwd" -->, параметром: IncludesNoExec, разумеется php в safe_mode.

зы. вопрос, а в java есть что-то типа safe_mode?.. максимум что я делал, это поднимал весь jre под левым ограниченным юзером -)

[q]Для целей отдачи статического контента есть гораздо более легкие, гораздо более быстрые и безопасные веб-серверы. Безопасный Апаче - мертвый Апаче. И может уже хватит постить подобные пробы пера разных недоучек?[/q]
полностью согласен! имха для статичных сайтов лучше юзать другие веб-стерваки (но не IIS!!! -)), хотя, они тоже дырявые =)

[q]Дополню предыдущего оратора, сразу цитатой из статьи: "...Скрыв номер версии Apache, выключив службу индексации каталогов...".[/q]
хм, в конфиге ставим ServerSignature Off или этого недостаточно?..

[q]Ну и где в статье написано - какой хидер-файл нужно править для скрытия версии Апача?[/q]
я как то извращался, прямо в сырочках меняя все стандартные сообщения об ошибках и т.п. -) (хотя есть ErrorDocument, но в сырочках прикольнее =), там url не меняется на ErrorDocument 404 /missing.html =)):
файл /usr/local/src/apache_1.3.27/src/main/http_protocol.c, коды ошибок:
#ifdef UTS21
/* The second const triggers an assembler bug on UTS 2.1.
* Another workaround is to move some code out of this file into another,
* but this is easier. Dave Dykstra, 3/31/99
*/ static const char * status_lines[RESPONSE_CODES] = #else static const char * const status_lines[RESPONSE_CODES] = #endif {
"100 Continue",
"101 Switching Protocols",
"102 Processing",
#define LEVEL_200 3
"200 OK",
...
"403 Forbidden",
"404 Not Found",

и функция API_EXPORT(void) ap_send_error_response(request_rec *r, int recursive_error). Например:
case NOT_FOUND: ap_rvputs(r, "The requested URL ", ap_escape_html(r->pool, r->uri), " was not found on this server.<P>\n", NULL); break;

ещ? один зы. ищем здесь:
http://www.google.com/search?num=100&hl=ru&ie=UTF-8&oe=UTF-8&;... находим: WebToolsOnline.co.uk Online NSLookup, 27275 Lookups since 17/11/2002. Host Name or IP Address, Lookup Type, Name Server. A, ... www.webtoolsonline.co.uk/nslookup.php - 16k - Сохранено - Похожие страницы
ид?м туда: http://www.webtoolsonline.co.uk/nslookup.php
вводим в поле "Host Name or IP Address":
127.0.0.1|cat /etc/passwd и получаем классический пример дырки. всего этого не было бы, если в php хотя бы был включ?н safe_mode!

anonymous
()

ИМХО проще взять аналогичную статью на английском и перевести.

P.S. 4green: "ложить" в русском языке не существует - правильно "класть".
:)

jackill ★★★★★
()

мля про ptrace это ты прикольно завернул типа bsd аналогичных проблем никогда неимела ... в сад ...

anonymous
()
Ответ на: комментарий от jackill

Гм. Ну ты же понимаешь что классический русский язык как таковой уже практически прекратил свое существование ;) И лично я себе голову мертвыми языками забивать не намерен.

green ★★★★★
()
Ответ на: комментарий от anonymous

Так бери деньги. ;) Выйди к переходу к метро с плакатом во всю грудь "читаю ваши статьи за деньги! Дорого! Не гербалайф!", представляешь какая успешная бизнес-модель?

green ★★★★★
()
Ответ на: комментарий от green


green, твое остроумие так же низко, как твоим способности
сисадмина. Я скорее повешу плакат "Даю деньги за ненаписание
ламерских статей" ;)

anonymous
()
Ответ на: комментарий от green


green, а я не знал, что ко всем своим недостаткам ты еще пишешь ламерские статьи ;) Можно взглянуть на образчик твоего творчества? Деньги просто так не платятся ;)

anonymous
()
Ответ на: комментарий от anonymous

Ты знаешь, ламерские статьи пользуются спросом, поэтому пишу ;)
Но поскольку непонятно как сбивать денег с анонима - предоставь мне гарантии оплаты вперед, и тогда будет тебе url ;)

green ★★★★★
()

Зелёному

To green
> классический русский язык как таковой уже практически прекратил свое существование ;)
> И лично я себе голову мертвыми языками забивать не намерен

Я далёк от идей Баркашова, но за такое по ебальнику съездил бы с удовольствием!

andrew

anonymous
()
Ответ на: Зелёному от anonymous

А кто такой этот Баркашов? Филолог чтоле?

green ★★★★★
()
Ответ на: комментарий от green


green, ну что ж ты ломался как девочка, вполне сносные статьи
у тебя. Не то, чтобы фонтан, но на ламерские не тянут.
Так штааа... обломался ты с вознаграждением ;(

anonymous
()


Да, а вот дистрибутив у тебя самый что ни на есть ламерский.
Тока я за это не плачу ;) У себя под одеялом кто как хочет,
так и дрочит. Меня это не трогает.

anonymous
()
Ответ на: комментарий от anonymous

вот ацтой, придецца работать над собой ;)

green ★★★★★
()
Ответ на: комментарий от green


Ага, а еще дрочить - заменяет трахацца. Тоже работает.

anonymous
()
Ответ на: комментарий от anonymous

>>Сервер будет поддерживать name-based virtual hosting механизм<< >про SSL/443 забыли?.. ;) или OpenSSL -- дырка 1? ;) Если мне не изменяет память, при использовании name-based virtual hosting испоьзовать SSL невозможно.

anonymous
()

> лучше groupadd -g 65534 apache
Я видимо чегото не понимаю. А чем 65534 лучше 1хххх?

anonymous
()

2anonymous (*) (2003-06-03 01:32:19.663287)

Слава Богу, что есть люди, которые пишут статьи бесплатно, это соответствует идеологии OpenSoft и Linux. От этого выигрывает все сообщество пользователей Linux. Ты наверное из тех людей, которые снег зимой продают.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.