Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия Следующая версия справа и слева
каталог_статей:безопастность:установка_и_настройка_sshguard [2015/12/22 10:50]
korotish
каталог_статей:безопастность:установка_и_настройка_sshguard [2015/12/22 10:56]
korotish
Строка 15: Строка 15:
 2. Скачайте архив с программой SSHGuard и распакуйте его, выполнив представленные ниже команды по очереди: 2. Скачайте архив с программой SSHGuard и распакуйте его, выполнив представленные ниже команды по очереди:
  
-<code> wget http://sourceforge.net/projects/sshguard/files/sshguard/sshguard-1.5/ +<code>  
 +wget http://sourceforge.net/projects/sshguard/files/sshguard/sshguard-1.5/ 
 sshguard-1.5.tar.bz2/download sshguard-1.5.tar.bz2/download
 tar xjpf download tar xjpf download
Строка 21: Строка 22:
 ./configure –with-firewall=iptables  ./configure –with-firewall=iptables 
 make && make install </code> make && make install </code>
- 
 3.Теперь задайте цепочку правил в iptables командой 3.Теперь задайте цепочку правил в iptables командой
- +<code> iptables -N sshguard </code> 
-#iptables -N sshguard +4. Обязательно настройте проверку всего входящего трафика через установленную цепочку правил командой 
- +<code> iptables -A INPUT -j sshguard </code> 
-4. Обязательно настройте проверку всего входящего трафика через установленную цепочку  +5. Настройте отслеживание активности на основных портах FTP, SSH, POP3, IMAP. (Если SSH использует нестандартный порт (42222 , 52222 либо другой , укажите его ) 
- +<code> 
-правил командой +iptables -P INPUT ACCEPT 
- +iptables -A INPUT -m multiport -p tcp --destination-ports 21,22,110,143 -j sshguard 
-#iptables -A INPUT -j sshguard +</code>
- +
-5. Настройте отслеживание активности на основных портах FTP, SSH, POP3, IMAP. (Если  +
- +
-SSH использует нестандартный порт (42222 , 52222 либо другой , укажите его ) +
- +
-#iptables -P INPUT ACCEPT +
- +
-#iptables -A INPUT -m multiport -p tcp --destination-ports 21,22,110,143 -j sshguard +
 Дополнительно вы можете настроить блокировку нарушителей на портах TCP и UDP командами: Дополнительно вы можете настроить блокировку нарушителей на портах TCP и UDP командами:
- +<code>  
-#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 +</code> 
- +6. Чтобы SSHGuard имел право доступа на динамическое изменение настроек iptables, выполните команду 
-6. Чтобы SSHGuard имел право доступа на динамическое изменение настроек iptables,  +<code> chmod +s /usr/local/sbin/sshguard </code>
- +
-выполните команду +
- +
-#chmod +s /usr/local/sbin/sshguard +
 7. Сохраните внесенные в правила изменения командой 7. Сохраните внесенные в правила изменения командой
- +<code> service iptables save </code>
-#service iptables save +
 либо  либо 
- +<code> iptables-save > /etc/sysconfig/iptables </code>
-#iptables-save > /etc/sysconfig/iptables +
 8. Теперь выполните запуск SSHGuard командой  8. Теперь выполните запуск SSHGuard командой 
 +<code> /usr/local/sbin/sshguard -l /var/log/secure </code>
  
-#/usr/local/sbin/sshguard -l /var/log/secure +9. На этом установка SSHGuard завершена. Отныне после каждых 4 неуспешных попыток подключения к VPS IP-адрес нарушителя будет блокироваться. Однако, созданные настройки будут работать до первой перезагрузки виртуального сервера.
- +
-9. На этом установка SSHGuard завершена. Отныне после каждых 4 неуспешных  +
- +
-попыток подключения к VPS IP-адрес нарушителя будет блокироваться. Однако,  +
- +
-созданные настройки будут работать до первой перезагрузки виртуального сервера.  +
 Восстанавливать их придется командой  Восстанавливать их придется командой 
  
-#/sbin/service iptables restart+<code> /sbin/service iptables restart </code>
  
-Чтобы не делать этого каждый раз, можно на сервере создать специальный файл и  +Чтобы не делать этого каждый раз, можно на сервере создать специальный файл и разместить в нем текст скрипта, который бы выполнял запуск программы автоматически.  
- +10. Cоздайте файл со скриптом на VPS. Создание такого файла осуществляется командой  
-разместить в нем текст скрипта, который бы выполнял запуск программы  +<code> touch /etc/rc.d/init.d/sshguard </code>
- +
-автоматически.  +
- +
-10. Cоздайте файл со скриптом на VPS. Создание такого файла осуществляется  +
- +
-командой  +
- +
-#touch /etc/rc.d/init.d/sshguard+
  
 После того, как вы открыли файл с названием sshguard, добавьте в него все строки : После того, как вы открыли файл с названием sshguard, добавьте в него все строки :
- +<code>
-( ЭТОТ КОД ЛУЧШЕ В КАКУЮ-НИБУДЬ СВЁРНУТУЮ ВКЛАДКУ ЗАСУНУТЬ А ЭТУ  +
- +
-СТРОЧКУ УДАЛИТЬ) +
 #! /bin/sh #! /bin/sh
  
Строка 245: Строка 209:
  
 exit $RETVAL  exit $RETVAL 
 +</code>
  
-11. Чтобы операционная система могла прочитать созданный файл, выполните  +11. Чтобы операционная система могла прочитать созданный файл, выполните приведенный ниже набор команд:  
- +<code> 
-приведенный ниже набор команд:  +yum install perl 
- +perl -pi -e 's/\r\n/\n/;' /etc/rc.d/init.d/sshguard 
-#yum install perl +</code>
- +
-#perl -pi -e 's/\r\n/\n/;' /etc/rc.d/init.d/sshguard +
 12. Дополнительно установите на свой VPS специальную утилиту для чтения логов -  12. Дополнительно установите на свой VPS специальную утилиту для чтения логов - 
- +syslog-ng. Ее установка и запуск выполняется следующей последовательностью команд:  
-syslog-ng. Ее установка и запуск выполняется следующей последовательностью  +<code> yum install chkconfig 
- +cd /root 
-команд:  +wget http:// dl.fedoraproject.org/pub/epel/6Server/x86_64/epel-release-6-8.noarch.rpm   
- +yum -y update 
-#yum install chkconfig +rpm -Uvh /root/epel-release-6-8.noarch.rpm 
- +yum repolist 
-#cd /root +yum check-update 
- +sudo sed -i "s/mirrorlist=https/mirrorlist=http/" /etc/yum.repos.d/epel.repo 
-#wget http:// dl.fedoraproject.org/pub/epel/6Server/x86_64/epel-release-6- +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 /root/epel-release-6-8.noarch.rpm +service syslog-ng start 
- +</code>
-#yum repolist +
- +
-#yum check-update +
- +
-#sudo sed -i "s/mirrorlist=https/mirrorlist=http/" /etc/yum.repos.d/epel.repo +
- +
-#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: 
- +<code> nano /etc/syslog-ng/syslog-ng.conf </code>
-#nano /etc/syslog-ng/syslog-ng.conf +
 Добавьте в него такие строки:  Добавьте в него такие строки: 
- +<code>
-(тоже стоит спрятать в разворачивающуюся вкладку наверное) +
 # 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); filter(f_sshguard); destination(sshguard); }; +log { source(src); filter(f_sshguard); destination(sshguard); };  
 +</code>
 Сохраните изменения в файле и выполните команду  Сохраните изменения в файле и выполните команду 
- +<code> killall -HUP syslog-ng </code>
-#killall -HUP syslog-ng+
  
 14. Остается только выполнить запуск скрипта командами:  14. Остается только выполнить запуск скрипта командами: 
 +<code>chkconfig sshguard on
 +service sshguard start </code>
  
-#chkconfig sshguard on +**Debian**
- +
-#service sshguard start +
- +
-Debian+
  
 Для Debian процедура установки SSHGuard следующая:  Для Debian процедура установки SSHGuard следующая: 
- 
 1. Выполните команду  1. Выполните команду 
- +<code> apt-get –y install sshguard </code>
-#apt-get –y install sshguard +
 2. Создайте правила в iptables, поочередно выполнив такие команды:  2. Создайте правила в iptables, поочередно выполнив такие команды: 
- +<code> 
-#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 
- +</code> 
-#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 +Вы можете задавать и свои условия проверки. Например, можно использовать и предложенное в предыдущих пунктах условие мониторинга активности на основных портах доступа к серверу:  
- +<code> iptables -A INPUT -m multiport -p tcp --destination-ports 21,22,110,143 -j sshguard </code>
-#iptables -A INPUT -p tcp --dport 443 -j ACCEPT +
- +
-Указанный выше набор правил предусматривает разрешение подключения к  +
- +
-серверу только через порты 22, 53, 80, 443. Подключения через другие порты будут  +
- +
-блокироваться.  (стоит заметить что Ваш сервер может иметь нестандартный SSH  +
- +
-порт 42222 либо 52222) +
- +
-Это лишь пример цепочки правил для iptables. Вы можете задавать и свои условия  +
- +
-проверки. Например, можно использовать и предложенное в предыдущих пунктах  +
- +
-условие мониторинга активности на основных портах доступа к серверу:  +
- +
-#iptables -A INPUT -m multiport -p tcp --destination-ports 21,22,110,143 -j  +
- +
-sshguard+
  
 3. Сохраните заданные правила в памяти сервера командой  3. Сохраните заданные правила в памяти сервера командой 
- +<code> iptables-save </code> 
-#iptables-save  +4. Чтобы заданная цепочка правил имела действие после перезапуска виртуального сервера, необходимо открыть для редактирования файл 00-iptables. Предварительно установите к себе на VPS предпочитаемый редактор, например, nano:  
- +<code> 
-4. Чтобы заданная цепочка правил имела действие после перезапуска виртуального  +apt-get install nano 
- +nano -w /etc/network/if-up.d/00-iptables 
-сервера, необходимо открыть для редактирования файл 00-iptables. Предварительно  +</code>
- +
-установите к себе на VPS предпочитаемый редактор, например, nano:  +
- +
-#apt-get install nano +
- +
-#nano -w /etc/network/if-up.d/00-iptables +
 Содержимое файла должно быть таким:  Содержимое файла должно быть таким: 
 +<code>
 #!/bin/sh #!/bin/sh
- 
 iptables-restore < /etc/firewall.conf iptables-restore < /etc/firewall.conf
 +</code>
 Сохраните обновления и предоставьте скрипту необходимые права для выполнения:  Сохраните обновления и предоставьте скрипту необходимые права для выполнения: 
- +<code> chmod +x /etc/network/if-up.d/00-iptables </code>
-#chmod +x /etc/network/if-up.d/00-iptables +
 5. Передайте заданную ранее цепочку правил в firewall:  5. Передайте заданную ранее цепочку правил в firewall: 
- +<code> iptables-save >/etc/firewall.conf </code>
-#iptables-save >/etc/firewall.conf +
 6. Теперь предоставьте SSHGuard права, чтобы была возможность перезаписывать  6. Теперь предоставьте SSHGuard права, чтобы была возможность перезаписывать 
- 
 правила в iptables:  правила в iptables: 
 <code> chmod +s /usr/sbin/sshguard </code> <code> chmod +s /usr/sbin/sshguard </code>