Originariamente Scritto da zuperman
[DISC] Survivor User Manual
Collapse
X
-
.
RFC Project aspetta il tuo contributo
Originariamente Scritto da JPPio non sono umano, io sono l'ex Signore dei Bordelli e trascendo la materia fallace. In me alberga lo spirito di Lord Byron. Rassegnati, a me l'errore è negato
-
-
Originariamente Scritto da zupermanbeh dai sono sposato... cmq.
RFC Project aspetta il tuo contributo
Originariamente Scritto da JPPio non sono umano, io sono l'ex Signore dei Bordelli e trascendo la materia fallace. In me alberga lo spirito di Lord Byron. Rassegnati, a me l'errore è negato
Commenta
-
-
Originariamente Scritto da Nesquiknel senso che hai trovato l'host con cui completare il 3way handshacking facendo diventare la connessione established ?
Cmq faccio il Windows della situazione spiegando in modo più elementare (e bloccandomi alla seconda lettera dell'alfabeto... riavviatemi in tal caso )
Connessione a tre vie (three-way handshaking) su
protocollo TCP
E' necessario a questo punto specificare brevemente come avviene una connessione mediante protocollo TCP. Innanzitutto questo protocollo si occupa di trasmettere dati a destinazione e di verificare che siano arrivati. Esso lavora mediante un meccanismo di controllo a tre vie (detto three-way handshaking) in questo modo:
1. il mittente invia una richiesta di inizio connessione al destinatario
2. il destinatario risponde con un “ok” (in inglese Acknowledged) o con un rifiuto
3. il mittente conferma al destinatario che ha ricevuto la risposta e inizia a trasmettere il funzionamento preciso è di questo tipo:
1. il mittente invia un pacchetto TCP con un bit dell’header (intestazione) impostato a 1. Questo bit `e detto “SYN’ bit, e indica la richiesta di inizio connessione. Inoltre, questo pacchetto contiene un numero casuale per
identificare a che connessione i due computer stanno facendo riferimento (detti “sequence” e “acknowledgment numbers”, numeri di sequenza).
2. il destinatario risponde con un pacchetto TCP che ha i bit SYN e ACK settati a 1 in caso sia disposto a ricevere la connessione; in caso contrario risponde con un pacchetto con solo il bit RST (“Reset”) settato a 1. Il numero casuale viene incrementato di un intervallo noto.
3. il mittente, in caso di risposta positiva, inizia la trasmissione impostando l’ACK bit a 1.
Questo processo `e importante per separare trasmissioni
di dati gi`a iniziate e trasmissioni che stanno iniziando, e per capire da che parte del firewall queste trasmissioni hanno avuto inizio.
OK?Allenamento e dieta fanno di te un atleta
Commenta
-
-
complimenti zup
vorrei solo fare delle precisazioni sui numeri di sequenza:
passo 1 - il client spedisce un Sequence Number = X
passo 2 - il server risponde con un Sequence Number = Y e con un Acknowledgement Number = X+1
passo 3 - il client risponde con Sequence Number = X+1 e Acknowledgement Number = Y+1
la generazione del Sequence Number del server (Y) nel passo 2 puo' avvenire in tre modi:
- in base ad un incremento costante
- in base al tempo
- in modalita' random
Y, percui, non e' detto che venga sempre generato in maniera casuale, questo dipende dall'implementazione TCP sul server...
andatelo a dire a Shimomura quando si e' reso conto che lo spoofing cieco era attuabile !!.
RFC Project aspetta il tuo contributo
Originariamente Scritto da JPPio non sono umano, io sono l'ex Signore dei Bordelli e trascendo la materia fallace. In me alberga lo spirito di Lord Byron. Rassegnati, a me l'errore è negato
Commenta
-
-
Originariamente Scritto da SergioSi sta facendo interessante il post, direi che merita un titolo meno tragico di "Suse Crashata" e poi potremmo anche metterlo in nota....
Cenni sulla struttura dell'albero di sistema
In un sistema linux tutti i dati sono organizzati in directory disposte secondo la nota (mi auguro) tree-structure, struttura ad albero, una sorta di scatole cinesi dove, partendo dal livello piu' alto (punto radice) ogni cartella diventa genitrice (parent) di ogni cartella ivi contenuta (child).
Una delle cose che normalmente genera piu' confusione al nuovo utente di un sistema linux e' proprio l'albero delle directory; di seguito cerco di fare una breve panoramica sull'organizzazione dei file in un sistema linux senza scendere troppo nei dettagli.
Ricordatevi, pero', che ciascuna distribuzione implementa una propria struttura ad albero percui, per quanto quella riportata ora possa avvicinarsi molto alla vostra, ci possono essere delle leggere varianti.
/
E' il livello più alto della struttura delle directory di un sistema .nix, il punto iniziale, e viene identificato con il nome "Root" (attenzione, non ha nulla a che vedere con il super-utente, solamente che "root", tradotto, significa "radice").
Tutte le directory di un sistema unix-like risiedono al di sotto della root (/).
/bin
Contiene i comandi e i programmi di servizio standard, i principali
/boot
contiene l'immagine del kernel e alcuni file necessari per l'avvio del sistema. Attenzione, se non siete sicuri si cosa fate qui dentro non metteteci le mani..guardare ma non toccare...
/dev
contiene tutti i devices. Ricordardo il fatto che in linux qualsiasi cosa e' un file (anche i dispositivi fisici come dischi fissi, modem, stampanti, porte, ecc.) tutti i file qui presenti sono le interfacce ai dispositivi
/etc
contiene buona parte dei file di configurazione del sistema e altri di sistema
/home
contiene le directory di lavoro dei singoli utenti
/lib
contiene le librerie di sistema
/mnt
contiene le directory dei punti di montaggio di cdrom, dvd, masterizzatore, usb-storage, ecc.
/opt
contiene i file dei programmi installati opzionalmente, non indispensabili per il funzionamento del sistema operativo
/proc
e' una directory in un certo senso "virtuale" dal momento che non contiene file veri e propri ma una situazione sui processi del sistema in continuo aggiornamento; se volete conferma date un ls -l e vedrete che il 99% dei file listati ha lunghezza 0 (quelli che non hanno lunghezza 0 avranno probabilmente dimensioni spropositate ma niente paura, non occupano realmente spazio su disco a meno che non togliate tali file dalla cartella /proc)
/sbin
contiene i comandi e i programmmi standard riservati al super-utente
/usr
contiene comandi e file utilizzati dal sistema, organizzati in sottocartelle quali, tra le principali:
/usr/bin contiene comandi accessibili all'utente
/usr/sbin contiene comandi riservati al superutente
/usr/doc contiene documentazione varia su programmi e altro
/usr/man contiene le pagine di manuale
/usr/lib contiene librerie usate da applicazioni e linguaggi
/var
contiene file variabili (come i logs presenti in /var/log) oppure depositati in maniera temporanea (come i file di spooling presenti in /var/spool); questa cartella puo' raggiungere dimensioni notevoli; alcuni amministratori di sistema sostengono che e' bene che sia installata in un disco a parte; non entro nelle motivazioni
have fun.
RFC Project aspetta il tuo contributo
Originariamente Scritto da JPPio non sono umano, io sono l'ex Signore dei Bordelli e trascendo la materia fallace. In me alberga lo spirito di Lord Byron. Rassegnati, a me l'errore è negato
Commenta
-
-
Originariamente Scritto da zupermanPenso che Sergio ci debba un bonifico a testa!.
RFC Project aspetta il tuo contributo
Originariamente Scritto da JPPio non sono umano, io sono l'ex Signore dei Bordelli e trascendo la materia fallace. In me alberga lo spirito di Lord Byron. Rassegnati, a me l'errore è negato
Commenta
-
-
Secondo post per affrontare i primi approcci con il pinguino... anche questo non e' assolutamente ne' esaustivo ne' scende molto nei dettagli.. si tratta solo di capire che caspiterina e' la famigerata shell e perche' e' importante...
Cos'e' la shell
La shell e' il programma piu' importante di un sistema operativo unix dopo il kernel, in quanto rappresenta l'intermediario tra l'utente e il sistema operativo stesso (da qui il nome 'shell'='conchiglia', poiche' e' la superficie con cui l'utente entra in contatto quando vuole interagire col sistema...); la shell, in altre parole, e' l'interfaccia tra il cuore del sistema e il mondo esterno e per questo, anche se una sua eventuale assenza non e' critica per il funzionamento del sistema, si considera parte integrante del sistema operativo.
Questo interprete tra l'utente e il sistema e' in grado di eseguire i comandi impartiti dall'utente attraverso una riga di comando oppure di eseguire uno script scritto nel linguaggio consentito dalla shell stessa (per script intendo un programma interpretato, eseguito senza essere compilato.. vi ricordate i file batch del dos ? ecco..).
Esistono diversi tipi di shell che offrono piu' o meno 'agevolazioni' e diversi linguaggi di scripting, diversa gestione delle variabili d'ambiente, eccetera; di seguito riporto le piu' diffuse:
- Bourne shell (sh)
Scritta da Steve Bourn dei Bell Labs.
E' questa la shell Unix originale: piuttosto semplice, non fornisce le agevolazioni interattive presenti invece nelle shell piu'recenti.
Fornisce un linguaggio di scripting relativamente semplice.
- C shell (csh)
Scritta all'universita' di Berkley, in California.
Il suo linguaggio di scripting, come si deduce dal nome, richiama molto la sintassi del linguaggio C.
- TC Shell (tcsh)
E' una versione modificata della C shell che introduce nuove caratteristiche per rendere piu' agevole l'interazione con l'utente.
- Korn shell (ksh)
Scritta da David Korn dei Bell labs.
E' la shell standard dei sistemi Unix moderni; fornisce le stesse prestazioni della C e TC shell unitamente a un linguaggio di programmazione simile a quello della Bourne shell. Si puo' quindi dire che e' la Bourne shell evoluta con le prestazioni delle shell piu' recenti.
- Bourne Again Shell (bash)
Scritta dalla Free Software Foundation.
Indicativamente, e' la versione Free Software della Korn shell.
La shell attivata al momento del login viene definita dal root quando vi crea l'account. Per sapere che shell avete per le mani basta chiedere l'output della variabile associata (echo $SHELL).
Per terminare una shell usate "logout" (per una shell di login), "exit" (per una shell interattiva"), nulla (per una shell attivata apposta per eseguire uno script (si termina in maniera silenziosa al termine dello script).
Have fun.
RFC Project aspetta il tuo contributo
Originariamente Scritto da JPPio non sono umano, io sono l'ex Signore dei Bordelli e trascendo la materia fallace. In me alberga lo spirito di Lord Byron. Rassegnati, a me l'errore è negato
Commenta
-
-
Originariamente Scritto da Ayurvedi77Cos'è sta sboroneggiata sul TCP?! Nesquik aggiornami
aaaahhh, ora capisco.... forse ti riferivi all'altra discussione....
ok, quando vuoi ti do lezioni sul mount a mano....
RFC Project aspetta il tuo contributo
Originariamente Scritto da JPPio non sono umano, io sono l'ex Signore dei Bordelli e trascendo la materia fallace. In me alberga lo spirito di Lord Byron. Rassegnati, a me l'errore è negato
Commenta
-
-
Originariamente Scritto da Nesquikio dovrei aggiornare te su qualcosa ?? ma va la'...
aaaahhh, ora capisco.... forse ti riferivi all'altra discussione....
ok, quando vuoi ti do lezioni sul mount a mano...
Prima però creiamo un device manualmente con minor 30 e major 100 (cm), poi me lo mounti
Commenta
-
-
<table border="0" cellpadding="2" cellspacing="2" width="100%"> <tbody><tr><td class="dd" align="center" width="100%">Il mondo del free software</td> <td align="right">
</td> </tr> <tr><td colspan="3"> Abbiamo visto dunque come Linux non sia il lavoro di una sola persona, ma il risultato di decenni di sviluppo di software orientato alla ricerca, e che il kernel sia stato sviluppato in realtà da un team di volontari in contatto tra loro grazie ad Internet. Gran parte dei programmi per Linux provengono dallo GNU Project, altri dallo Unix BSD, altri ancora da svariati progetti di ricerca. Faremo una rassegna di alcuni dei principali pacchetti di free software che girano su Linux.
Sicuramente il nucleo di software più ricco sono i programmi dello GNU Project. La FSF vorrebbe (e a ragione) che il nome dei sistemi oggi chiamati Linux fosse GNU/Linux. Infatti se Linux è il kernel, il resto è in gran parte software GNU, anche se non soltanto GNU.
Linux stesso è stato sviluppato utilizzando il compilatore GNU gcc. Si tratta di uno dei primi programmi sviluppati dalla FSF. Questo compilatore è importantissimo nel mondo Unix: è unanimemente riconosciuto come eccellente, tanto che alcuni rivenditori di sistemi Unix commerciali hanno abbandonato lo sviluppo dei loro compilatori C preferendo finanziare lo sviluppo del gcc. Questo compilatore è un ottimo esempio di come il software possa essere considerato ricerca, e come la disponibilità dei sorgenti possa portare risultati notevoli: il compilatore è modulare, diviso in un front end che analizza il sorgente e produce un codice intermedio e un back end che genera dal codice intermedio il codice macchina per i vari processori. Sono stati sviluppati parecchi altri front end per linguaggi diversi dal C in grado di generare il codice intermedio per il back end già esistente. Inoltre sono stati sviluppati vari moduli per il back end in grado di generare codice per moltissimi processori diversi. In pratica chi aveva bisogno di un compilatore per un nuovo linguaggio o per una nuova piattaforma, ha trovato più comodo aggiungere un pezzo e contribuire alla causa del gcc che rifare tutto il lavoro da capo. Il gcc è dunque il nucleo di un gruppo di compilatori per linguaggi come C++, Pascal, Fortran, Objective C e Modula-3 in grado di produrre codice per Intel, Alpha, PowerPC, 68000 e una miriade di altre piattaforme. I risultati sono programmi compatti e veloci. Ci sono voluti parecchi anni perché il gcc si stabilizzasse e venissero corretti gli innumerevoli bug, inevitabili in un progetto così complesso, ma oggi il gcc è piuttosto stabile. Non bisogna dimenticare che la sua libreria è tra le più complete esistenti ed è in grado di compilare codice in C proveniente da fonti diversissime. È in buona parte merito del gcc se molti programmi per gli Unix più disparati riescono a compilare senza problemi o con poche modifiche su Linux.
Il primo programma del progetto GNU comunque è stata la terza implementazione di Emacs sviluppata da Stallman, lo GNU Emacs. Si tratta di un sofisticatissimo editor di testi programmabile in linguaggio Emacs Lisp (più o meno come il Word che è programmabile in linguaggio Word Basic) e quindi estendibile in molti modi. Qualcuno lo definisce un editor che da solo è un sistema operativo, tante e tali sono le funzioni che offre: si può leggere la posta e le news, aprire un telnet, e perfino giocare con le torri di hanoy o consultare un psicanalista simulato senza uscire dall'editor.
Per quanto riguarda le interfacce grafiche, su Linux gira l'XFree86, un adattamento per le schede grafiche tipiche dei PC dell'ambiente grafico XWindows, sviluppato al MIT nella metà degli anni '80. L'XWindows è in sostanza un protocollo, ma la implementazione del MIT è distribuita anche essa come free software. In un certo senso XWindows è il Windows di Unix anche se il paragone non calza perfettamente: infatti questo ambiente grafico non mette a disposizione chiamate di sistema per creare finestre e menù, ma primitive grafiche di livello più basso, come quelle per tracciare linee e cerchi. Una interfaccia grafica è un insieme di elementi grafici, detti widget. Un widget set definisce una interfaccia, che dà ai programmi che lo usano un certo look. In un certo senso è possibile definire il look dell'interfaccia, come se Windows offrisse la possibilità di usare anche il look del Mac. Insieme a XWindows viene fornito il set di widget Athena, piuttosto scarno e brutto: per esempio i bottoni sono solo dei rettangoli con una scritta al centro! Lo standard per le interfacce grafiche in ambiente Unix è il Motif, che sfortunatamente è software commerciale, e non è disponibile in sorgente; comunque è in vendita anche per Linux. Per ovvi motivi, non molto free software viene sviluppato utilizzando Motif. È in corso lo sviluppo di un clone, detto Lesstif, ma non è ancora utilizzabile come alternativa al Motif. Invece, molto promettente e collegato al progetto GNU è il progetto GNUStep, che ha come obiettivo quello di produrre un ambiente grafico simile al NextStep, in quanto le specifiche, dette OpenStep, sono state pubblicate e sono liberamente utilizzabili.
Una caratteristica importantissima di XWindows purtroppo poco conosciuta e sottovalutata ma che potrebbe tornare in auge i prossimi anni è la sua capacità di creare applicazioni grafiche completamente distribuite: in pratica un utente può utilizzare una applicazione grafica che gira in una altra macchina. Non si tratta di client/server nel senso classico di due programmi, un server e un client: esiste infatti un solo programma che gira su una macchina, ma che produce output grafico su un'altra. In teoria, avendo un Word Processor che giri sotto XWindows, un utente potrebbe collegarsi via Internet alla macchina dell'ufficio e utilizzare da casa il word processor grafico come se sedesse alla scrivania dell'ufficio. Oggi per fare queste cose con Windows o Mac occorrono appositi programmi commerciali da acquistare a parte, mentre XWindows offre questa possibilità come funzione base del sistema grafico.
Per la produzione di documentazione, abbiamo il TeX, sviluppato da Knuth, l'autore della monumentale Art of Computer Programming, proprio per produrre risultati esteticamente accettabili per la sua opera. Il TeX non è un word processor come Word, in quanto non è WYSIWYG: l'autore non vede il risultato; piuttosto scrive delle direttive su come vuole che il testo sia formattato, similmente a come avviene con l'HTML. Il "sorgente" viene poi passato attraverso il "compilatore" TeX che produrrà un file con estensione .dvi, una rappresentazione indipendente dalla periferica di output. Infine il dvi potrà essere stampato o visualizzato, utilizzando appositi programmi per ogni particolare periferica di output. Esiste tuttavia già oggi il LyX, un word processor che gira sotto XWindows quasi WYSIWYG che è in grado di produrre un sorgente TeX mostrando mentre si compone il testo i risultati della formattazione.
Per quanto riguarda i linguaggi di programmazione, ce ne sono tantissimi disponibili. Innanzitutto il C e tutti gli altri supportati dal gcc, poi numerosi altri: per esempio il Perl e il TCL. Il Perl è un linguaggio sviluppato da Larry Wall che trasforma la "filosofia" di Unix in un linguaggio di programmazione, estremamente potente ma anche piuttosto atipico e non semplicissimo. Il TCL invece è stato da molti definito il Visual Basic di Unix. La sua sintassi è C like, ma si tratta di un linguaggio interpretato particolarmente semplice, in grado di produrre velocemente, grazie al toolkit Tk, interfacce grafiche in ambiente XWindows in maniera molto semplice. Infatti il Tcl/Tk è molto usato per creare dei front end grafici in ambiente Unix. Da notare che il Tk ha lo stesso "look" a bassorilievo di Motif, ma non è Motif: l'esistenza del Tcl/Tk ha abbastanza mitigato il problema che il Motif non è free software, ed è già possibile utilizzare il Tk anche con linguaggi diversi dal Tcl.
</td></tr></tbody> </table>Allenamento e dieta fanno di te un atleta
Commenta
-
-
Ancora un post per giovani pinguini... anche questo non e' esaustivo, tecnico, dettagliato e bla bla bla... spero solo sia il piu' chiaro possibile e, soprattutto, utile...
L’avvio del sistema
Caro nuovo utente linux, hai installato la tua bella distro nuova fiammante ? bene, allora accendi il tuo bel pc… cosa cosa cosa ? ti stai chiedendo cosa sono tutte quelle scritte incomprensibili che ti compaiono davanti agli occhi vero ? bene, quello e’ il cosiddetto processo bootstrap (o semplicemente processo d’avvio, boot).
Se windows ti ha abituato alla schermata iniziale dove tutto viene tenuto nascosto, con linux verrai letteralmente sommerso dai messaggi che il sistema ti pone davanti agli occhi. Comprendo che inizialmente l’utente inesperto potrai trovare tali messaggi incomprensibili ma ti assicuro che col tempo ti renderai conto dell’infinita utilita' di tali messaggi per capire cosa sta facendo il sistema, quali periferiche ha inizializzato, quali servizi ha attivato, eccetera.
Tali messaggi puoi leggerli con calma bloccando lo scorrimento attraverso il tasto BlocScorr oppure, una volta nel sistema, puoi dare un dmesg > file.txt per salvare su un file di testo la maggior parte dei messaggi di avvio, se non altro i piu' significativi. Non entro ora nel merito di ogni singolo messaggio, ma in questo post voglio solo presentare due cose fondamentali: cos'e' l’INIT e cosa sono i demoni.
Se avete provato a dare un’occhiata ai messaggi del bootstrap avrete sicuramente notato, tra i primi, un messaggio relativo a INIT. Si tratta dell'"inizializzatore del controllore dei processi", ossia il primo processo, senza il quale nessun altro processo puo' avere origine (ne' in automatico ne' su richiesta dell’utente). Chiarito che ogni processo viene identificato in modo univoco da un numero assegnato in modo sequenziale dal sistema noto come PID (Process ID), e' facile intuire a questo punto che INIT, essendo il processo genitrice, avra' un PID pari a 1 (per verifica date da shell un ps x). Una volta invocato dal bootstrap, INIT per prima cosa leggera' subito il suo file di configurazione (/etc/inittab) dal quale verra' a conoscenza del numero di runlevel cui dovra' portare il sistema al termine del bootstrap. Cosa cosa cosa ? runlevel ???? e che e' ????
In parole da zanichelli, il runlevel e' una configurazione del sistema che permette l'esistenza solo di un gruppo selezionato di processi. In parole da newbie, e' uno stato del sistema in cui possono venire compiute solo determinate operazioni. In altre parole, fate vobis… (se avete avuto modo di avere a che fare con piu' di una distribuzione diversa, puo' essere che, ad avvio completato, vi siate trovati di fronte ad una richiesta login da console oppure in ambiente grafico.. ecco, questo dipende dal tipo di runlevel che e' stato chiamato…)
I runlevel sono 7, numerati da 0 a 6 e sono:
0 – arresto del sistema (shutdown)
1 – modalita' mono-utente (single-user)
2 –
3 –
4 –
5 –
6 – riavvio del sistema (reboot)
dal 2 al 5 sono i runlevel di modalita' multi-utente (multi-user) che possono cambiare da distribuzione a distribuzione; i più importanti sono il runlevel multi-utente con supporto di rete in modalita' testuale e lo stesso in modalita' grafica, che solitamente sono, rispettivamente, il 3 e il 5. Non vogli entrare ora troppo nei dettagli: sappiate per addesso solamente che a seconda del runlevel invocato verranno eseguiti script di inizializzazione diversi.
Per sapere esattamente quali sono i runlevel adottati sulla vostra distro consultate il file di configurazione di INIT (vi /etc/inittab).
Percorrendo il bootstrap potete notare che il sistema avvia in modo automatico (a seconda di come e' stato configurato, chiaramente) numerosi programmi che prendono il nome di demoni (daemons). Tralasciando gli mp3 di Marylin Manson, un demone e' un servizio in ascolto su una determinata porta, ovvero un programma che se ne sta buono buono (in stato "sleep") in silenzio dall’avvio allo spegnimento del sistema in attesa di offrire un servizio qualora venisse chiamato in causa: ad esempio un server ftp rimane in attesa di connessioni da parte di client, cosi' un server secure shell, eccetera.. Chiariamo subito una cosa: il numero dei servizi attivi su un sistema e' direttamente proporzionale alla compromissione della sicurezza dello stesso ! Cio' non vuol dire che i demoni debbano tutti essere disabilitati, ma vuol dire che bisogna chiamare in causa un’infinita' di questioni relative all’amministrazione di sistema e alla sicurezza che non fanno parte di questo post.
Terminata la fase di bootstrap il sistema invochera' il programma login. Ok, nome-utente, password e… siamo dentro !
Have fun.
RFC Project aspetta il tuo contributo
Originariamente Scritto da JPPio non sono umano, io sono l'ex Signore dei Bordelli e trascendo la materia fallace. In me alberga lo spirito di Lord Byron. Rassegnati, a me l'errore è negato
Commenta
-
Commenta