L'exécution de script sur la réception de connexion avec xinetd
Je veux xinetd pour exécuter un script shell lorsqu'une connexion est reçu sur un port donné. Pour ce faire, suivez ce tutoriel: [enter description du lien ici][1]
Malheureusement, le tout ne fonctionne pas comme je l'espère, c'est pourquoi je vais vous montrer
vous ma configuration.
Le script qui est appelé par xinetd est situé à l'emplacement /usr/local/bin. Il peut être exécuté sans problème:
#!/bin/bash
echo "connection received"
/etc/xinetd.d/testservice a ce contenu:
service testservice
{
disable = no
socket_type = stream
protocol = tcp
port = 5900
log_on_success += USERID
log_on_failure += USERID
server = /usr/local/bin/testservice
user = root
instances = UNLIMITED
wait = no
log_type = SYSLOG daemon debug
}
Dans /etc/services, j'ai ajouté cette ligne:
testservice 5900/tcp
Puis j'ai redémarré xinetd avec service xinetd restart
Enfin, j'ai essayé de vous connecter au client:
nc host1 5900
Quelqu'un pourrait-il me dire ce qui s'est passé ici?
Voici quelques lignes dans /var/log/syslog.1:
Nov 22 10:07:33 ubuntu1 xinetd[886]: Reading included configuration file: /etc/xinetd.d/chargen [file=/etc/xinetd.conf] [line=17]
Nov 22 10:07:33 ubuntu1 xinetd[886]: Reading included configuration file: /etc/xinetd.d/daytime [file=/etc/xinetd.d/daytime] [line=28]
Nov 22 10:07:33 ubuntu1 xinetd[886]: Reading included configuration file: /etc/xinetd.d/discard [file=/etc/xinetd.d/discard] [line=26]
Nov 22 10:07:33 ubuntu1 xinetd[886]: Reading included configuration file: /etc/xinetd.d/echo [file=/etc/xinetd.d/echo] [line=25]
Nov 22 10:07:33 ubuntu1 xinetd[886]: Reading included configuration file: /etc/xinetd.d/exec [file=/etc/xinetd.d/exec] [line=26]
Nov 22 10:07:34 ubuntu1 xinetd[886]: Reading included configuration file: /etc/xinetd.d/login [file=/etc/xinetd.d/login] [line=8]
Nov 22 10:07:34 ubuntu1 xinetd[886]: Reading included configuration file: /etc/xinetd.d/rexec [file=/etc/xinetd.d/rexec] [line=13]
Nov 22 10:07:34 ubuntu1 xinetd[886]: Reading included configuration file: /etc/xinetd.d/rexecd [file=/etc/xinetd.d/rexecd] [line=0]
Nov 22 10:07:34 ubuntu1 xinetd[886]: Reading included configuration file: /etc/xinetd.d/rlogin [file=/etc/xinetd.d/rlogin] [line=10]
Nov 22 10:07:34 ubuntu1 acpid: 33 rules loaded
Nov 22 10:07:34 ubuntu1 acpid: waiting for events: event logging is off
Nov 22 10:07:34 ubuntu1 xinetd[886]: Reading included configuration file: /etc/xinetd.d/rsh [file=/etc/xinetd.d/rsh] [line=10]
Nov 22 10:07:34 ubuntu1 xinetd[886]: Reading included configuration file: /etc/xinetd.d/shell [file=/etc/xinetd.d/shell] [line=11]
Nov 22 10:07:34 ubuntu1 xinetd[886]: Reading included configuration file: /etc/xinetd.d/time [file=/etc/xinetd.d/time] [line=11]
Nov 22 10:07:34 ubuntu1 xinetd[886]: removing chargen
Nov 22 10:07:34 ubuntu1 xinetd[886]: removing chargen
Nov 22 10:07:34 ubuntu1 xinetd[886]: removing daytime
Nov 22 10:07:34 ubuntu1 xinetd[886]: removing daytime
Nov 22 10:07:34 ubuntu1 xinetd[886]: removing discard
Nov 22 10:07:34 ubuntu1 xinetd[886]: removing discard
Nov 22 10:07:34 ubuntu1 xinetd[886]: removing echo
Nov 22 10:07:34 ubuntu1 xinetd[886]: removing echo
Nov 22 10:07:34 ubuntu1 xinetd[886]: removing time
Nov 22 10:07:34 ubuntu1 xinetd[886]: removing time
Nov 22 10:07:34 ubuntu1 xinetd[886]: bind failed (Address already in use (errno = 98)). service = exec
Nov 22 10:07:34 ubuntu1 xinetd[886]: Service exec failed to start and is deactivated.
Nov 22 10:07:34 ubuntu1 xinetd[886]: bind failed (Address already in use (errno = 98)). service = login
Nov 22 10:07:34 ubuntu1 xinetd[886]: Service login failed to start and is deactivated.
Nov 22 10:07:34 ubuntu1 xinetd[886]: bind failed (Address already in use (errno = 98)). service = shell
Nov 22 10:07:34 ubuntu1 xinetd[886]: Service shell failed to start and is deactivated.
Nov 22 10:07:34 ubuntu1 xinetd[886]: xinetd Version 2.3.14 started with libwrap loadavg options compiled in.
Nov 22 10:07:34 ubuntu1 xinetd[886]: Started working: 3 available services
Les autres services semblent fonctionner:
netstat -an | egrep "Proto|ÉCOUTER"
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:512 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:513 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp6 0 0 ::1:631 :::* LISTEN
tcp6 0 0 :::22 :::* LISTEN
Proto RefCnt Flags Type State I-Node Path
unix 2 [ ACC ] STREAM LISTENING 10248 /run/user/user1/keyring-0bvpKQ/control
unix 2 [ ACC ] STREAM LISTENING 10250 /run/user/user1/keyring-0bvpKQ/ssh
unix 2 [ ACC ] STREAM LISTENING 8087 /tmp/.X11-unix/X0
unix 2 [ ACC ] STREAM LISTENING 10038 @/tmp/dbus-3MCEY0sgqz
unix 2 [ ACC ] STREAM LISTENING 689 @/com/ubuntu/upstart
unix 2 [ ACC ] STREAM LISTENING 7758 /var/run/cups/cups.sock
unix 2 [ ACC ] STREAM LISTENING 986 @/org/bluez/audio
unix 2 [ ACC ] STREAM LISTENING 10192 /tmp/.pcmanfm-socket--0-user1
unix 2 [ ACC ] STREAM LISTENING 8086 @/tmp/.X11-unix/X0
unix 2 [ ACC ] SEQPACKET LISTENING 882 /run/udev/control
unix 2 [ ACC ] STREAM LISTENING 913 /var/run/dbus/system_bus_socket
unix 2 [ ACC ] STREAM LISTENING 10028 /tmp/ssh-1PFvKafVKThh/agent.1507
unix 2 [ ACC ] STREAM LISTENING 34594 /tmp/.lxterminal-socket:0-user1
unix 2 [ ACC ] STREAM LISTENING 968 /var/run/avahi-daemon/socket
unix 2 [ ACC ] STREAM LISTENING 982 /var/run/sdp
unix 2 [ ACC ] STREAM LISTENING 10629 /tmp/.menu-cached-:0-user1
unix 2 [ ACC ] STREAM LISTENING 8433 /var/run/acpid.socket
C'est peut-être également utile:
service xinetd restart
stop: Rejected send message, 1 matched rules; type="method_call", sender=":1.73" (uid=1000 pid=5311 comm="stop xinetd ") interface="com.ubuntu.Upstart0_6.Job" member="Stop" error name="(unset)" requested_reply="0" destination="com.ubuntu.Upstart" (uid=0 pid=1 comm="/sbin/init")
start: Rejected send message, 1 matched rules; type="method_call", sender=":1.74" (uid=1000 pid=5308 comm="start xinetd ") interface="com.ubuntu.Upstart0_6.Job" member="Start" error name="(unset)" requested_reply="0" destination="com.ubuntu.Upstart" (uid=0 pid=1 comm="/sbin/init")
OriginalL'auteur user1812379 | 2012-11-22
Vous devez vous connecter pour publier un commentaire.
Vous avez raison, je ne pouvais pas obtenir le vôtre pour travailler. Le ci-dessus semble.
Assurez-vous que testscript.sh est set +x et à la partie supérieure contient #!/bin/sh (dans votre exemple, il semble de cette façon)
OriginalL'auteur user3060267
Il fonctionne parfaitement bien pour moi d'essayer sur localhost. Pouvez-vous faire un
en redémarrant le service xinetd?
Aussi essayer de lancer nc sur le même hôte où vous avez xinetd et voir si cela fonctionne sur localhost.
Avez-vous mis votre fichier de configuration dans /etc/xinetd.d/testservice? Il ne liste pas dans le journal.
Oui, le service est dans le même répertoire que les autres fichiers (rlogin, rexec, le temps, etc.).
OriginalL'auteur LtWorf