В последних дистрибутивах Linux довольно много всяких полезных плюшек в папке /etc, однако мало кто ими грамотно пользуется. Здесь я расскажу про часть из них применительно к последней стабильной версии Debian, и приведу пример реализации переключения на резервный канал.
Все попытки найти банальную автопереключалку приводили к связке из 1-2 скриптов, написанным «под себя» и мало поддающимися настройке. К dhcp не был привязан ни один из них, а значит любые манипуляции на стороне провайдера требовали вмешательство в настройки. Сам писал такие в свое время, но вот теперь решил на новой системе оформить это красиво – так, как это задумывали разработчики Debian, а именно – меняем файлы конфигурации, добавляем свои скрипты и не трогаем те, что нам предоставила система.
Читать полностью »
Метка «iptables» - 2
Переключения между провайдерами интернета на Debian 7
2013-10-29 в 9:14, admin, рубрики: dhcp, firewall, iptables, linux, network, routing, метки: dhcp, firewall, iptables, network, routingSuricata как IPS
2013-09-09 в 4:28, admin, рубрики: firewall, IDS, ips, iptables, linux, информационная безопасность, системное администрирование, метки: firewall, ids, ips, iptables Статья несет исключительно ознакомительный характер. Автор не несет ответственность за применение информации государством или иными самоуправляющими органами в своих корыстных, личных и прочих целях.
Suricata — open source IPS/IDS система. Основана разработчиками, которые трудились над IPS версией Snort. Основное отличие Suricata от Snort — возможность использования GPU в режиме IDS, более продвинутая система IPS, многозадачность, как следствие высокая производительность, позволяющая обрабатывать трафик до 10Gbit на обычном оборудовании, и многое другое, в том числе полная поддержка формата правил Snort. Лучше почитать обо всём на официальном сайте. Cегодня погорим об IPS.
Читать полностью »
Электронное правительство, руки прочь от моих сайтов
2013-08-27 в 8:55, admin, рубрики: ddos, iptables, хостинг, метки: ddos, iptablesУже не в первый раз замечаю атаку на свои сервера из подсети «Ростелекома», относящейся к некоему «электронному правительству».
$whois 109.207.13.1
...
inetnum: 109.207.0.0 - 109.207.15.255
netname: Electronic-government
descr: OJSC Rostelecom
descr: Electronic government of the Russian Federation
...
Спрашивается, что им надо от моих сайтов? — впрочем не важно, не умеете себя вести (игнорируете robots.txt), и наверняка ничего хорошего мне не сулите, тогда отправляйтесь в бездну:
#iptables -A INPUT -s 109.207.13.0/24 -p tcp -j DROP
Раздача интернета с 3G модема в локальную сеть в Linux
2013-08-10 в 22:54, admin, рубрики: 3g модем, iptables, linux, nat, метки: 3g модем, iptables, linux, natЭта статья — продолжение статьи Беспроводная точка доступа, используя Linux. Тут я опишу, что же необходимо сделать для того, чтобы раздавать интернет с 3G-модема по уже созданной по инструкции из предыдущего топика вайфай-сети.
1) Прежде всего, научить Linux работать с модемом
2) Создать NAT для раздачи интернета
3) Запихнуть всё это дело в автозагрузку
Итак, bash, wvdial и iptables под мышку — и поехали!
Читать полностью »
Прокачка debian/ubuntu сервера для маленьких. Часть 1
2013-07-11 в 16:57, admin, рубрики: Debian, firewall, iptables, linux, nginx, Ubuntu, информационная безопасность, Серверное администрирование, метки: Debian, firewall, iptables, nginx, Ubuntu, сервер Всем привет. Недавно появилась необходимость поднятие VPS на debian 7 за скромные деньги.
О плясках с бубенчиком я бы хотел описать тут в подробностях.
Всё в этом посте было собрано на просторах интернета, доработано, разжевано и скинуто в одну статью.
Выбор пал на http://hostink.ru/vps/ из-за низких цен и неплохой стабильности за эти деньги(правда 2 дня были серьезные проблемы с сетью). Был взят VPS за 5 рублей в сутки(или за 150р в месяц) с небольшими конфигурациями ОЗУ 128mb и 10Гб на диске.
В автоматическом режиме был установлен Debian 7.0 x86-64 Wheezy и VPS была готова к работе.
Читать полностью »
Оперативная реакция на DDoS-атаки
2013-04-09 в 16:35, admin, рубрики: ddos, ipset, iptables, nginx, Серверное администрирование, метки: ddos, ipset, iptables, nginxОдин из ресурсов, за которым я присматриваю, вдруг стал неожиданно популярным как у хороших пользователей, так и у плохих. Мощное, в общем-то, железо перестало справляться с нагрузкой. Софт на сервере самый обычный — Linux,Nginx,PHP-FPM(+APC),MySQL, версии — самые последние. На сайтах крутится Drupal и phpBB. Оптимизация на уровне софта (memcached, индексы в базе, где их не хватало) чуть помогла, но кардинально проблему не решила. А проблема — большое количество запросов, к статике, динамике и особенно базе. Поставил следующие лимиты в Nginx:
на соединения
limit_conn_zone $binary_remote_addr zone=perip:10m;
limit_conn perip 100;
и скорость запросов на динамику (fastcgi_pass на php-fpm)
limit_req_zone $binary_remote_addr zone=dynamic:10m rate=2r/s;
limit_req zone=dynamic burst=10 nodelay;
Сильно полегчало, по логам видно, что в первую зону никто не попадает, зато вторая отрабатывает по полной.
Но плохиши продолжали долбить, и захотелось их отбрасывать раньше — на уровне фаервола, и надолго.
Сначала сам парсил логи, и особо настырных добавлял через iptables в баню. Потом парсил уже по крону каждые 5 минут. Пробовал fail2ban. Когда понял, что плохишей стало очень много, перенёс их в ipset ip hash.
Почти всё хорошо стало, но есть неприятные моменты:
— парсинг/сортировка логов тоже приличное (процессорное) время отнимает
— сервер тупит, если началась новая волна между соседними разборками (логов)
Нужно было придумать как быстро добавлять нарушителей в черный список. Сначала была идея написать/дописать модуль к Nginx + демон, который будет ipset-ы обновлять. Можно и без демона, но тогда придётся запускать Nginx от рута, что не есть красиво. Написать это реально, но понял, что нет столько времени. Ничего похожего не нашёл (может плохо искал?), и придумал вот такой алгоритм.
При привышении лимита, Nginx выбрасывает 503-юю ошибку Service Temporarily Unavailable. Вот я решил на неё и прицепиться!
Для каждого location создаём свою страничку с ошибкой
error_page 503 =429 @blacklist;
И соответствующий именованный location
location @blacklist {
fastcgi_pass localhost:1234;
fastcgi_param SCRIPT_FILENAME /data/web/cgi/blacklist.sh;
include fastcgi_params;
}
Дальше интересней.
Нам нужна поддержка CGI-скриптов. Ставим, настраиваем, запускаем spawn-fcgi и fcgiwrap. У меня уже было готовое для collectd.
Сам CGI-скрипт
Читать полностью »
Балансировка входящих соединений на iptables
2013-03-21 в 9:33, admin, рубрики: condition, iptables, mark, балансировка, метки: condition, iptables, mark, балансировкаПредположим, что у вас есть некий сервис, принимающий входящие соединения и возникла задача балансировки нагрузки и/или отказоустойчивости.
В общем виде схема выглядит так:
клиент ----> балансировщик ---> бэкенд (сервис)
Готовых балансировщиков под конкретные нужды множество. Например, nginx — отличный балансировщик для веб-приложений, haproxy для tcp-соединений.
Защита gitlab и gitolite от подбора паролей и ключей
2012-06-20 в 7:14, admin, рубрики: CentOS, Git, gitlab, gitolite, iptables, nginx, ssh, информационная безопасность, метки: CentOS, Git, gitlab, gitolite, iptables, nginx, sshСовсем недавно на мой сервер с git репозиторием началась атака по подбору паролей к gitlab и ключей к ssh. Намерения злоумышлеников понятны — вытащить исходный код проприетарного приложения хранящегося в git.
Мне не совсем понятны попытки подбора ssh-ключей, т.к. проблематично подобрать RSA-ключ (это займет десятки лет), но я всё же сделал некоторые ограничения для того что бы не так сильно «загаживались» логи.
Кому интересно как защитить gitolite и gitlab (работает за nginx) от подбора паролей — добро пожаловать под кат.
Читать полностью »
Файервол для Linux с простым интерфейсом
2012-06-19 в 13:21, admin, рубрики: bash, iptables, linux, системное администрирование, учет трафика, фаервол, файервол, метки: bash, iptables, учет трафика, фаервол, файерволФайервол представляет из себя bash-скрипт, который интегрирует с помощью соответствующих пакетов следующие функции:
- Файервол внешний и внутренний (пакет iptables).
- Учёт трафика внешнего и внутреннего (пакет iptables).
- Прокси-сервер для локальных сетей (пакет Squid).
- Контент-фильтр для локальных сетей (пакет DansGuardian).
- DNS-сервер для локальных сетей (пакет BIND).
Cut-through Proxy своими силами
2012-03-20 в 21:01, admin, рубрики: Cisco, iptables, linux, php, Серверное администрирование, метки: Cisco, iptables, linux, PHPУ нас в компании используется много web-based приложений таких как jira и xwiki. Все они находятся в DMZ и регулярно обновляются для обеспечения должного уровня безопасности. Но на одной из конференций Cisco нашему начальству расказали о способе получения супер защищенной DMZ путем применения технологии Cut-through Proxy в устройствах Cisco ASA. После этого нам пришла команда от начальства включить данную функцию с поддержкой SSL и аутентификацией через LDAP. Читать полностью »