Сегодня вот озадачился безопасностью своего домашнего сервера. Я писал уже не мало о том что нужно делать и как. Но вот как-то дома я этого не очень делал после последнего переезда.
Сейчас буду настраивать и по ходу дела писать сюда о всех манипуляциях с сервером, так сказать наглядно. Во избежание лишних вопросов: ВСЕ ДЕЙСТВИЯ ДЕЛАЮТСЯ ИЗ ПОД root! БУДЬТЕ ОСТОРОЖНЫ!
Если Вы не знаете как получить рутовую консоль — не стоит пока пытаться проделать все эти действия. Можете что-нибудь сломать.
Запущенные процессы
Проверяем чего у нас на сервере запущено и нет ли лишнего чего:
# netstat -anp | grep ":\*" | cut -d "/" -f 2 | sort -u
Если все устраивает, то делаем эталонную копию:
# netstat -anp | grep ":\*" | cut -d "/" -f 2 | sort -u > /var/log/daemons.etalon
Настраиваем автоматическую проверку на новых демонов с отсылкой изменений на электронную почту.
Сначала делаем отправку:
# nano /etc/aliases
Добавляем строку:
root: [email protected]
Где [email protected] — Ваш электронный ящик. И обновляем базу:
# newaliases
Теперь настраиваем периодическую проверку в /etc/crontab:
# nano /etc/crontab
и добавляем строку:
0 23 * * * root netstat -anp | grep ":\*" | cut -d "/" -f 2 | sort -u > /var/log/daemons.new && comm -3 /var/log/daemons.etalon /var/log/daemons.new
Не забывайте оставлять пустую строку в конце файла. Иначе не будет работать.
Теперь если какой-либо новый процесс будет «слушать» порт, нам придет об этом уведомление с именем сервиса. Это конечно не панацея, но от «левых» процессов спасет.
Настраиваем анализатор журналов LogWatch
Установка тривиальна и не требует больших трудов:
# apt-get install logwatch
Для других дистрибутивов аналогично установке других программ.
Дальше стоит просмотреть, что он Вам напишет после первого запуска:
# logwatch
Отправлять отчеты на почту он будет автоматически.
Проверка на руткиты (rootkits)
Для проверки на вредоносные приложения, руткиты, трояны и т.п. есть весьма хорошая утилита rkhunter.
Установка стандартна:
# apt-get install rkhunter
И в /etc/crontab добавляем строку:
5 23 * * * root rkhunter -c --cronjob --sk --nocolors
Теперь каждый день мы получаем отчеты на электронный адрес, внимательно их изучаем и спим более спокойно.
Защищаем SSH, FTP и другие приложения.
Fail2Ban — следит за журналами и блокирует доступ IP адресам, если с них было несколько неверных попыток авторизации.
# apt-get install fail2ban
Далее идем в /etc/fail2ban и настраиваем конфиг jail.conf. Всего-то необходимо установить значение «enabled» в «true» в необходимых секциях.
После этого перезапускаем fail2ban:
# service fail2ban restart
Это все несколько обезопасит от вторжений и облегчит аудит безопасности сервера.