# Практическая работа №*. Развертывание сервера на базе Debian 11 ###### tags: `Организация сетевой безопасности` --- ::: spoiler 1. Установка Debian 11 ### Установка serverPRO ![](https://i.imgur.com/d68wgPs.png) > `lsb_release` > `cat /etc/debian_version` ### Настройка serverPRO и установка вспомогательного ПО > `sudo apt install sudo lshw hwinfo lsscsi inxi sysstat htop ssh lvm2 mdadm samba smbclient iptables fail2ban ipset chrony tripwire rsync lynis auditd scalpel nmap selinux-basics selinux-policy-default libpam-cracklib quota krb5-kdc krb5-admin-server logwatch aide dump neofetch -y` > `usermod -aG sudo alku` ### Вывод информации об установленной системе ![](https://i.imgur.com/kDjENR7.png) > `neofetch` --- ### Установка clientPRO ![](https://i.imgur.com/mvBep1K.png) > `lsb_release` > `cat /etc/debian_version` ### Настройка clientPRO и установка вспомогательного ПО > `sudo apt install sudo neofetch smbclient chrony krb5-user libpam-ccreds libpam-krb5 -y` > `usermod -aG sudo alku` ### Вывод информации об установленной системе ![](https://i.imgur.com/Us5B0lT.png) > `neofetch` > `ip -c -br a` ::: ::: spoiler 2. Получение перечня оборудования в системе и подробной информации о каждом компоненте serverPRO ## serverPRO ### Вывод списка аппаратных устройств ![](https://i.imgur.com/GjqIRnv.png) > `sudo lshw -short` ### Вывод информации об аппаратуре компьютера ![](https://i.imgur.com/ouD02n4.png) > `sudo hwinfo` ### Вывод информации о процессоре и его составляющих ![](https://i.imgur.com/LMHBSiS.png) > `sudo lscpu` ### Вывод информации о шинах PCI и устройствах, которые к ним подключены ![](https://i.imgur.com/EfgVqAM.png) > `sudo lspci` ### Вывод информации об устройствах scsi/sata (жесткие диски/оптические приводы) ![](https://i.imgur.com/bXpQ2fF.png) > `sudo lsscsi` ### Вывод информации о контроллерах usb и подключенным к ним устройствам ![](https://i.imgur.com/uJKh5Tn.png) > `sudo lsusb` ### Вывод информации об аппаратном обеспечении в читаемом виде ![](https://i.imgur.com/RnMjsjm.png) > `sudo inxi -Fx` ### Вывод информации о блочных устройствах ![](https://i.imgur.com/XfFllwR.png) > `sudo lsblk` ### Вывод информации о разделах, их точеках монтирования и свободном месте ![](https://i.imgur.com/nwgt7I6.png) > `sudo df -h` ### Вывод информации о файлах /proc (конфигурации и аппаратное обеспечение) ![](https://i.imgur.com/BOexLOW.png) > `sudo cat /proc/cpuinfo` ![](https://i.imgur.com/jij4pl2.png) > `sudo cat /proc/meminfo` ![](https://i.imgur.com/Hy2djDB.png) > `sudo cat /proc/verison` ![](https://i.imgur.com/YRVUuIA.png) > `sudo cat /proc/partitions` ::: ::: spoiler 3. Сбор максимальной информации о дистрибутиве утилитами df, du, free, iostat, mpstat, vmstat, w, htop ## df ### Отчет о доступном и используемом дисковом пространстве в читаемом режиме с указанием типа файловой системы и включением итога обо всей ОС ![](https://i.imgur.com/xcjJgYh.png) > `df -a -h -T --total` --- ## du ### Отчет о занятом файлами месте на диске в читаемом режиме и включением итога по всему разделу ![](https://i.imgur.com/M9R9DzW.png) > `du -a -h --max-depth=1 /` --- ## free ### Отчет о распределении физической памяти и памяти подкачки, а также о свободной и используемой памяти в читаемом режиме ![](https://i.imgur.com/Qp2lCGQ.png) > `free -h -w -t` --- ## iostat ### Отчет по статисктике процессора и статистике I/O для устройств и разделов в читаемом режиме ![](https://i.imgur.com/DrRbeEe.png) > `iostat -h -x` --- ## mpstat ### Отчет по статистике, связанной с работой всех процессоров/ядер ![](https://i.imgur.com/ziQ46lj.png) > `mpstat -P ALL` --- ## vmstat ### Отчет о распределении виртуальной памяти и памяти подкачки, а также о свободной и используемой памяти в формате таблицы ![](https://i.imgur.com/gJXaG5a.png) > `vmstat -s` --- ## w ### Отчет о пользователе и о его действиях ![](https://i.imgur.com/jxowQiX.png) > `w` --- ## htop ### Интерактивный отчет о процессах системы ![](https://i.imgur.com/t8X0xOA.png) > `htop` ::: ::: spoiler 4. Выделение двух жестких дисков ### Вывод информации об установленной системе #### Добавление дисков в VMware ![](https://i.imgur.com/C335LIA.png) #### Просмотр подключенных устройств ![](https://i.imgur.com/2Y82S10.png) > `sudo fdisk -l` ::: ::: spoiler 5. Разбиение дисков на логические разделы с монтированием к директориям ## serverPRO ### Проверка подключения двух дополнительных дисков и их доступности в системе ![](https://i.imgur.com/ynkGUM7.png) > `sudo fdisk -l` ### Инициализация дисков для дальнейшего использования LVM ![](https://i.imgur.com/b19JZF1.png) > `sudo pvcreate /dev/sd{b,c}` ### Проверка, что данные диски могут использоваться LVM ![](https://i.imgur.com/8kbD6QG.png) > `sudo pvdisplay` ### Создание группы томов через объединение ранее помеченных дисков ![](https://i.imgur.com/2ZRdczJ.png) > `sudo vgcreate test /dev/sd{b,c}` ### Проверка создания группы томов ![](https://i.imgur.com/f9q2tnt.png) > `sudo vgdisplay` ### Создание логических томов определенных размеров ![](https://i.imgur.com/sMwkHcE.png) > `sudo lgcreate -L 4G test` > `sudo lgcreate -L 2G test` ### Вывод информации о логических томах ![](https://i.imgur.com/p8EG5Ka.png) > `sudo lvdisplay` ### Создание файловой системы на логических томах ![](https://i.imgur.com/Em9UT58.png) > `sudo mkfs.ext4 /dev/test/lvol0` > `sudo mkfs.ext4 /dev/test/lvol1` ### Создание директорий для монтирования к ним логических томов ![](https://i.imgur.com/7dFfzut.png) > `sudo mkdir /home/lvol0` > `sudo mkdir /home/lvol1` ### Добавление монтирования логических томов в процесс загрузки системы ![](https://i.imgur.com/jRF30fC.png) > `/dev/test/lvol0 /home/lvol0 ext4 defauts 1 2` > `/dev/test/lvol1 /home/lvol1 ext4 defauts 1 2` ### Проверка монтирования логических томов ![](https://i.imgur.com/JJoF3kw.png) > `sudo mount -a` > `dh -h` > `sudo lsblk` ::: ::: spoiler 6. Добавление жестких дисков и организация RAID1 ## serverPRO ### Создание дополнительных дисков ![](https://i.imgur.com/RvvOyao.png) ### Создание раздела /dev/sdd1 ![](https://i.imgur.com/juuWCMt.png) > `sudo fdisk /dev/sdd` ### Создание раздела /dev/sde1 ![](https://i.imgur.com/Xmott5E.png) > `sudo fdisk /dev/sde` ### Создание массива RAID1 при помощи mdadm ![](https://i.imgur.com/yNsrZJE.png) > `sudo mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sdd1 /dev/sde1` ### Назначение файловой системы на RAID1 ![](https://i.imgur.com/sGOnP6D.png) > `sudo mkfs.ext4 /dev/dm1` ### Создание директории и монтирование к ней RAID1, проверка на скорость записи и чтения ![](https://i.imgur.com/TDP4l8N.png) > `sudo mkdir /home/raid1` > `sudo mount /dev/dm1 /home/raid1` > `sudo dd if=/dev/zero of=/home/raid1/file.txt bs=1G count=1` ### Добавление монтирования RAID1 в процесс загрузки системы ![](https://i.imgur.com/4jgEIY6.png) > `sudo nano /etc/fstab` ### Проверка монтирования RAID1 ![](https://i.imgur.com/LHIDdHR.png) > `sudo mount -a` > `sudo df -h` ::: ::: spoiler 7. Настройка статического интерфейса ### serverPRO. Файл конфигурации и проверка настройки интерфейса ![](https://i.imgur.com/NUXur70.png) --- ### clientPRO. Файл конфигурации, проверка настройки интерфейса и связанности с serverPRO ![](https://i.imgur.com/tHV7wgs.png) ::: ::: spoiler 8. Организация синхронизации времени с помощью Chrony ### Проверка статуса сервиса chrony ![](https://i.imgur.com/VbWbmuJ.png) ### Изменение конфигурационного файла /etc/chrony/chrony.conf ![](https://i.imgur.com/AleY6sd.png) ### Просмотр ntp-серверов и синхронизация времени ![](https://i.imgur.com/EFbPkYi.png) > Есть два времени: локальное и глобальное (uefi/bios). При загрузке системы локальное время берется из глобавльного, затем при синхронизации с ntp/chrony серверами локальное время меняется (utc без timezone), добавляется разница временных зон и присваивается в локальное. Глобальное время также меняется. ::: ::: spoiler 9. Выключение компьютера по времени с предупреждением пользователей ### Выключение через 10 минут с предупреждающим сообщением ![](https://i.imgur.com/ZAZt1NZ.png) ### Сообщение удаленным пользоватетем ![](https://i.imgur.com/jQeEHte.png) ### Выключение в определенное время с предупреждающим сообщением ![](https://i.imgur.com/WV27dz2.png) ### Сообщение удаленным пользоватетем ![](https://i.imgur.com/tFrsRhm.png) ::: ::: spoiler 10. Организация выключения компьютера на ночь ### Планирование выключения на ночь с предупреждением пользователей ![](https://i.imgur.com/hSj6i1c.png) ::: ::: spoiler 11. Организация включения компьютера по рассписанию с помощью UEFI ### Организовать автозапуск виртуальной машины можно только из гипервизора. Симитировать можно программой rtcwake. ![](https://i.imgur.com/xGFtHni.png) > `sudo rtcwake -m on -s 60` ![](https://i.imgur.com/AjlpvSZ.png) > `date +%s -d "2022-12-12 8:00"` > `sudo rtcwake -m off -t 1670832000` ::: ::: spoiler 12. Проверка наличия systemd ### Проверка местоположения systemd ![](https://i.imgur.com/oFc0y2n.png) ### Проверка табуляции systemd ![](https://i.imgur.com/LkT5XeR.png) ::: ::: spoiler 13. Просмотр всех установленных служб ### Просмотр всех установленных служб ![](https://i.imgur.com/uKTB1an.png) > `sudo systemctl list-unit-files --type=service` ::: ::: spoiler 14. Выяснение длительности загрузки системы с помощью systemd ### Анализ потраченного времени при загрузке системы с целью выявить сервис, затрачивающий слишком много времени ![](https://i.imgur.com/l7DGBlc.png) > `sudo systemd-analyze blame` ![](https://i.imgur.com/kbvZz02.png) > `sudo systemd-analyze critical-chain` ::: ::: spoiler 15. Определение UID и GID ### Определение UID и GID пользователя с помомoщью id ![](https://i.imgur.com/VKHpjzo.png) > `id -u` > `id -g` ::: ::: spoiler 16. Создание системного пользователя без домашнего каталога и оболочки входа ### Создание системного пользователя без домашнего каталога и оболочки входа ![](https://i.imgur.com/I38e1H1.png) > `sudo useradd --no-create-home --system alki` ::: ::: spoiler 17. Проверка целостности файлов с УЗ ### Установка tripwire для проверки целостности системы ![](https://i.imgur.com/GCBZqqC.png) > Изменение конфигов - `/etc/tripwire/twpol.txt` > Сохранение правил - `tripwire --update-policy /etc/tripwire/twpol.txt` > Создание отчета - `tripwire --check --interactive` ::: ::: spoiler 18. Отключение УЗ пользователя без удаления ### Отключение и включение УЗ пользователя ![](https://i.imgur.com/qCKcBLy.png) > отключение - `sudo usermod -L` || `sudo passwd -l` > включение - `sudo usermod -U` || `sudo passwd -u` ::: ::: spoiler 19. Настройка SSH-сервера ### Настройка serverPRO. Файл конфигурации ssh-сервера по паролю и ключу ![](https://i.imgur.com/X2VWYj1.png) ### Настройка clientPRO. Генерация ключей и передача их на ssh-сервер для подключения по ключу ![](https://i.imgur.com/GPeTOpG.png) ### Настройка clientPRO. Создание alias для удобного подключения к ssh-серверу ![](https://i.imgur.com/8xh80Fh.png) ### Настройка serverPRO. Файл конфигурации ssh-сервера по ключу ![](https://i.imgur.com/pxLXZSc.png) ### Подключение клиента к серверу по ключу ![](https://i.imgur.com/O1ael5l.png) ::: ::: spoiler 20. Настройка явного указаниня пользователя об удаленном взаимодействии с сервером по SSH ### Настройка serverPRO. Создание отдельного пользователя с определенными правами и своей домашней директорией для удаленного подключения ``` sudo adduser ssh-user ``` ### Настройка serverPRO. Изменение скрипта инициализации оболочки пользователя ssh-user таким образом, чтобы было явно понятно, что пользователь работает удаленно по SSH ![](https://i.imgur.com/y3Ag17T.png) ``` PS1=\e[1;33mSSH-USER\e[4;92m@\e[0;95m\h\e[m \e[4;92m\W\e[m\$ \n echo "[---------]" echo "[--!SSH!--]" echo "[---------]" ``` > `добавление в конец конфига /home/ssh-user/.bashrc` ::: ::: spoiler 21. Установка и настройка Samba-сервера (+скрипт) ### Просмотр статуса сервиса samba ![](https://i.imgur.com/85kvOQT.png) > `sudo systemctl status smb.service` ### Создание директории для подключения по smb, создание группы и пользователя для назначения прав на подключение по smb ![](https://i.imgur.com/HIK63uM.png) > `sudo mdir -p /samba/share` > `sudo chmod -R 0755 /samba/share` > `sudo groupadd smbgrp` > `sudo useradd smbuser` > `sudo usermod -aG smbgrp smbuser` > `sudo chown smbuser.smbgroup` > `sudo smbpasswd -a smbuser` ### Просмотр конфигов samba-сервера ![](https://i.imgur.com/L3q2VUN.png) /etc/samba/smb.conf ``` [global] workgroup = WORKGROUP map to guest = bad user security = user recycle:versions = yes recycle:touch = yes recycle:keeptree = yes recycle:repository = /samba/share/.trash vfs object = recycle include = /etc/samba/share.conf ``` /etc/samba/share.conf ``` [share] path = /samba/share valid users = smbuser guest ok = no browseable = yes writeble = yes ``` ### Проверка подключения и работоспособности общей корзины ![](https://i.imgur.com/hq2aoPK.png) > `sudo smbclient -U smbuser \\\\192.168.100.100\\share` ### Правила iptables для ssh и samba ![](https://i.imgur.com/8GHyyMg.png) ``` sudo iptables -F sudo iptables -P INPUT DROP sudo iptables -A INPUT -t tcp -m tcp --dport 445 -s 192.168.100.0/24 -j ACCEPT sudo iptables -A INPUT -t tcp -m tcp --dport 139 -s 192.168.100.0/24 -j ACCEPT sudo iptables -A INPUT -t udp -m udp --dport 138 -s 192.168.100.0/24 -j ACCEPT sudo iptables -A INPUT -t udp -m udp --dport 137 -s 192.168.100.0/24 -j ACCEPT sudo iptables -A INPUT -t tcp -m tcp --dport 22 -s 192.168.100.0/24 -j ACCEPT sudo iptables -P INPUT DROP ``` ### Скрипт для прописывания и сохранения правил фильтрации трафика ``` #!/bin/bash case "$1" in -d) sudo iptables -F sudo iptables -P INPUT ACCEPT sudo iptables -P OUTPUT ACCEPT sudo iptables -P FORWARD ACCEPT ;; -ssh) sudo iptables -A INPUT -t tcp --dport 22 -s 192.168.100.0/24 -j ACCEPT sudo iptables -P INPUT DROP ;; -smb) sudo iptables -A INPUT -t tcp -m tcp --dport 445 -s 192.168.100.0/24 -j ACCEPT sudo iptables -A INPUT -t tcp -m tcp --dport 139 -s 192.168.100.0/24 -j ACCEPT sudo iptables -A INPUT -t udp -m udp --dport 138 -s 192.168.100.0/24 -j ACCEPT sudo iptables -A INPUT -t udp -m udp --dport 137 -s 192.168.100.0/24 -j ACCEPT sudo iptables -P INPUT DROP ;; -chr) sudo iptables -A INPUT -t udp -m udp --dport 123 -j ACCEPT sudo iptables -P INPUT DROP ;; -sh) sudo iptables -L -v -n ;; -sv) sudo bach -c "iptables-save > /etc/iptables/rules.v4" ;; -rs) sudo bach -c "iptables-restore /etc/iptables/rules.v4" ;; esac ``` > `upd` ::: ::: spoiler 22. Защита ssh-сервера с помощью iptables, fail2ban, ipset ## Настройка iptables > `sudo iptables -A INPUT -t tcp --dpor 22 -s 192.168.100.0/24 -j ACCEPT` ## Настройка fail2ban ### Установка fail2ban ![](https://i.imgur.com/nm0IAuS.png) ### Настройка fail2ban ![](https://i.imgur.com/nUHCFiA.png) /etc/fail2ban/jail.local ``` [sshd] enable = true port = ssh filter = sshd logpath = /var/log/auth.log maxretry = 3 bantime = 3600 ignoreip = 127.0.0.1 ``` ### Проверка работы fail2ban (включена аутентификация по паролю) ![](https://i.imgur.com/zZplIVk.png) > fail2ban создает правило для бана каждого ip-адреса в iptables ## Настройка ipset ### Добавление действия для бана по ipset ![](https://i.imgur.com/zVSbxhy.png) /etc/fail2ban/jail.local ``` [sshd] enable = true port = ssh filter = sshd logpath = /var/log/auth.log maxretry = 3 bantime = 3600 ignoreip = 127.0.0.1 action = iptables-ipset-proto6[name=SSH, port=ssh, protocol=tcp, bantime=3600] ``` ### Проверка работы fail2ban (включена аутентификация по паролю) ![](https://i.imgur.com/VpIvOQ6.png) > fail2ban создает одно правило для бана объединения ip-адресов в iptables ::: ::: spoiler 23. Настройка планировщика Cron ### Создание расписания для проверки доступности интернета, определения пользователей в системе и запуска ssh-сервера ![](https://i.imgur.com/3orlhCh.png) ### Скрипт для проверки доступности интернета, определения пользователей в системе ![](https://i.imgur.com/2OBmGTk.png) ### Скрипт для запуска ssh-сервера ![](https://i.imgur.com/e5X3MrG.png) ### Логи ![](https://i.imgur.com/wsZ7hds.png) ::: ::: spoiler 24. Создание расписания резервного копирования с помощью rsync ### Создание расписания для резервного копирования ![](https://i.imgur.com/6zjSqX6.png) ### Скрипт для резервного копирования и восстановления ![](https://i.imgur.com/rEeykh4.png) ### Резервное копирование с помощью rsync `rsync -aAXv / --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/media/*","/lost+found/"} /tmp/backup1` > создание бэкапа `rsync -aAXv /tmp/backup1 --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/media/*","/lost+found/"} /` > откат до бэкапа ::: ::: spoiler 25. Составить отчет с помощью Lynis ### Составление отчета с помощью lynis ![](https://i.imgur.com/VahCBeo.png) > `sudo bash -c "lynis audit system >> /var/log/lynis.txt"` > логи: `/var/log/lynis.log` и `/var/log/lynis-report.dat` ::: ::: spoiler 26. Установка и настройка auditd ### Создание правил аудирования критических файлов ![](https://i.imgur.com/P12Yc9N.png) > `-w /etc/passwd -p -wa -k pass_filter` > `-w /etc/shadow -p -wa -k shadow_filter` ### Просмотр логов по ключам правил ![](https://i.imgur.com/9SR5ppL.png) > `sudo ausearch -i -k pass_filter` ::: ::: spoiler 27. Проверка соответствию безопасности ## 1. Шифрование передачи данных для сервера ### Добавление группы, пользователя и директории для работы по sftp ![](https://i.imgur.com/CARfnMn.png) ``` sudo groupadd sftpgroup sudo useradd -g sftpgroup sftpuser sudo passwd sftpuser sudo mkdir -p /data/sftpuser/upload sudo chowm -R root.sftpgroup /data/sftpuser sudo chown -R sftpuser.sftpgroup /data/sftpuser/upload ``` ### Настройки ssh-сервера ![](https://i.imgur.com/CHWVwDf.png) ``` PasswordAuthentication yes Match group sftpgroup ChrootDirectory /data/sftpuser X11Forwarding no AllowTCPForwarding no ForceCommand internal-sftp ``` ### Проверка работы sftp ![](https://i.imgur.com/SwqpFCI.png) > sftp sftpuser@192.168.100.100 ## 2. Удаление устаревших служб ftp, telnet, rlogin и rsh ![](https://i.imgur.com/O1t3Yxm.png) `sudo apt --purge remove xinetd nis yp-tools tftpd atftpd tftpd-hpa telnetd rsh-server rsh-redone-server` ## 3. Минимизация ПО ![](https://i.imgur.com/PBfdnur.png) > `sudo dpkg --list` ## 4. Распределение сетевых служб по разным хостам ### serverPRO. Samba-сервер ![](https://i.imgur.com/24Z6kcg.png) ### clientPRO. Rsyslog ![](https://i.imgur.com/bigNIDW.png) ## 5. Поддержка ПО в актуальном состоянии ![](https://i.imgur.com/HDSI7H6.png) > `sudo bash -c "apt update && apt upgrade -y"` Для создания расписания обновления можно использовать [cron-apt](http://tdkare.ru/sysadmin/index.php/Cron-apt) ## 6-7. Использование SELinux для повышения безопасности ### Настройка базовых политик SELinux /etc/selinux/config ![](https://i.imgur.com/zIVqmM9.png) > `SELINUX=enforsing` ## 8. Создание парольной политики ### Создание советов по назначению пароля /etc/pam.d/common-password ![](https://i.imgur.com/cUZxrQQ.png) > Было > `password requisite pam_cracklib.so retry=3 minlen=8 difok=3` > Стало > `password requisite pam_cracklib.so retry=3 minlen=16 difok=3 ucredit=-1 lcredit=-2 ocredit=-2` ### Предупреждения о небезопасности пароля ![](https://i.imgur.com/weLkO0u.png) > Они необязательны, пароль применяется при несоответствии советам политики ## 9. Создание расписания замены паролей ### Изменение конфигурационного файла ![](https://i.imgur.com/KVuss2Z.png) > `chage -i ssh-user` ## 10. Ограничение использования бывших паролей /etc/pam.d/common-password ![](https://i.imgur.com/7ytMQAF.png) > `auth sufficient pam_unix.so likeauthnullok` > `password sufficient pam_unix.so remember` ## 11. Блокировка учетных записей пользователей после неудачного входа в систему ### Вывод информации о количестве неуспешных входов ![](https://i.imgur.com/4tUcaeQ.png) > `sudo faillog -a` ### Ограничение попыток входа ![](https://i.imgur.com/dY8Ep8l.png) > `sudo faillog -l -u ssh-user` > `sudo faillog -m 3 -u alku` > `sudo faillog -a` ## 12. Проверка пустых паролей пользователей ![](https://i.imgur.com/yPvc8y2.png) > `sudo cat /etc/shadow | awk -F: '($2 == "") {print}' /etc/shadow` > `sudo usermod -L clown1` > `sudo usermod -L clown2` > `sudo tail -n 2 /etc/shadow` ## 13. Поиск пользователей с UID=0 ![](https://i.imgur.com/ovgiQDk.png) > `sudo cat /etc/shadow | awk -F: '($3 == "0") {print $1}'` ## 14. Отключение доступа до root ![](https://i.imgur.com/rBIUiQX.png) > было > `root:x:0:0:root:/root:/bin/bash` > стало > `root:x:0:0:root:/root:/sbin/nologin` ## 15. Настройка пароля на GRUB ![](https://i.imgur.com/WsBoWyq.png) > `grub-mkpasswd-pbkdf2` ## 16,35. Отключение служб ### Просмотр служб ![](https://i.imgur.com/JHXPBM9.png) > `sudo systemctl list-unit-files --type=service` ### Выключение rsyslog ![](https://i.imgur.com/P41glGU.png) > `sudo systemctl stop rsyslog` > `sudo systemctl disable rsyslog` > `sudo systemctl status rsyslog` ## 17. Просмотр прослушиваемых сетевых портов ### Просмотр с помощью netstat ![](https://i.imgur.com/Y2oESUt.png) > `netstat -tunlpa` ### Просмотр с помощью ss ![](https://i.imgur.com/b9Fcmr2.png) > `ss -tunlpa` ## 18. Удаление графической оболочки `sudo apt autoremove gnome*` ## 19. Настройка iptables /usr/bin/iP ``` #!/bin/bash case "$1" in -d) sudo iptables -F sudo iptables -P INPUT ACCEPT sudo iptables -P OUTPUT ACCEPT sudo iptables -P FORWARD ACCEPT ;; -ssh) sudo iptables -A INPUT -t tcp --dport 22 -s 192.168.100.0/24 -j ACCEPT sudo iptables -P INPUT DROP ;; -smb) sudo iptables -A INPUT -t tcp -m tcp --dport 445 -s 192.168.100.0/24 -j ACCEPT sudo iptables -A INPUT -t tcp -m tcp --dport 139 -s 192.168.100.0/24 -j ACCEPT sudo iptables -A INPUT -t udp -m udp --dport 138 -s 192.168.100.0/24 -j ACCEPT sudo iptables -A INPUT -t udp -m udp --dport 137 -s 192.168.100.0/24 -j ACCEPT sudo iptables -P INPUT DROP ;; -chr) sudo iptables -A INPUT -t udp -m udp --dport 123 -j ACCEPT sudo iptables -P INPUT DROP ;; -sh) sudo iptables -L -v -n ;; -sv) sudo bach -c "iptables-save > /etc/iptables/rules.v4" ;; -rs) sudo bach -c "iptables-restore /etc/iptables/rules.v4" ;; esac ``` ## 20. Усиление ядра ![](https://i.imgur.com/spb1gOJ.png) /etc/sysctl.conf ``` net.ipv4.icmp_echo_ignore_all = 1 net.ipv4.ip_forward = 0 net.ipv4.conf.all.rp_filter = 1 net.ipv4.tcp_syncookies = 1 net.ipv4.icmp_echo_ignore_broadcasts = 1 ``` ## 21,38. Отдельные разделы диска ![](https://i.imgur.com/Noh309A.png) > было проделано на другой VM ## 22. Выделение квот ### Проверка модулей ядра ![](https://i.imgur.com/gykhIyf.png) > `find /lib/modules/`uname -r` -type f -name '*quota_v*.ko*'` ### Изменение квот ![](https://i.imgur.com/aCjhZI3.png) > было > `errors=remount-ro` > стало > `errors=remount-ro,usrquota,grpquota` ### Проверка настроек ![](https://i.imgur.com/lIY8sJr.png) > `sudo systemctl daemon-reload` > `sudo mount -o remount /` > `sudo mount | grep quota` ## 23. Отключение IPv6 ### Изменение настроек ядра /etc/sysctl.conf ![](https://i.imgur.com/67o1rRP.png) > `net.ipv6.conf.all.disable_ipv6=1` > `net.ipv6.conf.default.disable_ipv6=1` > `net.ipv6.conf.lo.disable_ipv6=1` > `ip -c -br a` ## 24. Проверка бинарных файлов SUID и SGID ### Проверка файлов с UID=4000 ![](https://i.imgur.com/mM2R1aD.png) > `find / -perm -4000` ### Проверка файлов с GID=2000 ![](https://i.imgur.com/FYVzata.png) > `find / -perm -2000` ## 25. Проверка файлов с записью из вне ![](https://i.imgur.com/94MTcHq.png) > `sudo find / -xdev -type d \( -perm -0002 -a ! -perm -1000 \) -print` ## 26. Проверка файлов, не принадлежащих пользователям ![](https://i.imgur.com/HZQyd0c.png) > `sudo find / -xdev \( -nouser -o -nogroup \) -print` ## 27-28. Установка Kerberos ![](https://i.imgur.com/LpcO8KT.png) > `sudo krb5_newrealm` ![](https://i.imgur.com/nwYbASo.png) > `sudo head -n 5 /etc/hosts` ![](https://i.imgur.com/E6jIXQp.png) > `sudo kadmin.local` ![](https://i.imgur.com/aFsPcdz.png) > `sudo grep -v "#" /etc/krb5kdc/kadm5.acl` ![](https://i.imgur.com/qy3fVI0.png) > `kinit user/admin (не работает)` ## 29. Логирование и аудит ### serverPRO. Настройка отправки логов с помощью [rsyslog](https://hackmd.io/@Traglodit/H1yTdf7nq) /etc/rsyslog.conf ![](https://i.imgur.com/nheazbO.png) ``` *.* @192.168.100.10:514 *.* @@192.168.100.10:514 $ActionQueueFileName queue $ActionQueueMaxDiskSpace 1g $ActionQueueSaveOnShutdown on $ActionQueueType LinkedList $ActionResumeRetryCount -1 ``` ### clientPRO. Настройка хранения логов с помощью [rsyslog](https://infoit.com.ua/linux/kak-nastroit-server-rsyslog-na-debian-11-bullseye/) /etc/rsyslog.conf ``` # provides UDP syslog reception module(load="imudp") - раскомментить input(type="imudp" port="514") - раскомментить # provides TCP syslog reception module(load="imtcp") - раскомментить input(type="imtcp" port="514") - раскомментить $template remote-incoming-logs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log" - дописать *.* ?remote-incoming-logs - дописать ``` ### Просмотр наличия логов на clientPRO ![](https://i.imgur.com/Z3bBcWr.png) ## 30. Отслеживание событий с помощью logwatch ![](https://i.imgur.com/5ici8P9.png) ``` sudo mkdir /var/cahche/logwatch sudo bash -c "logwatch > /var/cache/logwatch/logwatch.log" sudo head /var/cache/logwatch/logwatch.log ``` ## 31. Системный учет ### Создание правил аудирования критических файлов ![](https://i.imgur.com/P12Yc9N.png) > `-w /etc/passwd -p -wa -k pass_filter` > `-w /etc/shadow -p -wa -k shadow_filter` ### Просмотр логов по ключам правил ![](https://i.imgur.com/9SR5ppL.png) > `sudo ausearch -i -k pass_filter` ## 32. Безопасный ssh-сервер ### Настройка serverPRO. Файл конфигурации ssh-сервера по паролю и ключу ![](https://i.imgur.com/X2VWYj1.png) ### Настройка clientPRO. Генерация ключей и передача их на ssh-сервер для подключения по ключу ![](https://i.imgur.com/GPeTOpG.png) ### Настройка clientPRO. Создание alias для удобного подключения к ssh-серверу ![](https://i.imgur.com/8xh80Fh.png) ### Настройка serverPRO. Файл конфигурации ssh-сервера по ключу ![](https://i.imgur.com/pxLXZSc.png) ### Подключение клиента к серверу по ключу ![](https://i.imgur.com/O1ael5l.png) ## 33. Intrusion Detection System ### Создание базового состояния системы ![](https://i.imgur.com/dDUD38B.png) > `sudo aide --init --config /etc/aide/aide.conf` ### Создание отчета с анализом изменений ![](https://i.imgur.com/z9ECunO.png) > `sudo mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db` > `sudo bash -c "aide --check --config /etc/aide/aide.conf > /var/log/aide.log"` ## 34. Отключение устройств USB/firewire/thunderbolt ![](https://i.imgur.com/3LtK6TB.png) > `echo 'install usb-storage /bin/true' >> /etc/modprobe.d/disable-usb-storage.conf` > `echo "blacklist firewire-core" >> /etc/modprobe.d/firewire.conf` > `echo "blacklist thunderbolt" >> /etc/modprobe.d/thunderbolt.conf` ## 36. Использование fail2ban ### Установка fail2ban ![](https://i.imgur.com/nm0IAuS.png) ### Настройка fail2ban ![](https://i.imgur.com/nUHCFiA.png) /etc/fail2ban/jail.local ``` [sshd] enable = true port = ssh filter = sshd logpath = /var/log/auth.log maxretry = 3 bantime = 3600 ignoreip = 127.0.0.1 ``` ### Проверка работы fail2ban (включена аутентификация по паролю) ![](https://i.imgur.com/zZplIVk.png) > fail2ban создает правило для бана каждого ip-адреса в iptables ## 39. Создание резервных копий ![](https://i.imgur.com/Bo2Mahr.png) > `sudo mkdir /opt/backup` > `sudo dump -0f /opt/backup/user_home.dump /home` ![](https://i.imgur.com/E6PfiwD.png) > `sudo bash -c "restore -tf /opt/backup/user_home.dump > /var/log/backup_restore"` > `sudo head /var/log/backup_restore` ::: ::: spoiler 28. Восстановление данных с логического раздела с помощью Scalpel ### Изменение конфигурационного файла /etc/scalpel/scalpel.conf ![](https://i.imgur.com/qX9FA2U.png) ### Восстановление данных ![](https://i.imgur.com/Nh9jodG.png) > восстановление было показано на примере формата pdf ::: ::: spoiler 29. Сканирование сети с помощью Nmap ### Сканирование сети на выявление хостов ![](https://i.imgur.com/PSSwPwR.png) > `sudo nmap -sn 192.168.100.0/24` ### Сканирование портов и определение ОС на 192.168.100.1 ![](https://i.imgur.com/tuPl8av.png) > `sudo nmap -p- -sU -sT -O 192.168.100.1` :::