Forums

Skip to content

Advanced search
  • Quick links
    • Unanswered topics
    • Active topics
    • Search
  • FAQ
  • Login
  • Register
  • Board index International Gentoo Users Forum italiano (Italian) Risorse italiane (documentazione e tools)
  • Search

[HowTo] Autologout dalle sessioni di terminale: Bash e SSH

Forum riservato alla documentazione in italiano.

Moderator: ago

Post Reply
  • Print view
Advanced search
6 posts • Page 1 of 1
Author
Message
FonderiaDigitale
Veteran
Veteran
User avatar
Posts: 1710
Joined: Thu Nov 06, 2003 4:28 am
Location: Rome, Italy
Contact:
Contact FonderiaDigitale
Website

[HowTo] Autologout dalle sessioni di terminale: Bash e SSH

  • Quote

Post by FonderiaDigitale » Sat May 15, 2004 9:20 pm

Se avete un server, ma anche un pc desktop a cui accedono molte persone, sicuramente avrete di volta in volta molte sessioni bash o ssh aperte.

Questo in genere non e' una bella cosa, specie se le sessioni sono idle (ovvero inattive).
Aggiungeteci che di norma voi non vi fidate dei vostri utenti, specie di quelli remoti (e voi lo fate, vero? :roll:)

Considerate questo esempio:
Il Cantastorie dei Gechi wrote:Un bel giorno, voi decidete di dare accesso SSH al vostro amico Stefano, perche' sapete che e' uno in gamba e non potrebbe, normalmente, far danni nel vostro sistema.
Forti di questa convinzione, dormite sonni tranquilli.
Una sera, il vostro amico Stefano si logga nella vostra macchina, ma si dimentica di uscire (logout) una volta fatto quel che doveva (o semplicemente per pigrizia non lo fa).
Mettete che arriva un amico di stefano a casa sua, e vede la sessione.
L'amico non e' poi tanto preparato o semplicemente vuole far danni: cancella quel file importante a cui ha accesso anche stefano, e il giorno dopo Stefano si accorge del danno, ma ormai il dado e' tratto. E sopratutto le sue scuse, per voi, ormai servono a poco.
Vi assicuro che questa eventualita' e' tutt'altro che rara, e inoltre e' solo un esempio: in tutti questi casi, DOVETE assicurarvi che chi non lavora nella vostra macchina, non ci stia. punto e accapo.

Come possiamo fare? ve lo spiego subito.
[n.b.] la soluzione che propongo in questo messaggio e' una delle tante possibili, ma per una questione di semplicita', preferisco non trattare altri esempi in questa sede, e coprire una utenza quanto maggiore possibile :)

Bash: la console

Questo vale per utenti locali.

Code: Select all

echo 'TMOUT=3600' >> /etc/profile
3600 sono i secondi prima che una shell che non riceve input venga terminata. In questo caso, equivale esattamente a 1 ora.

Per estendere la cosa alla sessione corrente, che ovviamente non conosce le modifiche fatte, basta un

Code: Select all

source /etc/profile
SSH: sessioni remote

Questa dovrebbe essere la maggiore preoccupazione per noi in questo articolo.

>>> Se usate SSH commerciale come me, e' molto semplice.

Code: Select all

echo 'IdleTimeOut 1h' >> /etc/ssh2/sshd2_config
/etc/init.d/sshd2 restart
le scelte sono:
1h = 1ora
1s = 1secondo
1d = 1giorno

e cosi' via.


>>> Se usate OpenSSH, il discorso diventa piu' complesso: questo software non dispone di un controllo diretto sul tempo di idle di una sessione interattiva, ma possiamo ovviare in questo modo:

Code: Select all

nano /etc/ssh/sshd_config
modificare la direttiva UseLogin a "yes"

Code: Select all

/etc/init.d/openssh restart
scarichiamo un programmino in perl che killa le sessioni di login inattive

Code: Select all

wget -O /sbin/idlekill "http://jon.swelter.net/idlekill"
chmod u+x,go-rwx /sbin/idlekill
perl -MCPAN -eshell
configuriamo i moduli del perl necessari. al prompt cpan>:

Code: Select all

install Sys::Utmp
exit
crontab -u root -e
editiamo crontab e aggiungiamo lo script ogni 5 minuti

Code: Select all

*/5 * * * * /sbin/idlekill -a -i 3600 -s 9
anche qui 3600=1 ora.


Adesso avrete un piccolo livello di sicurezza in piu per il vostro sistema.
Buon lavoro :)
Come disse un amico, i sistemisti sono un po' come gli artigiani per l'informatica :)
Top
BlueRaven
Apprentice
Apprentice
User avatar
Posts: 254
Joined: Mon May 12, 2003 7:48 pm

Re: [HowTo] Autologout dalle sessioni di terminale: Bash e S

  • Quote

Post by BlueRaven » Tue May 18, 2004 8:03 am

FonderiaDigitale wrote:>>> Se usate OpenSSH, il discorso diventa piu' complesso: questo software non dispone di un controllo diretto sul tempo di idle di una sessione interattiva
Vero in parte: il risultato in oggetto si può ottenere combinando opportunamente le opzioni

Code: Select all

ClientAliveInterval
e

Code: Select all

ClientAliveCountMax
Per tutti i dettagli, man sshd_config(5).
Che poi con SSH commerciale sia più semplice e intuitivo non ci piove! ;-)
Top
FonderiaDigitale
Veteran
Veteran
User avatar
Posts: 1710
Joined: Thu Nov 06, 2003 4:28 am
Location: Rome, Italy
Contact:
Contact FonderiaDigitale
Website

  • Quote

Post by FonderiaDigitale » Tue May 18, 2004 8:10 am

sbagliato.
quello di cui parli tu si riferisce al keepalive di una connessione, ovverosia quelle due direttive influiscono solo sul comportamento della connessione, ovvero se 'sta appesa' , se cade, o se e' ancora attiva.

NON e' affatto pertinente se si vuole impedire a un utente di rimanere idle dentro una macchina, ne valuta l'interattivita' di una sessione (ovvero se uno scrive in console o no).

Per di piu', e' facilmente alterabile da parte del client (basta istruire il client a mandare messaggi NOOP ogni tot secondi).

Openssh non ha nessun supporto ufficiale per idle-timeout, ci sono delle patch non ufficiali in giro ma non sono applicabili alle ultime versioni, ne sono testate.

Ti invito a leggere questo cosi da toglierti ogni dubbio.

Ti invito anche a rileggere bene il significato delle due direttive che citi.
Come disse un amico, i sistemisti sono un po' come gli artigiani per l'informatica :)
Top
stuart
Guru
Guru
User avatar
Posts: 552
Joined: Sun Apr 27, 2003 11:55 am

  • Quote

Post by stuart » Tue May 18, 2004 8:35 am

echo 'TMOUT=3600' >> /etc/profile
ti chiedo due informazioni su questa opzione
1. va messa su tutti gli utenti in .bash.rc, se non sbaglio, ma se uno diventa root con su cosa succede?
2. se lancio un emerge di diverse ore (con il mio pc succede spesso) si auto-slogga lo stesso o considera la compilazione come input?

scusa per le domande che per alcuni potrebbero essere banali, ma per me purtroppo no
Pochissime persone crescono. La maggior parte della gente invecchia.
Top
FonderiaDigitale
Veteran
Veteran
User avatar
Posts: 1710
Joined: Thu Nov 06, 2003 4:28 am
Location: Rome, Italy
Contact:
Contact FonderiaDigitale
Website

  • Quote

Post by FonderiaDigitale » Tue May 18, 2004 8:44 am

nessun problema :)

1. vale la prima sessione bash aperta. quindi se non c'e' input da parte dell'utente, viene killata.
2. no, se un utente non scrive nulla, la killa. puoi mettere una cosa di questo genere solo per root, in /etc/bashrc

Code: Select all

[ ${UID} == 0 ] unset TMOUT
e fare dei symlinks al file nelle home degli utenti (o lo metti in /etc/skel)

calcola pero' che cosi dai per scontato che root sia affidabile.
un'altra possibilita' e' fare il solito scriptino... (si lo so, sono malato)

Code: Select all

#!/bin/sh
unset TMOUT
emerge $*
export TMOUT=3600

lo lanci tipo come se fosse emerge, passandogli i parametri di emerge.
Come disse un amico, i sistemisti sono un po' come gli artigiani per l'informatica :)
Top
BlueRaven
Apprentice
Apprentice
User avatar
Posts: 254
Joined: Mon May 12, 2003 7:48 pm

  • Quote

Post by BlueRaven » Tue May 18, 2004 8:58 am

FonderiaDigitale wrote:quello di cui parli tu si riferisce al keepalive di una connessione, ovverosia quelle due direttive influiscono solo sul comportamento della connessione, ovvero se 'sta appesa' , se cade, o se e' ancora attiva.
Vero, mi era sfuggito che si stava parlando di sessioni interattive, sorry! ;-)
Top
Post Reply
  • Print view

6 posts • Page 1 of 1

Return to “Risorse italiane (documentazione e tools)”

Jump to
  • Assistance
  • ↳   News & Announcements
  • ↳   Frequently Asked Questions
  • ↳   Installing Gentoo
  • ↳   Multimedia
  • ↳   Desktop Environments
  • ↳   Networking & Security
  • ↳   Kernel & Hardware
  • ↳   Portage & Programming
  • ↳   Gamers & Players
  • ↳   Other Things Gentoo
  • ↳   Unsupported Software
  • Discussion & Documentation
  • ↳   Documentation, Tips & Tricks
  • ↳   Gentoo Chat
  • ↳   Gentoo Forums Feedback
  • ↳   Duplicate Threads
  • International Gentoo Users
  • ↳   中文 (Chinese)
  • ↳   Dutch
  • ↳   Finnish
  • ↳   French
  • ↳   Deutsches Forum (German)
  • ↳   Diskussionsforum
  • ↳   Deutsche Dokumentation
  • ↳   Greek
  • ↳   Forum italiano (Italian)
  • ↳   Forum di discussione italiano
  • ↳   Risorse italiane (documentazione e tools)
  • ↳   Polskie forum (Polish)
  • ↳   Instalacja i sprzęt
  • ↳   Polish OTW
  • ↳   Portuguese
  • ↳   Documentação, Ferramentas e Dicas
  • ↳   Russian
  • ↳   Scandinavian
  • ↳   Spanish
  • ↳   Other Languages
  • Architectures & Platforms
  • ↳   Gentoo on ARM
  • ↳   Gentoo on PPC
  • ↳   Gentoo on Sparc
  • ↳   Gentoo on Alternative Architectures
  • ↳   Gentoo on AMD64
  • ↳   Gentoo for Mac OS X (Portage for Mac OS X)
  • Board index
  • All times are UTC
  • Delete cookies

© 2001–2026 Gentoo Foundation, Inc.

Powered by phpBB® Forum Software © phpBB Limited

Privacy Policy

 

 

magic