породите команду, не найденную на человечности 14.04

Я использую Ubuntu 14.04, и я хочу заблокировать страну входа в систему SSH мудрое использование GeoIP (От https://www.axllent.org/docs/view/ssh-geoip/),

Найдите вывод команды:

$ spawn
spawn: command not found

Так, чтобы у меня была установка, ожидают пакет, но все еще работу:

apt-get install expect
expect is already the newest version

Я хочу выполнить следующий сценарий:

cat /etc/hosts.allow
sshd: ALL: spawn /usr/local/bin/sshfilter.sh %a

У Вас есть какая-либо идея относительно того же?

3
задан 25 July 2016 в 14:00

2 ответа

spawn expect определенная команда, т.е. необходимо интерпретировать spawn использование expect.

Большую часть времени Вы использовали бы expect сценарий и использование spawn внутренняя часть это для запуска нового процесса.

, Например:

#!/usr/bin/expect -f
spawn ssh host
expect ....

От терминала непосредственно:

% expect -c 'spawn whoami'
spawn whoami

значением по умолчанию spawn эхо команда следовательно вывод в терминале.

6
ответ дан 1 December 2019 в 13:16

В этом случае это кажется этим spawn относится к spawn расширение hosts.allow синтаксис, как описано в RUNNING OTHER COMMANDS раздел hosts_options (5) страница справочника (man hosts_options):

RUNNING OTHER COMMANDS
    aclexec shell_command
           Execute,  in a child process, the specified shell command, after
           performing   the   %<letter>   expansions   described   in   the
           hosts_access(5)  manual  page.   The  command  is  executed with
           stdin, stdout and stderr connected to the null device,  so  that
           it won't mess up the conversation with the client host. Example:

              smtp : ALL : aclexec checkdnsbl %a

           executes,  in  a  background  child  process,  the shell command
           "checkdnsbl %a" after replacing %a by the address of the  remote
           host.

           The  connection  will be allowed or refused depending on whether
           the command returns a true or false exit status.

    spawn shell_command
           Execute, in a child process, the specified shell command,  after
           performing   the   %<letter>   expansions   described   in   the
           hosts_access(5) manual  page.   The  command  is  executed  with
           stdin,  stdout  and stderr connected to the null device, so that
           it won't mess up the conversation with the client host. Example:

              spawn (/usr/sbin/safe_finger -l @%h | /usr/bin/mail root) &

           executes, in a  background  child  process,  the  shell  command
           "safe_finger  -l @%h | mail root" after replacing %h by the name
           or address of the remote host.

Факт это spawn возвращает ошибку, когда Вы пытаетесь работать, она за пределами того контекста (т.е. как команда в оболочке) не должна касаться Вас - если у Вас есть проблемы с правильным функционированием GeoIP, фильтрующего сценарий, это - отдельный вопрос.


Продемонстрировать успешную операцию hosts.allow spawn расширение на Ubuntu 14.04, не попадая в историю в GeoIP, можно создать минимальный исполняемый файл/usr/local/bin/sshfilter.sh сценарий, который просто регистрирует IP-адрес и затем возвращается 0, например.

#!/bin/sh

logger "$0: connection from $1"

exit 0

Затем со следующими строками, добавленными к файлам hosts:

В hosts.deny:

sshd: ALL

В hosts.allow:

sshd: ALL: spawn /usr/local/bin/sshfilter.sh %a

Затем выполненный

tail -f /var/log/syslog

в одном окне терминала и, в другом, попытка зарегистрировать на пути SSH:

ssh localhost

Необходимо видеть сообщение в хвосте системного журнала как

Jul 25 08:03:59 T61p logger: /usr/local/bin/sshfilter.sh: connection from 127.0.0.1

Можно подтвердить, что это также работает с aclexec вместо spawn, как предложено в статье Вы связались. На самом деле в этом случае необходимо использовать aclexec с тех пор spawn не использует код выхода порожденного процесса, чтобы определить, позволить ли соединение - который aclexec делает.

2
ответ дан 1 December 2019 в 13:16

Другие вопросы по тегам:

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