Информация о системе
Мониторинг системы Linux Ubuntu
Общие сведения о системе
#!/bin/bash
#https://www.dmosk.ru/faq.php?object=linux-pc-info#memoryinfo
#Информация о системе, железо и ресурсы
echo -e " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . \n"
echo "ДИСТРИБУТИВ И РЕЛИЗ:"
echo "*********************"
lsb_release -d
echo -e "\nПРОЦЕССОР:"
echo "***********"
lscpu | grep -i core
echo -e "\n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . \n"
echo "ТИП СЕРВЕРА:"
echo "*****************************"
dmidecode | grep Product
lshw -class system
dmesg | grep "Hypervisor detected" #Если машина физическая, тогда ничего не покажет, либо покажет KVM
hostnamectl #Chassis:
echo -e "\n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . \n"
echo "ОПЕРАТИВНАЯ ПАМЯТЬ И ПОДКАЧКА"
echo "*****************************"
free -m
echo -e "\n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . \n"
echo "НАЛИЧИЕ ИНСТРУКЦИЙ FMA AVX"
echo "**************************"
if [ $(grep -iwc "fma" /proc/cpuinfo) -gt 0 ]; then echo "FMA есть"; else echo "FMA нет"; fi
if [ $(grep -iwc "avx" /proc/cpuinfo) -gt 0 ]; then echo "AVX есть"; else echo "AVX нет"; fi
if [ $(grep -iwc "avx2" /proc/cpuinfo) -gt 0 ]; then echo "AVX2 есть"; else echo "AVX2 нет"; fi
echo -e "\n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . \n"
echo "ПОКАЗАТЕЛЬ ЭНТРОПИИ:"
echo "*********************"
cat /proc/sys/kernel/random/entropy_avail
echo -e "\n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . \n"
echo "ВРЕМЯ РАБОТЫ СИСТЕМЫ:"
echo "**********************"
uptime -p
echo -n "дата и время с момента загрузки: "
uptime -s
echo -e "\n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . \n"
Cron
#!/bin/bash
# https://blog.programs74.ru/how-to-get-all-cron-tasks-for-all-linux-user/
#https://ru.wikipedia.org/wiki/Anacron
#https://blog.sedicomm.com/2020/04/11/cron-ili-anacron-kak-planirovat-vypolnenie-zadach-s-pomoshhyu-anacron-v-linux/
#проверка активности cron
echo "АКТИВНЫЕ ПРОЦЕССЫ CRON"
echo "**********************"
pgrep crond
echo "============================================================================"
for user in $(cut -f1 -d: /etc/passwd); do
#if [ -n `crontab -u $user -l | grep -E "^[^#]" | grep -E "\*"` ]; then
echo "CRON ДЛЯ ПОЛЬЗОВАТЕЛЯ $user"
echo "*****************************************"
crontab -u $user -l | grep -E "^[^#]" | grep -E "\*|[0-9]"
echo " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . "
#fi
done
#Чтобы запретить или разрешить добавление крон-задач, нужно прописать юзера в: /etc/cron.d/cron.allow /etc/cron.d/cron.deny
#некоторые кроны лежат тут:
# ls -lah /etc/cron.daily/
# ls -lah /etc/cron.hourly/
# ls -lah /etc/cron.weekly/
# ls -lah /etc/cron.monthly/
# Программы добавляют задание в крон, чаще для автоматического выполнения сюда: /etc/cron.d/
#Мы можем проверить, есть ли какие-либо задания cron для этой учётной записи пользователя, используя ls:
#sudo ls -lh /var/spool/cron/crontabs/eric
#r (удалить) удаляет задания, а параметр -u (пользователь) сообщает crontab, чьи задания следует удалить.
#sudo crontab -r -u eric
#Таймеры systemd для замены Cron
#systemctl list-timers
Информация о пользователях в системе
#!/bin/bash
echo "ПОЛЬЗОВАТЕЛИ В СИСТЕМЕ:"
echo "* * * * * * * * * * * * * "
w #для ubuntu
who #для ubuntu и alpine
echo "ПОСЛЕДНИЕ ЗАРЕГИСТРИРОВАННЫЕ ПОЛЬЗОВАТЕЛИ И ВРЕМЯ ПЕРЕЗАГРУЗКИ"
last #
echo "СПИСОК НЕ СИСТЕМНЫХ ПОЛЬЗОВАТЕЛЕЙ:"
echo "* * * * * * * * * * * * * "
cat /etc/passwd | awk '/bash/{print}'
echo "ПОКАЗАТЬ ПОЛЬЗОВАТЕЛЕЙ С ПРАВАМИ SUDO"
cat /etc/sudoers | grep ALL
#echo "ВСЕ ФАЙЛЫ ПОЛЬЗОВАТЕЛЯ:"
#find / -user $user -print
#echo "ВЫВОД АКТИВНЫХ ПРОЦЕССОВ ПОЛЬЗОВАТЕЛЯ:"
#ps -u $user
#БЛОКИРОВКА ПОЛЬЗОВАТЕЛЯ
#sudo passwd -l $user
#найти все файлы пользователя и изменить права на другого пользователя
#find / -user testuser -exec chown toly:toly {} \;
#В Linux имеются скрипты, которые выполняются автоматически при входе пользователя в систему
#/etc/profile
#/etc/profile.d/*
#~/.bash_profile
#~/.bashrc
#/etc/bashrc
Сетевая активность
echo "АКТИВНЫЕ ПОДКЛЮЧЕНИЯ К СЕРВЕРУ"
IP=`ip addr list eth0 | grep " inet " | head -n 1 | cut -d " " -f 6 | cut -d / -f 1` && netstat -n | grep $IP | grep "ESTABLISHED" | awk '{print $5}' | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | sort -h | uniq -c
#Сие скрипт для сканирования сетевой активности внутри сервера, информация о подключенных пользователяx, использование ресурсов сервера
#http://rus-linux.net/MyLDP/consol/find-recent-file.html
#netstat -ltup где Флаг -l говорит netstat вывести все прослушивающие сокеты, -t означает показать все TCP соединения, -u для показа всех UDP соединений и -p включает показывать PID и имя программы/приложения, которое прослушивает порт. Е
сли вы хотите, чтобы порты были показаны как числа, то добавьте флаг -n.
#Альтернативная утилита ss принимает такие же параметры, но если добавить опцию -p тогда покажет процессы которые используют сокеты
#В параметр state можно передать одно из следующих значений:
#established
#syn-sent
#syn-recv
#fin-wait-1
#fin-wait-2
#time-wait
#closed
#close-wait
#last-ack
#closing
#all - все состояния
#connected - все кроме прослушиваемых и закрытых
#synchronized - все кроме syn-sent
#bucket - time-wait и syn-recv
#big - все кроме bucket
echo "SSH СОЕДИНЕНИЯ"
ss -ptu | grep ssh
#Пока непонятная мне альтернативная команда
#ss -at '(dport=:ssh or sport=:ssh)'
echo "ПРОСЛУШИВАЕМЫЕ ПОРТЫ: "
ss -ltupn
echo "УСТАНОВЛЕННЫЕ СОЕДИНЕНИЯ"
ss -t4 state established
echo "ПОРТЫ В СОСТОЯНИИ ОЖИДАНИЯ"
ss -utn state time-wait
echo "ПРИЛОЖЕНИЯ КОТОРЫЕ ПРОСЛУШИВАЮТ ДАННЫЕ ПОРТЫ"
#Сюда необходимо добавить подстановку портов, которые были найдены выше
#Анализ открытых файлов
#lsof | grep sshd (файлы которые использует служба sshd)
#lsof / | grep sshd (только файл)
#lsof | grep deleted (файл который уже удален, возможно чтобы не быть обнаруженным антивирусом)
#lsof /usr (посмотреть открытые файлы в определенной директории)
lsof -i :443
Файловая система
echo "ФАЙЛЫ КОТОРЫЕ БЫЛИ УДАЛЕНЫ"
lsof | grep deleted
#Анализ открытых файлов
#lsof | grep sshd (файлы которые использует служба sshd)
#lsof / | grep sshd (только файл)
#lsof | grep deleted (файл который уже удален, возможно чтобы не быть обнаруженным антивирусом)
#lsof /usr (посмотреть открытые файлы в определенной директории)
echo "ПОИСК ФАЙЛОВ КОТОРЫЕ БЫЛИ ИЗМЕНЕНЫ МЕНЕЕ ЧЕМ 1 ДЕНЬ НАЗАД"
echo "bin"
find /bin/ -mtime -1
echo "system"
find /etc/systemd/system/ /usr/lib/systemd/system/ -mtime -1
echo "ПОИСК ФАЙЛОВ КОТОРЫЕ БЫЛИ ИЗМЕНЕНЫ МЕНЕЕ 20 ДНЕЙ НАЗАД И БОЛЕЕ ЧЕМ 1 ДЕНЬ НАЗАД"
echo "bin"
find /bin/ -mtime +1 -mtime -20
echo "system"
find /etc/systemd/system/ /usr/lib/systemd/system/ -mtime +1 -mtime -20
echo "ФАЙЛЫ ПРАВА КОТОРЫХ БЫЛ ИЗМЕНЕН МЕНЕЕ 20 ДНЕЙ НАЗАД"
echo "bin"
find /bin/ -ctime -20
echo "system"
find /etc/systemd/system/ /usr/lib/systemd/system/ -ctime -20
echo "ПОКАЗАТЬ АКТИВНЫЕ СЛУЖБЫ"
systemctl list-unit-files
Процессы
echo "20 САМЫХ ЗАГРУЖЕННЫХ ПРОЦЕССОВ:"
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head -n 20
#Обновление самых загруженных процессов:
#watch "ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head"
#Альтернативная команда top
#top -b -n 1 | head -n 20 | tail -n 10
#echo "ПОКАЗАТЬ К КАКИМ ФАЙЛАМ ОБРАЩАЕТСЯ PHP-FPM"
#lsof -c php-fpm
Система ввода-вывода
echo "СПИСОК ДИСКОВ И РАЗМЕР"
echo "***********************"
lsblk | grep -vwE "loop[0-9]{1,3}"
echo -e "\n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . \n"
echo "ЗАГРУЖЕННОСТЬ ДИСКОВ:"
iostat -hx
Вредные программы
#Проверка на наличие известных кейлогеров
ps -aux | grep -e lkl -e uberkey -e THC-vlogger -e PyKeylogger -e logkeys
#Возможная последовательность команд для деактивации вирусов:
#sudo systemctl disable pwnrige.service pwnrigl.service &&
#sudo chattr -ai /bin/sysdr /bin/bprofr /bin/crondr /etc/systemd/system/pwnrige.service /usr/lib/systemd/system/pwnrigl.service /etc/cron.d/root /etc/cron.d/nginx /etc/cron.d/apache /var/spool/cron/root /root/.bash_profile &&
#sudo rm /bin/sysdr /bin/bprofr /bin/crondr /etc/systemd/system/pwnrige.service /usr/lib/systemd/system/pwnrigl.service /etc/cron.d/root /etc/cron.d/nginx /etc/cron.d/apache /var/spool/cron/root /root/.bash_profile &&
#reboot
Источники
Последнее изменение: 10.10.2024 05:01
Связанные темы
Структура каталогов linux(Debian)
Использование модуля pg_stat_statements в postgresql
Поиск уязвимостей и следов взлома в Linux
Управление планировщиком в Postgresql
Сброс пароля root в grub (Linux)
Базовые понятие о настройках и безопасности в сети
Системные каталоги в Postgresql
Саздание сертификатов SSL (TLS) для сайта
Мониторинг событий в linux с помощью auditd
Сценарии инициализации в Linux Ubuntu
Внутренние и внешние команды linux
Использование fail2ban в Linux
Добавлять комментарии могут только авторизованные пользователи