Posts Tagged ‘ Shell

Полезные «однострочники»

Иногда мы очень ждем какогото события, например добавления записи в DNS, чтобы оперативно получить информацию и не долбить без конца одну и ту же команду по клавиатуре можно сделать так:

while [ $? -eq 0 ];do host site.com.ua;sleep 3;done

Читать полностью

Debian Jessie: настройка бэкапа баз MySQL

Это заметка из цикла стетей моего небольшого HowTo по Debian Jessie.

Бэкапы и тормоза придумали трусы … это понятно. Непонятно только что делать когда железка померла или сайт похакали. Чтобы не попадать в такую непонятную и неприятную ситуацию — настроим автобэкап. Сразу скажу, что это только первый этап бэкапа, он делается на тот же хост где расположен mysql, следующим этапом будет настройка bacula — она заберет и файлы баз и директории с сайтами на удаленное хранилище … что обеспечит сохранность данных даже в случае поломки сервера.
Читать полностью

Debian Jessie: Трюки вокруг доступа к sshd (iptables, ipset, geoip)

Это заметка из цикла стетей моего небольшого HowTo по Debian Jessie.

Тут я уже описывал ранее вариант фильтрации доступа к ssh по GeoIP. На этот раз покажу вам более интересный вариант с ipset и модуль TARPIT для IPTABLES. Сразу скажу пару слов об этих новых сущностях:
ipset — модуль поддержки таблиц для iptables с сопутствующей обвязкой для управления этими самими таблицами: создание, удаление, работа с элементами таблицы и тп. Сам по себе модуль весьма хорош и здорово повышает эффективность работы iptables с большим количеством ip-адресов и сетей. Но если разсметривать реализацию iptables + ipset вцелом — то оно мне напоминает пятиколесный велосипед с деревянными спицами. Уж простите за такую ассоциацию у человека несколько лет админившего всякие там pf/ipfw в BSD-ях. На High-Load юзать можно и нужно!
TARPIT модуль для IPTABLES — это модуль для it-весельчаков. Суть работы этого модуля заключается в том что он какбы держит открытым указанный TCP порт, но при попытке клиента соединиться — не шлет в ответ абсолютно ничего. Это такой себе blackhole или nullroute на уровне фаервола. Это приводит к «зависшему» соединению с возможностью закрыть его только автоматически по истечению таймаута. Задумка модуля в том чтобы не просто блокировать бота, а истощать его ресурсы на соединение, мизерные, конечно, но всеже … На High-Load юзать не желательно, лучше пользуйте DROP!
Читать полностью

Debian Jessie: Начальная настройка системы

Статья из разряда «Что вы делаете сразу после установки Debian GNU Linux (или другого дистрибутива) на сервер?»
Чуть ниже я опишу свое видение необходимых начальных настроек системы. Также установку некоторых пакетов и коротко опишу их назначение.

Сразу после свежей установки Debian (любого, но в данном случае Jessie) меня раздражают 2 вещи:
1. Отсутствие моего любимого текстового редактора vim. Есть, правда, дико обрезанный в функциональности vim.tiny (по сути это самый обычный олдскульный vi) да nano — печальная картина. Хотя подозреваю что это необходимая мера чтобы вписаться в минималистичные размеры сборки netinstall.
2. «Бедный» конфиг источников пакетов /etc/apt/sources.list Я не против минимализма и чистоты системы от non-free скверны, но можно же хоть закоменченные строчки contrib/non-free репов в конфиг вписать … Unix way елки-палки. Ubuntu, например, имеет в системе изначально довольно широкий список sources.list с закоменченными опциональными репами. Уважаю в этом плане бубунту.
Читать полностью

Debian Jessie: Update BIOS Asus C60M1-I by flashrom

Итак, в домашнем использовании имеется материнка Asus C60M1-I. Захотелось глянуть какой там стоит BIOS — вдруг есть обновления? Для просмотра различных параметров «железа» в Linux есть прекрасная утилита — dmidecode. Она была у меня установлена, пользовать так:

root@debian:~# dmidecode --string bios-version
0205
0205
root@debian:~#

На сайте ASUS уже есть версия 0502 — нужно обновить BIOS! Вспомнил что когдато у меня была подобная материнка и я без проблем обновлял BIOS прямо из Windows — это было просто и удобно. Вдруг что-то подобное возможно в Linux? Быстрое гугление показало что это более чем возможно, так как существует множество различных программ нужного функционала. Читать полностью

FreeBSD + IPFW: Блокируем SMTP Bruteforce

На предыдущей работе досталось в подчинение пара почтовых серваков с оооочень древними доменами, огромным количеством ящиков и не менее огромным количеством бесконечных брутфорсов. Не знаю что было причиной бесконечных атак на эти серваки, но то что он был в like list у всевозможных ботов — это уж точно! Почта была критичным сервисом, но ближайшие планы включали миграцию на MS Exchange, поэтому позиция руководства была примерно такой «Ну онож работает? Да! Вот и не трогаем пока … нам бы побыстрее мигронуть на эксчендж да вырубить их нафик!» Но один раз случился инцидент который заставил изменить позицию неприкосновения. Несмотря на рендомные пароли, один ящик был сбрутен, и как результат — отправка через наш сервак порядка 40.000 спам писем со ссылками на различные ресурсы интимного направления 🙂
Короче было дано задание «Чтото с этим сделать!» Читать полностью

ssh — Ограничение доступа по GeoIP

Последнее время обьем говнотрафика в Интернете вырос в разы. Если раньше auth.log насчитывал примерно до 10 SSH ботов в сутки, то на данный момент этот показатель вырос до сотен уникальных ip. Боты в основном из Китая/Тайвани/Кореи… Фаервол конечно спасает, но хочется чегото изощреннее …
На просторах Интернета когдато нашел рецепт ограничения доступа к sshd по GeoIP. Решил опробовать.
Задача: дать доступ по SSH только ip адресам из Украины — остальным зась!
Для начала установил необходимые пакеты:

root@host:~# apt-get install geoip-bin geoip-database

И поехали ваять скрипты … настраивать конфиги!
Читать полностью

MySQL — online change storage engine.

Достались мне в наследство некоторые MySQL базы. Случайно обратил внимание что таблицы а базе используют MyISAM Engine. Поскольку базы создавались «за царя Гороха», а свежий MySQL Server был жестко оптимизирован конфигом под InnoDB Engine — решено сменить storage engine с MyISAM на InnoDB «на лету».
Делается это очень просто … Читать полностью

ESXi 5.0 — Firewall rules by SSH

Понадобилось както розковырять в фаерволе доступ для сети к ESXi 5.0 хосту через SSH. Было стрёмно, но не так уж и сложно:

~ # esxcli network firewall ruleset allowedip add -r sshServer -i 190.100.200.0/24
~ # esxcli network firewall ruleset allowedip add -r vSphereClient -i 190.100.200.0/24

Эти чудесные команды открыли доступ ssh клиентом и vSphereClient-ом на хост ESXi для сети 190.100.200.0/24
Хай щастить!

ESXi 5.x — смена сетевых настроек хоста

В ESXi версии 5.x (думаю что в предыдущих тоже) есть одна неприятная проблемка с сетевыми настройками. Сменить IP Address и Default GW одновременно и применить новые настройки нельзя. Можно только чтото одно, либо GW, либо IP/Mask … выбирайте, как говорится, пользователи дорогие … что вам важнее. Свинство как по мне! Життя таке бентежне 🙂 Но мы же хитрые — выкрутимся!
Для наглядности укажу некие потолочные настройки и сформирую задание.
К примеру есть ESXi host с сетевыми настройками:

ip: 100.100.100.100
netmask: 255.255.255.0
gw: 100.100.100.1

И задача: сменить его сетевые настройки на такие:

ip: 99.0.0.100
netmask: 255.255.255.0
gw: 99.0.0.1

При этом никаких других серверов ни в старой ни в новой у нас нету, тоесть если мы потеряем сетевую связь с ESXi хостом … то усе! Придется ехать за много-много километров в датацентр чтобы получить физический доступ к серверу и непосредственно с direct console перенастроить сеть. Читать полностью