
- Главная
- Каталог
- Интернет технологии
- NetworkAdmin.ru
NetworkAdmin.ru
Рассказываю про нововведения, утилиты, баги, актуальные уязвимости, и гайды в Windows & Linux.
сисадмин, сетевой админ, линукс, виндовс, иб, sysadmin, infosec, devops, bash, python
Статистика канала
/etc/passwd, кто переписал конфиг, кто удалил файл, и когда это произошло.
Если обычные логи тут не помогают, то на помощь идет auditd - подсистема аудита в linux, которая умеет фиксировать действия с файлами, процессами, системными вызовами и пользователями. Для админа это один из самых полезных инструментов, когда нужно не гадать, а точно увидеть факт доступа или изменения.
apt install auditd audispd-plugins{}
или:
yum install audit{}
systemctl enable --now auditd{}
Теперь самое полезное - можно поставить правило на конкретный файл или каталог. Например, хотим отслеживать изменения файла /etc/ssh/sshd_config:
auditctl -w /etc/ssh/sshd_config -p wa -k sshd_config_watch{}
-w - watch, следить за файлом
-p wa - отслеживать запись (w) и изменение атрибутов (a)
-k sshd_config_watch - удобный ключ для поиска событий
После этого все изменения файла начнут попадать в audit log.
Посмотреть события можно так:
ausearch -k sshd_config_watch{}
Если нужен более читаемый вывод:
ausearch -k sshd_config_watch -i{}
Здесь можно увидеть, например, что файл менял vim, sed, ansible, echo >>, или какой-нибудь скрипт деплоя.
Если нужно следить не за одним файлом, а за каталогом:
auditctl -w /etc/nginx/ -p wa -k nginx_conf_watch{}
Теперь можно быстро искать все события по конфигам Nginx:
ausearch -k nginx_conf_watch -i{}
aureport. Например, краткий отчет по событиям:
aureport -f -i{}
Он показывает сводку по файловым операциям. Здесь важно учесть: правила через auditctl обычно неперсистентны. То есть после перезагрузки они исчезнут. Чтобы сохранить их постоянно, добавляют правила в конфиг auditd, например:
/etc/audit/rules.d/audit.rules{}
или отдельным файлом в rules.d, например:
-w /etc/ssh/sshd_config -p wa -k sshd_config_watch
-w /etc/nginx/ -p wa -k nginx_conf_watch{}
А потом загружают правила:
augenrules --load{}
или перезапускают auditd.
#linux #auditd
apt install httpie{}
или:
pip install httpie{}
http GET https://api.netwrokadmin.ru/users{}
Можно даже короче:
http https://api.netwrokadmin.ru/users{}
Ответ HTTPie показывает в читаемом виде:
статус
заголовки
JSON с форматированием
Именно это делает его удобным при ручной диагностике API.
http POST https://api.netwrokadmin.ru/users name=alice role=admin{}
HTTPie сам соберет JSON и выставит правильный Content-Type.
Если нужен явный raw JSON:
http POST https://api.netwrokadmin.ru/users <<< '{"name":"alice","role":"admin"}'{}
http GET https://api.netwrokadmin.ru/users Authorization:"Bearer TOKEN"{}
http -f POST https://api.netwrokadmin.ru/upload file@backup.tar.gz{}
Для скриптов и старых automation-цепочек curl по-прежнему часто остается стандартом. А вот для ручной работы с API в терминале httpie обычно приятнее.
#httpie #api
Что с его помощью обычно делают: ограничивают скорость; дают приоритет важному трафику; режут шумные сервисы; эмулируют плохую сеть: delay, loss, jitter; наводят порядок на WAN-линках и VPN.Самое главное, что нужно понять: QoS в linux почти всегда про исходящий трафик (egress). Входящий поток контролировать сложнее, обычно его либо полируют через IFB, либо ограничивают уже на стороне отправителя.
tc qdisc add dev eth0 root tbf rate 50mbit burst 32kbit latency 400ms{}
tbf - Token Bucket Filter
rate - лимит скорости
burst - допустимый всплеск
latency - максимальная задержка очереди
tc qdisc del dev eth0 root{}
Если нужен вариант без магии, для большинства случаев, чаще смотрят в сторону fq_codel или cake. Например:
tc qdisc add dev eth0 root fq_codel{}
fq_codel хорош тем, что помогает бороться с bufferbloat и в целом делает очередь более адекватной без сложной ручной настройки.
tc qdisc add dev eth0 root cake bandwidth 100mbit{}
Почему tc кажется страшным: qdisc class filter parent handle flowidНа первый взгляд это выглядит как отдельная религия. Но на практике часто хватает 3 сценариев: ограничить скорость сделать очередь адекватной эмулировать плохую сеть для тестов Например, добавить задержку в 100 мс:
tc qdisc add dev eth0 root netem delay 100ms{}
Или сделать "плохую" сеть с потерями:
tc qdisc add dev eth0 root netem delay 100ms loss 2%{}
Это уже очень полезно для тестирования приложений, API, VoIP, VPN и всего, что в локалке работает идеально, а в реальной сети нет.
#tc #network
useradd -m -s /bin/bash "$name"
mkdir -p "/home/$name/.ssh"
cp ./authorized_keys "/home/$name/.ssh/authorized_keys"
chown -R "$name:$name" "/home/$name/.ssh"
chmod 700 "/home/$name/.ssh"
chmod 600 "/home/$name/.ssh/authorized_keys"{}
А так:
create_user "$name"
install_ssh_keys "$name"
harden_ssh_dir "$name"{}
Внутри этих функций может быть что угодно, но снаружи скрипт начинает читаться как сценарий действий, а не как трассировка мыслей уставшего админа.
Например:
create_user() {
useradd -m -s /bin/bash "$1"
}
install_ssh_keys() {
local user="$1"
mkdir -p "/home/$user/.ssh"
cp ./authorized_keys "/home/$user/.ssh/authorized_keys"
chown -R "$user:$user" "/home/$user/.ssh"
}
harden_ssh_dir() {
local user="$1"
chmod 700 "/home/$user/.ssh"
chmod 600 "/home/$user/.ssh/authorized_keys"
}{}
Теперь верхний уровень скрипта выглядит уже не как набор случайных действий, а как понятный workflow:
create_user "$name"
install_ssh_keys "$name"
harden_ssh_dir "$name"{}
require_root
check_dependencies
backup_config "/etc/nginx/nginx.conf"
deploy_new_config "./nginx.conf" "/etc/nginx/nginx.conf"
test_nginx_config
reload_nginx{}
Такой bash уже напоминает не набор shell-команд, а язык операций для конкретной задачи.
Пример плохого Bash-скрипта:
cp "$src" "$dst" &&
nginx -t &&
systemctl reload nginx ||
echo "something failed"{}
Пример более читаемого подхода:
deploy_config "$src" "$dst"
validate_nginx
reload_service nginx{}
Да, bash не станет от этого python. Но даже в shell можно писать так, чтобы скрипт был похож на понятную инструкцию, а не на клубок из условий, пайпов и боли.
#bash #scripting
gping и fping. Они не заменяют классический ping, а скорее дополняют его под разные задачи.
apt install gping{}
Пример запуска:
gping 1.1.1.1 8.8.8.8 8.8.4.4{}
На выходе получаете наглядное сравнение задержек между несколькими хостами. Например, сразу видно, какой DNS отвечает быстрее и насколько стабилен отклик во времени.
Практической пользы для серверной рутины тут не всегда много, но для личного терминала, быстрой проверки канала или просто наглядной диагностики - вещь приятная.
gping скорее из категории удобных и визуально понятных инструментов, чем must-have на каждом сервере.
apt install fping{}
Например, быстро найти активные узлы в сети можно так:
fping -g 192.168.13.0/24 -qa{}
На выходе получите только адреса тех хостов, которые ответили:
192.168.13.1
192.168.13.2
192.168.13.17
192.168.13.50
192.168.13.186{}
Очень удобно, потому что формат вывода уже готов для скриптов: одна строка - один IP.
Можно проверять и диапазон явно:
fping -s -g 192.168.13.1 192.168.13.50 -qa{}
Если нужен обычный пинг одного хоста:
fping 10.20.1.2{}
Результат будет простой и понятный:
10.20.1.2 is alive{}
Еще один полезный сценарий - использовать fping в скриптах через код возврата. Например:
fping 10.20.1.2 -q
echo $?{}
Если хост доступен, получите: 0
Если нет:
fping 10.20.1.3 -q
echo $?{}
Результат: 1
Это удобно, потому что не нужно парсить лишний текст, обрезать вывод или городить grep.
Команда либо успешна, либо нет и этого уже достаточно для автоматизации.
Обе утилиты полезны, но в разных сценариях.
gping - больше про удобство и визуализацию.
fping - про практичность, автоматизацию и реальные админские задачи.
#ping #network
Отзывы канала
всего 10 отзывов
- Добавлен: Сначала новые
- Добавлен: Сначала старые
- Оценка: По убыванию
- Оценка: По возрастанию
Каталог Телеграм-каналов для нативных размещений
NetworkAdmin.ru — это Telegam канал в категории «Интернет технологии», который предлагает эффективные форматы для размещения рекламных постов в Телеграмме. Количество подписчиков канала в 4.7K и качественный контент помогают брендам привлекать внимание аудитории и увеличивать охват. Рейтинг канала составляет 36.0, количество отзывов – 10, со средней оценкой 5.0.
Вы можете запустить рекламную кампанию через сервис Telega.in, выбрав удобный формат размещения. Платформа обеспечивает прозрачные условия сотрудничества и предоставляет детальную аналитику. Стоимость размещения составляет 3865.73 ₽, а за 80 выполненных заявок канал зарекомендовал себя как надежный партнер для рекламы в TG. Размещайте интеграции уже сегодня и привлекайте новых клиентов вместе с Telega.in!
Вы снова сможете добавить каналы в корзину из каталога
Комментарий