Accesso via modem ad un server Linux

From RVM Wiki
Jump to navigation Jump to search

Configurazione Server

  • Collegare il modem alla seriale
COM1=ttyS0
COM2=ttyS1
  • Installare mgetty
sudo apt-get install mgetty
  • Abilitare l'execuzione di mgetty da inittab:
sudoedit /etc/inittab
...
 T0:2345:respawn:/sbin/mgetty ttyS0
  • Impostare la configurazione del Modem. È importante usare un baudrate di 38400, non superiore, altrimenti al login si ricevono dei garbage:
sudoedit /etc/mgetty/mgetty.config
...
port ttyS0
  debug 9
  data-only y
  init-chat "" AT&F OK AT&C1 OK AT&D3 OK ATV1 OK ATS0=0 OK ATE1 OK ATL3 OK ATM1
  speed 38400
  modem-type data
  autobauding no
...
  • Far rileggere la configurazione di inittab:
sudo init q
  • Killare mgetty, che verrà riavviato da inittab:
sudo kill $(pidof mgetty)
  • Il log dirà:
sudo tail -f /var/log/mgetty/mg_ttyS0.log
--
08/14 13:21:34 yS0  mgetty: interim release 1.1.36-Jun15
08/14 13:21:34 yS0  check for lockfiles
08/14 13:21:34 yS0   checklock: stat failed, no file
08/14 13:21:34 yS0  locking the line
08/14 13:21:34 yS0   makelock(ttyS0) called
08/14 13:21:34 yS0   do_makelock: lock='/var/lock/LCK..ttyS0'
08/14 13:21:34 yS0   lock made
08/14 13:21:34 yS0   tio_get_rs232_lines: status: RTS CTS DSR DTR
08/14 13:21:34 yS0  lowering DTR to reset Modem
08/14 13:21:35 yS0   tss: set speed to 38400 (017)
08/14 13:21:35 yS0   tio_set_flow_control( HARD )
08/14 13:21:35 yS0   waiting for line to clear (VTIME=1), read:
08/14 13:21:35 yS0  send: AT&F[0d]
08/14 13:21:35 yS0  waiting for ``OK''
08/14 13:21:35 yS0   got: AT&F[0d]
08/14 13:21:35 yS0    CND: AT&F[0d][0a]OK ** found **
08/14 13:21:35 yS0  send: AT&C1[0d]
08/14 13:21:35 yS0  waiting for ``OK''
08/14 13:21:35 yS0   got: [0d]
08/14 13:21:35 yS0    CND: OK[0a]AT&C1[0d]
08/14 13:21:35 yS0    CND: AT&C1[0d][0a]OK ** found **
08/14 13:21:35 yS0  send: AT&D3[0d]
08/14 13:21:35 yS0  waiting for ``OK''
08/14 13:21:35 yS0   got: [0d]
08/14 13:21:35 yS0    CND: OK[0a]AT&D3[0d]
08/14 13:21:35 yS0    CND: AT&D3[0d][0a]OK ** found **
08/14 13:21:35 yS0  send: ATV1[0d]
08/14 13:21:35 yS0  waiting for ``OK''
08/14 13:21:35 yS0   got: [0d]
08/14 13:21:35 yS0    CND: OK[0a]ATV1[0d]
08/14 13:21:35 yS0    CND: ATV1[0d][0a]OK ** found **
08/14 13:21:36 yS0  send: ATS0=0[0d]
08/14 13:21:36 yS0  waiting for ``OK''
08/14 13:21:36 yS0   got: [0d]
08/14 13:21:36 yS0    CND: ATS0=0[0d][0a]OK ** found **
08/14 13:21:36 yS0  send: ATE1[0d]
08/14 13:21:36 yS0  waiting for ``OK''
08/14 13:21:36 yS0   got: [0d]
08/14 13:21:36 yS0    CND: OK[0a]ATE1[0d]
08/14 13:21:36 yS0    CND: ATE1[0d][0a]OK ** found **
08/14 13:21:36 yS0  send: ATL3[0d]
08/14 13:21:36 yS0  waiting for ``OK''
08/14 13:21:36 yS0   got: [0d]
08/14 13:21:36 yS0    CND: OK[0a]ATL3[0d]
08/14 13:21:36 yS0    CND: ATL3[0d][0a]OK ** found **
08/14 13:21:36 yS0  send: ATM1[0d]
08/14 13:21:36 yS0  waiting for ``OK''
08/14 13:21:36 yS0   got: [0d]
08/14 13:21:36 yS0    CND: OK[0a]ATM1[0d]
08/14 13:21:36 yS0    CND: ATM1[0d][0a]OK ** found **
08/14 13:21:36 yS0  send: ATX0[0d]
08/14 13:21:36 yS0  waiting for ``OK''
08/14 13:21:36 yS0   got: [0d]
08/14 13:21:36 yS0    CND: OK[0a]ATX0[0d]
08/14 13:21:36 yS0    CND: ATX0[0d][0a]OK ** found **
08/14 13:21:36 yS0   waiting for line to clear (VTIME=3), read: [0d][0a]
08/14 13:21:37 yS0   removing lock file
08/14 13:21:37 yS0  waiting... 
  • Controllare che ci si possa loggare dalla seriale utilizzata:
sudoedit /etc/securetty
...
ttyS0
...
  • Controllare che mgetty lanci il programma di login corretto:
sudoedit /etc/mgetty/login.config
...
*       -       -       /bin/login @
...
  • Se tutto è corretto, abbassare sul server il debug di mgetty
sudoedit /etc/mgetty/mgetty.config; sudo init q; sudo kill $(pidof mgetty)
port ttyS0
  debug 2
  ...

Configurazione Client

  • Si utilizza minicom per connettersi:
sudo apt-get install minicom
  • Impostare le permission della seriale usata:
sudo chmod 0664 /dev/ttyS0
sudo chown :dialout /dev/ttyS0
  • Assegnare il gruppo dialout al proprio utente:
sudo gpasswd -a mnt.vvngrl dialout
  • Sloggarsi e riloggarsi per attivare l'appartenenza al gruppo.
  • Impostare la configurazione di minicom:
cat > $HOME/.minirc.dfl <<EOFile
# Machine-generated file - use setup menu in minicom to change parameters.
pu port             /dev/ttyS0
pu baudrate         38400
pu bits             8
pu parity           N
pu stopbits         1
pu minit            ~^M~AT S7=120 S0=0 L1 V1 X4 &c1 E1 Q0^M
pu mdialpre         ATDT0,
pu mdialtime        120
pu mautobaud        Yes
pu escape-key       ^P
EOFile

Questo file imposta le velocità corrette della seriale, inizilizza il modem, ed IMPOSTA ANCHE LA HOTKEY PER I MENU DI MINICOM A CTRL-P IN MODO CHE SI POSSA USARE MINICOM DA SCREEN. Se si lancia minicom da una schermata screen, E NON SI CAMBIA LA HOTKEY IN ctrl-p, per fare ctrl-a-o fare ctrl-a-a-o.

  • Chiamare il numero:
atdt0,0123456789
  • Si ottiene la schermata di login:
Debian GNU/Linux ttyS0 38400 ()                                                
                                                                               
firess login: 
  • Se si vuole si può settare una connesione con Minicom e chiamare il numero a cui è collegato il modem.
  • Se la seconda volta non si riesce a collegarsi, o si blocca appena fatto login, può essere il cavo o il &D3 che non viene mantenuto (Vedi man mgetty)
  • Se tutto è corretto, abbassare sul server il debug di mgetty
sudoedit /etc/mgetty/mgetty.config; sudo init q; sudo kill $(pidof mgetty)
port ttyS0
  debug 2
  ...

Riferimenti