Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Научете как да защитите Linux сървъра си от 90% от атаките с тези 15 проверени техники. Включва готови команди, конфигурационни файлове и checklist за проверка на сигурността.
Сигурността на Linux сървърите не е въпрос на "ако", а на "кога" ще бъдете атакувани. Статистиките показват, че средно един сървър в интернет получава атака на всеки 39 секунди. Тази статия ще ви даде конкретните инструменти и знания, за да защитите системата си ефективно.
# Ubuntu/Debian
sudo apt update && sudo apt upgrade -y
sudo apt autoremove -y
# CentOS/RHEL/Fedora
sudo dnf update -y
# или за по-стари версии
sudo yum update -y
# Автоматични обновления (Ubuntu)
sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure -plow unattended-upgrades
Защо е важно: 60% от успешните атаки използват известни уязвимости, за които вече има патчове.
Редактирайте /etc/ssh/sshd_config
:
# Променете порта по подразбиране
Port 2222
# Забранете root login
PermitRootLogin no
# Използвайте само ключове за аутентикация
PasswordAuthentication no
PubkeyAuthentication yes
# Ограничете потребителите
AllowUsers yourusername
# Добавете timeout
ClientAliveInterval 300
ClientAliveCountMax 2
# Забранете празни пароли
PermitEmptyPasswords no
# Ограничете протокола
Protocol 2
Рестартирайте SSH:
sudo systemctl restart sshd
# Създайте нов потребител
sudo adduser newuser
# Добавете го към sudo групата
sudo usermod -aG sudo newuser
# Генерирайте SSH ключове (на локалната машина)
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
# Копирайте публичния ключ на сървъра
ssh-copy-id -p 2222 newuser@your-server-ip
# Активирайте UFW
sudo ufw enable
# Базови правила
sudo ufw default deny incoming
sudo ufw default allow outgoing
# Разрешете SSH (с новия порт)
sudo ufw allow 2222/tcp
# Разрешете HTTP и HTTPS
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# Проверете статуса
sudo ufw status verbose
# Инсталация
sudo apt install fail2ban -y
# Създайте локален конфигурационен файл
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Редактирайте /etc/fail2ban/jail.local
:
ini[DEFAULT]
bantime = 3600
findtime = 600
maxretry = 3
ignoreip = 127.0.0.1/8 your-home-ip
[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600
Стартирайте услугата:
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
# Инсталирайте logwatch
sudo apt install logwatch -y
# Конфигурирайте за ежедневни отчети
echo "logwatch --output mail --mailto your-email@example.com --detail high" | sudo tee -a /etc/cron.daily/00logwatch
# Вижте всички активни услуги
sudo systemctl list-units --type=service --state=running
# Спрете ненужни услуги (примери)
sudo systemctl disable telnet
sudo systemctl disable rsh
sudo systemctl disable rlogin
# Инсталация
sudo apt install clamav clamav-daemon -y
# Обновете базата данни
sudo freshclam
# Създайте скрипт за ежедневно сканиране
cat << 'EOF' | sudo tee /usr/local/bin/daily-scan.sh
#!/bin/bash
SCAN_DIR="/"
LOG_FILE="/var/log/clamav/daily-scan.log"
clamscan -r --bell -i $SCAN_DIR >> $LOG_FILE 2>&1
EOF
sudo chmod +x /usr/local/bin/daily-scan.sh
# Добавете в crontab
echo "0 2 * * * /usr/local/bin/daily-scan.sh" | sudo crontab -
За нови инсталации:
# По време на инсталацията изберете шифроване
# За съществуващи системи - използвайте отделен шифрован том
sudo cryptsetup luksFormat /dev/sdb1
sudo cryptsetup luksOpen /dev/sdb1 encrypted-drive
sudo mkfs.ext4 /dev/mapper/encrypted-drive
# Инсталация
sudo apt install aide -y
# Инициализирайте базата данни
sudo aideinit
# Копирайте базата данни
sudo cp /var/lib/aide/aide.db.new /var/lib/aide/aide.db
# Създайте ежедневна проверка
echo "0 3 * * * /usr/bin/aide --check" | sudo crontab -
# Инсталирайте iptables-persistent
sudo apt install iptables-persistent -y
# Основни правила
sudo iptables -F
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT
# Разрешете loopback
sudo iptables -A INPUT -i lo -j ACCEPT
# Разрешете установени връзки
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Разрешете SSH
sudo iptables -A INPUT -p tcp --dport 2222 -j ACCEPT
# Запазете правилата
sudo netfilter-persistent save
# Инсталирайте rsync
sudo apt install rsync -y
# Скрипт за backup
cat << 'EOF' | sudo tee /usr/local/bin/backup.sh
#!/bin/bash
BACKUP_DIR="/backup"
SOURCE_DIRS="/home /etc /var/www"
DATE=$(date +%Y%m%d_%H%M%S)
mkdir -p $BACKUP_DIR/$DATE
for dir in $SOURCE_DIRS; do
if [ -d "$dir" ]; then
rsync -av "$dir" "$BACKUP_DIR/$DATE/"
fi
done
# Запази само последните 7 backup-а
find $BACKUP_DIR -maxdepth 1 -type d -mtime +7 -exec rm -rf {} \;
EOF
sudo chmod +x /usr/local/bin/backup.sh
# Ежедневен backup в 1:00
echo "0 1 * * * /usr/local/bin/backup.sh" | sudo crontab -
Редактирайте /etc/security/limits.conf
:
# Ограничете максималния брой процеси
* soft nproc 1000
* hard nproc 1200
# Ограничете максималния брой отворени файлове
* soft nofile 1024
* hard nofile 2048
# Инсталирайте libpam-pwquality
sudo apt install libpam-pwquality -y
Редактирайте /etc/pam.d/common-password
:
password requisite pam_pwquality.so retry=3 minlen=12 difok=3 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1
Създайте скрипт за проверка:
cat << 'EOF' | sudo tee /usr/local/bin/security-check.sh
#!/bin/bash
echo "=== SECURITY CHECK REPORT ==="
echo "Date: $(date)"
echo
echo "=== Failed login attempts ==="
grep "Failed password" /var/log/auth.log | tail -10
echo -e "\n=== Active network connections ==="
ss -tuln
echo -e "\n=== Running processes by users ==="
ps aux | awk '{print $1}' | sort | uniq -c | sort -nr
echo -e "\n=== Disk usage ==="
df -h
echo -e "\n=== Memory usage ==="
free -h
echo -e "\n=== Load average ==="
uptime
echo -e "\n=== Last logins ==="
last -10
echo -e "\n=== Fail2Ban status ==="
sudo fail2ban-client status
EOF
sudo chmod +x /usr/local/bin/security-check.sh
# Седмична проверка
echo "0 8 * * 1 /usr/local/bin/security-check.sh | mail -s 'Weekly Security Report' your-email@example.com" | sudo crontab -
Сигурността не е еднократно действие, а постоянен процес. Тези 15 стъпки ще защитят вашия Linux сървър от повечето автоматизирани атаки и ще ви дадат солидна основа за по-нататъшно укрепване.
Помнете: най-добрата сигурност е тази, която се прилага последователно и се поддържа редовно. Проверявайте логовете си, следете за необичайна активност и винаги имайте актуални backup-и.
Полезни ресурси:
Следващи стъпки: След като приложите тези основни мерки, разгледайте напреднали теми като SELinux/AppArmor, контейнерна сигурност и мрежова сегментация.
Благодарим ви за прочитането на статията! Ако намерихте информацията за полезна, можете да дарите посредством бутоните по-долу:
Donate ☕️ Дарете с PayPalDonate 💳 Дарете с Revolut