вторник, 16 июня 2020 г.

fail2ban+systemd+sshd

У fail2ban начиная с версии 1.9.0 есть поддержка опции
backend = systemd

Но в centos, debian (например в 8) чаще 0.8, поэтому тут решение - подключать rsyslog

apt-get install rsyslog

/etc/rsyslog.d/sshd.conf:
authpriv.*      /var/log/auth.log
systemctl enable rsyslog
systemctl start rsyslog
ls -la /var/log/auth.log

И теперь как обычно
cat >> /etc/fail2ban/jail.local << EOF
[ssh]
enabled = true
bantime = 12m
EOF
(в случае centos поправить имя блока до sshd, файл лога при этом писать не в auth.log а в /var/log/secure, но в центос обычно rsyslog уже из коробки настроен как надо)

среда, 3 июня 2020 г.

Duo Unix - Two-Factor Authentication for SSH with PAM Support (pam_duo)

https://duo.com/docs/duounix

Очень удобная штука, позволяет управлять кто и куда может подключаться, 2FA для большей безопасности... Лучше с офсайтом ознакомиться.
Интересен ещё и тем, что есть интеграция с Cisco, например вход в VPN может штатно запрашивать подтверждение на телефоне.
Отдалённый аналог - google authenticator, но тот только генератор номеров, а тут полный стэк.

Помимо PAM, есть вариант настройки через login
https://duo.com/docs/loginduo

Есть и такая дока
https://www.stephenwagner.com/2018/05/06/configure-duo-mfa-centos-7-linux-with-pam_duo/

CloudFormation, ASG and Route53

Иногда нужно добавлять домены в Route53 при создании серверов. Для обычных EC2::Instance просто добавляем столько же секций, сколько нам нужно доменов. Всё усложняется, когда нужно делать динамические имена для ASG (Auto Scale Groups).
Вариант "в лоб": делим единый ASG на столько, сколько у нас инстансов, и уже к каждому привязываем конкретный поддомен и всё что нужно. Да, это дублирование как самих ASG, так и связанных LaunchConfiguration, потому что теперь они как минимум содержат номер, поддомен или ещё что-либо. То есть получаем по сути обычный EC::Instance, с небольщим отличием - самовосстановлением, если машина полностью ломается то она будет пересоздана автоматически.
Есть вариант через CloudMap, там уже есть некая гибкость, но нужно внимательно изучить
Есть и такое
https://underthehood.meltwater.com/blog/2020/02/07/dynamic-route53-records-for-aws-auto-scaling-groups-with-terraform/
но тоже надо смотреть, как оно внутри устроено и работает.
Далее, можно в UserData какими-то БД, внешними арбитрами итд вычислять нужные имена и далее через aws route53 манипулировать
Также есть Macro
https://github.com/awslabs/aws-cloudformation-templates/tree/master/aws/services/CloudFormation/MacrosExamples/Count