NET Stalking

  • Автор темы Автор темы jutakev
  • Дата начала Дата начала
Статус
В этой теме нельзя размещать новые ответы.

jutakev

V.I.P
Сообщения
9.843
Реакции
15.916
Похождение NET Stalker. Все для сети и о сети. Эксклюзивные находки и многое другое.

Не несет рекламных характер.
 
Ищем причину зависания сервера
Игрался я тут как-то с Orange Pi Zero и стала она подвисать на ровном месте. Монитор я не подключал к нему, т.к. это такая себе была игровая площадка для всяких датчиков и т.п. В общем, надо было понять в чем дело и почему подвисает железка.

В Linux есть такая возможность ядра как Netconsole. Netconsole позволяет послать сообщения от ядра на удаленный компьютер. Вспомнил о ней и решил вот написать как ей пользоваться. Может кому-то еще пригодится.

Для настройки netconsole нужен другой (постоянно включенный) компьютер который примет сообщение по сети.

Настраиваем проблемный сервер
  1. В /etc/modules добавляем netconsole
  2. В /etc/modprobe.d/netconsole.conf пишем

    options netconsole netconsole=SRCPORT@SRCHOST/eth0,DSTPORT@DSTHOST/DSTMAC
Где SRCPORT и SRCHOST соответственно порт и IP адрес сервера который отлаживаем.
А DSTPORT и DSTHOST порт и IP адрес сервера который будет принимать сообщения.

DSTMAC — это MAC адрес сервера который будет принимать сообщения ЕСЛИ он в той же сети. Если он за роутером или где нибудь в интернете, то нужно указывать MAC адрес ближайшего роутера (Gateway).

Должно получится чтото типа:

options netconsole netconsole=6666@192.168.1.2/eth0,6666@192.168.1.3/e0:91:f5:7d:e6:38

Настраиваем сервер с логом
Нам нужно как-то запустить программу которая будет слушать UDP порт DSTPORT и куда-либо записывать сообшения.

Самый просто способ — запустить netcat который будет выдавать на экран все что приходит на порт. Для того чтобы после закрытия окна данная программа не прекратила работать, можно запустить ее в screen.

Запускаем screen
screen -U -D -RR

Запускаем в окне netcat
netcat -l -u DSTHOST DSTPORT

Как понять что все работает?
Можно подождать какого нибудь события, но как убедится что сообщения реально ходят?

kmsg
echo test > /dev/kmsg

После выполнения этой команды в лог прилетит отправленный текст

SysRq
Можно активировать SysRq механизм ядра.
echo 1 > /proc/sys/kernel/sysrq
echo h > /proc/sysrq-trigger

После этого на сервере который принимает сообщения в окне с netcat появится текст типа
[ 7849.700372] SysRq : HELP : loglevel(0-9)....
 
Режем рекламу в домашней сети

Сейчас стало ну уж сильно большое количество рекламы в интернете. Предлагаю сделать интернет серфинг немного проще с помощью собственного DNS сервера.

Что понадобится:
  • git
  • docker
  • docker-compose
git
sudo apt install git

docker
Поскольку все это крутится внутри контейнеров docker, то эта штука нам 100% понадобится. Все действия относятся к Ubuntu Linux, т.к. именно его я использую дома и в работе.

Устанавливается она согласно документации достаточно просто:


После завершения работы скрипта docker будет готов и им можно пользоваться.

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

docker-compose
Docker Compose предназначен для планирования и организации процессов в контейнерах Docker (запуска, отключения, создания межконтейнерных соединений и томов, и т.п.).

Установка не сложнее самого докера:

curl -L "https://github.com/docker/compose/releases/download/1.8.1/docker-compose-$(uname -s)-$(uname -m)" > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

Запуск собственного фильтра рекламы
Клонируем репозиторий
Логичное действие и не нуждается, наверное, в пояснениях, зачем это делать. :)

sudo mkdir /opt/docker
sudo chown <user> /opt/docker
git clone https://github.com/DmitriyLyalyuev/dnsmasq-no-ads /opt/docker/dnsmasq
cd /opt/docker/dnsmasq

Стартуем DNS сервер

Осталось исправить в DHCP настройках роутера IP адрес DNS сервера на ваш.

Обновление списка рекламных доменов
Для обновления достаточно перезапустить контейнер:

cd /opt/docker/dnsmasq
docker-compose restart dnsmasq

Белый список
Иногда нам необходимо исключить из фильтра какие-то домены. Для этого достаточно добавить их в переменную WHITE_LIST в файле docker-compose.yml
 
How To: Восстановление случайно поврежденной таблицы разделов GPT

Представим ситуацию, что у вас на сервере заменили вышедший из строя диск и вам необходимо восстановить работу RAID. Но у вас на "живом" диске таблица разделов не MBR, а Gе вы перепишете таблицу разделов и можете потерять данные.

Именно "можете", но еще не потеряли. Восстановить таблицу разделов еще можно.

Первое, что необходимо сделать - это сохранить текущую используемую таблицу разделов из памяти, на всякий случай:


Нажимаем 'b' и пишем имя файла "/part.bin". Теперь пробуем восстановить таблицу на второй диск, чтоб не потерять данные:


Нажимаем 'r', затем 'l' и пишем имя нашего файла '/part.bin'. После этого смотрим, что у нас получилось нажав на 'p'.

Если данные похожи на правду, то можно проделать ту же операцию с sda. Но для начала я бы рекомендовал перестраховаться и ввести разделы в RAID, дождаться синхронизации и потом записать таблицу на диск sda.

Но если вы не боитесь потерять данные, то можно попробовать сразу восстановить таблицу разделов из резервной копии GPT:


Далее нажимаем 'r' и 'b'. Утилита восстановит таблицу разделов GPT из ее копии на диске. Проверить можно нажав 'p'.

Таким образом, GPT гораздо надежнее MBR в плане защиты от потери данных и резервирования информации о таблице разделов.
 
Статус
В этой теме нельзя размещать новые ответы.

Сейчас в теме:

Назад
Сверху Снизу