После установки CSF (ConfigServer Security & Firewall) на Centos6, запущенном в LXC-контейнере на ноде под ProxMox(Debian9) проверка наличия требуемых модулей Iptables для корректной работы CSF не проходит успешно В результате такой проверки отсутствуют некоторые модули,при этом на ноде,на которой размещен LXC-контейнер, эти модули присутствуют(загружены) Установка CSF Более полная версия с необходимы пакетами доступна здесь https://kamaok.org.ua/?p=800 […]
Архивы рубрики ‘Security’
Настройка Fail2ban для защиты WordPress
 Февраль 21st, 2016
 Февраль 21st, 2016  Evgeniy Kamenev
 Evgeniy Kamenev 1.Настройка конфигурационного файла fail2ban
| 1 | # grep -E -v '(#|^$)' /etc/fail2ban/fail2ban.conf | 
| 1 2 3 4 5 6 7 8 | [Definition] loglevel = INFO logtarget = /var/log/fail2ban.log syslogsocket = auto socket = /var/run/fail2ban/fail2ban.sock pidfile = /var/run/fail2ban/fail2ban.pid dbfile = /var/lib/fail2ban/fail2ban.sqlite3 dbpurgeage = 86400 | 
2.Настройка Fail2ban-фильтров для мониторинга логов Защита против brutoforce админки
| 1 | # nano /etc/fail2ban/filter.d/wordpress-wp-login.conf | 
| 1 2 3 | [Definition] failregex = .*POST /wp-login.php ignoreregex = | 
Защита против атаки brutoforce XMLRPC https://blog.sucuri.net/2015/10/brute-force-amplification-attacks-against-wordpress-xmlrpc.html
| 1 | # nano /etc/fail2ban/filter.d/wordpress-wp-xmlrpc.conf | 
| 1 2 3 | [Definition] failregex = .*POST /xmlrpc.php ignoreregex = | 
Защита против проверки возможности создания WordPress-аккаунта
| 1 | # nano /etc/fail2ban/filter.d/wordpress-wp-register.conf | 
| 1 2 3 | [Definition] failregex = ^ .* "GET /wp-login.php\?action=register HTTP/.*" .*$ ignoreregex = | 
3. Настройка Fail2ban для мониторинга логов
| 1 | # nano /etc/fail2ban/jail.conf | 
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | [INCLUDES] before = paths-fedora.conf [DEFAULT] ignoreip = 127.0.0.1/8 159.224.XXX.YYY ignorecommand = bantime = 86400 findtime = 7200 maxretry = 5 backend = auto usedns = warn logencoding = auto enabled = false filter = %(__name__)s destemail = myname@mydomain.com sender = root@mydomain.com mta = sendmail protocol = tcp chain = INPUT port = 0:65535 banaction = iptables-multiport action_ = %(banaction)s[name=%(__name__)s, bantime="%(bantime)s", port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"] action_mw = %(banaction)s[name=%(__name__)s, bantime="%(bantime)s", port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"] %(mta)s-whois[name=%(__name__)s, dest="%(destemail)s", protocol="%(protocol)s", chain="%(chain)s"] action_mwl = %(banaction)s[name=%(__name__)s, bantime="%(bantime)s", port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"] %(mta)s-whois-lines[name=%(__name__)s, dest="%(destemail)s", logpath=%(logpath)s, chain="%(chain)s"] action_xarf = %(banaction)s[name=%(__name__)s, bantime="%(bantime)s", port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"] xarf-login-attack[service=%(__name__)s, sender="%(sender)s", logpath=%(logpath)s, port="%(port)s"] action_blocklist_de = blocklist_de[email="%(sender)s", service=%(filter)s, apikey="%(blocklist_de_apikey)s"] action_badips = badips.py[category="%(name)s", banaction="%(banaction)s"] action = %(action_)s ####Этот блок касается непосредственно защиты Wordpress [wordpress-wp-login] port = http,https logpath = /var/log/nginx/*.log maxretry = 3 enabled = true filter = wordpress-wp-login action = %(action_mwl)s bantime = 86400 findtime = 7200 maxretry = 3 [wordpress-wp-xmlrpc] port = http,https logpath = /var/log/nginx/*.log maxretry = 3 enabled = true filter = wordpress-wp-xmlrpc action = %(action_mwl)s bantime = 86400 findtime = 7200 maxretry = 3 [wordpress-wp-register] port = http,https logpath = /var/log/nginx/*.log maxretry = 3 enabled = true filter = wordpress-wp-register action = %(action_mwl)s bantime = 86400 findtime = 7200 maxretry = 3 | 
Перезапускаем fail2ban
| 1 | # /etc/init.d/fail2ban restart | 
4.Проверка работы фильтра
| 1 | # fail2ban-regex /var/log/nginx/mydomain.com.log /etc/fail2ban/filter.d/wordpress-wp-login.conf | 
Если необходимо посмотреть строки,которые […]
Интеграция Fail2ban c CSF для защиты WordPress от bruteforce-атак
 Октябрь 23rd, 2015
 Октябрь 23rd, 2015  Evgeniy Kamenev
 Evgeniy Kamenev 1. Установка, остановка и удаление с автозагрузки Fail2ban
| 1 | # apt-get install fail2ban | 
| 1 | # service fail2ban stop | 
| 1 | # update-rc.d -f fail2ban remove | 
2.Настройка запуска fail2ban средствами CSF
| 1 | # nano /etc/csf/csfpost.sh | 
| 1 2 | #!/bin/sh /etc/init.d/fail2ban restart | 
3.Отклчючение всех фильтров в Fail2ban
| 1 | # sed -i "s|enabled = true|enabled = false|g" /etc/fail2ban/jail.conf | 
4. Настройка поддержки CSF в Fail2ban
| 1 | # nano /etc/fail2ban/action.d/csf-ip-deny.conf | 
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | [Definition] actionstart = actionstop = actioncheck = actionban = csf -d <ip> Added by Fail2Ban for <name> # curl https://www.cloudflare.com/api_json.html -d 'a=ban' -d 'tkn=<cftoken>' -d 'email=<cfuser>' -d 'key=<ip>' actionunban = csf -dr <ip> # curl https://www.cloudflare.com/api_json.html -d 'a=nul' -d 'tkn=<cftoken>' -d 'email=<cfuser>' -d 'key=<ip>' # [Init] ###### Default Cloudflare API token # cftoken = XXXXXXXXXXXXXXXXXXXXXXXXXX ###### Default Cloudflare username # cfuser = me@example.com | 
Если используется Cloudflare, то расскоментируем все строки с одним знаком комментария 5.Замена для всех фильтров Fail2ban действия блокировки на созданный «csf-ip-deny»
| 1 | # sed -i -e "s|banaction = |banaction = csf-ip-deny\n#banaction = |" /etc/fail2ban/jail.conf | 
6. […]
Установка и использование Chkrootkit на Centos/Debian
 Май 6th, 2015
 Май 6th, 2015  Evgeniy Kamenev
 Evgeniy Kamenev 1.Установка chkrootkit Centos
| 1 | # yum install chkrootkit | 
Просмотр списка файлов установленных пакетом
| 1 | # rpm -ql chkrootkit | 
Debian
| 1 | # apt-get install chkrootkit | 
Просмотр списка файлов установленных пакетом
| 1 | # apt-file list chkrootkit | 
Установка из исходников wget ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz
| 1 | # tar -xzfм chkrootkit.tar.gz | 
| 1 | # cd chkrootkit-* | 
Собираем модули
| 1 | # make sense | 
Запуск shell-скрипта
| 1 | # ./chkrootkit | 
2.Использование chkrootkit Опции утилиты chkrotkit
| 1 | -h  | 
– просмотр справки
| 1 | -V | 
– просмотр версии
| 1 | -l | 
– просмотр списка тестов/проверок, которые […]
Установка и настройка Config Server Firewall на Centos/Debian
 Апрель 17th, 2015
 Апрель 17th, 2015  Evgeniy Kamenev
 Evgeniy Kamenev 1.Установка необходимых зависимостей Config Server Firewall Centos
| 1 | # yum install perl-libwww-perl | 
| 1 | # yum install perl-Time-HiRes | 
Debian
| 1 | # apt-get install libwww-perl | 
| 1 | # apt-get install Time-HiRes | 
2.Установка Config Server Firewall
| 1 | # wget http://www.configserver.com/csf.tgz | 
| 1 | # tar xvfz csf.tgz | 
| 1 | # cd csf | 
| 1 | # sh install.sh | 
3.Проверка необходимых модулей iptables
| 1 | # perl /usr/local/csf/bin/csftest.pl либо perl /etc/csf/csftest.pl | 
| 1 2 3 4 5 6 7 8 9 10 11 12 13 | Testing ip_tables/iptable_filter...OK Testing ipt_LOG...OK Testing ipt_multiport/xt_multiport...OK Testing ipt_REJECT...OK Testing ipt_state/xt_state...OK Testing ipt_limit/xt_limit...OK Testing ipt_recent...OK Testing xt_connlimit...OK Testing ipt_owner/xt_owner...OK Testing iptable_nat/ipt_REDIRECT...OK Testing iptable_nat/ipt_DNAT...OK  RESULT: csf should function on this server | 
4.Удаление,если уже были установлены другие firewall, с которыми конфликтует CSF(APF/BFD)
| 1 | # sh /usr/local/csf/bin/remove_apf_bfd.sh | 
либо
| 1 | # sh /etc/csf/remove_apf_bfd.sh | 
5.Настройка Config Server Firewall
| 1 | /etc/csf | 
– каталог,содеражащий все конфигураионные файлы
| 1 | csf.conf | 
– […]
Защита wp-login.php от bruteforce-атак средствами Nginx
 Февраль 3rd, 2015
 Февраль 3rd, 2015  Evgeniy Kamenev
 Evgeniy Kamenev 1.Определяем имя(requests),размер(10m) зоны и кол-во запросов в секунду(1 запрос в секунду) Также определяем тип ошибки при срабатывании правил(по умолчанию стоит 503).Изменим статус на 444. Параметр limit_req_status можно указывать как глобально в секции http {..} , так и локально для конкретного location {..}. В данном случае указано глобально.
| 1 | # nano /etc/nginx/nginx.conf | 
| 1 2 3 4 5 6 | http { ….. limit_req_zone $binary_remote_addr zone=requests:10m rate=1r/s; limit_req_log_level warn; limit_req_status 444; } | 
2.В вирт.хосте Nginx для WordPress […]
Обновление самоподписного SSL-сертификата на Centos
 Январь 30th, 2015
 Январь 30th, 2015  Evgeniy Kamenev
 Evgeniy Kamenev При получении почтового сообщения типа указанного ниже необходимо продлить с помощью утилиты genkey если Ваш сертификат подписан Центром Сертификации CA (Certificate Authority) При использовании самоподписного сертифіката(self-signed) утилита genkey не поможет.Необходимо заново сгенерировать самоподписной сертификат.
| 1 2 3 4 5 6 7 8 9 | ################# SSL Certificate Warning ################ Certificate for hostname '<servername>', in file (or by nickname): /etc/pki/tls/certs/localhost.crt The certificate needs to be renewed; this can be done using the 'genkey' program. Browsers will not be able to correctly connect to this web site using SSL until the certificate is renewed. ########################################################## Generated by certwatch(1) | 
1.Проверяем название файла и место, где находятся сертификат и ключ, используемые в Apache
| 1 | # grep SSLCertificate /etc/httpd/conf.d/ssl.conf | grep -v \# | 
| 1 2 | SSLCertificateFile /etc/pki/tls/certs/localhost.crt SSLCertificateKeyFile /etc/pki/tls/private/localhost.key | 
2.Проверем права […]
Установка и включение iptables на Сentos 7
 Январь 29th, 2015
 Январь 29th, 2015  Evgeniy Kamenev
 Evgeniy Kamenev Останавливаем и отключаем с автозагрузки firewalld
| 1 | # systemctl stop firewalld | 
| 1 | # systemctl disable firewalld | 
Устанавливаем iptables
| 1 | # yum install iptables-services iptables | 
Добавляем iptables в автозагрузку
| 1 | # systemctl enable iptables | 
Копируем init-скрипт для того, чтобы можно было сохранять правила командой /etc/init.d/iptables save
| 1 | # cp /usr/libexec/iptables/iptables.init /etc/init.d/iptables | 
Проверяем, что сохраняются правила при остановке/перезапуске iptables, а также подгружаем модуль отслеживания состояний ftp-подключений.
| 1 | # nano /etc/sysconfig/iptables-config | 
| 1 2 3 | IPTABLES_MODULES="nf_conntrack_ftp" IPTABLES_SAVE_ON_STOP="yes" IPTABLES_SAVE_ON_RESTART="yes" | 
После набора правил сохраняем правила и перезапускаем […]
Оптимизация настроек ядра для высоконагруженных серверов и защиты от DDOS-атак
 Ноябрь 10th, 2014
 Ноябрь 10th, 2014  Evgeniy Kamenev
 Evgeniy Kamenev На просторах Интернета нашел толковое описание sysctl настроек ядра для оптимизации большого кол-ва подключений и защиты от DDOS-атак
| 1 2 3 | net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.all.secure_redirects = 0 net.ipv4.conf.all.send_redirects = 0 | 
Не принимать и не отправлять ICMP-пакеты перенаправления. ICMP-перенаправления могут быть использованы злоумышленником для изменения таблиц маршрутизации. Целесообразно выставить в «0». Единица имеет смысл только для хостов, использующихся в качестве маршрутизаторов.
| 1 | net.ipv4.tcp_max_orphans = 65536 | 
Целочисленное значение параметра tcp_max_orphans […]
Анализ и защита от DDOS-атак
 Ноябрь 7th, 2014
 Ноябрь 7th, 2014  Evgeniy Kamenev
 Evgeniy Kamenev Диагностика DDOS-атаки Подсчет кол-ва подключений к серверу
| 1 | # cat /proc/net/ip_conntrack | wc -l | 
— для Centos5
| 1 | # cat /proc/net/nf_conntrack | wc -l | 
— для Centos6 SYN—flood Подсчет кол-ва попыток установить соединение
| 1 | # netstat -nap | grep SYN_RECV | wc -l | 
Просмотр кол-ва запросов с каждого адреса на установку соединений
| 1 | # netstat -nap | grep SYN_RECV | awk {'print $5'} | awk -F: {'print $1'} | sort -rn | uniq -c | sort -rn | 
Проверка кол-ва полузакрытых соединений
| 1 | # netstat -an | grep FIN* | wc -l | 
Просмотр кол-ва и типов установленных соединений
| 1 | # netstat -np | awk '{print $6}'|awk -F: '{print $1}' | sort -rn | uniq -c | sort -rn | less | 
Просмотр кол-ва […]

 Опубликовано в рубрике
 Опубликовано в рубрике  Метки:
 Метки: 