ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > ИНФО > Статьи > Авторские статьи
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

FAQ:Безопасность web сервера
  #1  
Старый 17.03.2007, 21:11
Аватар для zl0ba
zl0ba
Banned
Регистрация: 10.10.2006
Сообщений: 596
Провел на форуме:
2132613

Репутация: 1365


Arrow FAQ:Безопасность web сервера

У меня есть хостинг (Free BSD) и на нём хоститься несколько маленьких проектов.
На них постоянно идут (D)Dos,sql inl,xss,php-include атаки, могу ли я обезопасить
сервер от этих атак?


Многие из нас знакомы с распределенной атакой отказа в доступе (Distributed Denial of Servece Attack).
Как говориться, от этой собаки спасенье нет. Или эффективной sql inj, а также xss и межсайтового скриптинга.
К решению этой проблемы на помощь к нам приходит, знаменитый модуль mod_security!
Download : http://www.modsecurity.org/download/modsecurity-apache-1.9.2.tar.gz


Код:
<IfModule mod_security.c>

    # On or Off движка фильтра
    SecFilterEngine On

    # Включения проверки правильности кодирования URL
    SecFilterCheckURLEncoding On

    # Использования байтов их этого диапазона
    SecFilterForceByteRange 32 126

    # Ведения логов для подозрительных запросов
    SecAuditEngine RelevantOnly

    # Имя файла лога
    SecAuditLog logs/audit_log

    # Вывод отладочной информации
    SecFilterDebugLog logs/modsec_debug_log
    SecFilterDebugLevel 0

    # Проверка POST запросов
    SecFilterScanPOST On

    # Запись подозрительных запросов (по дефолту пишет в лог)
    # возрат http ответа с кодом 406 
    SecFilterDefaultAction "deny,log,status:406"

    # Redirect user on filter match
    SecFilter xxx redirect:http://www.webkreator.com

    # Execute the external script on filter match
    SecFilter yyy log,exec:/home/ivanr/apache/bin/report-attack.pl

    # Simple filter
    SecFilter 111
    
    # Only check the QUERY_STRING variable
    SecFilterSelective QUERY_STRING 222

    # Only check the body of the POST request
    SecFilterSelective POST_PAYLOAD 333

    # Only check arguments (will work for GET and POST)
    SecFilterSelective ARGS 444

    # Test filter
    SecFilter "/cgi-bin/keyword"

    # Another test filter, will be denied with 404 but not logged
    # action supplied as a parameter overrides the default action
    SecFilter 999 "deny,nolog,status:404"

    # Раскритие конфигов
    SecFilter /etc/password

    # Чтения выше корня
    SecFilter "\.\./"

    # Межсайтовый скриптинг
    SecFilter "<( |\n)*script"
    SecFilter "<(.|\n)+>"

    # Защита от sql inj
    SecFilter "delete[[:space:]]+from"
    SecFilter "insert[[:space:]]+into"
    SecFilter "select.+from"

    # Атаки с использованием cookie
    SecFilterSelective "HTTP_USER_AGENT|HTTP_HOST" "^$"

    # Forbid file upload
    SecFilterSelective "HTTP_CONTENT_TYPE" multipart/form-data

    # Only watch argument p1
    SecFilterSelective "ARG_p1" 555

    # Watch all arguments except p1
    SecFilterSelective "ARGS|!ARG_p2" 666

    # Only allow our own test utility to send requests (or Mozilla)
    SecFilterSelective HTTP_USER_AGENT "!(mod_security|mozilla)"

    # Do not allow variables with this name
    SecFilterSelective ARGS_NAMES 777

    # Do now allow this variable value (names are ok)
    SecFilterSelective ARGS_VALUES 888

    # Скажи спаму нет!
    <Location /cgi-bin/FormMail>
        SecFilterSelective "ARG_recipient" "!@webkreator.com$"
    </Location>

    # Фильтрация форматов изображения 
    <Location /fileupload.php>
        SecFilterInheritance Off
        SecFilterSelective POST_PAYLOAD "!image/(jpeg|bmp|gif)"
    </Location>

</IfModule>

Также ставим модуль mod_evasive, который поможет уменьшить активность (D)Dos атаки.
Download: http://www.nuclearelephant.com/projects/mod_evasive/mod_evasive_1.10.1.tar.gz

Конфигурируем модуль:

/etc/apache2/modules.d/mod_evasive20.conf

Код:
<IfModule mod_evasive20.c>
            DOSHashTableSize 3097
            DOSPageCount 2
            DOSSiteCount 50
            DOSPageInterval 1
            DOSSiteInterval 1
            DOSBlockingPeriod 10
        </IfModule>

Как мне запретить запуск программ в /tmp, на тот случай если взломщик проник на мой сервер?

Для этого Вам надо вынести /var/tmp в отдельную файловую систему, при этом /tmp сделаем симлинком
на /var/tmp. Идём в /etc/fstab ищем строчку для /var/tmp и в опциях добавляем noexex.
После проделанной операции , запуск программ из /tmp будет не возможна.



Как мне можно скрыть названия ОС и Apache от всяких (x-toolz) сканеров?

Apache 1.3.x and 2.x :

Для Apache 1.3.x мы лезем в src/include/httpd.h и меняем:

Код:
# define SERVER_BASEPRODUCT "Apache"
# define SERVER_BASEREVISION "7.7.7"
На :

Код:
# define SERVER_BASEPRODUCT "Tamagochi"
# define SERVER_BASEREVISION "1.1.1"
Для второй ветки Apache, идём в httpd.conf и добавляем:

Header set Server "version not listed"

При этом отключаем службу индексации каталогов в
/etc/httpd/conf/httpd.conf :

Код:
ServerSignature Off

Надо поменять системные переменные sysctl:

Код:
# sysctl net.inet.ip.random_id=1
# sysctl net.inet.tcp.blackhole=2 
# sysctl net.inet.udp.blackhole=1
# sysctl -w net.inet.icmp.maskrepl=1
Далее в /etc/pf.conf вносим директивы:

Код:
scrub in all fragment reassemble
pass in quick proto tcp from to
$my_ip port $ports flags S/SA
synproxy state block quick all
Я слышал о модуле "mod_rewrite". Зачем же нужен этот модуль?
//материал взят с http://blog.excode.ru/post13-protect_site_sql_injection_mod_rewrite.html
Этот модуль используется в Apache и используется для разных вещей. Кто то делает ссылки более красивыми,
но использовать его можно для разных целей. А одни используют для защиты своего сайта от sql inj.
Рассмотрим пример с паролем администратора. Пускай переменная $idmd передаёт GET запрос
http://mysite.ru/script.php?idmd=4k55hk34ghkdf6kh7khf5
Нам нужно заменить адрес http://mysite.ru/script_4k55hk34ghkdf6kh7khf5.html на адрес
http://mysite.ru/script.php?idmd=4k55hk34ghkdf6kh7khf5

Делается это следующей строкой:
Код:
RewriteRule http://mysite.ru/script_([a-z0-9]*).html http://mysite.ru/script.php?idmd=$1
Выражение ([a-z0-9]*) означает, что в данном месте может находиться
последовательность из цифр и букв любой длины. [a-z0-9] - перечисление
допустимых символов (в данном примере заданы диапазоны), знак * означает что таких
символов может быть несколько. Выражение которое соответствует маске находящейся в
скобках присваивается переменной $1 (цифра обозначает номер скобок) и вставляется
в адрес на который будем заменять входящий адрес.В результате этой манипуляции после того
как пользователь введет в строке адреса
http://mysite.ru/script_4k55hk34ghkdf6kh7khf5.html он автоматически попадет на страницу
http://mysite.ru/script.php?idmd=4k55hk34ghkdf6kh7khf5. И конечно же переменная $idmd
будет содержать значение "4k55hk34ghkdf6kh7khf5".Теперь давайте рассмотрим, что же
произойдет если пользователь попытается ввести
http://mysite.ru/script_'%20or%20login='admin'#.html (%20 - тоже самое что и пробел).
В результате этого запроса адрес попадет модулю mod_rewrite, который проанализирует его,
т.к. выражение '%20or%20login='admin'# не подходит под маску ([a-z0-9]*), т.к.
содержит недопустимые символы, то mod_rewrite ничего не сделает, так как будто его вообще нет,
очевидно, что в этом случае пользователю будет возвращена ошибка 404 Page not found
(404 страница не найдена).
Это и есть защита. Она не идеальна и имеет минусы, но есть и плюсы.
Главный минус - это то, что в скрипты, все же можно передать вредоносную информацию,
но для этого придется воспользоваться методом POST, а не GET. Второй минус - mod_rewrite
немного нагружает сервер, как и любые регулярные выражения. Главный плюс - пользователь не видит,
как называются ваши переменные.


Теперь с помощью mod_rewrite мы сделаем адрес на более красивый, а заодно и реализуем проверку на входные данные.
Для того чтобы использовать модуль mod_rewrite вам необходимо создать файл .htaccess в корневом каталоге:

Код:
RewriteEngine on
Options +FollowSymlinks
RewriteBase /
RewriteRule ^.htaccess$ - [F]
Например, чтобы нам подменить адрес http://mysite.ru/blabla.html на http://mysite.ru/xek.html необходимо написать:

Код:
RewriteRule http://mysite.ru/blabla.html  http://mysite.ru/xek.html

Последний раз редактировалось zl0ba; 17.03.2007 в 21:45.. Причина: Копирайт =\
 
Ответить с цитированием

  #2  
Старый 17.03.2007, 21:24
Аватар для Constantine
Constantine
Members of Antichat - Level 5
Регистрация: 24.11.2006
Сообщений: 927
Провел на форуме:
7192869

Репутация: 3033


По умолчанию

Незнаю как начало, но mod_rewrite сдут с http://webscript.ru/stories/07/02/01/2099269 (просто узнал), причем линков на источники и списка используемых матерьялов нет
А как остальное?
__________________

Дети индиго - это бездари, не надо песен! В пять лет едва говорить начинают, мы в этом возрасте стихи наизусть читали!

з.ы http://www.youtube.com/watch?v=sNsQe0KByRY Я ПлакалЪ
 
Ответить с цитированием

  #3  
Старый 17.03.2007, 21:41
Аватар для zl0ba
zl0ba
Banned
Регистрация: 10.10.2006
Сообщений: 596
Провел на форуме:
2132613

Репутация: 1365


По умолчанию

Согласен, не было времени писать свои мысли по поводу mod_rewrite. Но что же писать когда я напишу тоже самое, прость другими словами.
 
Ответить с цитированием

  #4  
Старый 17.03.2007, 21:43
Аватар для Talisman
Talisman
Постоянный
Регистрация: 22.04.2006
Сообщений: 566
Провел на форуме:
1325772

Репутация: 517


Отправить сообщение для Talisman с помощью ICQ
По умолчанию

4k55hk34ghkdf6kh7khf5
4k2jhk34jhkjh6kh7kh33

не сильно отличаются, неправда? )
ЗЫ: неуказание источников наказывается, а вот сбор инфы и ее переработка - приветствуется, хотябы поиск по ачату поюзал:
http://forum.antichat.ru/thread27498.html - тут лучше про мод реврайт написано.
ИМХО.
 
Ответить с цитированием

  #5  
Старый 18.03.2007, 03:30
Аватар для Connor
Connor
Постоянный
Регистрация: 15.11.2006
Сообщений: 349
Провел на форуме:
9019502

Репутация: 1165
По умолчанию

От народ ранимый пошел,ненужно писать чегото в чем неуверен,а если уже написал тогда слушай поправки другх и исправляйся.
 
Ответить с цитированием

  #6  
Старый 18.03.2007, 05:54
Аватар для Underwit
Underwit
Banned
Регистрация: 06.10.2006
Сообщений: 288
Провел на форуме:
2741921

Репутация: 469
По умолчанию

Цитата:
Как говориться, от этой собаки спасенье нет. Или эффективной sql inj, а также xss и межсайтового скриптинга.
XSS и межсайтовый скриптинг это разве не одно и тоже или я ошибаюсь???
 
Ответить с цитированием

  #7  
Старый 18.03.2007, 14:35
Аватар для Constantine
Constantine
Members of Antichat - Level 5
Регистрация: 24.11.2006
Сообщений: 927
Провел на форуме:
7192869

Репутация: 3033


По умолчанию

Это одно и тоже, просто "аффтор", видимо, этот кусок перепечатывал своими словами
__________________

Дети индиго - это бездари, не надо песен! В пять лет едва говорить начинают, мы в этом возрасте стихи наизусть читали!

з.ы http://www.youtube.com/watch?v=sNsQe0KByRY Я ПлакалЪ
 
Ответить с цитированием

Маленькое дополнение
  #8  
Старый 09.05.2007, 16:10
Аватар для Nova
Nova
OpenVPN.CC
Регистрация: 15.07.2005
Сообщений: 1,599
Провел на форуме:
7670961

Репутация: 1034


Отправить сообщение для Nova с помощью ICQ
По умолчанию Маленькое дополнение

Установка mod_security на apache22

переходим в каталог [root@gw-server]cd /usr/ports/www/mod_security2

набираем make install clean
возможно у вас появиться такая ошибка как появилась у меня

Код:
[root@gw-server /usr/ports/www/mod_security2]# make install clean
===>  Building for mod_security2-2.1.0
===>  Generating apache plist
/usr/local/build-1/libtool --silent --mode=compile cc -prefer-pic -O2 -fno-strict-aliasing -pipe    -I/usr/local/include/apache22  -I/usr/local/include/apr-1   -I/usr/local/include/apr-1 -I/usr/local/include  -c -o apache2_config.lo apache2_config.c && touch apache2_config.slo
In file included from modsecurity.h:37,
                 from apache2_config.c:15:
msc_pcre.h:18:18: pcre.h: No such file or directory
apache2_config.c: In function `cmd_audit_log_relevant_status':
apache2_config.c:583: error: `PCRE_DOTALL' undeclared (first use in this function)
apache2_config.c:583: error: (Each undeclared identifier is reported only once
apache2_config.c:583: error: for each function it appears in.)
apxs:Error: Command failed with rc=65536
.
*** Error code 1

Stop in /usr/ports/www/mod_security2.
[root@gw-server /usr/ports/www/mod_security2]#
для коректной установки понадобаиться добавить pcre

переходим в /usr/ports/devel/pcre и набираем make install clean

после того как соберёться сможем собрать наконец наш mod_security
 
Ответить с цитированием

  #9  
Старый 09.05.2007, 17:32
Аватар для delay(0)
delay(0)
Участник форума
Регистрация: 22.11.2006
Сообщений: 117
Провел на форуме:
1813343

Репутация: 141
По умолчанию

Цитата:
в опциях добавляем noexex.
Ошибка... noexeC
Также, не понятно, зачем
Цитата:
Вам надо вынести /var/tmp в отдельную файловую систему
Права поменять разве нельзя?
Ещё хороший метод защиты сервера: использование chroot-окружения.
Статья так се, если честно...
 
Ответить с цитированием

  #10  
Старый 10.05.2007, 21:33
Аватар для p-range
p-range
Участник форума
Регистрация: 05.02.2006
Сообщений: 168
Провел на форуме:
749524

Репутация: 715
Отправить сообщение для p-range с помощью ICQ
По умолчанию

Во-первых.
Цитата:
http://mysite.ru/script_'%20or%20login='admin'#.html (%20 - тоже самое что и пробел).
откуда взялась эта решетка #? здесь поидее должен быть комментарий /* или --.

Во-вторых, методов котороые здесь описаны, недостаточно для нормальной безопасности веб-сервера.
имхо, на faq не тянет \=

Последний раз редактировалось p-range; 10.05.2007 в 21:36..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Hacking IIS Tutorial bxN5 Forum for discussion of ANTICHAT 1 14.03.2007 23:44
абузостойкие дедикейтед сервера / Bullet Proof dedicated servers Webhosting Хостинг, Dedicated, VDS, Сервера - Покупка, продажа 4 08.03.2007 19:49
Коды состояния HTTP - Коды ошибок http сервера D=P=CH= MOD= *nix 6 15.10.2006 20:47
Web Services Secure Connection Dracula4ever Forum for discussion of ANTICHAT 0 13.06.2006 18:54



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ