как выполнить скрипт bash, когда кто-то подключается к серверу ssh (freebsd)

Para su caso de uso simple, puede usar una variable:

$ foo="foobar.com"
$ curl -k "${foo}"

¿Todos sus casos de uso se centran en comandos de terminal?

0
11.07.2019, 22:00
1 ответ

sshdможно запустить как отдельную службу -или из inetd. Если вы запустите его из inetd, вы можете написать простую обертку вокруг двоичного файла /usr/bin/sshd, чтобы делать все, что вы хотите, когда sshсоединение установлено:

# cat /root/bin/sshd.sh
#!/bin/sh
logger -i -p auth.info "Someone is trying to ssh in"
exec /usr/sbin/sshd "$@"
# ls -l /root/bin/sshd.sh
-rwx------  1 root  wheel  204 Jul 11 13:32 bin/sshd.sh*
# grep ^ssh /etc/rc.conf
sshd_enable="no"
# grep ^ssh /etc/inetd.conf
ssh     stream  tcp     nowait  root    /root/bin/sshd.sh       sshd -i -4

Имейте в виду, что возня с sshпотенциально может ослабить вашу безопасность, а не усилить ее, как вы пытаетесь сделать. Специализированный продукт (, такой как Fail2Ban ), может быть лучшим решением.

Кроме того, запуск скрипта при каждом sshзапуске соединения -может быть дорогостоящим, если вы получаете соединения с высокой скоростью. Как и прежде, это может потреблять системные ресурсы и приводить к отказу -в обслуживании -. Запуск задания cron раз в минуту или раз в пять минут может быть предпочтительнее в том смысле, что он создает минимальную постоянную нагрузку на систему. Один скрипт --на модель соединения -увеличивает нагрузку прямо пропорционально давлению атаки ssh.

0
28.01.2020, 03:27

Теги

Похожие вопросы