Dopo una lunga assenza vi propongo in occasione del giorno di San Valentino l’installazione di una chat che pur grezza e funzionante da linea di comando vi darà una particolare esperienza utente. Questa chat infatti rispetto a tutte le comuni chat piu’ diffuse, vi consente di trasmettere carattere per carattere al vostro interlocutore e non solo le righe una volta completate. Provare per credere 😉
Ecco come procedere:
Dal vostro router instradate la porta 2822 verso l’indirizzo IP del vostro PC Windows (ovviamente il tutto funziona anche direttamente in un pc con s.o. Linux )
Installate Debian (o altra distribuzione… io preferisco Debian) in una macchina virtuale WSL2:
da powershell (come amministratore):
wsl --install -d Debian
Dopo aver avviato la macchina viruale da utente root della macchina Debian :
leggete l’ip della vostra macchina linux:ip addr
| grep eth0
Assumiamo che Linux abbia IP: 192.168.35.17
Aggiorniamo i pacchetti della macchina virtuale:
sudo apt update && sudo apt upgrade -y
sudo apt-get install ytalk openssh-server
Modifichiamo ora le impostazioni ssh:
sudo vi /etc/ssh/sshd_config
Aggiungete queste righe:
Port 2222
ListenAddress 0.0.0.0
Creao un nuovo utente
sudo useradd talkd
sudo usermod -a -G tty talkd
sudo vi /etc/inetd.conf
modificate queste linee:
talk dgram udp wait nobody.tty /usr/sbin/in.talkd in.talkd
ntalk dgram udp wait nobody.tty /usr/sbin/in.ntalkd in.ntalkd
in modo che diventino cosi’talk dgram udp4 wait talkd.tty /usr/sbin/in.talkd in.talkd
ntalk dgram udp4 wait talkd.tty /usr/sbin/in.ntalkd in.ntalkd
Riavviamo il servizio inetd:
sudo service openbsd-inetd restart
Aggiungo alla macchina virtuale gli utenti che potranno utilizzare la chat:
sudo adduser romeo
sudo adduser giulietta
Dalla macchina windows (powershell come amministratore)
netsh interface portproxy add v4tov4 listenport=2822 listenaddress=0.0.0.0 connectport=2222 connectaddress=192.168.35.17
New-NetFirewallRule -DisplayName "SSH Server WSL" -Direction Inbound -LocalPort 2822 -Protocol TCP -Action Allow
Eventualmente per gestire le regole di forward:
Digitando il comando
netsh interface portproxy show all
si possono controllare tutte le porte che si sono inoltrate verso le macchine virtuali.Utilizzando il comando
netsh interface portproxy delete v4tov4 listenaddress=0.0.0.0 listenport=PORTA
si possono eliminare singole regole di inoltro.
Abbiamo finito. Ora raggiungete sia voi (romeo) che il vostro interlocutore (giulietta) la macchina linux tramite ssh
Romeo: ssh romeo@192.168.35.17 -p 2222
Giulietta: ssh giulietta@ip_casa_di_romeo -p 2822
(ip_casa_di_romeo è l’ip pubblico del router di romeo)
una volta entrati basta dare il comando:
romeo: ytalk giulietta
e giulietta: ytalk romeo
Buon divertimento 😉