Начнем по безопастности и подключениям
Немного обезопасим SSH
Самый простой выход — сменить порт ssh с 22 на любой другой.
nano /etc/ssh/sshd_config
Ищем строку «Port 22» и заменяем её на «Port 354» где 354 любое число в пределах от 1 до 65535
На всякий случай посмотрим открытые порты:
netstat -tupln | grep LISTEN
Ограничим тип адресов для подключения(IPv6 либо IPv4).
Если у вас на сервере не используется IPv6, то дописываем файл
/etc/ssh/sshd_config:
AddressFamily inet
Запрещаем попытку входа с пустым паролем. Ищем PermitEmptyPasswords и выставляем no
PermitEmptyPasswords no
Сохраняем и перезапускаем ssh демон:
/etc/init.d/ssh restart
Ковыряем системные переменные, защищаемся от некоторых видов атак
Данные параметры дают некоторую масло-масленность и в некоторых случаях повышают нагрузку. Редактируем /etc/sysctl.confnano /etc/sysctl.conf
Дописываем в конец
# Защита от smurf-атак
net.ipv4.icmp_echo_ignore_broadcasts = 1
# Защита от неправильных ICMP-сообщений
net.ipv4.icmp_ignore_bogus_error_responses = 1
# Защита от SYN-флуда
net.ipv4.tcp_syncookies = 1
# Запрещаем маршрутизацию от источника
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0
# Защита от спуфинга
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
# Мы не маршрутизатор, если конечно это так
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
# Включаем ExecShield при атаках направленных на переполнение буфера или срыв стэка
kernel.exec-shield = 1
kernel.randomize_va_space = 1
# Расширяем диапазон доступных портов
net.ipv4.ip_local_port_range = 2000 65000
# Увеличиваем максимальный размер TCP-буферов
net.ipv4.tcp_rmem = 4096 87380 8388608
net.ipv4.tcp_wmem = 4096 87380 8388608
net.core.rmem_max = 8388608
net.core.wmem_max = 8388608
net.core.netdev_max_backlog = 5000
net.ipv4.tcp_window_scaling = 1
#ускоряем высвобождение памяти(см. "Ускоряем общую работу системы")
vm.swappiness=10
Теперь можно перезагрузитсяУскоряем общую работу системы
Prelink и Preload. Prelink для создание статичных адресов библиотек, Preload это небольшое приложение, которое следит за файлами наиболее часто используемых приложений, и загружает их в память, когда система простаивает.1. Установка Prelink:
Редактируем файл /etc/default/prelink:apt-get -y install prelink
Измените строку с PRELINKING=unknown на PRELINKING=yesnano /etc/default/prelink
Запускаем:
2. Установка Preload:/etc/cron.daily/prelink
Все, больше ничего не требуетсяapt-get -y install preload
Настраиваем брандмауэр(фаерволл)
Далее будут очень сомнительные конфигурации. Настраиваем число подключений с одного IP адреса. Спасает при некоторых видах DOS атак и брутфорса.Выполняем:
далее:iptables -A INPUT -p tcp --dport 80 -i eth0 \ -m state --state NEW -m recent --set
Данное правило ограничивает больше 20-ти подключение к 80 порту(web) за 15 секунд с 1 ip адреса.iptables -A INPUT -p tcp --dport 80 -i eth0 \ -m state --state NEW -m recent --update \ --seconds 15 --hitcount 20 -j DROP
iptables -A INPUT -p tcp --dport 354 -i eth0 \ -m state --state NEW -m recent --set
Где 354 порт вашего ssh сервера. Правило ограничивает количество подключений, не более 4-х подключений за 1 минуту. На деле у меня не получалось авторизовать более 1 раза за минуту.iptables -A INPUT -p tcp --dport 354 -i eth0 \ -m state --state NEW -m recent --update \ --seconds 60 --hitcount 4 -j DROP
Далее это правило вы дальше можете адаптировать под себя и другие сервисы.
После рестарта системы все правила обнулятся, по этому делаем следующее:
создаем и редактируем файл /etc/network/if-up.d/00-iptables
nano -w /etc/network/if-up.d/00-iptables
Пишем в него:
сохраняем и делаем файл исполняемым:
#!/bin/sh iptables-restore < /etc/firewall.conf
chmod +x /etc/network/if-up.d/00-iptables
Сохраняем правила в файл:
iptables-save | sudo tee /etc/firewall.conf
Всё, правила настроены и сохранятся после перезагрузки системы.
Комментариев нет:
Отправить комментарий