Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

IPTables+tcpdump

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [*nix/Linux] >> IPTables+tcpdump
Имя
Сообщение << Старые топики   Новые топики >>
IPTables+tcpdump - 2010-03-09 16:20:03.950000   
surgutor

Сообщений: 627
Оценки: 0
Присоединился: 2008-05-29 11:42:15.623333
Вот необходимо написать фильтр…
Чтобы зверьки не ползали на всякие одноклассники-вконтакте ни на прямую, ни на через прокси. Как можно отсеивать пакеты? Что-то обчитался манов, никак не придумаю как прокси резать
Post #: 1
RE: IPTables+tcpdump - 2010-03-09 17:03:18.710000   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
В смысле? Отфильтровать запросы на шлюзе?
Я делал так.
1. squid, ставим и настраиваем как transparent proxy. Настраиваем всю фильтрацию.
2. iptables'ом заворачиваем весь трафик уходящий на порты 80, 8080, 3128… на ip:port squid'а.

А. Во! Полез искать команду iptables нашёл http://www.faqs.org/docs/Linux-mini/TransparentProxy.html
Я вероятно по этому документу и делал. =)
Только потом я ещё в гугле и яндексе искал webproxy, и с первых нескольких страниц результатов делал блеклист вебпроксей.
Post #: 2
RE: IPTables+tcpdump - 2010-03-09 17:14:10.863333   
surgutor

Сообщений: 627
Оценки: 0
Присоединился: 2008-05-29 11:42:15.623333
Не, блеклист это понятно. Я хтел что-нибудь наподобие алгоритма "смотрим url запрашиваемого хоста-проверяем его по рег выражениям-если есть совпадение, то банка"
Post #: 3
RE: IPTables+tcpdump - 2010-03-09 18:11:49.856666   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
squid умеет и по регекспам принимать решения. Да там и блеклист, по-сути регекспами строится. Если бы было надо просто домены блочить, то это проще делать dns-серваком.
Post #: 4
RE: IPTables+tcpdump - 2010-03-10 17:45:54.096666   
fippo

Сообщений: 127
Оценки: 0
Присоединился: 2008-12-28 13:14:06.130000
quote:

это проще делать dns-серваком

Ага, разве что там одни блондинки сидят. Что мешает гугловский днс выставить, например? iptables + модуль string, проще некуда.
Post #: 5
RE: IPTables+tcpdump - 2010-03-11 07:50:26.816666   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
quote:

ORIGINAL: fippo
quote:

это проще делать dns-серваком

Ага, разве что там одни блондинки сидят. Что мешает гугловский днс выставить, например? iptables + модуль string, проще некуда.

Как эти не-блондинки будут получать админские права на машине, чтобы сменить днс в настройках соединения?
А когда получат и сменят, как они будут связываться с гугловским серваком, если 53-й порт не форвардится из локалки в инет?

У не-блондинок получиться объехать местный днс-сервер, только если по своей неблондинистости они обойдут одмина. Но в такой ситуации одмину ничто не поможет.
Post #: 6
RE: IPTables+tcpdump - 2010-03-13 17:03:02.860000   
WinLinux

Сообщений: 491
Оценки: 0
Присоединился: 2008-07-18 14:06:33.563333
quote:

ORIGINAL: rgo
squid умеет и по регекспам принимать решения. Да там и блеклист, по-сути регекспами строится. Если бы было надо просто домены блочить, то это проще делать dns-серваком.


Закрыть можно, но анонимайзеры все не отследишь, у нас в организации половина людей так и продолжает выходить на развлекательные сайты, а блокировали все эти сайты через squid, если нужно будет могу скинуть правила, которые это позволяют делать…
Post #: 7
RE: IPTables+tcpdump - 2010-03-14 07:05:29.896666   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
quote:

ORIGINAL: WinLinux
quote:

ORIGINAL: rgo
squid умеет и по регекспам принимать решения. Да там и блеклист, по-сути регекспами строится. Если бы было надо просто домены блочить, то это проще делать dns-серваком.

Закрыть можно, но анонимайзеры все не отследишь, у нас в организации половина людей так и продолжает выходить на развлекательные сайты, а блокировали все эти сайты через squid, если нужно будет могу скинуть правила, которые это позволяют делать…

Блин, вы читаете вообще о чём я? Ну мать перемать… А? Ну что такое. Там сказано "если бы надо было просто домены блочить…". Так ведь? Сослагательное наклонение видим? Я где-нибудь говорил что в данной задаче действительно можно обойтись dns сервером? Нет не говорил. Так откуда же вы такие умные все вылезли?

Правила можешь не выкладывать. Я создавал такие правила, и я знаю как их сделать так, чтобы никто не прорвался. И чтобы известные анонимайзеры не работали. И чтобы другие не найти было. Плавали. Знаем. Надо просто потратить пару рабочих дней на сочинение блеклистов и регекспов. И ещё денёк на настройку анализа логов squid'а, чтобы потом, тратя десять минут в день на изучение логов, можно было бы извлекать из них все новые найденные анонимайзеры и дополнять блеклисты. Попытки и бесплодные поиски прекращаются через пару недель.

Хуже всего в этом бесит поведение гугла, который запрос может принять с ошибкой, может принять если он записан не в той раскладке клавиатуры, или если он записан транслитом. В плане составления регекспов – убиццо. Я даже скрипт какой-то писал, который брал слово, и делал кучу регекспов, чтобы это слово не прошло бы через прокси и не попало бы в гугл. Тут бы конечно модуль к squid'у не помешал бы. Модуль anti-google.
Post #: 8
RE: IPTables+tcpdump - 2010-03-16 14:46:18.646666   
harrier

Сообщений: 19
Оценки: 0
Присоединился: 2009-07-24 19:11:07.173333

quote:

ORIGINAL: rgo

В смысле? Отфильтровать запросы на шлюзе?
Я делал так.
1. squid, ставим и настраиваем как transparent proxy. Настраиваем всю фильтрацию.
2. iptables'ом заворачиваем весь трафик уходящий на порты 80, 8080, 3128… на ip:port squid'а.

А. Во! Полез искать команду iptables нашёл http://www.faqs.org/docs/Linux-mini/TransparentProxy.html
Я вероятно по этому документу и делал. =)
Только потом я ещё в гугле и яндексе искал webproxy, и с первых нескольких страниц результатов делал блеклист вебпроксей.



Блокировка нежелательных URL с помощью iptables

Вот маленькая вырезка

"Иногда может возникнуть необходимость заблокировать доступ к некоторым сайтам, и внесение их адресов или даже подсетей в фаервол не приносит желаемых результатов, так как продуманные пользователи продолжают посещать их используя веб прокси количество которых так велико что о блокировке их не может быть и речи…. Есть конечно и явные минусы этого способа, но в моем случае минусы приниматься во внимание не стали. Из плюсов стоит отметить полную блокировку сайтов, они не будут работать даже через веб и обычные прокси сервера, с них не будет доставлятся почта и "…. далее
Post #: 9
RE: IPTables+tcpdump - 2010-03-16 15:27:36.690000   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
quote:

ORIGINAL: harrier
продуманные пользователи продолжают посещать их используя веб прокси количество которых так велико что о блокировке их не может быть и речи….

Враньё. Абсолютно непонятно как сделан логический вывод. Об этом стоит говорить, и стоит подыскивать способы блокировать все вебпрокси. Тем более что это единственный корректный способ.

Их ведь действительно возможно блокировать, и главная проблема не в их количестве, а в том что их списки постоянно меняются. Но правильный подоход к вопросу может решить эти проблемы. Во-первых можно просто пробежаться по спискам вебпроксей, на которые можно попасть с первых страниц разных запросов гугла. Очень, кстати, действенно. Особенно если отфильтровать разные вариации слов anonymizer и web-proxy в POST и GET данных.

Во-вторых, можно написать скрипт, который каждый день пробегается по всем этим страницам, выискивая там новые прокси, и добавляя их в список запрещённых доменов.

И, наконец, в-третьих, если админ готов не только задницу просиживать, но и делать что-то, то ему стоит просматривать логи сквида. Причём, желательно вооружившись скриптами-фильтрами. Более того, на мой взгляд, это достаточно перспективный путь, который помимо прочего может позволить отлавливать не только вебпрокси, но так же и прочие сайты, на которые пользователям лучше бы не появляться. И скажем мне, было бы очень интересно увидеть связку скриптов, позволяющую быстро просматривать список посещённых пользователями сайтов, и классифицировать их на несколько классов, причём с автоматической генерацией правил для сквида. Причём, естественно, чтобы эти скрипты позволяли бы обойтись без просмотра сайтов уже признанных допустимыми. Я много думал о такой связке, но руки так и не дошли. Ни до поиска в гугле, ни до самостоятельной реализации всего этого. А вот это было бы действительно интересно и действительно было бы в тему.

А блокирование айпитэйблесом – это на аварийный случай. Когда надо сделать быстро. Когда скорость важнее чистоты и эффективности решения. В статье написано о том, что будут заблокированы все сайты, на который упомянут vkontakte.ru. Но это лишь половина проблемы, ведь самое интересное, что если webproxy, кодирует жабаскриптом все post-данные в base64 или в urlencode, то iptables ничего не заблокирует. То есть, то что не надо блокировать будет блокироваться, а то что надо – нет. Хуже не придумаешь.
Post #: 10
RE: IPTables+tcpdump - 2010-04-16 17:48:02.720000   
surgutor

Сообщений: 627
Оценки: 0
Присоединился: 2008-05-29 11:42:15.623333
Я замучался…
Есть шлюз на дебе. iptables правила рописаны так
#!/bin/sh sysctl net.ipv4.ip_forward=1 # Чистим цепочку FORWARD iptables -F FORWARD # Разрешаем проходить пакетам по уже установленным соединениям iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT # Разрешаем исходящие соединения из локальной сети к интернет-хостам #iptables -A FORWARD -m conntrack --ctstate NEW -i eth1 -s 10.0.0.0/24 -j ACCEPT # Весь остальной транзитный трафик — запрещаем #iptables -P FORWARD DROP # На всякий случай очистим цепочку POSTROUTING и PREROUTING таблицы nat iptables -t nat -F POSTROUTING iptables -t nat -F PREROUTING #"Заварачиваем" весь исходящий из локальной сети трафик на 3128 порт, где висит SQIUD iptables -t nat -A PREROUTING -i eth1 -p tcp -j REDIRECT --to-port 3128 # Маскарадим весь трафик, идущий через eth0 iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 193.124.133.163
все элементарно… по идее весь трафик из подсети 10.0.0.0/24 должен отправляться на порт 3128, где висит сквид.
конфиг сквида простой (почти по умолчанию, только мною подредактированный)

acl all src all acl manager proto cache_object acl localhost src 127.0.0.1/32 acl to_localhost dst 127.0.0.0/8 acl localnet src 10.0.0.0/24 # RFC1918 possible internal network acl SSL_ports port 443 # https acl SSL_ports port 563 # snews acl SSL_ports port 873 # rsync acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 # https acl Safe_ports port 70 # gopher acl Safe_ports port 210 # wais acl Safe_ports port 1025-65535 # unregistered ports acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 # multiling http acl Safe_ports port 631 # cups acl Safe_ports port 873 # rsync acl Safe_ports port 901 # SWAT acl purge method PURGE acl CONNECT method CONNECT http_access allow manager localhost http_access deny manager http_access allow purge localhost http_access deny purge http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access allow localhost http_access deny all icp_access allow localnet icp_access deny all #Proxy-port http_port 3128 transparent hierarchy_stoplist cgi-bin ? #Cache parametres cache_mem 64 MB cache_dir ufs /var/spool/squid 1024 16 256 cache_mgr specops2006@narod.ru refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern -i (/cgi-bin/|\?) 0 0% 0 refresh_pattern (Release|Package(.gz)*)$ 0 20% 2880 refresh_pattern . 0 20% 4320 logformat squid %ts %6tr %&gt;a %&gt;p %Ss/%Hs %&lt;st %rm %ru %un %mt access_log /var/log/squid/squid_access.log squid logformat squidmime %ts %6tr %&gt;a %&gt;p %Ss/%Hs %&lt;st %rm %ru %un %mt access_log /var/log/squid/squid_mime.log squidmime acl shoutcast rep_header X-HTTP09-First-Line ^ICY\s[0-9] upgrade_http0.9 deny shoutcast acl apache rep_header Server ^Apache broken_vary_encoding allow apache extension_methods REPORT MERGE MKACTIVITY CHECKOUT hosts_file /etc/hosts coredump_dir /var/spool/squid
acl localhost src 127.0.0.1/32
http_access allow manager localhost

по идее эти две строки разрешают доступ в сеть клиенту 10.0.0.2. Но Облом, не пускает и никаких ошибок не выдает.
ЗЫ. в настройках оперы на 10.0.0.2 не прописан адрес и порт прокси сервера. по идее он не нужн, тк iptables сам заворачивает трафик на нужный порт

Где я и в чем не прав? я уже 2 недели занимаюсь сексом с этим долбанным сквидом
Post #: 11
RE: IPTables+tcpdump - 2010-04-16 20:23:34.550000   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
Ты завернул весь трафик, и dns в том числе. А броузер ведь начинает с того, что выясняет dns адрес, причём с учётом правил он dns запрос отправляет сквиду. Мне кажется дело в этом.
Post #: 12
RE: IPTables+tcpdump - 2010-04-16 21:48:13.016666   
surgutor

Сообщений: 627
Оценки: 0
Присоединился: 2008-05-29 11:42:15.623333
я же не делаю каких либо ограничений для запросов от клиентов в сквиде? я же ничего не режу… почему он не пропускает днс запросы… даже если я набираю ip адрес, тоже самое
Post #: 13
RE: IPTables+tcpdump - 2010-04-16 22:28:06.230000   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
Мне почему-то кажется, что сквид не умеет работать как dns-прокси. Даже, подумав, я скажу что он не справится с этим. Ведь с его точки зрения, всё выглядит будто к нему на порт 3128 стучатся клиенты и выдают http запросы. Когда клиент начинает выдавать dns запросы, сквид конечно же не понимает, что с этим запросом надо работать как с dns запросом, а не как с http.
Но даже если бы сквид слушал бы ещё другой порт, и туда мы бы отправляли dns запросы. Есть ли в конфиге сквида опции, которые позволяют настроить прослушиваемый порт как dns? По-моему нет. По-моему squid может работать как http, ftp, https прокси, но как днс-прокси он не умеет.

Тут, на мой взгляд, есть два варианта: либо позволять dns трафику проходить через ядро наружу к dns серверу (то есть трафик на 53-й порт форвардить наружу через NAT). Либо поставить свой кэширующий днс-сервер, и пускай клиенты из локалки пользуются им (но это опять же подразумевает, что трафик на 53-й порт не надо редиректить в сквид). Для bind, кстати, в инете прям готовые конфиги лежат, которые делают из него чисто кэширующий днс сервер.

quote:

даже если я набираю ip адрес, тоже самое

А вот это уже загадочнее. Надо локализовывать проблему. Попробуй вырубить все эти редиректы в iptables, и слово transparent из squid'а убери. А потом в опере настрой прокси и посмотри работает сквид или нет.
Если работает, то надо копать iptables.
Post #: 14
RE: IPTables+tcpdump - 2010-05-07 18:03:09.606666   
surgutor

Сообщений: 627
Оценки: 0
Присоединился: 2008-05-29 11:42:15.623333
Вот опять прошу помощи. Хочу чтобы шлюз пробрасывал ssh соединения на 22ой порт на 10.0.0.02
Сам демон ссша висит на шлюзе на 18257 порту.
Хочу чтобы при ссш-соединении на 193.124.133.163 он перебросывал на 10.0.0.2. Надеюсь нормально объяснил.
Вот конфиг


bla-bla-bla # Разрешаем транзитные внутрь и наружу SSH-пакеты, 22 порт по протоколу TCP iptables -t filter -A FORWARD -m conntrack --ctstate NEW -i eth0 -d 193.124.133.163 -p tcp --dport 22 -j ACCEPT iptables -t filter -A FORWARD -m conntrack --ctstate NEW -i eth1 -s 10.0.0.0/24 -p tcp --dport 22 -j ACCEPT bla-bla-bla # Делаем проброс пакетов на определенные порты на 10.0.0.2 iptables -t nat -A PREROUTING -i eth0 -d 193.124.133.163 -p tcp -m multiport --dport 22,80,443,1234,8080:10000 -j DNAT --to-destination 10.0.0.2 iptables -t nat -A PREROUTING -i eth0 -d 193.124.133.163 -p udp -m multiport --dport 22,80,443,1234,8080:10000 -j DNAT --to-destination 10.0.0.2
Проброса нет, то есть пакеты проходят только на eth0 и все, кирдык. Изнутри тоже самое. Но ыыш на шлюз на 18257ой порт работают
Post #: 15
RE: IPTables+tcpdump - 2010-05-12 09:16:30.596666   
Kavabango

Сообщений: 80
Оценки: 0
Присоединился: 2008-10-20 18:36:46.690000
# iptables -t nat -A PREROUTING -p tcp –dport 22 -i ${WAN} -j DNAT –to 10.0.0.2:22
Post #: 16
RE: IPTables+tcpdump - 2010-05-14 21:34:44.133333   
surgutor

Сообщений: 627
Оценки: 0
Присоединился: 2008-05-29 11:42:15.623333
Блин…
Маразм… Две недели убил на осмысление элементарной вещи.
Правило PREROUTINGа работает ДО правила FORWARD. В результате этого, в качестве адреса назначения получалось 10.0.0.2, а не 193.124.133.163. И правило FORWARD резало его…
Мораль сей басни такова-ВНИМАТЕЛЬНО НАДО ЧИТАТЬ МАНЫ…

Хотя с точки зрения логики не совсем понятно…
Вроде пакет, который предназначен для транзита должен СНАЧАЛА приняться на порту eth0, а уже потом обработаться правилом PREROUTINGа. А на деле наоборот. Все равно, что удалять зубы через жопу…. ИМХО.
Post #: 17
RE: IPTables+tcpdump - 2010-05-15 02:47:28.300000   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
quote:

ORIGINAL: surgutor
Хотя с точки зрения логики не совсем понятно…
Вроде пакет, который предназначен для транзита должен СНАЧАЛА приняться на порту eth0, а уже потом обработаться правилом PREROUTINGа. А на деле наоборот. Все равно, что удалять зубы через жопу…. ИМХО.

Во: http://www.frozentux.net/iptables-tutorial/iptables-tutorial.html#TRAVERSINGOFTABLES
На самом деле надо было сразу выдать эту ссылку, там есть очень приятная картинка, объясняющая прохождение пакета через файрвол. Всё на самом деле очень логично, если вникнуть.
Post #: 18
Страниц:  [1]
Все форумы >> [*nix/Linux] >> IPTables+tcpdump







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.