LINUX.ORG.RU
ФорумAdmin

Suricata блокировка url

 , , , ,


1

2

Делаем:

reject tcp any any -> any any (content: "GET /d/244473.html";content: "Host: memo.ru";replace: "Host: 0000000"; sid:2455;)

Браузер при попытке открыть страницу говорит, что соединение было сброшено, но если попытаться открыть через nc, то тем неменее сайт открывается. Вот пример:

nc memo.ru 80
GET /d/244473.html HTTP/1.1
Host: www.memo.ru

HTTP/1.1 200 OK
Date: Sun, 30 Aug 2015 02:27:39 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 6075
Connection: keep-alive
Keep-Alive: timeout=5
Server: Apache
Set-Cookie: symfony=ku298a4k4l02id9udp4hvbe7d6; path=/
Expires: Sun, 30 Aug 2015 03:27:39 GMT,
Cache-Control: max-age=3600,
Pragma: 
Last-Modified: Sun, 30 Aug 2015 02:27:39 GMT
Etag: "d6f6e6f18d58be096d876c8bc5ce0b51"

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="title" content="29 августа: прощание с Олегом Горлановым и похороны" />
<meta name="og:image" content="http://www.memo.ru/memlogo.jpg" />
<meta name="robots" content="index, follow" />
<meta name="description" content="Мемориал" />
<meta name="keywords" content="Мемориал" />
<meta name="language" content="ru" />

<title>29 августа: прощание с Олегом Горлановым и похороны</title>

<link rel="stylesheet" type="text/css" media="screen" href="/css/look1.css" />

</head>
<body>
	<div id="navigate_memo">
<table>
<tbody>
<tr>
<td>&nbsp;</td>
</tr>
</tbody></table>
</div>
<div id="headings">
<span class="title_big_pad_w">МЕМОРИАЛ&nbsp;</span>
</div>
<div id="paths">
<span class="smalltype_w"><a class="whitelinks" href="/s/1.html">Международный Мемориал</a> / <a class="whitelinks" href="/s/345.html">Лента новостей</a> / <a class="whitelinks" href="/s/0.html"></a></span>
<!-- 
<table background="kar/bg/mein_content.jpg">
<tbody>
<tr>
<td class="colour_code_p4" background="">&nbsp;</td>
</tr>
<tr>
<td class="bordr_botleft" ><p class="smalltype"><span class="title_basic_bw"></span ></p></td>
</tr>
<tr>
<td class="bordr_left"><p class="typo_s"><br />
</p></td>
</tr>
</tbody></table><table width="100%" background="kar/bg/black_mein_zone.jpg">
<tr>
<td class="bordr_left"><p class="typo_white_s"><a class="whitelinks" href="/s/1.html">Международный Мемориал</a> / <a class="whitelinks" href="/s/345.html">Лента новостей</a> / <a class="whitelinks" href="/s/0.html"></a></p></td>
</tr>
</table>
--></div>
<div id="articles">
<table>
<tbody>
<tr>
<td colspan="2" bgcolor="#FFFFFF"class="colour_code_p5"><span class="alignright">&nbsp;<br />Лента новостей</span></td>
</tr>
<tr><td bgcolor="#FFFFFF" > 
<p class="smallit_pad">— 28 августа 2015 г. —</p><p class="title_basic"><a href="/d/244473.html">29 августа: прощание с Олегом Горлановым и похороны</a></p>    
<p class="smalltype_pad"></p> 
<div class="typo_pad"><p><strong>Отпевание в 11.00</strong> <strong>в Успенской церкви в Троице-Лыково</strong>, улица Одинцовская, 24.</p><p>Проезд: </p><ul><li>метро &laquo;Щукинская&raquo;, автобус 640 до остановки &laquo;Улица Твардовского&raquo;, далее 7 минут пешком; автобус 137 до остановки &laquo;Одинцовская улица&raquo;; </li><li>метро &laquo;Строгино&raquo;, автобус 652 до остановки &laquo;Улица Твардовского&raquo;, затем 7 минут пешком;</li><li>на машине &ndash; поворот на Троице-Лыково на 63 км МКАД. </li></ul><p><strong>Похороны на Красногорском кладбище</strong> (напротив Митинского). <strong>Встреча ориентировочно в 12.30 у входа на кладбище</strong>. </p><p>Проезд: </p><ul><li>метро &laquo;Тушинская&raquo;, автобус 741 до конца;</li><li>на машине &ndash; Московская область, Красногорский район, 6-й километр Пятницкого шоссе, до входа на Митинское кладбище, вход на Красногорское кладбище напротив входа на Митинское.<br /></li></ul></div>
<p class="smallit_pad">— Темы —</p><p class="smallit_pad"><a href="/r/240.html">In memoriam</a></p><p class="smallit_pad"><script type="text/javascript" src="//yandex.st/share/share.js" charset="utf-8"></script><div class="yashare-auto-init" data-yashareL10n="ru" data-yashareType="button" data-yashareQuickServices="yaru,vkontakte,facebook,twitter,odnoklassniki,moimir"></div></p><br />
<table align="center" class="bg_grey_line"><tbody>
<tr><td width="100%">&nbsp;</td>
</tr></tbody></table>
<br />
</td>
<td width="5%" bgcolor="#FFFFFF" >&nbsp;</td>
</tr>




</tbody></table>
</div>
<div id="logo">
<tr>
<td>&nbsp;</td>
</tr>
</div>
<div id="navigationap">
<table><tbody>
<tr>
<td><table id="red_nav"><tbody>
<tr>
<td><script type='text/javascript'>

function Go(){return}

</script>
<script type='text/javascript' src='/js/exmplmenu_var.js'></script>
<script type='text/javascript' src='/js/menu_com.js'></script>
<noscript>Your browser does not support script</noscript>
</td></tr>
</tbody></table></td>
<td width="30%"><table id="red_nav"><tbody>
<tr>
<td width="10%"><!-- <a href="5">English</a> --></td>
<td width="10%"><!-- <a href="7">Deutch</a> --></td>
</tr>
</tbody></table></td>
</tr>
</tbody></table>
</div>
<div id="podveskaapDiv1"></div>
<!-- Yandex.Metrika counter -->
<script type="text/javascript">
(function (d, w, c) {
    (w[c] = w[c] || []).push(function() {
        try {
            w.yaCounter21877975 = new Ya.Metrika({id:21877975,
                    webvisor:true,
                    clickmap:true,
                    trackLinks:true,
                    accurateTrackBounce:true});
        } catch(e) { }
    });

    var n = d.getElementsByTagName("script")[0],
        s = d.createElement("script"),
        f = function () { n.parentNode.insertBefore(s, n); };
    s.type = "text/javascript";
    s.async = true;
    s.src = (d.location.protocol == "https:" ? "https:" : "http:") + "//mc.yandex.ru/metrika/watch.js";

    if (w.opera == "[object Opera]") {
        d.addEventListener("DOMContentLoaded", f, false);
    } else { f(); }
})(document, window, "yandex_metrika_callbacks");
</script>
<!-- /Yandex.Metrika counter -->
</body>
</html>

^C

В чём ошибка

★★★★★

В правиле suricata

content: "Host: memo.ru"

В запросе

Host: www.memo.ru

Похоже запрос не подпадает под правило :-)

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от Pinkbyte

А почему если заходить на данную ссылку через браузер, то соединение сбрасывается. Мне кажется, что при ручном вводе получаем Host: и GET в двух пакетах, а если через браузер, то в одном.

ne-vlezay ★★★★★
() автор топика
Ответ на: комментарий от ne-vlezay

А почему если заходить на данную ссылку через браузер, то соединение сбрасывается

Через какую? Ты в браузере заходишь на memo.ru или на http://www.memo.ru? Если ты заходишь на memo.ru(без www) - соединение должно сбрасываться - срабатывает правило

Pinkbyte ★★★★★
()
Ответ на: комментарий от ne-vlezay

Однако, если изменить tcp на http, то соединение и через nc сбрасывается. Дело в том, что если мы прозваниваем через nc, то GET и HOST идёт разными пакетами. Я ещё обнаружил, что если открыть сайт, потом запустить suricata, обновить сайт, то сайт откроется. Почемуто фильтрация начинает работать если мы на клиенте перезапустим браузер. Я как понимаю - это баг. Но этот баг можно обойти. Для этого нужно сочетать payload и http правила. Об этом позднее.

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