GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Commande Spawn introuvable sur Ubuntu 14.04?

J'utilise Ubuntu 14.04 et je souhaite bloquer la connexion SSH par pays en utilisant GeoIP (de https://www.axllent.org/docs/view/ssh-geoip/),

Veuillez trouver le résultat de la commande :

$ spawn
spawn: command not found

Alors que j'ai installé attendre package mais ne fonctionne toujours pas :

apt-get install expect
expect is already the newest version

Je veux exécuter le script suivant :

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

Avez-vous une idée à ce sujet ?

Réponse acceptée :

Dans ce cas, il semble que spawn fait référence au spawn extension à hosts.allow syntaxe, comme décrit dans le RUNNING OTHER COMMANDS section de la page de manuel 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.

Le fait que spawn renvoie une erreur lorsque vous essayez de l'exécuter en dehors de ce contexte (c'est-à-dire en tant que commande dans le shell) ne doit pas vous concerner - si vous rencontrez des problèmes avec le bon fonctionnement du script de filtrage GeoIP, c'est un problème distinct.

Pour démontrer le bon fonctionnement de hosts.allow spawn sur Ubuntu 14.04 sans vous emmêler dans GeoIP, vous pouvez créer un script exécutable minimal /usr/local/bin/sshfilter.sh qui enregistre simplement l'adresse IP puis renvoie 0, par exemple

#!/bin/sh

logger "$0: connection from $1"

exit 0

Puis avec les lignes suivantes ajoutées aux fichiers hosts :

En relation :Ubuntu bloqué sur l'écran de connexion ?

Dans hosts.deny :

sshd: ALL

Dans hosts.allow :

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

Puis lancez

tail -f /var/log/syslog

dans une fenêtre de terminal et, dans une autre, essayez de vous connecter via SSH :

ssh localhost

Vous devriez voir un message dans la queue syslog comme

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

Vous pouvez confirmer que cela fonctionne également avec aclexec à la place de spawn , comme suggéré dans l'article que vous avez lié. En fait, dans ce cas, vous devez utiliser aclexec depuis spawn n'utilise pas le code de sortie du processus généré pour déterminer s'il faut autoriser la connexion - quel aclexec fait .


Ubuntu
  1. (Résolu) Commande apt-add-repository introuvable – Ubuntu &Debian

  2. id :commande introuvable

  3. w :commande introuvable

  4. df :commande introuvable

  5. du :commande introuvable

Commande Ping introuvable sur Ubuntu 20.04 Focal Fossa Linux

Commande Ping introuvable sur Ubuntu 22.04 Jammy Jellyfish Linux

Comment réparer do-release-upgrade:erreur de commande introuvable dans Ubuntu

Bash ifconfig :commande introuvable dans Ubuntu et Debian

Comment réparer la commande Ifconfig introuvable sur Ubuntu 20.04 LTS

Commande Ping introuvable ? Installer Ping sur Ubuntu