🎯 Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΠ΅ бСзопасности Linux-сСрвСра Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ комплСксного ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΊ настройкС ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим ΠΊΠ°ΠΊ Π±Π°Π·ΠΎΠ²Ρ‹Π΅, Ρ‚Π°ΠΊ ΠΈ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ вашСго сСрвСра, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ настройку систСмы обнаруТСния Π²Ρ‚ΠΎΡ€ΠΆΠ΅Π½ΠΈΠΉ, ΠΌΠ°Π½Π΄Π°Ρ‚Π½ΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ доступом ΠΈ ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Π·Π°Ρ‰ΠΈΡ‚Ρƒ Π΄Π°Π½Π½Ρ‹Ρ….

πŸ” Базовая Π·Π°Ρ‰ΠΈΡ‚Π° SSH

ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π²Ρ…ΠΎΠ΄Π° ΠΏΠΎΠ΄ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ root

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ root ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΏΡ€Π°Π²Π°ΠΌΠΈ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ†Π΅Π»ΡŒΡŽ для Π°Ρ‚Π°ΠΊ. ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ прямого Π²Ρ…ΠΎΠ΄Π° ΠΏΠΎΠ΄ root Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ сниТаСт риск брутфорс-Π°Ρ‚Π°ΠΊ.

sudo nano /etc/ssh/sshd_config
# Π’ Ρ„Π°ΠΉΠ»Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ строки:
PermitRootLogin no
Protocol 2
Port 2222  # ИзмСнСниС стандартного ΠΏΠΎΡ€Ρ‚Π° SSH
AllowUsers username1 username2  # Бписок Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ
MaxAuthTries 3  # МаксимальноС количСство ΠΏΠΎΠΏΡ‹Ρ‚ΠΎΠΊ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ
LoginGraceTime 60  # ВрСмя Π½Π° Π²Π²ΠΎΠ΄ пароля Π² сСкундах
# Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ измСнСния ΠΈ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ SSH:
sudo systemctl restart sshd

ИспользованиС Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΠΎ SSH-ΠΊΠ»ΡŽΡ‡Π°ΠΌ

АутСнтификация ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Π°ΠΌ Π±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ½Π° ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с паролями, Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ услоТняя нСсанкционированный доступ ΠΊ сСрвСру.

# На локальной машинС:
ssh-keygen -t ed25519 -a 100  # Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ с высокой ΡΡ‚ΠΎΠΉΠΊΠΎΡΡ‚ΡŒΡŽ
# Или для RSA с ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½ΠΎΠΉ ΠΊΠ»ΡŽΡ‡Π°:
ssh-keygen -t rsa -b 4096

# Π‘ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ Π½Π° сСрвСр:
ssh-copy-id -i ~/.ssh/id_ed25519.pub username@server_ip

# На сСрвСрС Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²Π° доступа:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

# ΠžΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ ΠΏΠΎ ΠΏΠ°Ρ€ΠΎΠ»ΡŽ:
sudo nano /etc/ssh/sshd_config
PasswordAuthentication no
ChallengeResponseAuthentication no
sudo systemctl restart sshd

πŸ”‘ Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ паролями ΠΈ доступом

УсилСниС ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ

sudo nano /etc/security/pwquality.conf
# Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹:
minlen = 14        # Минимальная Π΄Π»ΠΈΠ½Π° пароля
minclass = 4       # МинимальноС количСство классов символов
maxrepeat = 2      # МаксимальноС количСство ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ символов
dcredit = -1       # Π’Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ 1 Ρ†ΠΈΡ„Ρ€Ρƒ
ucredit = -1       # Π’Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ 1 Π·Π°Π³Π»Π°Π²Π½ΡƒΡŽ Π±ΡƒΠΊΠ²Ρƒ
lcredit = -1       # Π’Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ 1 ΡΡ‚Ρ€ΠΎΡ‡Π½ΡƒΡŽ Π±ΡƒΠΊΠ²Ρƒ
ocredit = -1       # Π’Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ 1 ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ символ
enforce_for_root   # ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΡƒ ΠΈ для root

Настройка PAM (Pluggable Authentication Modules)

sudo nano /etc/pam.d/common-password
# Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ:
password requisite pam_pwquality.so retry=3
password required pam_pwhistory.so remember=5 use_authtok

sudo nano /etc/pam.d/common-auth
# Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ:
auth required pam_tally2.so deny=5 unlock_time=1800

πŸ›‘οΈ ΠœΠ°Π½Π΄Π°Ρ‚Π½ΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ доступом

Настройка SELinux

SELinux (Security-Enhanced Linux) обСспСчиваСт Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ бСзопасности Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ°Π½Π΄Π°Ρ‚Π½ΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ доступом.

# Установка SELinux
sudo apt install selinux-basics selinux-policy-default
sudo selinux-activate

# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° статуса
sestatus

# Настройка ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ
sudo semanage port -a -t ssh_port_t -p tcp 2222  # Для нСстандартного ΠΏΠΎΡ€Ρ‚Π° SSH
sudo semanage fcontext -a -t httpd_sys_content_t "/var/www/html(/.*)?"
sudo restorecon -R /var/www/html

Настройка AppArmor

AppArmor - Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Π°Ρ систСма ΠΌΠ°Π½Π΄Π°Ρ‚Π½ΠΎΠ³ΠΎ управлСния доступом.

# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° статуса
sudo aa-status

# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ профиля
sudo aa-genprof /path/to/application

# Настройка профиля
sudo nano /etc/apparmor.d/usr.sbin.nginx
# ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€Π°Π²ΠΈΠ»:
/etc/nginx/** r,
/var/log/nginx/* w,
/var/www/** r,

πŸ” БистСма обнаруТСния Π²Ρ‚ΠΎΡ€ΠΆΠ΅Π½ΠΈΠΉ

Установка ΠΈ настройка AIDE

AIDE (Advanced Intrusion Detection Environment) отслСТиваСт измСнСния Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС.

# Установка AIDE
sudo apt install aide

# Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…
sudo aideinit

# Настройка ΠΏΡ€Π°Π²ΠΈΠ»
sudo nano /etc/aide/aide.conf
# ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€Π°Π²ΠΈΠ»:
/etc/passwd CONTENT_EX
/etc/shadow CONTENT_EX
/usr/bin CONTENT_EX
/usr/sbin CONTENT_EX

# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° систСмы
sudo aide --check

Настройка Snort IDS

Snort - мощная систСма обнаруТСния Π²Ρ‚ΠΎΡ€ΠΆΠ΅Π½ΠΈΠΉ Π½Π° основС Π°Π½Π°Π»ΠΈΠ·Π° сСтСвого Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°.

# Установка Snort
sudo apt install snort

# Базовая настройка
sudo nano /etc/snort/snort.conf
# Настройка сСтСвых интСрфСйсов ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»

# Запуск Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ NIDS
sudo snort -A console -q -c /etc/snort/snort.conf -i eth0

πŸ” ΠšΡ€ΠΈΠΏΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΡ‡Π΅ΡΠΊΠ°Ρ Π·Π°Ρ‰ΠΈΡ‚Π°

Π¨ΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ дисков с LUKS

# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π°
sudo cryptsetup luksFormat /dev/sdb1

# ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π°
sudo cryptsetup luksOpen /dev/sdb1 secure_data

# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы
sudo mkfs.ext4 /dev/mapper/secure_data

# ΠœΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅
sudo mount /dev/mapper/secure_data /mnt/secure

Настройка dm-crypt

# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ swap
sudo cryptsetup -y -v luksFormat /dev/sdb2
sudo cryptsetup luksOpen /dev/sdb2 cryptswap
sudo mkswap /dev/mapper/cryptswap

🌐 Π—Π°Ρ‰ΠΈΡ‚Π° сСтСвых слуТб

Настройка ModSecurity WAF

ModSecurity - Π²Π΅Π±-Ρ„Π°Π΅Ρ€Π²ΠΎΠ» для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

# Установка
sudo apt install libapache2-mod-security2

# Активация Π±Π°Π·ΠΎΠ²Ρ‹Ρ… ΠΏΡ€Π°Π²ΠΈΠ»
sudo cp /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf

# Настройка ΠΏΡ€Π°Π²ΠΈΠ»
sudo nano /etc/modsecurity/modsecurity.conf
SecRuleEngine On
SecRequestBodyAccess On
SecResponseBodyAccess On

Π—Π°Ρ‰ΠΈΡ‚Π° ΠΏΠΎΡ‡Ρ‚ΠΎΠ²ΠΎΠ³ΠΎ сСрвСра

# Настройка Postfix
sudo nano /etc/postfix/main.cf
smtpd_tls_security_level = may
smtpd_tls_auth_only = yes
smtpd_recipient_restrictions = 
    permit_mynetworks,
    permit_sasl_authenticated,
    reject_unauth_destination

πŸ“Š Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΉ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³

Настройка Ossec HIDS

Ossec - комплСксная систСма обнаруТСния Π²Ρ‚ΠΎΡ€ΠΆΠ΅Π½ΠΈΠΉ Π½Π° хостС.

# Установка
wget https://github.com/ossec/ossec-hids/archive/3.7.0.tar.gz
tar -zxf 3.7.0.tar.gz
cd ossec-hids-3.7.0
./install.sh

# Настройка ΠΏΡ€Π°Π²ΠΈΠ»
sudo nano /var/ossec/etc/ossec.conf
<rule id="100001" level="12">
    <if_sid>530</if_sid>
    <match>^Attempt to login using a non-existent user</match>
    <description>Non-existent user login attempt</description>
</rule>

Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ с Elastic Stack

# Установка Filebeat
sudo apt install filebeat

# Настройка сбора Π»ΠΎΠ³ΠΎΠ²
sudo nano /etc/filebeat/filebeat.yml
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/log/auth.log
    - /var/log/syslog

πŸ”§ Автоматизация бСзопасности

Настройка автоматичСских бэкапов

# Установка Duplicity
sudo apt install duplicity

# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ скрипта бэкапа
sudo nano /usr/local/bin/backup.sh
#!/bin/bash
duplicity --no-encryption /path/to/backup sftp://user@backup-server/path/

Автоматизация ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ бСзопасности

# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ скрипта ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ
sudo nano /usr/local/bin/security_check.sh
#!/bin/bash
# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… ΠΏΠΎΡ€Ρ‚ΠΎΠ²
netstat -tuln
# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… сСрвисов
systemctl list-units --type=service --state=running
# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° послСдних Π²Ρ…ΠΎΠ΄ΠΎΠ²
last -n 20

πŸ“ Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ Linux-сСрвСра Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ комплСксного ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΈ постоянного внимания. Π’Π°ΠΆΠ½ΠΎ рСгулярно:

  • ΠžΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ систСму ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС
  • ΠŸΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ Π°ΡƒΠ΄ΠΈΡ‚ бСзопасности
  • ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΡ‚ΡŒ систСму Π½Π° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ ΠΏΠΎΠ΄ΠΎΠ·Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ активности
  • Π’Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ бСзопасности
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Π΅ ΠΊΠΎΠΏΠΈΠΈ

πŸ” ΠŸΠΎΠ»Π΅Π·Π½Ρ‹Π΅ рСсурсы