Утилиты для анализа загрузки сети

1. iftop

Утилита имеет более простой интерфейс и отображает намного меньше информации. Она выводит ip адреса отправителя и получателя, а также количество переданных или полученных данных за несколько последних секунд. iftop отображает обновления полосы пропускания сети каждые 2, 10 или 40 секунд.

yum install iftop

2. nload

простая утилита, которая отображает только скорость входящих и исходящих соединений. Это позволяет сделать примитивный анализ сети linux и определить нагрузку. Отображается текущая скорость, максимальная и минимальная скорость за период работы.

yum install nload
nload -m

3. vnstat

Программа работает постоянно в фоновом режиме и собирает информацию об использовании сети в лог файл. Далее можно посмотреть какой была нагрузка за определенный период.

yum install vnstat

4. ifstat

показывает пропускную способность сети, измеряя количество переданных и принятых пакетов. Вывод утилиты можно использовать и анализировать в других программах. Утилита не выводит информацию об ip адресах или других параметрах, а только скорость.

5. trafshow

похожа на iftop, которая отображает не только скорость передачи, но и сами соединения. Здесь выводится информация по соединениях, размеры пакетов и протокол.

yum install trafshow

6. bmon

представляет собой простой инструмент командной строки для мониторинга использования пропускной способности сети и оценки скорости передачи данных в Linux. Он фиксирует сетевую статистику и визуализирует её в удобный для восприятия человеку формат, чтобы вы легко могли следить за своей системой.

yum install bmon

 

image_pdfimage_print

tcpdump примеры

ПРЕДСТАВЛЕНИЕ НЕОБРАБОТАНОГО ВЫВОДА

Подробный вывод без разрешения имен хостов или номеров портов, абсолютных порядковых номеров и удобочитаемых временных меток.

# tcpdump -ttttnnvvS

НАЙДИТЕ ТРАФИК ПО IP

Один из самых распространенных запросов, это покажет вам трафик из 1.2.3.4, будь то источник или место назначения.

# tcpdump host 1.2.3.4

ПОСМОТРЕТЬ БОЛЬШЕ ИНФОРМАЦИИ О ПАКЕТЕ С ВЫВОДОМ НА ШЕСТНАДЦАТЕРИЧНУЮ СИСТЕМУ

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

# tcpdump -nnvXSs 0 -c1 icmp
tcpdump: listening on eth0, link-type EN10MB (Ethernet), 23:11:10.370321 IP
(tos 0x20, ttl 48, id 34859, offset 0, flags [none], length: 84)
69.254.213.43 > 72.21.34.42: icmp 64: echo request seq 0
0x0000: 4520 0054 882b 0000 3001 7cf5 45fe d52b E..T.+..0.|.E..+
0x0010: 4815 222a 0800 3530 272a 0000 25ff d744 H."..50'..%..D
0x0020: ae5e 0500 0809 0a0b 0c0d 0e0f 1011 1213 .^..............
0x0030: 1415 1617 1819 1a1b 1c1d 1e1f 2021 2223 .............!"#
0x0040: 2425 2627 2829 2a2b 2c2d 2e2f 3031 3233 $%&'()*+,-./0123
0x0050: 3435 3637 4567
1 packets captured
1 packets received by filter
0 packets dropped by kernel

ФИЛЬТРАЦИЯ ПО ИСТОЧНИКАМ И НАЗНАЧЕНИЮ

Выделить трафик на основе источника или назначения очень просто, используя src и dst.

# tcpdump src 2.3.4.5
# tcpdump dst 3.4.5.6

ПОИСКОВЫЕ ПАКЕТЫ ПО СЕТИ

Чтобы найти пакеты, идущие в или из определенной сети, используйте опцию net. Вы можете комбинировать это с опциями src или dst.

# tcpdump net 1.2.3.0/24

ПОКАЗАТЬ ТРАФИК СВЯЗАНЫЙ СО СПЕЦИАЛЬНЫМ ПОРТОМ

Вы можете найти определенный порт трафика, используя опцию port, за которой следует номер порта.

# tcpdump port 3389
# tcpdump src port 1025

ПОКАЗАТЬ ТРАФИК ОДНОГО ПРОТОКОЛА

Если вы ищете определенный тип трафика, вы можете использовать tcp, udp, icmp и многие другие.

# tcpdump icmp

ПОКАЗАТЬ ТОЛЬКО ТРАФИК IP6

Вы также можете найти весь трафик IP6, используя опцию протокола.

# tcpdump ip6

НАЙДИТЕ ТРАФИК С ИСПОЛЬЗОВАНИЕМ ПОРТОВЫХ ДИАПАЗОНОВ

Вы также можете использовать диапазон портов, чтобы найти трафик.

# tcpdump portrange 21-23

НАЙДИТЕ ТРАФИК НА ОСНОВЕ РАЗМЕРА ПАКЕТА

Если вы ищете пакеты определенного размера, вы можете использовать эти параметры. Вы можете использовать маленький, большой или их соответствующие символы, которые вы ожидаете от математики.

# tcpdump less 32
# tcpdump greater 64
# tcpdump <= 128

ПИСЬМЕННЫЕ ЗАПИСИ В ФАЙЛ

Часто полезно сохранять результат пакетов в файл для анализа в будущем. Эти файлы известны как файлы PCAP (PEE-cap), и их можно обрабатывать сотнями различных приложений, включая сетевые анализаторы, системы обнаружения вторжений и, конечно же, самим tcpdump. Здесь мы пишем файл с именем capture_file, используя ключ -w.

# tcpdump port 80 -w capture_file

ЧТЕНИЕ ФАЙЛОВ PCAP

Вы можете читать файлы PCAP с помощью ключа -r. Обратите внимание, что вы можете использовать все регулярные команды в tcpdump при чтении в файле; вы ограничены только тем фактом, что вы не можете захватывать и обрабатывать то, чего не существует в файле.

# tcpdump -r capture_file

РАСШИРЕННЫЙ

Теперь, когда мы увидели, что мы можем сделать с основами с помощью некоторых примеров, давайте рассмотрим некоторые более сложные вещи.

ЭТО ВСЕ О КОМБИНАЦИЯХ

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

AND
and or &&

OR
or or ||

EXCEPT
not or !

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

ИЗ СПЕЦИФИЧЕСКОГО IP И НАЗНАЧАЕТСЯ ДЛЯ ОПРЕДЕЛЕННОГО ПОРТА

Давайте найдем весь трафик с 10.5.2.3 к любому хосту на порте 3389.

# tcpdump -nnvvS src 10.5.2.3 and dst port 3389

ОТ ОДНОЙ СЕТИ К ДРУГОЙ

Давайте посмотрим на весь трафик, идущий от 192.168.x.x, и двигающийся к сетям 10.x или 172.16.x.x, и мы покажем шестнадцатиричный вывод без имени хоста и один уровень дополнительной детализации.

# tcpdump -nvX src net 192.168.0.0/16 and dst net 10.0.0.0/8 or172.16.0.0/16

НЕ ICMP ТРАФИК, ПЕРЕХОДЯЩИЙ В СПЕЦИФИЧЕСКИЙ IP

Это покажет нам весь трафик, идущий к 192.168.0.2, который не является ICMP.

# tcpdump dst 192.168.0.2 and src net and not icmp

ТРАФИК ОТ ХОСТА, КОТОРЫЙ НЕ В КОНКРЕТНОМ ПОРТУ

Это покажет нам весь трафик от хоста, который не является трафиком SSH (если предположить использование порта по умолчанию).

# tcpdump -vv src mars and not dst port 22

Как вы можете видеть, вы можете создавать запросы, чтобы найти практически все, что вам нужно. Ключ должен сначала определить именно то, что вы ищете, а затем построить синтаксис, чтобы изолировать определенный тип трафика.

Сложная группировка и специальные символы

Также имейте в виду, что при создании сложных запросов вам, возможно, придется группировать свои параметры, используя одинарные кавычки. Одиночные кавычки используются для того, чтобы указать tcpdump, что нужно игнорировать некоторые специальные символы — в этом случае то, что в скобках «()». Этот же метод можна использоваться для группировки с использованием других выражений, таких как хост, порт, сеть и т.д. Посмотрите на приведенную ниже команду.

# Traffic that’s from 10.0.2.4 AND destined for ports 3389 or 22 (неверно)
# tcpdump src 10.0.2.4 and (dst port 3389 or 22)

Если вы попытались выполнить эту очень полезную команду в другом случае, вы получите ошибку из-за скобок. Вы можете исправить это, выйдя из скобок (поставив перед каждой из них \) или поставив всю команду в одинарные кавычки:

# Traffic that’s from 10.0.2.4 AND destined for ports 3389 or 22 (correct)
# tcpdump 'src 10.0.2.4 and (dst port 3389 or 22)'

Изолирование специфических TCP-флагов

Вы также можете захватывать трафик на основе определенных флагов (-ов) TCP.

[ПРИМЕЧАНИЕ: Фильтры ниже находят эти различные пакеты, потому что tcp [13] замечает смещение 13 в заголовке TCP, число представляет местоположение в байте, а ! = 0 означает, что данный флаг установлен в 1, т.е. он включен. ]

Показать все URGENT (URG) пакеты …

# tcpdump 'tcp[13] & 32!=0'

Показать все ACKNOWLEDGE пакеты (ACK) …

# tcpdump 'tcp[13] & 16!=0'

Показать все PUSH пакеты (PSH) …

# tcpdump 'tcp[13] & 8!=0'

Показать все RESET пакеты (RST) …

# tcpdump 'tcp[13] & 4!=0'

Показать все SYNCHRONIZE пакеты (SYN) …

# tcpdump 'tcp[13] & 2!=0'

Показать все FINISH (FIN) пакеты …

# tcpdump 'tcp[13] & 1!=0'

Показать все SYNCHRONIZE / ACKNOWLEDGE пакеты (SYNACK) …

# tcpdump 'tcp[13]=18'

[Примечание: только флаг PSH, RST, SYN и FIN отображаются в выводе поля tcpdump. Отображаются URG и ACK, но они показаны в другом месте на выходе, а не в поле flags. ]

Однако, как и в случае с самыми мощными инструментами, существует множество способов сделать то, что нужно. В следующем примере показан другой способ захвата пакетов со специфическими наборами TCP-флагов.

# tcpdump 'tcp[tcpflags] == tcp-syn'

Снять флаги RST с помощью параметра tcpflags …

# tcpdump 'tcp[tcpflags] == tcp-rst'

Снять флаги FIN с помощью параметра tcpflags…

# tcpdump 'tcp[tcpflags] == tcp-fin'

[Примечание: тот же метод может быть использован и для других флагов; они были опущены в интересах экономии места. ]

Определение заслуживающего внимания трафика

Наконец, есть несколько быстрых рецептов, которые вы захотите запомнить, чтобы поймать специфический и специализированный трафик, например, неправильные / вероятно-вредоносные пакеты.

ПАКЕТЫ С ОБЫЧНЫМИ КОМПЛЕКТАМИ RST И SYN (ЭТОГО НЕ ДОЛЖНО БЫТЬ)

# tcpdump 'tcp[13] = 6'

НАЙТИ ОТКРЫТЫЙ ТЕКСТ HTTP И ПОЛУЧИТЬ ЗАПРОС

# tcpdump 'tcp[32:4] = 0x47455420'

НАЙДИТЕ SSH-СОЕДИНЕНИЯ НА ЛЮБОЙ ПОРТ (ЧЕРЕЗ БАННЕР)

# tcpdump 'tcp[(tcp[12]>>2):4] = 0x5353482D'

ПАКЕТЫ С TTL МЕНЬШЕ 10 (КАК ПРАВИЛО ПОКАЗЫВАЕТ ПРОБЛЕМУ ИЛИ ИСПОЛЬЗУЕТ TRACEROUTE)

# tcpdump 'ip[8] < 10'

ПАКЕТЫ С УСТАНОВКОЙ EVIL BIT

# tcpdump 'ip[6] & 128 != 0'

tcpdump — полезное руководство с примерами

image_pdfimage_print

Подавить сообщения в /var/log/messages вида: Created slice, User Slice of nginx и т.п.

To suppress these log entries in /var/log/messages, create a discard filter with rsyslog, e.g., run the following command:

# echo 'if $programname == "systemd" and ($msg contains "Starting Session" or $msg contains "Started Session" or $msg contains "Created slice" or $msg contains "Starting user-" or $msg contains "Starting User Slice of" or $msg contains "Removed session" or $msg contains "Removed slice User Slice of" or $msg contains "Stopping User Slice of") then stop' >/etc/rsyslog.d/ignore-systemd-session-slice.conf

Then restart the rsyslog service

# systemctl restart rsyslog

https://access.redhat.com/solutions/1564823

image_pdfimage_print

iptables – логирование в отдельный файл

Надоело смотреть мусор от логов iptables в файле messages. Исправляем. Если rsyslog уже установлен в системе, то создаем конфигурационный файл:

# touch /etc/rsyslog.d/10-iptables.conf

Имя с цифрой 10 (10-iptables) – так как для демона важен порядок конфигурационных файлов, а в системе уже присутствует 50-default.conf, он бы первый заворачивал все логи в messages.

# vi /etc/rsyslog.d/10-iptables.conf
:msg, contains, "iptables denied: " -/var/log/iptables.log
& stop
:msg, contains, "Ping detected: "   -/var/log/iptables.log
& stop

Строка с “:msg” говорят rsyslog, что нужно искать в логе фразы “iptables denied: ” или “Ping detected: ” -/var/log/iptables.log, и когда он их находит, то переносит в файл /var/log/iptables.log.

Cтрока c “& stop” просто дает понять rsyslog, чтобы найденные строки, подходящие под условия, не дублировались в основной лог /var/log/messages.

# service rsyslog restart
image_pdfimage_print

NET::ERR_CERT_AUTHORITY_INVALID Веб-сайт example.com использует механизм HSTS. Открыть сайт в настоящее время нельзя.

HSTS (HTTP Strict Transport Security) — это механизм защиты от даунгрейд-атак на TLS, указывающий браузеру всегда использовать TLS для сайтов с соответствующими политиками. Работает так, что после первого успешного захода на HTTPS версию сайта браузер вместо HTTP начинает всегда использовать HTTPS.

С одного телефона стало невозможно открыть определенный сайт, другие устройства открывали этот ресурс без проблем.

Исправляем.

Заходим по ссылке:

chrome://net-internals/#hsts

Попадаем в настройки HSTS браузера Google Chrome. В Query HSTS/PKP domain укажи домен example.com и нажми Query, если при этом браузер выдаст нечто осмысленное, то он действительно запомнил настройки этого сайта. (у меня – not found)

В разделе Delete domain security policies укажи example.ua, и Delete.

Закрываем браузер и открываем снова. Сайт должен заработать.

image_pdfimage_print

Замена жесткого диска в софтовом RAID 1

Алгоритм решения:

  1. Определение проблемы
  2. Удаление поврежденного диска
  3. Подготовка нового диска
  4. Добавление жёсткого диска в массив после замены

Определение проблемы

Для начало разберем проблему. Имеется физический сервер с установленным на нём CentOS 7, в котором 2 HDD диска по 2 ТБ: /dev/sda, /dev/sdb. Эти диски собраны в софтварный RAID1. Предположим, что вышел из строя диск — sdb. Проверив диск в массиве, вы увидите следующую картину:

# cat /proc/mdstat


У нас имеется 3 массива:

# /dev/md125 - /boot 
# /dev/md126 - swap 
# /dev/md127 - /

В данном случае мы можем наблюдать, что диски действительно собраны в RAID1. Когда массив в порядке, то он отображается как [UU]. Так как диски зеркальны, то каждый раздел объединен между собой и назван по своему. Например: md125 состоит из sda2,sdb2. Md125 в данном случае это – /boot. Более подробную информацию о разбивки дисков вы можете узнать, командой:

# lsblk

Если вы хотите знать подробную информацию о массиве и что в него входит, то используйте команде:

# mdadm --detail /dev/md125

Удаление поврежденного диска

Для установки нового диска в RAID 1 массив, необходимо удалить сперва сбойный диск. Данную процедура проводится для каждого раздела.

# mdadm /dev/md125 -r /dev/sdb2
# mdadm /dev/md126 -r /dev/sdb1
# mdadm /dev/md127 -r /dev/sdb3

В некоторых случаях, жёсткий диск может быть повреждён частично. Пример: статус [U_] у массива /dev/md127, а у других массивов статус [UU]. В данном случае нам необходимо указать только одну команду:

# mdadm /dev/md127 -r /dev/sdb3

Следовательно остальные разделы будут отображены, как устройство /dev/sdb1 и /dev/sdb2 — впорядке. После попытки удалить раздел из массива, будет отображаться ошибка.

Чтобы исправить и изъять их, необходимо будет выполнить команды:

# mdadm --manage /dev/md125 --fail /dev/sdb2 
# mdadm --manage /dev/md126 --fail /dev/sdb1

Тем самым вы измените их статус на [U_]. Далее провести процедуру, что и с массивом md127.

Посмотрим диски и разделы, входящие в массив, чтобы убедиться, что диск был изъят полность:

# mdadm --detail /dev/md125 
# mdadm --detail /dev/md126 
# mdadm --detail /dev/md127
# cat /proc/mdstat

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

П.С. Сервер будет остановлен на некоторое время!

Подготовка нового диска

Определение таблицы разделов(GPT, MBR) и перенос её на новый диск.

Новый диск, будучи в массиве должен иметь абсолютно одинаковое разбиение. В зависимости от используемых типов таблиц разделов (GPT/MBR), нужно использовать соответствующие утилиты для копирования таблиц разделов.

GPT – sgdisk

MBR – sfdisk

Так как у нас диски HDD по 2ТБ, то мы будем использовать утилиту sgdisk. Можно также увидеть, что именно мы будем копировать, на второй диск. Используйте команду:

# gdisk -l /dev/sda


Утилиту можно скачать, используя репозиторий операционной системы. В зависимоти от ОС, необходимо указать корректный менеджер пакетов.

CentOS: yum install sgdisk/sfdisk

Debian/Ubuntu: apt install sgdisk/sfdisk

Создание и восстановление резервного копирования MBR/GPT

Перед тем, как копировать таблицу разделов на новый диск рекомендуется сделать резервную копию. При возникновении каких либо проблем, вы сможете восстановить оригинальную таблицу разделов.

Для MBR

Создать:

# sfdisk --dump /dev/sdx > sdх_parttable_mbr.bak

Восстановить:

# sfdisk /dev/sdb > sdх_parttable_mbr.bak

Для GPT

Создать:

# sgdisk --backup=sdх_parttable_gpt.bak /dev/sda

Восстановить:

# sgdisk --load-backup=sdx_parttable_gpt.bak /dev/sdb

sda – диск, с которого создаётся копия.

sdb — диск, на который загружается копия таблицы.

Добавление жёсткого диска в массив после замены

Вставте скопированную таблицу разделов с первого диска в новый, используя команду выше. Как только повреждённый диск удалён из массива, можно добавить новый. Это необходимо сделать для каждого раздела.

# mdadm /dev/md125 -a /dev/sdb2 
# mdadm /dev/md126 -a /dev/sdb1 
# mdadm /dev/md127 -a /dev/sdb3

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

# cat /proc/mdstat


Далее перезагружаем сервер и видим, что все разделы смонтированы правельно:

# lsblk

https://my.fairyhosting.com/knowledgebase.php?action=displayarticle&id=334&language=swedish

**********

Замена сбойного диска в программном RAID массиве.

Ситуация (для примера): с помощью mdadm собран программный RAID1(зеркало) /dev/md0 из 2-х разделов /dev/sda1 и /dev/sdb1.

Задача: заменить сбойный диск /dev/sdb.

Прежде всего, смотрим диагностику:

cat /proc/mdstat

или

mdadm --detail /dev/md0

Если вместо [UU] видим [U_], то дело плохо, целостность одного из дисков нарушена – нужно менять диск.

Для автоматического слежения и мониторинга дисков и массивов можно и нужно использовать возможности пакетов mdadm (monitor mode) и smartmontools (технология S.M.A.R.T.).

-1- Прежде всего, делаем так, чтобы с устройством никто не работал – см. п.1,2 Удаление программного (software) массива RAID.

-2- Помечаем раздел как сбойный:

mdadm --manage /dev/md0 --fail /dev/sdb1

-3- Отключаем раздел (удаляем из RAID1):

mdadm --manage /dev/md0 --remove /dev/sdb1

-4- Выключаем машину, меняем диск.

-5- Создаем через cfdisk или fdisk идентичные разделы, или c помощью sfdisk автоматически копируем структуру разделов первого диска /dev/sda:

sfdisk -d /dev/sda | sfdisk /dev/sdb

Этим способом можно пользоваться, поскольку в нашем примере «зеркальный» RAID1. При других уровнях (raid level), нужно разбить диск на раздел(ы) и пометить его(их) типом ФС «Linux raid autodetect».

-6- Добавляем раздел в RAID1 массив:

mdadm --manage /dev/md0 --add /dev/sdb1

-7- Ждем синхронизации массива:

mdadm --wait /dev/md0

http://avreg.net/howto_software-raid-replacing-faulty-drive.html

У нас есть сервер в котором 2 диска: /dev/sda и /dev/sdb. Эти диски собраны у нас в софтверный RAID1 с помощью mdadm. Один из дисков вышел из строя, в нашем случае это /dev/sdb.

******

I. Удаление диска из массива

Перед заменой диска желательно убрать диск из массива. Для начала проверим как размечен диск в массиве:

# cat /proc/mdstat 
Personalities : [raid1] [raid0] [raid6] [raid5] [raid4] 
md2 : active raid1 sda4[0] sdb4[1]
      1456504640 blocks super 1.2 [2/2] [UU]
      
md1 : active raid1 sda3[0] sdb3[1]
      7996352 blocks super 1.2 [2/2] [UU]
      
md0 : active raid1 sda2[0] sdb2[1]
      499392 blocks super 1.2 [2/2] [UU]
      
unused devices: <none>

В данном случае массив собран так. Что md0 состоит из sda2 и sdb2, md1 из sda3 и sdb3, md2 из sda4 и sdb4. На этом сервере md0 это /boot, md1 — своп, md2 — корень. Убираем sdb из всех устройств.

# mdadm /dev/md0 --remove /dev/sdb2
# mdadm /dev/md1 --remove /dev/sdb3
# mdadm /dev/md2 --remove /dev/sdb4

Если разделы из массива не удаляются, это как в нашем случае. Mdadm не считает диск неисправным и использует его, и при удалении мы увидим ошибку, что устройство используется. В этом случае перед удалением помечаем диск как сбойный.

# mdadm /dev/md0 -f /dev/sdb2
# mdadm /dev/md1 -f /dev/sdb3
# mdadm /dev/md2 -f /dev/sdb4

А затем снова выполним команды по удалению разделов из массива. Все, мы удалили сбойный диск из массива. Теперь можем писать в датацентр запрос на замену диска.

II. Добавление диска в массив после замены

  1. Определение таблицы разделов(GPT или MBR) и перенос её на новый диск

После замены поврежденного диска нужно добавить новый диск в массив. Для этого надо определить какая у нас таблица разделов: GPT или MBR. Для этого будем использовать gdisk Установим gdisk:

# apt-get install gdisk -y

Выполняем:

# gdisk -l /dev/sda

Где /dev/sda — исправный диск находящийся в raid. В выводе будет примерно это для MBR:

Partition table scan:
MBR: MBR only
BSD: not present
APM: not present
GPT: not present

И примерно это для GPT:

Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present

Перед добавлением диска в массив нам нужно на нем создать разделы в точности такие же как и  на sda. В зависимости от разметки диска это делается по разному.

Копирование разметки для GPT:

# sgdisk -R /dev/sdb /dev/sda

Здесь надо быть внимательным. Первым пишется диск на который копируется разметка, а вторым с которого копируют. Если перепутать их местами, то разметка на изначально исправном диске будет уничтожена.
Даем диску новый случайный UIDD:

# sgdisk -G /dev/sdb

Копирование разметки для MBR:

# sfdisk -d /dev/sda | sfdisk /dev/sdb

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

# sfdisk -R /dev/sdb

  2. Добавление диска в массив

Когда мы создали разделы на /dev/sdb, то можно добавлять диск в массив.

# mdadm /dev/md0 -a /dev/sdb2
# mdadm /dev/md1 -a /dev/sdb3
# mdadm /dev/md2 -a /dev/sdb4

III. Установка загрузчика

После добавления диска в массив нужно установить на него загрузчик. Если сервер загружен в нормальном режиме, то это делается одной командой:

# grub-install /dev/sdb

Если сервер загружен в recovery или rescue, т.е с live cd, то установка загрузчика выглядит следующим образом.
Монтируем корневую файловую систему в  /mnt:

# mount /dev/md2 /mnt

Монтируем boot:

# mount /dev/md0 /mnt/boot

Монтируем /dev, /proc и /sys:

# mount --bind /dev /mnt/dev
# mount --bind /proc /mnt/proc
# mount --bind /sys  /mnt/sys

Затем делаем chroot в примонтированную систему:

# chroot /mnt

И устанавливаем grub на sdb:

# grub-install /dev/sdb

Теперь можно попробовать загрузится в нормальный режим.

P.S. Если при установке загрузчика возникнет ошибка Could not find device for /boot/boot: not found or not a block device то вам сюда.

https://anikin.pw/all/zamena-dika-v-programnom-raid1-v-linux/

image_pdfimage_print

Wi-Fi адаптер как точка доступа. Настройка в Windows 10, 8, 7

Возникла задача, в комнате раздать интернет по WiFi самым быстрым способом. В наличии ПК, подключен по гигабиту к роутеру (роутер находиться через 4 комнаты), мобильные телефоны и ноутбук, а также старенький USB WiFi-адаптер.

Запускаем cmd от имени Администратора. И вводим команду меняя название сети и ее пароль:

C:\WINDOWS\system32>netsh wlan set hostednetwork mode=allow ssid="ring" key="111111111" keyUsage=persistent
Режим размещенной сети разрешен в службе беспроводной сети.
Идентификатор SSID размещенной сети успешно изменен.
Парольная фраза пользовательского ключа размещенной сети была успешно изменена.

Запускаем точку доступа. Для этого выполните команду:

C:\WINDOWS\system32>netsh wlan start hostednetwork
Размещенная сеть запущена.

Это значит, что Wi-Fi сеть уже транслируется, и к ней можно подключать (без интернета) свои устройства.

В свойствах нашего подключения к интернету нужно открыть общий доступ, но открываем свойства того адаптера, через который у вас подключен интернет!!!:

Проверяем.

Сеть будет работать до первой перезагрузки, после нужно выполнить команду:

netsh wlan start hostednetwork

А можно написать скрипт и поставить в автозагрузку, например WiFi_start.bat:

chcp 1251
netsh wlan start hostednetwork >> F:\_log\backup_WiFi_start_bat.log

Добавляем в автозагрузку:

gpedit.msc

Конфигурация компьютера -> Конфигурация Windows -> Сценарии (запуск/завершение) -> Автозагрузка.

Во вкладке “Сценарии” добавляем WiFi_start.bat BATCH-файл. Этот скрипт будет выполняться до того как пользователь залогинится в систему.

image_pdfimage_print

PuTTY – автологин без ключа

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

Будем использовать ярлыки. Интерфейс командной строки к PuTTY имеет следующий вид:

putty.exe -load SESSION -pw PASSWORD

или же

putty.exe USER@SERVER -pw PASSWORD

Можно не указывать загрузку сеанса:

putty.exe -pw PASSWORD

или же не указывать пароль:

putty.exe -load SESSION

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

 

https://putty.org.ru/articles/putty-ssh-autologin.html

image_pdfimage_print

Open VPN добавить пользователей

Добавляем ключи для пользователей:

# cd /etc/openvpn/keys/easy-rsa-master/easyrsa3
# ./easyrsa gen-req user1
# ./easyrsa gen-req user2

По запросу устанавливаем пароль для пользователя и подтверждаем его, например 1234.

Подписываем полученные ключи:

# ./easyrsa sign-req client user1
# ./easyrsa sign-req client user2

Вводим пароль от удостоверяющего центра CA.

Переходим в каталог ccd и создаем файлы конфигураций для клиентов, например:

# nano /etc/openvpn/ccd/user1
iroute 192.168.113.0 255.255.255.0

# nano /etc/openvpn/ccd/user2 
iroute 192.168.113.0 255.255.255.0

Собираем в архив ключи и сертификаты, должно быть 4 файла:

user1.crt;
user1.key;
ca.crt;
ta.key;

Для другого пользователя

user2.crt;
user2.key;
ca.crt;
ta.key;

Передаем архив пользователю.

image_pdfimage_print

Amavisd-new – вытащить письмо из карантина

Пользователь пожаловался, что ему не дошло важное письмо. Смотрим:

# cd /var/log
# less /var/log/amavisd-new.log | grep lost-user@domen.com
Mar 30 11:56:45 mail amavis[54065]: (54065-08-2) Blocked BANNED (.exe,.exe-ms,ARJ.EXE) {DiscardedInbound,Quarantined}, [144.144.19.126]:48150
[144.144.19.126] <lost-user@domen.com> -> <our-user@our-domen.com>, quarantine: banned-moyzW3GMNpwS, Queue-ID: 5799E3010E61,
Message-ID: <9af345ff23cd42ad8a92cd527f3e716f@domen.com>, mail_id: moyzW3GMNpwS, Hits: -, size: 3346252, 7559 ms

где lost-user@domen.com чужой адрес, our-user@our-domen.com наш адрес, banned-moyzW3GMNpwS название письма в карантине.

Пересылаем пользователю:

# amavisd-release banned-moyzW3GMNpwS
250 2.0.0 from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as 097AF3010E19

В этом случае виной было вложение попавшее под запрет (какая то програмка).

image_pdfimage_print