Pull to refresh
3
0
Эдуард @openbsod

DevOps

Send message

Fail2ban и nginx: блокируем нежелательный трафик к определенному URL

Reading time2 min
Views55K
Доброго времени суток!

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

Читать дальше →
Total votes 23: ↑21 and ↓2+19
Comments17

Программное обеспечение для тестирования и наладки устройств и сетей на базе MODBUS

Reading time10 min
Views258K

image


Протокол Modbus довольно распространен как в промышленных системах автоматизации, так и сетях систем типа "Умный дом", автоматизации малых объектов (теплицы и т.п.) и стыковки различного оборудования с домашним компьютером. Появление таких проектов как Arduino и Raspberry Pi значительно повысило интерес к задачам, связанным с робототехникой, автоматикой и автоматизацией. Все это обеспечивает рост популярности Modbus среди любителей и профессионалов. В статье рассмотрен вопрос тестирования и наладки, как отдельных устройств, так и сетей на базе протокола Modbus с позиции требований к программному обеспечению для решения таких задач и обзора существующих инструментов.

Читать дальше →
Total votes 16: ↑14 and ↓2+12
Comments63

Попытка номер раз создать почти идеальный htaccess

Reading time14 min
Views247K
    - Google выше ранжирует сайты, которые загружаются быстрее.
    - Если на eBay или Amazone увеличить время загрузки страниц на 9% они теряют 1% прибыли.
    - Сделать свой сайт быстрее, чтобы сэкономить на клиентском трафике и на числе обращений к серверу.


.htaccess — наш герой


Профессионалы знают, что такое htaccess.
Тем кто собираются уйти с народ.ру на php-хостинг только предстоит узнать, что это такое.
Те кто только что установил свои первые jooml'у или wordpress срочно должны узнать о нашем герое — htaccess

Зачем нам .htaccess ?


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

Или другой пример. Скажем ваш ресурс начинает набирать популярность, но переезжать на выделенный сервер ещё рано, а мощностей VPS уже не хватает. Вас очень может выручить htaccess.

А ещё htaccess может решить некоторые вопросы с безопасностью вашего сайта.

А ещё…

Полезные советы по htaccess с разжевыванием для новичков
Total votes 85: ↑70 and ↓15+55
Comments77

SVN: Полгода спустя

Reading time3 min
Views2.4K
В продолжение работы, которую пол-года назад проделали компания 2Товарища и Антон Исайкин, мы (aldonin и dasm32) решили провести сканирование 1000000 самых популярных сайтов современного Web-а, начиная от google.com и заканчивая wordpress.com.

Мы использовали Perl для написания сканера. Первая его версия не использовала богатые возможности по созданию и использованию потоков. Но когда в течении 3х дней в результате было просканировано всего лишь 25% сайтов — жалкие 250000, срочно был поднят вопрос о повышении производительности :)
После небольшой, но неоценимой помощи товарищей с perlmonks.org многопоточность была вполне задействована, и всего за день была проверена остальная часть имеющейся у нас базы.

Результаты, конечно же, нас удивили.
Читать дальше →
Total votes 127: ↑106 and ↓21+85
Comments36

У вашего сайта проблемы с Google?

Reading time7 min
Views40K
Цель этой публикации — объяснить веб-мастерам основные причины по которым их сайты может, мягко говоря, недолюбливать Google. Также предлагается система диагностики попал ли сайт под санкции Google или нет.

Мой сайт под фильтром Google? Как узнать под каким? Просел сайт в выдаче, в чём причина? Падают позиции и нет посещаемости, в чём дело?

Именно с таким названием вы увидите темы на большинстве известных SEO-форумах и на Справочном форуме для веб-мастеров Google.

Сразу отметим, что вместо слова «фильтры» в таких ситуациях уместнее употреблять слово «алгоритмы».

На самом деле причина проблем с сайтом может быть не связана с мерами воздействия Google.
Читать дальше →
Total votes 27: ↑22 and ↓5+17
Comments26

Интеграция Fail2ban с CSF для противодействия DDoS на nginx

Reading time12 min
Views34K
Набор скриптов ConfigServer Security & Firewall (CSF) изначально обладает достаточно богатыми возможностями по организации защиты сервера хостинга Web с помощью фильтра пакетов iptables. В частности с его помощью можно противостоять затоплению атакуемого хоста пакетами TCP SYN, UDP и ICMP слабой и средней силы. Дополняет CSF встроенный Login Failure Daemon (lfd), который осуществляет мониторинг журналов на предмет наличия многочисленных неудачных попыток авторизации в различных сетевых сервисах с целью подбора пароля. Такие попытки блокируются путем внесения адреса IP злоумышленника в черный список CSF.
Читать дальше →
Total votes 28: ↑26 and ↓2+24
Comments14

Как узнать, что ваш PHP сайт был взломан

Reading time11 min
Views134K
Сайт моего друга недавно был взломан, на нем была запущена старая версия IP.Board, в которой есть уязвимость локального внедрения кода (local file inclusion). Этот пост не будет посвящен IP.Board или другому php коду, он покажет, как найти потенциально вредоносный php код на ваших серверах. Наконец, покажу пример того, что злоумышленники могут загрузить на взломанный сайт.

Проверьте логи доступа


Что бы с чего-то начать, я бы хотел поделиться некоторыми записями из журнала доступа (access log) взломанного сайта моего друга.

IpreMOVED - - [01/Mar/2013:06:16:48 -0600] "POST /uploads/monthly_10_2012/view.php HTTP/1.1" 200 36 "-" "Mozilla/5.0"
IpreMOVED - - [01/Mar/2013:06:12:58 -0600] "POST /public/style_images/master/profile/blog.php HTTP/1.1" 200 36 "-" "Mozilla/5.0"

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

Два файла выше это загруженные взломщиком скрипты, как они туда попали, большой роли не играет, так как код на любых двух серверах, вероятно, будет различным. Тем не менее, в данном конкретном примере, уязвимость в устаревшей версии IP.Board была использована, и атакующие смогли добавить свои собственные скрипты в директории доступные для записи, такие как пользовательский каталог загрузки и каталог, в котором IP.Board хранит кэшированные изображения темы оформления. Это общий вектор атаки, много людей изменяют права на эти каталоги на 777 или дают им доступ на запись, подробнее об этом чуть позже.

Рассмотрим подробнее приведенные выше строки журнала, ничего не цепляет вас?

Обратите внимание, что в журнале доступа POST запросы, а не GET запросы.
Скорее всего, злоумышленники хотели сделать журнал доступа более неприметным, так как большинство журналов не сохраняют post данные.
Читать дальше →
Total votes 109: ↑82 and ↓27+55
Comments122

Ограничение количества попыток ввода пароля в веб-форме авторизации при помощи Nginx или HAProxy на примере WordPress

Reading time3 min
Views17K
Рассмотрим на примере WordPress способ усиления безопасности при помощи ограничения количества HTTP-запросов к форме ввода пароля. Это позволит оградить опубликованный блог от брутфорса (поиска и взлома пароля путем перебора всех теоретически возможных вариантов из определенного набора символов или подбора по словарю распространенных паролей). Данный способ, в принципе, можно использовать и для защиты других веб-приложений.

Задача может быть реализована в Nginx с помощью модуля ngx_http_limit_req_module [1], выступающем в роли фронт-энда к Apache или веб-сервера FastCGI, или же с помощью HAProxy [2, 3], выступающем в роли балансировщика нагрузки перед веб-серверами.

В обоих случаях алгоритм работы следующий. При аутентификации браузер обращается по адресу, содержащему в себе подстроку "/wp-login.php". Необходимо отследить ее и ограничить количество запросов с одного IP не затрагивая обращения по всем остальным адресам. Параметры блокировки необходимо подобрать таким образом, чтобы не создавать неудобств обычным пользователями. Особенно внимательно следует настраивать блокировки в том случае, когда формой авторизации пользуется большое количество пользователей с одного IP-адреса.
Читать дальше →
Total votes 29: ↑25 and ↓4+21
Comments30

Миллион посетителей на WordPress против сервера

Reading time3 min
Views21K
Мой сервер, который и будет героем последующего повествования — это обычный арендованный у FirstDedic сервер среднего класса с процессором DualCore Xeon E3110 3.00Ghz. Оперативной памяти было установлено 4 Гб, жесткий диск 500 Гб. На сервере был установлен nginx 1.01 в качестве frontend, и apache 2 в качестве backend, с запуском скриптов в режиме CGI.

История приключилась с сайтом, который был размещен на моем сервере, собственно, не сайт, а чужой личный блог. Ранее на блоге наблюдались пики трафика до 10000 в сутки, но с подобной нагрузкой сервер справлялся на ура абсолютно без оптимизации на стандартных файлах конфигурации.
Читать дальше →
Total votes 70: ↑56 and ↓14+42
Comments38

Открываем порты за NAT при помощи NAT-PMP и UPnP IGD

Reading time4 min
Views153K


Ранее я много раз слышал, что UPnP каким-то образом умеет самостоятельно открывать порты (производить Port Forwarding на роутере) по запросу от хоста из локальной сети. Однако, то, каким именно образом это происходит, и какие протоколы для этого используются, доселе было покрыто для меня пеленой тумана.

В данной статье я хочу кратко рассказать, как работают два механизма для проброса портов, а именно NAT Port Mapping Protocol и Internet Gateway Device (IGD) Protocol, входящий в набор протоколов UPnP. К своему удивлению я обнаружил, что в рунете информация по данному вопросу более чем скудна, что и сподвигло меня на написание данной заметки.

Для начала приведу краткий FAQ:

Q: Для чего нужны данные протоколы?
A: Для формирования на маршрутизаторе правила проброса определенного TCP/UDP порта (Port Forwarding) не вручную, а «автоматически», т.е. по запросу от хоста во внутренней сети.

Q: Как это реализуется?
A: Устройство за NAT отправляет маршрутизатору запрос с указанием внутреннего и внешнего номеров портов и типа протокола (TCP/UDP). Если указанный внешний порт свободен, маршрутизатор формирует у себя правило трансляции и рапортует запросившему компьютеру об успешном выполнении запроса.

Q: Проводится ли на маршрутизаторе аутентификация/авторизация запросов на открытие порта?
A: Нет, не проводится.

Теперь же рассмотрим работу данных протоколов более подробно (под катом).
Читать дальше →
Total votes 9: ↑9 and ↓0+9
Comments14

«Щадящая» балансировка между несколькими провайдерами на офисном шлюзе

Reading time9 min
Views22K
Эта статья описывает конфигурацию шлюза под управлением Linux для балансировки трафика между каналами разных провайдеров.


Результат, достигаемый в этом руководстве, отличается от результата подобных руководств: для каждого клиента используется один и тот же внешний IP-адрес, что избавляет от проблем с интернет-сервисами, которые не готовы к смене IP-адреса клиента в рамках одной сессии.
Читать дальше →
Total votes 14: ↑14 and ↓0+14
Comments19

Настройка VPN-сервера SoftEtherVPN под Linux

Reading time10 min
Views128K

      Как уже писалось на хабре, буквально в начале января сего года под лицензию GPL2 перешел очень интересный и, в своем роде, уникальный проект — SoftEther VPN. Написали его студенты японского University of Tsukuba. Данный продукт позиционирует себя как VPN-сервер с поддержкой огромного количества туннельных протоколов: L2TP, L2TP/IPsec, L2TPv3/IPsec, MS-SSTP, EtherIP/IPsec, OpenVPN, SSL-VPN (собственной разработки), L2VPN, а также такие хитрые штуки как туннелирование через ICMP и DNS. Поддерживает туннелирование как на третьем, так и на втором уровне, умеет VLAN и IPv6. Работает практически на всех известных платформах (даже ARM и MIPS) и к тому же не требует рутовых прав. С полной спецификацией можно ознакомиться вот тут. Если честно, когда я увидел список возможностей этой проги — я просто не поверил своим глазам и подумал: «Если ЭТО работает, то я ДОЛЖЕН это потестить!»
      Эта статья будет описывать процесс установки и настройки SoftEther VPN Server под Линукс. В следующей статье постараюсь нарисовать красивые сравнительные графики производительности.
Читать дальше →
Total votes 39: ↑38 and ↓1+37
Comments50

Деплой на shared-хостинг: боль и страдания или простая рутина?

Reading time3 min
Views9.6K

Коротко для тех, кто спешит


Утилита FTP Deployment: написана на php, принимает в качестве параметра путь к конфигу и выкладывает файлы на удаленный сервер, довольно быстро и хорошо.

Долго и подробно для тех, кому интересно


Все мы любим классные и удобные методы деплоя с помощью capistrano, rsync или, на худой конец, git pull. А если надо выкладывать проекты на shared-хостинг?

Да, некоторые провайдеры предоставляют ssh и git. Но, прямо скажу, их немного.

Однажды я вдруг понял, что привык к хорошему, и ненавижу выкладывать проекты через (S)FTP: не залился какой-то файл; надо вспомнить, где лежат конфиги; вот эту папку не надо выкладывать вообще; вот тут надо проверить права. Думаю, многие этот список легко продолжат.

Читать дальше →
Total votes 14: ↑8 and ↓6+2
Comments27

Сварка оптических волокон. Часть 3: обзор схем распайки муфт, обзор схем построения сети, немного о рефлектометрах и оптических тестерах

Reading time32 min
Views208K

Входной контроль барабанов с оптическим кабелем

Здравствуйте, хабражители! Выкладываю третью часть своего рассказа про работу с оптоволокном. В этой части я в меру своих познаний расскажу про схемы распайки оптических муфт и работу с ними, про схемы оптических сетей с примерами, а также ознакомлю вас с приборами для оптических измерений (оптический рефлектометр и оптический тестер). Я планировал в третьей части рассказать всё про измерения, но тема измерений достаточно большая, плюс я посчитал нужным получше осветить схемы распайки муфт и построения сетей, и статья получается слишком длинная. Так что вскоре будет ещё часть про настройку рефлектометра и анализ рефлектограмм.

Первая часть здесь
Вторая часть здесь

Осторожно, трафик!
Читать дальше →
Total votes 122: ↑115 and ↓7+108
Comments41

GNS3 в облаке

Reading time8 min
Views28K


Привет! Сегодня расскажу, как настроить GNS3 сервер в облачных сервисах. А в конце будет небольшой FAQ по GNS3. Для примера был выбран Google Compute Engine (GCE) (из-за бесплатного двухмесячного триала и более низких цен на виртуалки в Европе по сравнению с AWS).

Почему вообще стоит заморачиваться?

Один раз попробовав, я больше не запускаю GNS3 локально. Нет смысла забивать оперативку своего ноутбука лабой. Кроме того, я могу запускать свои CCIE лабы с любого компьютера (в моём случае рабочий и домашний ноутбуки) — неважно, сколько RAM/какой CPU. При этом, локальные файлы лаб я сохраняю в Dropbox, что позволяет мне продолжать работать над той же лабой с разных устройств.

Под катом вы найдёте подробную инструкцию по установке GNS3 в GCE.
Читать дальше →
Total votes 12: ↑11 and ↓1+10
Comments9

Hadoop для сетевых инженеров

Reading time7 min
Views21K
Apache Hadoop — это набор утилит для построения суперкомпьютера, способного решать задачи, слишком большие для одного сервера. Множество серверов образуют Hadoop-кластер. Каждая машина в кластере носит название узла, или ноды. Если необходимо увеличить производительность системы, то в кластер просто добавляется больше серверов. Ethernet выполняет функции «системной шины» суперкомпьютера. В данной статье будут рассмотрены аспекты дизайна сетевой инфраструктуры, а также архитектура, которую Cisco предлагает использовать для таких систем.
Читать дальше →
Total votes 27: ↑25 and ↓2+23
Comments7

Как мы боролись с парсерами

Reading time16 min
Views36K
image
Ключевые моменты:
* Реализация скрипта для проверки PTR посетителей;
* Конфигурирование nginx в IfIsEvil-style с ветвлениями map;
* Имена location в переменных map;
* Управление ветвлением через try_files /nonexist $map_var.

Многие высоконагруженные и популярные сайты страдают от того, что кроме живых посетителей их посещают разнообразные парсеры, боты и прочие автоматические сканеры, которые не несут никакого полезного эффекта, а только создают паразитный трафик и нагрузку на, и без того, нагруженную систему. В данном случае я не имею виду поисковых ботов, которые хоть и зачастую нагружают проект не нормировано, но просто необходимы любому проекту.
Один из наших клиентов регулярно испытывал проблему лавинообразного роста нагрузки в определенное время суток. Периодически, раз в сутки и чаще происходили наплывы посещений со значительным ростом LA на серверах. Было принято решение построить защиту от паразитного трафика.

Читать дальше →
Total votes 39: ↑24 and ↓15+9
Comments59

Linux + 2 ISP. И доступность внутреннего сервера через обоих провайдеров

Reading time5 min
Views15K
Есть замечательная статья, в которой рассказывается, как это делается на Cisco. Но мы не хотим тратить $100500 на приобретение штампованных оттисков «Cisco Systems» на корпусе маршрутизатора.

Описание проблемы

Итак, суть проблемы: имеется два NAT через двух разных провайдеров, локальная сеть, в которой есть сервер и который должен быть публичным и доступным через оба NAT. У провайдеров разные приоритеты: сначала задействуется первый, потом второй.

Если пакет вошёл через первого провайдера, он NAT-ится на наш сервер, обрабатывается, образуется ответный пакет, который выходит через первого провайдера и уходит туда, откуда пришёл первый пакет. Хорошо.

Если пакет вошёл через второго провайдера, он NAT-ится на наш сервер, обрабатывается, образуется ответный пакет, который выходит через первого провайдера… а почему? Потому, что сначала в Linux происходит маршрутизация, а потом уже SNAT. Итак, при маршрутизации пакету назначается следующий узел — шлюз первого провайдера (по умолчанию). Потом происходит отслеживание соединения — conntrack замечает, что этот пакет является ответом на другой, и заменяет адрес отправителя адресом, который выдал нам второй провайдер. А потом пакет направляется через интерфейс первого провайдера на его шлюз. Как правило, провайдер блокирует пакеты, адресом отправителя которых указан адрес не из их подсети. Плохо.

Читать дальше →
Total votes 82: ↑75 and ↓7+68
Comments29

Настройка Private VLANs на Cisco

Reading time6 min
Views104K
В данной статье рассмотрим такую интересную, на мой взгляд, технологию, как Private VLANs в теории и практике.

Для начала вспомним, что такое VLANы. VLAN – отдельная подсеть, отдельный домен бродкаста, используется для логической сегментации сети, ограничения домена широковещательной рассылки, безопасности и т.д.

Обычно сеть делится на VLANы, далее c помощью router-on-the-stick либо многоуровнего свича (любого устройства 3 уровня) включается маршрутизация (разрешается весь трафик), а потом, с помощью списков контроля доступа, прописывается кому, с кем и по какому протоколу разрешено “общаться” (или применяется контроль трафика исходя из требований политики безопасности вашей организации, как было бы написано в учебнике Cisco).
Читать дальше →
Total votes 16: ↑15 and ↓1+14
Comments6

7 типичных русских проблем в английской речи

Reading time10 min
Views254K
South Park
Предметом данной статьи является попытка систематизировать культурные различия, и типичные ошибки которые мы допускаем с нашими иностранными коллегами. Большинство примеров взято из книги Русские проблемы в английской речи. Я взял на себя смелость в небольшой популяризации данной темы, снабжению комментариями и собственными примерами.

1. Я прав, а ты нет
Читать дальше →
Total votes 170: ↑160 and ↓10+150
Comments171

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity