Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слева Предыдущая версия | Следующая версия Следующая версия справа и слева | ||
каталог_статей:безопастность:установка_и_настройка_sshguard [2015/12/22 10:50] korotish |
каталог_статей:безопастность:установка_и_настройка_sshguard [2015/12/22 10:56] korotish |
||
---|---|---|---|
Строка 15: | Строка 15: | ||
2. Скачайте архив с программой SSHGuard и распакуйте его, выполнив представленные ниже команды по очереди: | 2. Скачайте архив с программой SSHGuard и распакуйте его, выполнив представленные ниже команды по очереди: | ||
- | < | + | < |
+ | wget http:// | ||
sshguard-1.5.tar.bz2/ | sshguard-1.5.tar.bz2/ | ||
tar xjpf download | tar xjpf download | ||
Строка 21: | Строка 22: | ||
./configure –with-firewall=iptables | ./configure –with-firewall=iptables | ||
make && make install </ | make && make install </ | ||
- | |||
3.Теперь задайте цепочку правил в iptables командой | 3.Теперь задайте цепочку правил в iptables командой | ||
- | + | < | |
- | #iptables -N sshguard | + | 4. Обязательно настройте проверку всего входящего трафика через установленную цепочку правил командой |
- | + | < | |
- | 4. Обязательно настройте проверку всего входящего трафика через установленную цепочку | + | 5. Настройте отслеживание активности на основных портах FTP, SSH, POP3, IMAP. (Если SSH использует нестандартный порт (42222 , 52222 либо другой , укажите его ) |
- | + | < | |
- | правил командой | + | iptables -P INPUT ACCEPT |
- | + | iptables -A INPUT -m multiport -p tcp --destination-ports 21, | |
- | #iptables -A INPUT -j sshguard | + | </ |
- | + | ||
- | 5. Настройте отслеживание активности на основных портах FTP, SSH, POP3, IMAP. (Если | + | |
- | + | ||
- | SSH использует нестандартный порт (42222 , 52222 либо другой , укажите его ) | + | |
- | + | ||
- | #iptables -P INPUT ACCEPT | + | |
- | + | ||
- | #iptables -A INPUT -m multiport -p tcp --destination-ports 21, | + | |
Дополнительно вы можете настроить блокировку нарушителей на портах TCP и UDP командами: | Дополнительно вы можете настроить блокировку нарушителей на портах TCP и UDP командами: | ||
- | + | < | |
- | #iptables -A INPUT -p udp --dport 53 -j ACCEPT | + | iptables -A INPUT -p udp --dport 53 -j ACCEPT |
- | + | iptables -A INPUT -p tcp --dport 80 -j ACCEPT | |
- | #iptables -A INPUT -p tcp --dport 80 -j ACCEPT | + | </ |
- | + | 6. Чтобы SSHGuard имел право доступа на динамическое изменение настроек iptables, выполните команду | |
- | 6. Чтобы SSHGuard имел право доступа на динамическое изменение настроек iptables, | + | < |
- | + | ||
- | выполните команду | + | |
- | + | ||
- | #chmod +s / | + | |
7. Сохраните внесенные в правила изменения командой | 7. Сохраните внесенные в правила изменения командой | ||
- | + | < | |
- | #service iptables save | + | |
либо | либо | ||
- | + | < | |
- | #iptables-save > / | + | |
8. Теперь выполните запуск SSHGuard командой | 8. Теперь выполните запуск SSHGuard командой | ||
+ | < | ||
- | #/ | + | 9. На этом установка SSHGuard завершена. Отныне после каждых 4 неуспешных попыток подключения к VPS IP-адрес нарушителя будет блокироваться. Однако, |
- | + | ||
- | 9. На этом установка SSHGuard завершена. Отныне после каждых 4 неуспешных | + | |
- | + | ||
- | попыток подключения к VPS IP-адрес нарушителя будет блокироваться. Однако, | + | |
- | + | ||
- | созданные настройки будут работать до первой перезагрузки виртуального сервера. | + | |
Восстанавливать их придется командой | Восстанавливать их придется командой | ||
- | #/ | + | < |
- | Чтобы не делать этого каждый раз, можно на сервере создать специальный файл и | + | Чтобы не делать этого каждый раз, можно на сервере создать специальный файл и разместить в нем текст скрипта, |
- | + | 10. Cоздайте файл со скриптом на VPS. Создание такого файла осуществляется командой | |
- | разместить в нем текст скрипта, | + | < |
- | + | ||
- | автоматически. | + | |
- | + | ||
- | 10. Cоздайте файл со скриптом на VPS. Создание такого файла осуществляется | + | |
- | + | ||
- | командой | + | |
- | + | ||
- | #touch / | + | |
После того, как вы открыли файл с названием sshguard, добавьте в него все строки : | После того, как вы открыли файл с названием sshguard, добавьте в него все строки : | ||
- | + | < | |
- | ( ЭТОТ КОД ЛУЧШЕ В КАКУЮ-НИБУДЬ СВЁРНУТУЮ ВКЛАДКУ ЗАСУНУТЬ А ЭТУ | + | |
- | + | ||
- | СТРОЧКУ УДАЛИТЬ) | + | |
#! /bin/sh | #! /bin/sh | ||
Строка 245: | Строка 209: | ||
exit $RETVAL | exit $RETVAL | ||
+ | </ | ||
- | 11. Чтобы операционная система могла прочитать созданный файл, выполните | + | 11. Чтобы операционная система могла прочитать созданный файл, выполните приведенный ниже набор команд: |
- | + | < | |
- | приведенный ниже набор команд: | + | yum install perl |
- | + | perl -pi -e ' | |
- | #yum install perl | + | </ |
- | + | ||
- | #perl -pi -e ' | + | |
12. Дополнительно установите на свой VPS специальную утилиту для чтения логов - | 12. Дополнительно установите на свой VPS специальную утилиту для чтения логов - | ||
- | + | syslog-ng. Ее установка и запуск выполняется следующей последовательностью команд: | |
- | syslog-ng. Ее установка и запуск выполняется следующей последовательностью | + | < |
- | + | cd /root | |
- | команд: | + | wget http:// dl.fedoraproject.org/ |
- | + | yum -y update | |
- | #yum install chkconfig | + | rpm -Uvh / |
- | + | yum repolist | |
- | #cd /root | + | yum check-update |
- | + | sudo sed -i " | |
- | #wget http:// dl.fedoraproject.org/ | + | yum list *syslog-ng* |
- | + | yum install syslog-ng syslog-ng-libdbi | |
- | 8.noarch.rpm | + | chkconfig rsyslog off |
- | + | chkconfig syslog-ng on | |
- | #yum -y update | + | chkconfig --list syslog-ng |
- | + | service rsyslog stop | |
- | #rpm -Uvh / | + | service syslog-ng start |
- | + | </ | |
- | #yum repolist | + | |
- | + | ||
- | #yum check-update | + | |
- | + | ||
- | #sudo sed -i " | + | |
- | + | ||
- | #yum list *syslog-ng* | + | |
- | + | ||
- | #yum install syslog-ng syslog-ng-libdbi | + | |
- | + | ||
- | #chkconfig rsyslog off | + | |
- | + | ||
- | #chkconfig syslog-ng on | + | |
- | + | ||
- | #chkconfig --list syslog-ng | + | |
- | + | ||
- | #service rsyslog stop | + | |
- | + | ||
- | #service syslog-ng start | + | |
13. С помощью редактора nano или vi откройте файл syslog-ng.conf: | 13. С помощью редактора nano или vi откройте файл syslog-ng.conf: | ||
- | + | < | |
- | #nano / | + | |
Добавьте в него такие строки: | Добавьте в него такие строки: | ||
- | + | < | |
- | (тоже стоит спрятать в разворачивающуюся вкладку наверное) | + | |
# pass only entries with auth+authpriv facilities from programs other than | # pass only entries with auth+authpriv facilities from programs other than | ||
Строка 318: | Строка 257: | ||
}; | }; | ||
- | log { source(src); | + | log { source(src); |
+ | </ | ||
Сохраните изменения в файле и выполните команду | Сохраните изменения в файле и выполните команду | ||
- | + | < | |
- | #killall -HUP syslog-ng | + | |
14. Остается только выполнить запуск скрипта командами: | 14. Остается только выполнить запуск скрипта командами: | ||
+ | < | ||
+ | service sshguard start </ | ||
- | #chkconfig sshguard on | + | **Debian** |
- | + | ||
- | #service sshguard start | + | |
- | + | ||
- | Debian | + | |
Для Debian процедура установки SSHGuard следующая: | Для Debian процедура установки SSHGuard следующая: | ||
- | |||
1. Выполните команду | 1. Выполните команду | ||
- | + | < | |
- | #apt-get –y install sshguard | + | |
2. Создайте правила в iptables, поочередно выполнив такие команды: | 2. Создайте правила в iptables, поочередно выполнив такие команды: | ||
- | + | < | |
- | #iptables -N sshguard | + | iptables -N sshguard |
- | + | iptables -A INPUT -j sshguard | |
- | #iptables -A INPUT -j sshguard | + | iptables -P INPUT ACCEPT |
- | + | iptables -A INPUT -p tcp --dport 22 -j ACCEPT | |
- | #iptables -P INPUT ACCEPT | + | iptables -A INPUT -p udp --dport 53 -j ACCEPT |
- | + | iptables -A INPUT -p tcp --dport 80 -j ACCEPT | |
- | #iptables -A INPUT -p tcp --dport 22 -j ACCEPT | + | iptables -A INPUT -p tcp --dport 443 -j ACCEPT |
- | + | </ | |
- | #iptables -A INPUT -p udp --dport 53 -j ACCEPT | + | Указанный выше набор правил предусматривает разрешение подключения к серверу только через порты 22, 53, 80, 443. Подключения через другие порты будут блокироваться (стоит заметить что Ваш сервер может иметь нестандартный SSH |
- | + | порт 42222 либо 52222)Это лишь пример цепочки правил для iptables. | |
- | #iptables -A INPUT -p tcp --dport 80 -j ACCEPT | + | Вы можете задавать и свои условия проверки. Например, |
- | + | < | |
- | #iptables -A INPUT -p tcp --dport 443 -j ACCEPT | + | |
- | + | ||
- | Указанный выше набор правил предусматривает разрешение подключения к | + | |
- | + | ||
- | серверу только через порты 22, 53, 80, 443. Подключения через другие порты будут | + | |
- | + | ||
- | блокироваться. | + | |
- | + | ||
- | порт 42222 либо 52222) | + | |
- | + | ||
- | Это лишь пример цепочки правил для iptables. Вы можете задавать и свои условия | + | |
- | + | ||
- | проверки. Например, | + | |
- | + | ||
- | условие мониторинга активности на основных портах доступа к серверу: | + | |
- | + | ||
- | #iptables -A INPUT -m multiport -p tcp --destination-ports 21, | + | |
- | + | ||
- | sshguard | + | |
3. Сохраните заданные правила в памяти сервера командой | 3. Сохраните заданные правила в памяти сервера командой | ||
- | + | < | |
- | #iptables-save | + | 4. Чтобы заданная цепочка правил имела действие после перезапуска виртуального сервера, |
- | + | < | |
- | 4. Чтобы заданная цепочка правил имела действие после перезапуска виртуального | + | apt-get install nano |
- | + | nano -w / | |
- | сервера, | + | </ |
- | + | ||
- | установите к себе на VPS предпочитаемый редактор, | + | |
- | + | ||
- | #apt-get install nano | + | |
- | + | ||
- | #nano -w / | + | |
Содержимое файла должно быть таким: | Содержимое файла должно быть таким: | ||
+ | < | ||
#!/bin/sh | #!/bin/sh | ||
- | |||
iptables-restore < / | iptables-restore < / | ||
+ | </ | ||
Сохраните обновления и предоставьте скрипту необходимые права для выполнения: | Сохраните обновления и предоставьте скрипту необходимые права для выполнения: | ||
- | + | < | |
- | #chmod +x / | + | |
5. Передайте заданную ранее цепочку правил в firewall: | 5. Передайте заданную ранее цепочку правил в firewall: | ||
- | + | < | |
- | #iptables-save >/ | + | |
6. Теперь предоставьте SSHGuard права, чтобы была возможность перезаписывать | 6. Теперь предоставьте SSHGuard права, чтобы была возможность перезаписывать | ||
- | |||
правила в iptables: | правила в iptables: | ||
< | < |