Информация о системе

Мониторинг системы 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


    Связанные темы

    Что такое tty

    Структура каталогов linux(Debian)

    Использование strace в Linux

    Использование модуля pg_stat_statements в postgresql

    Поиск уязвимостей и следов взлома в Linux

    Монтирование в linux

    Процессы и потоки в Linux

    Использование curl в Linux

    Systemd в Linux

    Анализ rdp

    Управление планировщиком в Postgresql

    Ядро Linux

    Сброс пароля root в grub (Linux)

    dmesg

    Базовые понятие о настройках и безопасности в сети

    Логирование в postgresql

    tmpfs в Linux

    Использование tshark в Linux

    Системные каталоги в Postgresql

    Использование lsof в Linux

    Саздание сертификатов SSL (TLS) для сайта

    Мониторинг событий в linux с помощью auditd

    Мониторинг Postgresql

    Файлы в Linux

    Анализ дисковой активности

    Сценарии инициализации в Linux Ubuntu

    Внутренние и внешние команды linux

    Использование audit

    Поиск уязвимостей в сети

    Использование fail2ban в Linux

    openssl в Linux Alpine

    Работа с модулями в Linux

    Perf

    Мониторинг системы Linix с помощью getconf

    Использование netstat Linux

    Подключение по ключу (ssh)

    Установка и настройка tftp сервера в Linux Ubuntu

    Здесь пока нет комментариев
    Добавлять комментарии могут только авторизованные пользователи

    Авторизоваться
    Я буду рекламой
    Я тоже буду рекламой
    И я
    ВВЕРХ