versione 1.03, 1 settembre 2022
![]() | ![]() |
Michele Liberi mail: mliberi@gmail.com cell: 3485211456 |
Il comando rxc permette di lanciare un comando su un computer remoto raggiungibile via TCP/IP.
La comunicazione tra rxc ed rxs può anche avvenire attraverso un tunnel ssh/sshd, in base al seguente schema.
Al costo di un leggero degrado di prestazioni abbiamo il vantaggio che la comunicazione avviene su una porta standard ed utilizzando un servizio standard, il che permette di superare eventuali problemi introdotti dai firewall.
Un unico tunnel ssh/sshd può essere utilizzato per multiple istanze di rxc/rxs, è può funzionare con un utente non provilegiato.
Il comando rxc funziona in modo analogo ai comandi rsh e ssh, ma con importanti differenze:
Esempio 1: esecuzione diretta di un comando
rxc -Hserver ls /tmp
Esempio 2: esecuzione di un comando all'interno di una shell
rxc -Hserver sh -c 'ls /tmp/*'
Esempio 3: termina la script se un file su sistema remoto non esiste
rxc -Hserver test -f /tmp/filename ||exit
Vediamo, uno ad uno, quali sono questi filtri configurabili:
Esempio 1: consenti all'utente 'root' di una macchina AIX di lanciare qualunque comando:
allow A * * root
Esempio 2: consenti a qualunque utente di una macchina windows in rete locale di lanciare il comando grep
allow W 192.168.1.* * * * grep
Esempio 3: consenti l'esecuzione di qualunque comando solo se viene fornita una password valida:
pwdck
La password può essere messa direttamente nella linea di comando (opzione -p), nella variabile d'ambiente RXC_P, oppure nel file di configurazione $HOME/.rxclogin (opzione -G)
Affinché il comando rxc possa funzionare è necessario che sul server sia installato, e configurato, il comando rxs, il quale viene lanciato da un listener standard (inetd o xinetd).
La porta di default è la 40, ma inserendo il servizio rxx nel file /etc/services è possibile utilizzare un'altra porta.
Il traffico tra rxc e rxs è criptato, nessuna macchina in rete è in grado di leggere in chiaro il contenuto della conversazione.
Infine, ma non meno importante, rxc è veloce, molto più veloce degli analoghi comandi standard. Provare per credere...
In questo esempio andremo a configurare l'esecuzione di un comando che, lanciato sul client viene eseguito sul server.
allow * * client * =
plisten rxs
rxc -Hserver -q
rxc -Hserver hostname
allow * * client * =
plisten rxs
ssh -L 127.0.0.1:4040:127.0.0.1:40
alias server 127.0.0.1 4040
rxc -Hserver -q
rxc -Hserver hostname