CSF – програмне забезпечення для автоматичного захисту сервера. У разі підозрілої активності програма блокує IP адреса з якого ця активність надходить.
Для роботи з CSF необхідний Perl і бібліотека Time/HiRes. Якщо вони не встановлені – виконуємо команду:
sudo apt install libwww-perl
Далі встановлюємо csf. Завантажуємо архів:
wget https://download.configserver.com/csf.tgz
Разпакуйте архів і перейдіть в папку з дистрибутивом:
tar -xzf csf.tgz cd csf
Виконаємо установку:
sh install.sh
Установка завершена. CSF запущений в тестовому режимі, тобто, програма очищає правила кожні кілька хвилин (за замовчуванням кожні 5 хвилин).
Далі потрібно відредагувати конфігураційний файл:
nano /etc/csf/csf.conf
Вимкніть тестовий режим. Замініть «1» на «0» в рядку:
#lfd will not start while this is enabled TESTING = "1"
У наступному рядку Вам потрібно перерахувати TCP-порти, які використовуються для вхідних з’єднань. Наприклад, якщо сервер використовує SSH – вкажіть порт 22 і т.д .:
TCP_IN = "20,21,22,25,53,80,110,143,443,465,587,993,995"
Аналогічно перераховуємо TCP-порти для вихідні підключення.
TCP_OUT = "20,21,22,25,53,80,110,113,443,587,993,995"
Так само, дозволяємо вхідні\вихідні підключення на UDP-порти:
UDP_IN = "20,21,53" UDP_OUT = "20,21,53,113,123"
Якщо потрібно обмежити доступ до налаштувань через призначений для користувача інтерфейс (cPanel, Webmin …), використовуємо параметр:
RESTRICT_UI = "1"
Наступний параметр встановлює кількість заблокованих IP-адрес, які відстежує CSF.
DENY_IP_LIMIT = "200"
Кількість заблокованих IP-адрес, які відстежує CSF для тимчасового блокування:
DENY_TEMP_IP_LIMIT = "100"
Дозволити до 10 нових одночасних з’єднань на 22 порт і 30 одночасних з’єднань на 80 порт.
CONNLIMIT = "22; 10,80; 30"
Вказуємо E-mail, на який будуть відправлятися повідомлення від lfd-служби:
LF_ALERT_TO = <your@email></your@email>
Після 3-х невдалих спроб аутентифікації по SSH блокування на годину:
LF_SSHD = "3" LF_SSHD_PERM = "3600"
Де, LF_SSHD – кількість спроб аутентифікації. LF_SSHD_PERM – час в секундах на яке блокує IP. Якщо потрібно заблокувати назавжди – замість секунд потрібно прописати «1».
Аналогічна захист працює на FTP:
LF_FTPD = "3" LF_FTPD_PERM = "3600"
І на SMTP-аутентифікації:
LF_SMTPAUTH = "3" LF_SMTPAUTH_PERM = "3600"
і т.д.
Зазначаємо, щоб lfd-служба перевіряла наявність підозрілих файлів кожні 500 секунд:
LF_DIRWATCH = "300"
Всі параметри можна змінити за Вашим вимогам.
Для запуску фаервола використовуйте команду:
csf -s
Щоб перезапустити csf з новими конфігураційними налаштуваннями виконуємо:
csf -r
Якщо необхідно запускати CSF при завантаженні системи – допишіть команду csf -s в кінець файлу /etc/rc.local
Крім конфігураційного файлу CSF є ще файли для роботи з IP-адресами:
csf.allow – «білий» список IP. У цей файл варто додавати адреси з робітників і домашніх пристроїв, так як вони не будуть блокуватися навіть при підозрілої активності.
csf.deny – «чорний» список IP. У цьому зберігаються заблоковані адреси. За умовчанням вони видаляються через деякий час файерволом – щоб вони не віддалялися потрібно в рядку з IP-адресою вказати коментар # do not delete:
123.123.123.123 # do not delete
csf.ignore – список IP, які будуть ігноруватися і перевірятися не будуть, якщо тільки вони не прописані в csf.deny.
Щоб перевірити чи не заблоковано IP використовуйте команду:
csf -g 123.123.123.123
Щоб прибрати IP з «чорного» списку, виконайте:
csf -dr 123.123.123.123
Заблокувати IP-адреса на 1 день:
csf -td 123.123.123.123 1 d
Заблокувати IP-адреса на 30 хвилин:
csf -td 123.123.123.123 1800
Видалити IP-адресу з тимчасово заблокованих:
csf -tr 123.123.123.123
Додати IP-адреса в білий список на 2 години:
csf -ta 123.123.123.123 7200
Заблокувати IP-адреса на 1 годину для порту 80:
csf -td 123.123.123.123 3600 -p 80
Перевірити наявність оновлень csf, але не встановлювати:
csf -c
Перевірити наявність оновлень csf і встановити якщо вони є:
csf -u
Видалити і розблокувати всі записи з файлу /etc/csf/csf.deny:
csf -df
Видалити IP-адреси із білого і чорного списку:
csf -tr
Переглянути список тимчасово заблокованих IP-адрес:
csf -t
Відключити/деактивувати csf і lfd:
csf -x
Включити/активувати csf і lfd:
csf -e
Щоб переглянути довідку щодо csf, використовуємо команду:
csf -h