RETE



MANUALINUX


1e)MONTARE UNA MINI-LAN TRA 2 PC CON I SOLI COMANDI TESTUALI E NON
2e)COLLEGARSI AD INTERNET TRAMITE SCRIPT SENZA KPPP (due procedure)
3e)COLLEGARSI AD INTERNET CON WVDIAL
4e)COLLEGARSI AD INTERNET CON KPPP
5e)INTERNET
6e)TELNET E FTP
7e)CONDIVIDERE CONNESSIONE AD INTERNET (LINUX-LINUX-CLIENT)
8e)CONDIVIDERE CONNESSIONE AD INTERNET (METODO PIU' SPICCIOLO)
9e)COLLEGARE 2 PC ATTRAVERSO CAVO PARALLELO SU LPT1 (PLIP)
10e)AVVIARE UNA SESSIONE X DA REMOTO (da linux a linux)
11e)AVVIARE PROGRAMMI DA TELNET SULLA PARTE GRAFICA
12e)AVVIARE APPLICAZIONI DA TELNET SULLA PARTE GRAFICA x &
13e)AVVIARE APPLICAZIONI SUL CLIENT MA CHE GIRANO SUL SERVER
14e)IPCHAINS E FIREWALL
15e)ADSL CON MODEM ETHERNET SU LINUX
16e)MAPPATURA DEGLI ACCESS POINTS
17e)LINUX DEBIAN PRIMI PASSI CON LA RETE
18e)CONDIVIDERE STAMPANTE SU LINUX COME PRINTSERVER SAMBA CUPS
19e)CONDIVISIONE NFS PER LO SCAMBIO DI FILE IN UNA RETE CON MACCHINE LINUX
20e)SCOPRIRE GLI INTRUSI
21e)SICUREZZA DA ROOTKITS BACKDOORS E LOCAL EXPLOITS
22e)SCHEDA WIRELESS SU UN LAPTOP CON ARCHLINUX
23e)SERVER DI POSTA CON POSTFIX E TPOP3D SU ARCHLINUX
24e)SITO WIKI CON PMWIKI
25e)IPTABLES
26e)NAVIGARE CON IL GPRS SU LINUX
27e)CONFIGURARE SSH
28e)ASSEGNARE DOPPIO INDIRIZZO IP ALLA SCHEDA DI RETE

1e)MONTARE UNA MINI-LAN TRA 2 PC CON I SOLI COMANDI TESTUALI E NON
Scrivere il seguente testo immettendo l'indirizzo LAN:
Sul primo pc scrivere:
ifconfig eth0 192.168.1.1 netmask 255.255.255.0 up
Sul secondo pc scrivere:
ifconfig eth0 192.168.1.2 netmask 255.255.255.0 up
(Ricordarsi che la netmask è uguale per tutti)
Se volete inserire più indirizzi di rete sulla stessa scheda di rete basta scrivere:
ifconfig eth0:1 192.168.1.3 netmask 255.255.255.0 up
Adesso basta fare un ping da uno dei due pc per vedere se si raggiunge l'altro indirizzo di rete:
ping 192.168.1.x
In modalità testuale o da dentro xterm per vedere gli indirizzi di rete scrivere:
ifconfig
Per settare la rete su RedHat scrivere (netcfg), mentre su Suse scrivere ( yast ) e cercare la voce rete.Per le altre distribuzioni
controllare il supporto cartaceo o all'interno della distribuzione.

2e)COLLEGARSI AD INTERNET TRAMITE SCRIPT SENZA KPPP (due procedure)
A)Prima procedura
#non sono riuscito a farlo funzionare con tin.it
Come posso fare a collegarmi ad internet senza usare kppp e simili? Ho sentito che si può fare tramite degli script, ma come faccio?
In Linux si usano due programmi, essenzialmente:
"chat" che invia i comandi al modem
"pppd" , il demone che instaura il dialogo secondo il protocollo ppp con il server dell'ISP.

I files su cui interverremo sono sostanzialmente 5:
/etc/resolv.conf
/etc/ppp/options
/etc/ppp/pap-secrets
start (creare questo file in / o dove volete)
stop (creare questo file in / o dove volete)
Benissimo si inizia:

-/etc/resolv.conf
Entrare con vi od altro editor in /etc/resolv.conf e scrivere:
search nome_provider (es. search libero.it)
nameserver DNS primario (es. nameserver 193.70.192.25)
nameserver DNS secondario (es. nameserver 193.70.152.25)

-/etc/ppp/options
Entrare con vi od altro editor in /etc/ppp/options e scrivere:
/dev/ttyS1 (se com2 se invece è una com3 ttyS2 ecc...)
115200
debug
lock
crtscts
defaultroute
mtu 552
mru 552

-/etc/ppp/pap-secrets
Entrare con vi od altro editor in /etc/ppp/pap-secrets e scrivere:
usernameconnessione * password *

-start
Creare ed entrare con vi od altro editor start e scrivere:
#!/bin/bash
/usr/sbin/pppd connect '/usr/sbin/chat -v ""
ATDTnumero_di_telefono_nodo CONNECT "" ' user vostro_username
-d -detach &
Le 3 righe soprastanti partendo da/usr vanno unite in una sola riga.
Chiudiamo il file e diamogli i permessi con (chmod 777 start)

-stop
Creare ed entrare con vi od altro editor stop e scrivere:
#!/bin/sh
DEVICE=ppp0
kill cat /var/run/$DEVICE.pid
echo "$DEVICE TERMINATO"
Chiudiamo il file e diamogli i permessi con (chmod 777 start)

Per collegarsi scrivere:
./start
Per disconnettersi scrivere:
./stop

B)Seconda procedura
Creare un file es. start e scrivervi tutto in una riga all'interno (configuratelo secondo le vostre esigenze):
pppd /dev/modem 115200 connect 'chat -f scriptfile' crtscts
defaultroute lock login user nomeutente deflate 15,15 modem &
Chiudete il file ed apritene un altro di nome scriptfile:
ABORT BUSY
ABORT "NO CARRIER"
ABORT "NO DIAL TONE"
""
ATZ
OK
ATD123456789
CONNECT
""
"name:"
"nomeutentepercollegarsi"
"word:"
"scriverelapassword"
Adesso che avete salvato il file date un chmod 777 a tutti e due i files e buona navigazionecon ./start
I due file devono essere nella stessa directory oppure dite al primo file dove trovare il secondo.

3e)COLLEGARSI AD INTERNET CON WVDIAL
Installare wvdial (si trova su tutte le distro sia in formato deb, rpm e tar.gz). Scrivere come utente root:
wvdialconf /etc/wvdial.conf
Questo riconoscerà il modem ed altri parametri, creerà poi il file
/etc/wvdial.conf. Entrare con vi in questo file e sostituire l'username, la password ed in n° di telefono con quelli reali.
Configurare il file /etc/resolv.conf con i dati del vostro provider:
search nome_provider (es. search libero.it)
nameserver DNS primario (es. nameserver 193.70.192.25)
nameserver DNS secondario (es. nameserver 193.70.152.25)
Adesso basta scrivere: wvdial &

4e)COLLEGARSI AD INTERNET CON KPPP
E' molto semplice, lanciate kppp e settate il tutto come se foste in windows. Fate riconoscere il modem, ricordate che la com1 corrisponde
a ttyS0, com2 a ttyS1 ecc..., inserite pure la riga di inizializzazione che di solito è (ATX3), a questo punto collegatevi.Se usate un modem
interno settate correttamente i jump (come ad es. nel mio ex modem interno Trust 33.6). Benissimo vi auguro buona navigazione.

5e)INTERNET
- Wget
wget -c -nH -E -k -p -r -l 0
-c continua i download interrotti
-nH non crea la dir con il nome del sito
-nd --no-directories per mettere tutto in un unica directory
-E rinomina in .html le pagine (utile per esempio per le pagine .php)
-r ricorsivo
-l depth --level=depth quanti livelli di link seguire
-k converte i link
-p scarica tutto quello che serve per visualizzare correttamente la pagina
-H abilita lo spanning ad altri host quando effettua un download ricorsivo

Ecco alcuni esempi di wget:
wget -r -c l http://www.sitochevuoi.it/ (per scaricare e riprendere interi siti).
wget -r -c l ftp://ftp.sitochevuoi.it/ (per scaricare e riprendere interi siti).

- lynx può essere utilizzato come browser ma non visualizza immagini.
- netstat -vat visualizza il collegamento e le porte aperte durante la connessione.

6e)TELNET E FTP
- Telnet
Consideriamo 2 pc:
pc1 con indirizzo ip 192.168.0.1
pc2 con indirizzo ip 192.168.0.2
telnet 192.168.0.2 ed inserire l'username e la passoword:
Se hai inserito l'utente e la password correttamente, ti sei loggato al secondo pc.

- Ftp
Per spostare i files dal pc1 al pc2, scrivere:
ftp 192.168.0.2 ed inserire l'utente e la password:
Se hai inserito l'utente e la password correttamente, ti sei loggato al secondo pc.
mput /home/pc2/*.doc Per spostare i files con estensione .doc dal pc1 al pc2
mget /home/pc2/*.doc Per prelevare i files con estensione .doc dal pc2 al pc1
Provare anche i comandi put e get per un singolo file.
Usare il comando "cd" per spostarsi nelle directory (cd .., cd nome-directory)
Usare il comando "lcd" (local directory) per sapere in quale directory ci troviamo dal pc dal quale si sta operando.

7e)CONDIVIDERE CONNESSIONE AD INTERNET (LINUX-LINUX-CLIENT)
Ho constatato che funziona con RedHat, Debian, Mandriva e Suse.
Server linux 192.168.1.1 server
client linux 192.168.1.2 linux
client windows 192.168.1.3 windows

A
Nel kernel del server linux 192.168.1.1 abilitare le seguenti opzioni:
Code maturity level options: Prompt for development
Lodable module support: Enable loadable module support, Kernel daemon support (non è indispensabile)
Networking options: Network firewalls, tcp/ip networking, ip forwarding/gatewaying, ip firewalling, ip masquerading, ipautofw
masquerading, icmpmasquerading, always defragment. Network device support: Dummy net driver support
Ethernet 10 or 100 Mbit: selezionare la propria scheda di rete.

Nel kernel del client linux 192.168.1.2 abilitare le seguenti opzioni:
Code maturity level options: Prompt for development
Lodable module support: Enable loadable module support, Kernel daemon support (non è indispensabile)
Networking options: tcp/ip networking
Network device support: Dummy net driver support
Ethernet 10 or 100 Mbit: selezionare la propria scheda di rete.

B
Entrare in /etc/hosts e scrivere nel server linux:
127.0.0.1 localhost
192.168.1.1 server.rete.locale server
Entrare in /etc/hosts e scrivere nel client linux:
127.0.0.1 localhost
192.168.1.2 linux.rete.locale linux
Entrare in /etc/hostname del server e scrivere:
#
server.rete.locale
#
linux.rete.locale

Sul server linux scrivere:
ifconfig eth0 192.168.1.1 netmask 255.255.255.0 broadcast 192.168.1.0
Sul client linux scrivere:
ifconfig eth0 192.168.1.2 netmask 255.255.255.0 broadcast 192.168.1.0

Sul server linux scrivere:
route add 192.168.1.0 dev eth0
Sul client linux scrivere:
route add 192.168.1.0 dev eth0
route add default gw 192.168.1.1

Su windows mettiamo l'indirizzo di rete 192.168.1.3, la netmask
255.255.255.0, i/il dns fornito dal provider ed il gateway 192.168.1.1
(il tutto su ipostazioni rete).

Sul server linux scrivere (se non va bene ipfwadm scrivere
ipfwadm-wrapper):

ipfwadm-wrapper -F -p deny
echo 1> /proc/sys/net/ipv4/ipforward (scriverlo se da errore la riga sopra).
oppure
echo 1> /proc/sys/net/ipv4/ip_forward (con kernel 2.6)
ipfwadm -F -a m -S 192.168.1.0/24 -D 0.0.0.0/0
modprobe ip_masq_ftp
modprobe ip_masq_irc
modprobe ip_masq_quake

Sul client linux scrivere:
entrare in /etc/resolv.conf
search dominio.isp (es. search libero.it)
nameserver 193.70.192.25 (1° dns)
nameserver 193.70.152.25 (2° dns)

Adesso dovreste essere in grado di navigare dai client windows e linux.

8e)CONDIVIDERE CONNESSIONE AD INTERNET (METODO PIU' SPICCIOLO)
Kernel 2.2x
echo 1 > /proc/sys/net/ipv4/ip_forward
ipfwadm -F -p deny
ipfwadm -F -a m -S 192.168.1.0/24 -D 0.0.0.0/0
oppure
echo 1 > /proc/sys/net/ipv4/ip_forward
ipfwadm_wrapper -F -p deny
ipfwadm_wrapper -F -a m -S 192.168.1.0/24 -D 0.0.0.0/0

Kernel 2.4x
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
Sul pc client
Sul pc client attiviamo il default gateway:
route add default gw 192.168.1.1
Infine nel file /etc/resolv.conf scriviamo:
search nome_dominio_del_provider
nameserver dns_primario_del_provider
nameserver dns_secondario_del_provider
Buona navigazione.

9e)COLLEGARE 2 PC ATTRAVERSO CAVO PARALLELO SU LPT1 (PLIP)
Procurarsi un cavo per stampanti da collegarsi ai 2 pc con linux. Configurare il kernel con le opzioni di networking, tcpip e plip.
Compilare il kernel e riavviare il pc (controllare all'avvio che compaia una linea con la scritta plip). Se non riuscite a vederla
scrivete: dmesg e controllate che compaia plip0 oppure plip1. Andare nel file /etc/hosts del primo e secondo pc e scrivere:
192.168.1.1 pc1
192.168.1.2 pc2
Sul pc1 scrivere:
ifconfig plip0 192.168.1.1 pointopoint 192.168.1.2 up
route add -host 192.168.1.2 dev plip0
Sul pc2 scrivere:
ifconfig plip0 192.168.1.2 pointopoint 192.168.1.1 up
route add -host 192.168.1.1 dev plip0
Adesso non rimane che pingare pc2 da pc1.

10e)AVVIARE UNA SESSIONE X DA REMOTO (da linux a linux)
Mettiamo che vogliamo collegarci in remoto su una macchina linux (192.168.1.2) da una macchina linux (192.168.1.1), basta scrivere:
X :1.0 -query 192.168.1.2
Sulla macchina linux su cui ci si collega è attivo la sessione grafica 1, se fosse la 2 dovevo scrivere:
X :2.0 -query 192.168.1.2

11e)AVVIARE PROGRAMMI DA TELNET SULLA PARTE GRAFICA
Entrare in telnet in un pc con la grafica già avviata, magari è siete lo stesso utente con cui siete entrati nell'X. Una volta inseriti login e
password per avviare ad esempio xterm scrivere:
xterm -display :0

oppure anche con questo metodo:
export DISPLAY=:0
xterm

12e)AVVIARE APPLICAZIONI DA TELNET SULLA PARTE GRAFICA x &
Sul server avviare la grafica con:
X &
Entrare in telnet dal client sul server e scrivere:
export DISPLAY=:0
xterm &

13e)AVVIARE APPLICAZIONI SUL CLIENT MA CHE GIRANO SUL SERVER
client=192.168.1.1 (es. pc su cui vi trovate)
server=192.168.1.2

telnet 192.168.1.2
export DISPLAY=192.168.1.1:0
Aprire dal client una finestra xterm e scrivere:
xhost +192.168.1.2
Adesso dalla finestra del telnet sempre aperta scrivere per esempio:
netscape (aspettare 5-10 secondi e netscape si aprirà, ma il programma
girerà sul server).

14e)IPCHAINS E FIREWALL
Piccolo firewall con ipchains da usare quando si è collegati ad internet, se esiste una rete locale adattare l'indirizzo sottostante:
ipchains -A input -s 192.168.0.1 -d 0/0 -j ACCEPT
ipchains -A input -s 0/0 -d 0/0 -i 1o -j ACCEPT
ipchains -A input -p tcp -s 0/0 -d 0/0 0:1023 -y -j REJECT
ipchains -A input -p tcp -s 0/0 -d 0/0 2049 -y -j REJECT
ipchains -A input -p udp -s 0/0 -d 0/0 0:1023 -j REJECT
ipchains -A input -p udp -s 0/0 -d 0/0 2049 -j REJECT
ipchains -A input -p tcp -s 0/0 -d 0/0 6000:6009 -y -j REJECT
ipchains -A input -p tcp -s 0/0 -d 0/0 7100 -y -j REJECT

15e)ADSL CON MODEM ETHERNET SU LINUX
Alcune considerazioni prima:
1)Io ho 3 telefoni in casa, la Telecom mi ha dato 2 filtri adsl, la cosa da fare è quella di staccare un telefono dalla presa su cui non potete mettere un filtro, oppure acquistare un filtro. Perchè vi dico questo ??? Ho fatto più di 35 telefonate al 187 e nessuno delle 35 telefoniste/i mi
ha mai detto nulla di questo, appena l'ho scoperto ho visto il segnale fisso sulla spia Adsl del modem. Se lampeggia, aspettate circa 1 minuto dall'accensione del modem, diverrà fissa, se lampeggia ancora controllate i filtri ed i relativi cavetti telefonici, oppure chiamate il 187 di
Telecom per vedere se non ve l'hanno configurato come usb. Dopo questo, vi dirò come compilare un kernel da 0, se usate un kernel già precompilato della distro utilizzata dovreste navigare già con l'adsl. Per chi vuol smanettare il dafarsi è questo. Installate il pacchetto rp-pppoe
presenti nella vostra distro oppure scaricatelo da internet. Scaricate un kernel (io ho fatto la prova sul 2.4.20), scompattatelo e date un:
make mrproper
make menuconfig
La cosa fondamentale è creare un kernel modulare "M" (purtroppo senza questi io non sono riuscito a far andare l'adsl, se qualcuno lo ha fatto non esiti da dirmelo). Per capirci usate la M dove possibile se no usate la Y.
Sotto Loadable Modulo mettere * o y in caso di (make xmenuconfig), sotto Networking options mettere una M a Packet socket, sotto Network device support mettere una M a PPP (point-to-point protocol) ed a tutti gli altri PPP mettere una M (altrimenti
una Y dove possibile). Su PPP over Ethernet mettere una M. Nel resto del kernel dovreste selezionare quello che vi interessa far riconoscere da linux (ognuno ha un pc diverso con hardware diverso). Alla fine di tutto uscite, salvate e date:
make dep && make clean && make bzImage && make modules && make modules_install
cp -f System.map /boot
cd arch/i386/boot
rdev -R bzImage l /dev/hdxx (dipende dove avete la partizione linux)
cp -f bzImage /boot
Configurate /etc/lilo.conf perchè all'avvio sia considerato bzImage invece che del vmlinuz. Date un bel:
lilo
Riavviate il pc e buona navigazione.

16e)MAPPATURA DEGLI ACCESS POINTS
Un grazie a startx.
Preparate le vostre attrezzature:

Ricevitore gps satellitare bluetooth
Ricevitore usb bluetooth
Scheda wireless ( antenna esterna opzionale http://www.trevormarshall.com )
Notebook con la vostra distribuzione Linux preferita

Installate software adeguato:

- bluez-utils e bluez-libs bluez-hcidump http://bluez.sourceforge.net/
gpsd http://freshmeat.net/projects/gpsd/
gpsdrive http://www.gpsdrive.cc/gpsdrive-2.10pre2.tar.gz
mysql e libmysqlclient.so.10 ( non le 12 o le 12 > ma le 10)
kismet http://www.kismetwireless.net/
- ipw2100 http://ipw2100.sourceforge.net/firmware.php?fid=4 ?
http://prdownloads.sourceforge.net/ipw2100/ipw2100-1.2.1.tgz?download

*Se avete una intel PRO wireless di questo tipo , altrimenti driver e firmware
della vostra scheda ( piu' avanti troverete le configurazioni di kismet.conf per l'utilizzo con le altre schede del test )

Dipendenze Kismet: http://www.kismetwireless.net/documentation.shtml

Imagemagick (5.4.7+): http://www.imagemagick.org/
Expat (1.95+): http://expat.sourceforge.net/
GMP: http://www.swox.com/gmp/
Ethereal (any): http://www.ethereal.com

Dipendenze Gpsdrive: http://www.gpsdrive.cc/readme.shtml

GTK-+2.x (better >=2.2.x)
pango
atk
pcre
xdevel (X11 development)
gettext
libcrypt
glibc

compiler gcc >=3.x ( se non vi riconosce il compilatore utilizzate
EXPORT CC=gcc-4.0 )
make

Per il supporto vocale sia a kismet che gpsdrive installate festival o flite o entrambi .
Festival conviene non usarlo come servizio, ma farlo partire a mano se vogliamo dare voce a gpsdrive ( avviandolo con l'opzione festival -e ) o a kismet ( non avviandolo ).
Dopo varie prove con voce /suono/muto questi sono i settaggi del kismet.conf che utilizzo:

Abilitano il suono , eliminando la wav per il junk traffic che e' noiosa , disabilitano lo speech festival , questo perche' pur modificando la stringa dello speech output risulta lento, vista la moltitudine di ap che vengono rilevati in una sessione in auto.

sound=true
# Path to sound player
soundplay=/usr/bin/play
# Optional parameters to pass to the player
soundopts=--volume=.3
# New network found
sound_new=/usr/local/share/kismet/wav/new_network.wav
# Wepped new network
sound_new_wep=${prefix}/com/kismet/wav/new_wep_network.wav
# Network traffic sound
sound_traffic=/usr/local/share/kismet/wav/traffic.wav
# Network junk traffic found
#sound_junktraffic=/usr/local/share/kismet/wav/junk_traffic.wav
# GPS lock aquired sound
# sound_gpslock=/usr/local/share/kismet/wav/foo.wav
# GPS lock lost sound
# sound_gpslost=/usr/local/share/kismet/wav/bar.wav
# Alert sound
sound_alert=/usr/local/share/kismet/wav/alert.wav

# Does the server have speech? (Again, not to be confused with the GUI's speech)
speech=false
# Server's path to Festival
festival=/usr/bin/festival
# Are we using festival lite? If so, set the above "festival" path to also
# point to the "flite" binary
flite=false
# How do we speak? Valid options:
# speech Normal speech
# nato NATO spellings (alpha, bravo, charlie)
# spell Spell the letters out (aye, bee, sea)
speech_type=speech
speech_encrypted=Detected %s, Fuck is encrypted.
speech_unencrypted=Detected %s, Dork is open.

Altre schede wireless usate per il test: http://b.domaindlx.com/startx/set.jpg

Kismet source config:

source=ipw2100,eth1,ipw2100 #Intel PRO wireless
#source=rt8180,wlan0,RTL #Netgear WG111.v2
#source=orinoco,eth2,orinoco #LucenT
#source=atmel_usb,wlan0,wlan0 # atmel chipset
#source=rt2500,ra0,rt2500 # DWL-G630
#source=rt2500,rausb0,rt2500 # Asus wl-167g

Configurare mysql aggiungendo il database geoinfo di gpsdrive:

mysqld_safe &
mysql_secure_installation
cd /usr/local/share/gpsdrive/
mysql -u root -p

Il sistema e' pronto , da ora in poi bastera' solo ..

Rilevare il gps bluetooth :

hcitool scan
Scanning ...
xx:xx:xx:xx:xx:xx Rikaline

Connettere il gps bluetooth:

rfcomm bind /dev/rfcomm0 xx:xx:xx:xx:xx:xx

Avviare il demone gpsd :

gpsd -p /dev/rfcomm0

Avviare kismet controllando di avere il segnale dal gps , questo perche' kismet non scrive nel database mysql il nome dell'access point trovato fino a che non ha una posizione satellitare valida.

Avviare gpsdrive. Per far si che gpsdrive aggiorni i waypoints in tempo reale bisogna settare ovviamente oltre alla porta del gps usato l'opzione “use mysql” e grazie alle libmysqlclient 10 comparita' l'icona kismet in basso a sinistra della mappa.

Per le mappe ..
gpsfetchmap.pl -w waypoint -a 100
gpsfetchmap.pl -w waypoint -a 5 --scale 3000

dove waypoint sta per il nome del waypoint che volete mappare trovato in .gpsdrive/way.txt.
Se volete usare il nome di un access point copiate way_kismet.txt in way.txt.
Scaricare con gpsfetchmap le mappe viola le policy di Expedia.

Ecco un esempio di un semplice script bash .

vi Kismet

#!/bin/sh
#script "Kismet": Attach, Bind , Start script
PATH=/sbin:/bin:/usr/bin:/usr/local/bin:/usr/local/sbin:$PATH
hcitool scan
sleep 5
mysqld_safe &
sleep 1
rfcomm bind /dev/rfcomm0 xx:xx:xx:xx:xx:xx #sostituitelo con il vostro ..
gpsd -p /dev/rfcomm0
#festival -e #se volete utilizzare lo speech in gpsdrive
kismet
# end-of-script

chmod +x Kismet
./kismet

Se la grafica di gpsdrive , o le mappe scaricate non ci soddisfano esiste un tool che permette di importare il database mysql delle geoinfo
in google earth. Potete trovarlo qua' :
http://svn.pythonfr.org/public/pythonfr/utils/misc/gpsdriveToGoogleEarth.py

#python gpsdriveToGoogleEarth.py
ed avrete il vostro file ap.kml che bastera' , una volta fatto partire google earth, aprirlo " file > apri " per otterene una schermata tipo questa..
http://b.domaindlx.com/startx/google-ap's.jpg

17e)LINUX DEBIAN PRIMI PASSI CON LA RETE
Comando utilissimo:
find / -name hosts.allow - print # cerca da root hosts.allow e ne stampa il percorso

Dopo installazione, per caricare manualmente un modulo non rilevato.
Es. la scheda ethernet 3c509b
# modprobe 3c509

Assegnare un indirizzo alla schede:
# ifconfig eth0 192.168.0.200 netmask 255.255.255.0 broadcast 192.168.0.255

Rendere attivi ad ogni boot le configurazioni.
Dentro il file /etc/modules inserire la riga con il nome del modulo [3c509]
/etc/modules: kernel modules to load at boot time.

# This file should contain the names of kernel modules that are
# to be loaded at boot time, one per line. Comments begin with
# a , and everything on the line after them are ignored. cs4281
3c59x # la nostra 3com

Dentro il file /etc/network/interfaces inserire la riga ifconfig. Example:
/etc/network/interfaces -- configuration file for ifup(8), ifdown(8)

# The loopback interface automatically added when upgrading
auto lo
iface lo inet loopback

# The first NIC
# automatically added when upgrading
auto eth0 # La prima scheda ethernet
iface eth0 inet static
address 192.168.0.100 # IP Address
netmask 255.255.255.0 # C Class
gateway 192.168.0.1 # Default gateway

Per una connessione remota via TELNET
Installazione del demone telnet in.telnetd
va installato il server "telnetd" contenuto in telnetd-ssl
per installare con apt (debian2.2):
debian:/etc# apt-cache search in.telnetd
telnetd-ssl - The telnet server with SSL encryption support.
telnetd - The telnet server.

debian:/etc# apt-get install telnetd-ssl ecc...

il file che avvia il demone telnet è in.telnetd, il suo nome va specificato con il percorso nentro il file /etc/inetd.conf.
(se non so dove si trova:
debian:/etc# find / -name in.telnetd -print
/usr/sbin/in.telnetd)

contenuto di inetd.conf
telnet stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.telnetd

Bisogna poi dire quali HOSTS hanno diritto alla connessione:

Contenuto di hosts.allow
#-- leafnode begin
leafnode: 127.0.0.1
ALL: LOCAL
linuxbox: 192.168.0.1
atlon: 192.168.0.16
#-- leafnode end

...e quali esclusi i precedenti non ce l'hanno:
Contenuto di hosts.deny
ALL: PARANOID
#-- leafnode begin
leafnode: ALL
#-- leafnode end

Va riavviato INETD.

Per accedere al sistema remoto come ROOT bisogna modificare il file securetty:
# Securetty di DEBIAN Woody (o Potato)
# /etc/securetty: list of terminals on which root is allowed to login.
# See securetty(5) and login(1).
console

# Standard consoles
tty1
tty2
tty3
tty4
tty5
tty6
tty7
tty8
tty9
tty10
tty11
tty12
# Ethernet console
pts/0
pts/1

# Same as above, but these only occur with devfs devices
vc/1
vc/2
vc/3
vc/4
vc/5
vc/6
vc/7
vc/8
vc/9
vc/10
vc/11
vc/12
~
securetty: unmodified: line 1

18e)CONDIVIDERE STAMPANTE SU LINUX COME PRINTSERVER SAMBA CUPS
-Configuriamo Cups.
Installare il programma cups, l'ultima versione su slacware è la cups-1.1.20-i486-1jim.tgz,
installarlo così:
installpkg cups-1.1.20-i486-1jim.tgz
e basta poi attivarla all'avvio dal menù di pkgtool --> Setup -->services (premere la barra) e poi selezionare sempre con la barra rc.cups.
Editare il file /etc/cups/cupsd.conf ed alla fine del file dovremmo trovare una voce uguale a questa :
#The default value is “IfRequested”.

Order Deny,Allow
Deny From All
Allow From 127.0.0.1
noi andiamo ad aggiungere
Allow From 192.168.0.* #che è l'indirizzo della nostra rete.
Allow From localhost #magari si dimentica chi è localhost
ora andiamo piu' in basso e troviamo:
#Restrict access to local domain
Order Deny,Allow
Deny From All
Allow From 127.0.0.1
noi andiamo ad aggiungere
Allow From 192.168.0.* #che è l'indirizzo della nostra rete.
Allow From localhost #magari si dimentica chi è localhost
Bene ora da nostri client possiamo configurare la stampante che abbiamo collegato al Server, puntiamolo con il nostro browser http://indirizzoipdelserver:631 , se non trovate la vostra stampante andate su
http://www.linux-foundation.org/en/OpenPrinting e cercate il driver piu' adatto a voi, fate una bella prova di stampa e la parte CUPS è terminata.
-Configuriamo Samba.
Ci siamo, siamo nella parte piu ostica del sistema SAMBA, certo è facile ma per arrivare alle “4” righe qui sotto vi posso assicurare che ho dovuto sudare parecchio perche' le documentazioni online erano quasi sempre incomplete (spero non volutamente, hehehehe) comunque vi riporto qui sotto il mio estratto di samb.conf con le voci che interessano la parte di CUPS.
Eccoci veloce e facile, per voi che leggete ma non lo è stato per me 8-):
[global]
printcap = cups
load printers = yes
printing = cups

[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
public = yes
guest ok = yes
writable = no
printable = yes
printer admin = root

[Stampante]
path=/var/spool/cups
printer admin = root, guest, nobody
public = yes
guest ok = yes
printable = yes
IMPORTANTE!!! la voce [Stampante] deve essere lo stesso nome che avete dato alla Stampante
utilizzando la configurazione di CUPS.
Ovviamente Samba deve avviarsi come demone quindi scrivere:
pkgtool -->Setup --> services (premere la barra) e poi sempre con la barra selezionare rc.samba.
Per avviare Samba scrivere:
smbd stop
smbd start
-AlCUNI SETTAGGI PERCHE' TUTTO FUNZIONI
Non mollate è finita, comunuqe dopo l'avvio o il ravvio della macchina cups configurare la cartella “/var/spool/cups” con permessi solo per “root” pertanto i client non riusciranno a stampare, bisognera' quindi permettere la scrittura e lettura della cartella per tutti, io non sono andato a cercare il parametro di cups che fa questo (almeno per ora) ma ho creato un piccolo scripts che si lancia dopo aver avviato cups in questo modo:
#!/bin/sh
cd /
chmod 777 /var/spool/cups
cd /etc/init.d
./samba restart
cd /
Questo script l'ho messo che venga lanciato dopo cups e samba pertanto in base alla vostra distribuzione: rc.local, rcS.d, etc. vedete di sistemarlo da qualche parte (di solito copiatelo in fondo al file). Per togliere qualche dubbio, con questa configurazione non è necessario avere l'account dell'utente sul server linux.
-CONFIGURIAMO I CLIENT WINDOWS
Installa nuova stampante, ricercare nella rete, installate il driver appropiato e stampate, buon lavoro.
Un grazie a Valter Perregrini lospamnoncepiu@spamstop.com

19e)CONDIVISIONE NFS PER LO SCAMBIO DI FILE IN UNA RETE CON MACCHINE LINUX
Un grazie a Yawningman.
Assicurarsi che le schede di rete delle macchine funzionino
"dmesg | grep eth0"
(eth0,1...a seconda di come abbiamo configurato la scheda)
Quindi riuscire pingare la macchina remota con la quale condivideremo i file nfs
Poniamo ad esempio 2 macchine:
192.168.1.1 nome host:primo
192.168.1.2 nome host:secondo
poniamo ad esempio che la cartella che vorremmo condividire risieda su "primo", e si chiami "condivisa" direttamente sotto /, assicuriamoci che la cartella abbia i permessi di lettura e scrittura verso tutti,
chmod o+rwx condivisa
una volta assicuratosi di ciò editare il file "/etc/exports" aggiungendo la seguente riga
"/condivisa secondo(rw,insecure,sync,no_subtree_check,insecure_locks,no_root_squash)
con questa riga all'inizio definisco il path locale della cartella che voglio condividere poi di seguito metto il nome dell'host remoto, invece nella riga tra parentesi,accetto connessioni in scrittura e lettura, accetto connessioni dalla porta 1024 e superiori,sincronizzo le operazioni in scrittura su richiesta, disabilito la verifica delle subdirectory,accesso ai file senza richiesta di lock infine considere root remoto come root locale... naturalmente il tutto è personalizzabile. Con questa riga si presuppone che la macchina remota sia 'affidabile' in termini di sicurezza. salvo il tutto e riavvio i servizi nfs e portmap se erano già attivi, in caso contrario li faccio partire:
"service nfs start"
"service portmap start"
Entrambi i servizi affinchè il servizio possa funzionare correttamente devono essere abilitati all'avvio della macchina quindi mi assicurerò che entrambi partono al riavvio delle macchina:
chkconfig --level 35 nfs on
chkconfig --level 35 portmap on
a questo punto mi accerterò che i comandi siano andati a buon fine con:
chkconfig --list nfs
chkconfig --list portmap
su livello 3 (autentificazione testo) e 5 (autentificazione grafica) dovrebbe apparire 'on' adesso possiamo passare alla configurazione della seconda macchina....
(192.168.1.2 secondo)
assicurarsi che i servizi nfs,e portmap siano attivi, in caso contrario ripetere l'operazione come prima. Creare una cartella di mount per la condivisione, poniamo ad esempio che la cartella sia "miacartella" direttamente sotto /, effettuare il mount 'remoto'.
mount 192.168.1.1:/condivisa /miacartella
naturalmente se ho editato il file /etc/hosts con:
192.168.1.1. primo
(e dopo aver fatto una semplice prova "ping primo" con risposta positiva, posso sostituire l'ip con il nome dell'host) a questo punto, avrò la cartella condivisa, molto utile per una sessione comune, o se volessi prendere a prestito, causa hard disk pienotto, una fetta di un altro pc assai più capiente.... il pranzo è pronto. Manca solo un particolare far si che al riavvio trovi tutto pronto senza dover fare il mount, bene per far
ciò editerò fstab
vi /etc/fstab
e aggiungerò la seguente riga:
192.168.1.1:/condivisione /miacartella nfs exec,dev,suid,rw 0 0

20e)SCOPRIRE GLI INTRUSI
Come vedere i socket aperti sul s.o. con i relativi utenti e processi che li hanno aperti:
netstat -ltupe
netstat -ltupec (in tempo reale)

21e)SICUREZZA DA ROOTKITS BACKDOORS E LOCAL EXPLOITS
Possiamo utilizzare due tools, uno o l'altro vanno più che bene.
-rkhunter
Scarichiamo il file rkhunter-1.2.7.tar.gz da questo sito:
http://www.rootkit.nl/projects/rootkit_hunter.html
Scompattiamolo:
tar zxvf rkhunter-1.2.7.tar.gz
cd rkhunter
Installiamolo:
./installer.sh
cd /usr/local/bin
Diamogli i permesso di essere eseguito:
chmod +x rkhunter
Scarichiamo l'update:
./rkhunter --update
Attiviamo la scansione così:
./rkhunter -c

-chrootkit
Dalla distro Archlinux scarichiamo ed installiamo il tool con pacman:
pacman -S chrootkitargets: chkrootkit-0.45-1
Total Package Size: 0.2 MB
Proceed with upgrade? [Y/n] Y
:: Retrieving packages from extra...
chkrootkit-0.45-1 [################] 100% 220K 86.3K/s 00:00:02
checking package integrity... done.
loading package data... done.
checking for file conflicts... done.
installing chkrootkit... done.
Check out the /opt/chkrootkit directory, run chkrootkit as root this way:
# ./chkrootkit
[root@myhost Temp]# cd /opt/chkrootkit/
./chkrootkit

Per le altre distro come debian per es, utilizzare aptget oppure scaricare da qui il sorgente:
http://www.chkrootkit.org/download/

22e)SCHEDA WIRELESS SU UN LAPTOP CON ARCHLINUX
La scheda wireless interna è una Pro Intel 2200BG, la parte sotto descritta riguarda una Archlinux sia con kernel ricompilato (2.6.15.2) sia non ricompilato e quindi con kernel che fa già parte di Arclinux. Utilizzando un kernel ricompilato, al momento della configurazione di questo NON selezionare nessun dispositivo wireless.
Avremo bisogno di 3 files:
Ieee80211
http://ieee80211.sourceforge.net/
Ipw2200
http://ipw2200.sourceforge.net/
firmware v3.0
http://ipw2200.sourceforge.net/firmware.php

- Con kernel NON ricompilato e quindi usando quello di default:
Scompattare:
ieee80211-1.1.14.tgz
tar zxvf ieee80211-1.1.14.tgz
. remove-old (inserire anche il punto, se fa delle domande rispondere con y)
make (se fa delle domande rispondere con y)
make install
Se la procedura fallisse ripeterla.
Scompattare:
ipw2200-1.1.3.tgz
tar zxvf ipw2200-1.1.3.tgz
. remove-old (inserire anche il punto, se fa delle domande rispondere con y)
make (se fa delle domande rispondere con y)
make install
Se la procedura fallisse ripeterla.
Infine scompattare ipw2200-firmware-3.0.tgz e copiare i 4 files presenti in /lib/firmware (se non esiste, creare la directory da utente root)
tar zxvf ipw2200-firmware-3.0.tgz
depmod -a
modprobe ipw2200
iwconfig
A questo punto dovreste trovare la scheda wireless eth2 o wlan0, od altro nuovo device.
Sotto Archlinux andare in /etc/ ed editare il file rc.conf
Se avete più connessioni su router wireless assegnare un dhcp alla scheda di rete oppure assegnargli un indirizzo fisso.
eth2="dhcp"
INTERFACES=(lo eth2)
ROUTES=(!gateway) (Se la scheda avrà un ip fisso, cancellare il punto interrogativo "!")

- Con kernel ricompilato:
All'interno del kernel non selezionare nessun dispositivo wireless sotto network e
Scompattare:
ieee80211-1.1.14.tgz
tar zxvf ieee80211-1.1.14.tgz
. remove-old (inserire anche il punto, se fa delle domande rispondere con y)
make (se fa delle domande rispondere con y)
make install
Se la procedura fallisse ripeterla.
Scompattare:
tar zxvf ipw2200-1.1.3.tgz
. remove-old (inserire anche il punto, se fa delle domande rispondere con y)
make (se fa delle domande rispondere con y)
make install
Se la procedura fallisse ripeterla.
Infine scompattare ipw2200-firmware-3.0.tgz e copiare i 4 files presenti in /lib/firmware (se non esiste, creare la directory da utente root)
tar zxvf ipw2200-fw-3.0.tgz
depmod -a
modprobe ipw2200
iwconfig
Se la scheda wireless trovata sarà eth2 il gioco è fatto.
Sotto Archlinux in /etc/rc.conf, scegliere se la scheda dovrà ottenere un indirizzo ip automaticamente in dhcp, oppure se dovete specificarlo voi.
Nel mio caso /etc/rc.conf è configurato così:
eth2="dhcp"
INTERFACES=(lo eth2)
ROUTES=(!gateway) (Se la scheda avrà un ip fisso, cancellare il punto interrogativo "!")
Nelle altre distribuzioni linux la gestione dei files per la rete è diversa, quindi controllate bene.

Innanzi tutto se non volete che cambi il dns ad ogni riavvio in /etc/conf.d/dhcpcd inserire il parametro (-R):
DHCPCD_ARGS="-R -t 30 -h $HOSTNAME"

E adesso navighiamo con il wireless.
Vediamo come farlo manualmente ed anche con il programma grafico KiFiManager.

- Manualmente:

iwlist eth2 scanning (Troverà ad esempio 2 server wireless, dove solo la seconda è criptata, quindi per connettervi avremo bisogno della password)
Cell 02 - Address: 00:14:BF:00:10:04
ESSID:"dsaw"
Protocol:IEEE 802.11bg
Mode:Master
Channel:1
Encryption key:on
Bit Rates:54 Mb/s
Extra: Rates (Mb/s): 1 2 5.5 6 9 11 12 18 24 36 48 54
Quality:37 Signal level:0 Noise level:0
Extra: Last beacon: 500ms ago

Cell 03 - Address: 00:13:10:0C:D7:4A
ESSID:"linksys"
Protocol:IEEE 802.11b
Mode:Master
Channel:6
Encryption key:off
Bit Rates:11 Mb/s
Extra: Rates (Mb/s): 1 2 5.5 11
Quality:37 Signal level:0 Noise level:0
Extra: Last beacon: 168ms ago

iwlist eth2 frequency (trova la frequenza di 6 canali)
eth2 11 channels in total; available frequencies :
Channel 01 : 2.412 GHz
Channel 02 : 2.417 GHz
Channel 03 : 2.422 GHz
Channel 04 : 2.427 GHz
Channel 05 : 2.432 GHz
Channel 06 : 2.437 GHz
Channel 07 : 2.442 GHz
Channel 08 : 2.447 GHz
Channel 09 : 2.452 GHz
Channel 10 : 2.457 GHz
Channel 11 : 2.462 GHz
Current Channel=1

Connettiamoci al server di rete chiamato linksys che non è criptata (non sempre servono la frequenza, il mode ed il canale):
iwconfig eth2 essid linksys channel 6 mode auto freq 2.437G ap 00:13:10:0C:D7:4A
cd /etc/rc.d && ./network restart (su Archlinux riavviamo la rete, in altre distro si fa diversamente. Se da errore o se la scheda non acquisisce l'indirizzo ip in dhcp vuol dire che non c'è segnale in quel momento o che avete inserito un dato sbagliato).
ifconfig eth2 (date un ifconfig per vedere se la scheda eth2 ha un inidirizzo ip, altrimenti ridare il comando sopra)

Connettiamoci al server di rete chiamato dsaw che è criptato con password tipo WEP (ho inserito 2 stringhe di esempio, va bene usare l'una o l'altra).
iwconfig eth2 essid dsaw key restricted 5693FFC5FF
oppure
iwconfig eth2 mode auto essid dsaw freq 2.412G channel 1 key restricted 5693FFC5FF ap 00:14:BF:00:10:04
cd /etc/rc.d && ./network restart (su Archlinux riavviamo la rete, in altre distro si fa diversamente. Se da errore o se la scheda non acquisisce l'indirizzo ip in dhcp vuol dire che non c'è segnale in quel momento o che avete inserito un dato sbagliato).
ifconfig eth2 (date un ifconfig per vedere se la scheda eth2 ha un inidirizzo ip, altrimenti ridare il comando sopra)

-Wireless con Password WPA
Installare wicd, dhclient e wpa_supplicant

pacman -Sy wicd
pacman -S dhclient wpa_supplicant

Modificare il file wpa_supplicant.conf
cd /etc
vi wpa_supplicant.conf

ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
eapol_version=1
ap_scan=1
fast_reauth=1

network={
ssid="Panther"
scan_ssid=0
proto=WPA
key_mgmt=WPA-PSK
pairwise=TKIP
group=TKIP
psk="la_vostra_password"
}

iwlist eth2 scanning
wpa_passphrase Panther dreamdream (criptare la password)
netcfg --stop eth2 (stoppare l'interfaccia di rete eth2)
iwconfig eth2 mode managed essid Panther channel 6
ifconfig eth2 up
wpa_supplicant -D wext -i eth2 -c /etc/wpa_supplicant.conf -ddd
/etc/rc.d/network restart

Se volete che venga fatto tutto in automatico ad ogni riavvio del laptop inserire quanto segue nel file /etc/rc.local:
depmod -a
modprobe ipw2200
modprobe ieee80211_crypt
modprobe ieee80211
netcfg --stop eth2
iwconfig eth2 mode managed essid Panther channel 6
ifconfig eth2 up
wpa_supplicant -D wext -i eth2 -c /etc/wpa_supplicant.conf -d &

- Graficamente con KiFiManager:
Sotto Kde aprire KiFiManager, non appena verranno trovate 1 o più connessioni, precedere con il riavviare la rete all'interno della postazione linux, sotto Archlinux basta andare su /etc/rc.d/ e riavviare il servizio di network:
./network restart (se il servizio è occupato, vuol dire che in quel preciso momento il segnale è assente), quindi riprovare.
Cliccare sul pulsante "Ricerca Dati", comparirà una finestra con le connessioni wifi trovate (Scrivetevi il nome delle connessioni, sotto la voce "Nome di rete"). Cliccare sul pulsante "Chiudi", andare su "Impostazioni" e poi su "Editor di configurazione"
Sotto Configurazione1 ci saranno ad esempio queste configurazioni:
Nome di rete: Wifi1
X Interfaccia, rileva automaticamente
Velocità: automatico
Utilizza la crittografia: Se ne avete una, scrivere la password richiesta
X: Carica la configurazione preselezionata all'avvio
Configurazione da caricare: Configurazione1
Se avete 3 linee wifi trovate, scegliere 3 accanto alla voce: Numero di configurazioni
Quindi per navigare con una delle configurazioni inserite, basta premere il tasto ATTIVA sotto ognuna delle Configurazioni preconfigurate.
Appena cliccato, uscite da questa finestra e sotto la voce "Connesso alla rete" comparirà il nome della rete precedentemente scelta.
Per attivarla ed avere un indirizzo ip dal server dhcp wifi, su Archlinux riavviate la rete come descritto sopra (cd /etc/rc.d/ && ./network restart), nelle altre distro vedete voi come fare.

23e)SERVER DI POSTA CON POSTFIX E TPOP3D SU ARCHLINUX
Andremo ad installare un server di posta elettronica su una rete privata lan sulla distro Archlinux, senza accesso ad internet.
Questa sarà solo una installazione e configurazione base di un server-mail, non ci sono particolari tipi di controllo, se non
il fatto di poter inviare e ricevere email all'interno di una lan privata. Quindi questo esempio è applicabile all'interno di un
ufficio o di una ditta.
INSTALLAZIONE POSTFIX
pacman -S postfix
useradd postfix
L'hostname lo trovate dentro il fine /etc/rc.conf oppure aprendo un xterm o premendo ctrl-alt-F1, nel mio caso ho scritto:
myhost

Dando cat /etc/hosts
#
127.0.0.1 myhost.mia.net myhost

Entrare nel file /etc/postfix/main.cf e settare questi parametri:
queue_directory = /var/spool/postfixù
command_directory = /usr/sbin
daemon_directory = /usr/lib/postfix
mail_owner = postfix
myhostname = myhost
mydomain = mia.net
myorigin = $mydomain
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
unknown_local_recipient_reject_code = 550
mynetworks = 10.0.0.0/24, 127.0.0.0/8 (inserite la vostra lan)
alias_maps = hash:/etc/postfix/aliases
alias_database = $alias_maps
home_mailbox = Mailbox (la Mailbox degli utenti)
mail_spool_directory = /var/mail

Nel caso di installazione manuale serviranno anche questi comandi:
groupadd -g 33333 postfix
groupadd -g 33335 maildrop
groupadd postdrop
useradd -u 33333 -g 33333 -d /dev/null -s /bin/false postfix
useradd -u 33335 -g 33335 -d /dev/null -s /bin/false maildrop

INSTALLAZIONE TPOP3D
pacman -S tpop3d
Entrare in /etc/conf.d/tpop3d e configurare la riga all'interno, dovremo dirgli dov'è situato il file tpop3d.conf (nel caso di Archlinux nella directory /etc
TPOP3D_ARGS="-f /etc/tpop3d.conf -p /var/run/tpop3d.pid"
Configurare il file tpop3d.conf dicendo dove dirgli di andare ad inserire le email, gli diremo di recuperarle in:
mailbox: bsd: /home/$user/Mailbox

AVVIARE I SERVIZI
cd /etc/rc.d/
./tpop3d start
./postfix start
oppure
postfix start (nel caso di installazione manuale di postfix)

CREARE L'UTENTE DI PROVA
Creare l'utente di prova pc2
adduser (premere sempre il tasto invio ed alla fine inserire una password)

CONFIGURARE IL CLIENT DI POSTA (THUNDERBIRD)
Aprire un programma di posta (ad esempio Thunderbird) e configurarlo come segue:
Account Name: pc2 (nome dell'utente creato)
Your Name: pc2
Eamil Address: pc2@mia.net
Accounting Server (SMTP) scegliere pc2 10.0.0.1 (Default)
Server Name:10.0.0.1 porta 110(inserire l'ip dove risiede il server di posta)
User Name: pc2
Outgoing Server (SMTP) Server Name: 10.0.0.1 (inserire l'ip dove risiede il server di posta)
Porta 25
User Name: pc2

Adesso non rimane che testare il tutto e scriversi una email a questo indirizzo:
pc2@mia.net
Volendo aggiungere un utente veritiero "rossi_mario) scriveremo ad esempio:
adduser (e poi rossi_mario), poi premere sempre il tasto INVIO
L'email di Rossi Mario sarà:
rossi_mario@mia.net

24e)SITO WIKI CON PMWIKI
Costruire un sito wiki con http://pmwiki.org solo con (855 kb scompattato)

Il tutto è stato provato sotto Archlinux
Installare Php e Apache e scaricare pmwiki dal sito, che sotto Arch si farebbe così:
pacman -S php
pacman -S apache

Scompattare pmwiki-latest.zip dove volete e spostare i files all'interno della directory pmwiki-2.1.11 dentro la directory /home/http/html/

APACHE:
cd /etc/httpd/conf/
Editare httpd.conf
Abilitare la seguente riga:
LoadModule php5_module modules/libphp5.so

Dire ad Apache qual'è la directory di riferimento "DocumentRoot ":
DocumentRoot "/home/httpd/html"

Sostituire la voce None con All

Options FollowSymLinks
AllowOverride All

mkdir /home/httpd/html/wiki.d
chmod 777 /home/httpd/html/wiki.d
cd docs/
cp sample-config.php ../local/config.php

Avviamo Apache con il comando "apachectl start" (Se avete l'errore "httpd: apr_sockaddr_info_get()" modificate il file hosts inserendo l'hostname del vostro s.o. linux.
vi /etc/hosts
127.0.0.1 myhost.localdomain myhost

Aprire un browser e scrivere (myhost) e cliccare su pmwiki.php
Per aggiornare la lingua italiana o rendere altre lingue disponibili, scaricare i18n.zip, scompattarlo ed entrare nella directory wikilib.d/ selezionare PmWikiIt* e copiarli in
/home/httpd/html/wikilib.d/

Per modificare tutte le pagine con una sola password:
$DefaultPasswords['edit'] = crypt('password che scegli');

Per modificare il logo in alto a sinistra:
$PageLogoUrl = "$PubDirUrl/skins/pmwiki/manualinux.jpg";

Per modificare il nome della pagina iniziale:
$WikiTitle = 'PmWiki';

Se non vuoi che compaiano una o tutte le scritte View, Edit, History, Print, basta modificare questo file:
Site.PageActions

Se non vuoi far comparire le scritte in alto "Recent Changes, Search" ed in basso " Edit - History - Print - Recent Changes - Search" basta modificare il file pmwiki.tmpl dentro skin/pmwiki

25e)IPTABLES
Su ipatables esistono 3 tabelle: Filter, Nat, Mangle.

La tabella filter è quella di defaut ed accetta le regole (INPUT, OUTPUT, FORWARD)

INPUT "Contiene" le regole per il traffico diretto al server
FORWARD "Contiene" le regole per il traffico spedito a 1 ip dietro questo server (ad esempio se questo pc serve come un firewall per altri server)
OUTPUT "Tiene" le regole per il traffico che sta arrivando da questo server fuori su internet

la nat necessaria per natting e masquerading accetta
(PREROUTING, POSTROUTING, OUTPUT).

Quando il traffico passa attraverso il kernel, questo determina un obiettivo basato sul pacchetto abbinato a una regola.
In generale gli obiettivi sono:

ACCEPT Il traffico è accettato per la consegna
REJECT Il traffico è rifiutato, manda un pacchetto indietro all'host mittente
DROP Il traffico è cancellato. Non viene inviato nulla all'host mittente

E' importante notare che l'ordine nel quale le regole sono scritte è fondamentale.
Per esempio, se la tua prima regola nega ogni cosa ... allora non importa cosa tu specificatamente permetti, poichè sarà negato.

-A => Dice a iptables di appendere questa regola alla catena di INPUT
-s => Source Address. Questa regola appartiene solo al traffico in entrata da questo ip. Sostituire con l'indirizzo ip con
il quale stai usando l'ssh.
-d => Destination Address. Questa regola permette solo il traffico che va a questo IP. Sostituire con l'IP di questo server.
-p => Protocollo. Specifica il traffico con il TCP.
-icmp => (pacchetto ping)
-tcp => (pacchetto es, telnet, ftp ecc)
-udp => (altro tipo di pacchetto)
--dport => Porta di destinazione. Specifica il traffico che è per la porta 22 TCP (SSH)
-j => Jump.Tipo di lavoro da svolgere,se ogni cosa in queste regole è abbinata allora 'jump' sarà in ACCEPT
-! =>(not) indica tutto ciò che non fa riferimento al parametro che stiamo passando.
-i =>(interfaccia) eth0, eth1 “schede di rete” , ppp0 “interfaccia internet”
-D => (cancella una o più regole)
-F => (cancella tutte le regole)
-L => (elenca tutte le regole o quella della catena indicata)
-N => (crea una nuova catena)

Da notare inoltre che nulla di quello che farai sarà salvato nel disco fino a che non esegui 'iptables-save'. Tutte le regole sonno solo nella memoria. Una volta che il server si riavvia, o esegui 'iptables-flush', oppure ogni cosa su cui hai lavorato se sparirà. E' meglio quindi scrivere le regole su un file di testo.

Per visualizzare i tipi di servizi che sono presenti in /etc/services, basta fare un:
cat /etc/services

Per abilitare il masquerading basta scrivere:
echo "1" > /proc/sys/net/ipv4/ip_forward
Come salvare la propria configurazione di iptables?
Semplice, scrivete il vostro firewall, per esempio nel file /etc/rc.d/rc.firewall
salvatelo, dategli i permessi corretti ed avviatelo:
cd /etc/rc.d && ./rc.firewall
Se dovete fare delle modifiche al volo e non volete perderle, basta salvarle così:
iptables-save > /etc/rc.d/rc.firewall
Se una volta riavviato il pc volete eseguire la configurazione iptables
precedentemente salvata, basta scrivere:
iptables-restore Oppure se volete caricare ad ogni riavvio la configurazione iptables, basta scrivere
alla fine del file /etc/rc.d/rc.local:
cd /etc/rc.d && ./rc.firewall

Oppure più semplicemente per salvare o ripristinare le regole:
iptables-save > /root/iptables-save.out
Ristabilisce le regole:
iptables-restore -c /root/iptables-save.out

Le 3 vie di handshake tra 2 hosts quando si trasmettono dati sono:

* NEW => Il Server 1 si connette al Server 2 pubblicando un pacchetto SYN (Synchronize).
* RELATED => Il Server 2 riceve il pacchetto SYN, e poi risponde con un pacchetto SYN-ACK (Synchronize Acknowledgment).
* ESTABLISHED => Il Server 1 riceve il pacchetto SYN-ACK e poi risponde con il pacchetto finale ACK (Acknowledgment).

Dopo che queste 3 vie di handshake sono complete, il traffico è ora ESTABLISHED (stabilito).
In ordine per questo tipo di comunicazione TCP, sono necessarie queste 3 regole:

# iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# iptables -A FORWARD -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
# iptables -A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

Dare questo comando per visualizzare la lista delle regole di una catena:
iptables --list

Questo è lo schema generale da seguire per impostare una regola.
iptables (entrata,uscita,per) (da o per) (indirizzo) (tipo pacchetto) (accettare,rifiutare)

Ed ora entriamo nel vivo con un pò di esempi:

---------------------------------COSA SCARTARE:-----------------------------------------------------
BAD GUYS (Bloccare gli indirizzi IP indesiderati)
# iptables -A INPUT -s 172.34.5.8 -j DROP

NO SPAMMERS (notare l'uso di FQDN)
# iptables -A INPUT -s mail.spammer.org -d 10.1.15.1 -p tcp --dport 25 -j REJECT
---------------------------------------------------------------------------------------------------------------------

---------------------------------COSA ACCETTARE:--------------------------------------------------
MYSQL (Permette l'accesso remoto ad un IP particolare):
# iptables -A INPUT -s 172.50.3.45 -d 10.1.15.1 -p tcp --dport 3306 -j ACCEPT

SSH:
# iptables -A INPUT -d 10.1.15.1 -p tcp --dport 22 -j ACCEPT

Sendmail/Postfix:
# iptables -A INPUT -d 10.1.15.1 -p tcp --dport 25 -j ACCEPT

FTP: (Notare come tu possa specificare un range di porte 20-21)
# iptables -A INPUT -d 10.1.15.1 -p tcp --dport 20:21 -j ACCEPT

Passive FTP Ports Maybe: (Nuovamente, specificare le porte 50000 attraverso 50050 in una regola)
# iptables -A INPUT -d 10.1.15.1 -p tcp --dport 50000:50050 -j ACCEPT

HTTP/Apache
# iptables -A INPUT -d 10.1.15.1 -p tcp --dport 80 -j ACCEPT

SSL/Apache
# iptables -A INPUT -d 10.1.15.1 -p tcp --dport 443 -j ACCEPT

IMAP
# iptables -A INPUT -d 10.1.15.1 -p tcp --dport 143 -j ACCEPT

IMAPS
# iptables -A INPUT -d 10.1.15.1 -p tcp --dport 993 -j ACCEPT

POP3
# iptables -A INPUT -d 10.1.15.1 -p tcp --dport 110 -j ACCEPT

POP3S
# iptables -A INPUT -d 10.1.15.1 -p tcp --dport 995 -j ACCEPT

Qualsiasi traffico da localhost:
# iptables -A INPUT -d 10.1.15.1 -s 127.0.0.1 -j ACCEPT

ICMP/Ping:
# iptables -A INPUT -d 10.1.15.1 -p icmp -j
----------------------------------------------------------------------------------------------------------

---------------------------------COSA RIFIUTARE:------------------------------------------
Rifiutiamo ogni altra cosa a quell' indirizzo IP:
# iptables -A INPUT -d 10.1.15.1 -j REJECT

O rifiutiamo ogni altra cosa arriva attraverso ogni altro IP:
# iptables -A INPUT -j REJECT
# iptables -A FORWARD -j
---------------------------------------------------------------------------------------------------------

Altri esempi:

-Questo esempio impedisce il ping proveniente dall'ip 192.168.1.2
iptables -A INPUT -s 192.168.1.2 -p icmp -i eth0 -j DROP

-Questo esempio accetta il ping proveniente dall'ip 192.168.1.2
iptables -A INPUT -s 192.168.1.2 -p icmp -i eth0 -j ACCEPT

-Questo esempio impedisce l'ftp proveniente dall'ip 192.168.1.2
iptables -A INPUT -s 192.168.1.2 -p tcp --dport ftp -i eth0 -j DROP
oppure
iptables -A INPUT -s 192.168.1.2 -p tcp --dport 21 -i eth0 -j DROP

-Questo esempio accetta l'ftp proveniente dall'ip 192.168.1.2
iptables -A INPUT -s 192.168.1.2 -p tcp --dport ftp -i eth0 -j ACCEPT
oppure
iptables -A INPUT -s 192.168.1.2 -p tcp --dport 21 -i eth0 -j ACCEPT

-Questo esempio impedisce il telnet proveniente dall'ip 192.168.1.2
iptables -A INPUT -s 192.168.1.2 -p tcp --dport telnet -i eth0 -j DROP
oppure
iptables -A INPUT -s 192.168.1.2 -p tcp --dport 23 -i eth0 -j DROP

-Questo esempio accetta il telnet proveniente dall'ip 192.168.1.2
iptables -A INPUT -s 192.168.1.2 -p tcp --dport telnet -i eth0 -j ACCEPT
oppure
iptables -A INPUT -s 192.168.1.2 -p tcp --dport 23 -i eth0 -j ACCEPT

-Questo esempio accetta il telnet proveniente da internet (ppp0)
iptables -A INPUT -p tcp ?dport telnet -i ppp0 -j ACCEPT

-Questo esempio rifiuta il telnet proveniente da internet (ppp0)
iptables -A INPUT -p tcp ?dport telnet -i ppp0 -j DROP

-Questo esempio blocca tutto il traffico che proviene da internet che tenta di
aprire una connessione qualsiasi.
iptables -A INPUT -i ppp0 -p tcp --syn -j DROP

-Questo esempio rende disponibile da internet il server web (porta 80, vedere /etc/services) presente sulla nostra macchina linux ed impedisce
che si acceda a tutti gli altri servizi (es. ftp, telnet).
iptables -A INPUT -i ppp0 -p tcp ?syn ?dport ! 80 -j DROP

-Questo esempio blocca tutti gli icmp di tipo echo-replay e quindi i ping.
iptables -A INPUT -p icmp --icmp-type 0 -j DROP

-Questo esempio accetta un pacchetto verso la porta 21 se proviene
dall'host www.tivedotonico.it
iptables -A INPUT -s www.tivedotonico.it -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp ?dport 21 -j DROP
oppure si poteva anche scrivere
iptables -A INPUT -s ! www.tivedotonico.it -p tcp ?dport 21 -j DROP
Cioè rifiuta tutto i pacchetti che arrivano sulla porta 21 a meno che non arrivi dall'host
www.tivedotonico.it

Nel nat le catene principali sono:
PREROUTING
POSTROUTING
OUTPUT (pacchetti in uscita dal nostro pc)

Le azioni più usate sono:
-SNAT consente di cambiare il mittente e la porta sorgente (POSTROUTING).
Solo su indirizzi ip statici (indirizzo ip reti locali).

-DNAT consente di cambiare la destinazione dei pacchetti da usarsi con PREROUTING in quanto cambiare la destinazione di un pacchetto
potrebbe influenzare le decisioni di routing. E' anche possibile specificare una diversa porta di destinazione.

-MASQUERADE è tipo SNAT ma fa si che i pacchetti abbiano come mittente l'indirizzo ip dell'interfaccia di rete dalla quale
usciranno (POSTROUTING). Si utilizza MASQUERADE con indirizzo ip assegnato dinamicamente (connessioni internet)

-REDIRECT consente di cambiare la porta di destinazione di un pacchetto (PREROUTING).
Fa in modo che il pacchetto venga rediretto sul un ip locale ad una porta specificata.
iptables -j DNAT --to 192.168.100.4:porta -j REDIRECT --to-ports porta

Intercetta tutti i pacchetti provenienti da eth0 per un server www e li devia sul nostro proxy server.
iptables -t nat -A PREROUTING -p tcp -i eth0 --dport www -j DNAT --to proxy:8080

Modifica il mittente dei pacchetti che escono dalla eth2 e proveniente dalla nostra lan 192.168.200.0/24 e con indirizzo ip esterno del
nostro firewall.
iptables -t nat -A POSTROUTING -o eth2 -s 192.168.200.0/24 -j SNAT --to 123.45.68.1

Maschera i pacchetti in uscita dalla scheda ppp0
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

26e)NAVIGARE CON IL GPRS SU LINUX
Un grazie e curato da:
Livio DiPietro aka Tamburo membro del Lug Acros.
Istruzioni per installare e configurare GPRS Easy Connect v2.0.0 Premessa: uso Slackware 9 e per poter far funzionare correttamente l'applicativo sotto questa distro, installare le librerie Tk-800.024.tar.gz (che trovate nel sito www.easyconnect.linuxuser.hu) e le libwww-perl-5.64.tar.gz (le potete scaricare facendo una semplice ricerca sotto www.google.it) Per le altre distribuzioni (Mandriva, RedHat, ecc.), l'RPM PerlTk e' sufficiente per far funzionare correttamente il GPRS Easy Connect v.2.0.0.
Per installare le Tk-800.024.tar.gz, procedere così:

Scompattare
gzip -dc Tk-800.024.tar.gz | tar -xof -

Costruzione
perl Makefile.PL
make
make test

Installazione
make install

Le libwww si scompattano con il tradizionale tar xzvf libwww-perl-5.64.tar.gz e poi si procede da "Costruzione" in poi.
Scaricare da http://www.easyconnect.linuxuser.hu l'ultima release di GPRS Easy Connect v.2.0.0 in /usr/local (l'ho letto in qualche readme che va messo in quella directory); scompattate il file (e' in formato .tar.gz). Otterrete il file GPRS_Easy_Connect_200_Install, bene.. a questo punto..
startx!! Eh si, ora si passa in modalità grafica! :) Ci siete? Bene, ora aprite xterm, vi portate in /usr/local dove c'è il file GPRS_Easy_ ecc., digitate:
./GPRS_Easy_Connect_200_Install

A questo punto, se avete fatto tutto a dovere, l'applicativo lancia il tool di installazione grafico, andate avanti, dove vi chiede se accettare la licenza dite si e poi avanti.. in un attimo e' pronto! Per lanciare l'applicativo digitate, sempre in xterm, gprsec e invio.. ehm..Si apre la finestra per poter effettuare la connessione ma voi che siete dei smanettoni incredibili, cliccate nel tasto centrale, in basso, quello delle impostazioni.
Vi appare ora, come per incanto, una finestruola divisa più o meno in due parti a mò di due colonne; nella colonna a sinistra ci sono 4 pulsanti e ve li elenco:
Parametri Obbligatori, Parametri Opzionali, Parametri Rari e Impostazione Limiti. A noi interessano solo i primi due.

Parametri Obbligatori:
1) nella parte destra per prima cosa scegliete il modello di cellulare gprs che avete in dotazione, ci sono tutti, fino agli ultimi modelli;
2) una scritta inquietante "Svegli il tuo operatore" indica quale operatore di telefonia mobile bisogna scegliere (Omnitel,Tim,Wind);
3) il terzo parametro, l'APN che viene assegnato automaticamente quando svegli ehm.. scegli l'operatore telefonico;
4) user: se dovesse servire,il programma ci pensa da se' a mettere il valore, essendo predefinito per ogni operatore di telefonia salvo eccezioni;
5) password: uguale a user
6) la lingua: italiano of course!
7) la COM dove avete collegato il cell (il programma supporta anche la comunicazione con l'infrarosso ma ve lo sconsiglio, procuratevi sempre il cavetto, ove possibile);
8) Il o i DNS: se dinamico, fleggate il quadratino, in caso contrario mettete quello indicato; nel dubbio controllare i parametri forniti dal vostro operatore di telefonia. Cliccate ora, nella colonna a sinistra, sul bottone verde "OK/Salva Dati". Parametri Opzionali: mettete nella prima casella in alto il valore 115200. Cliccate ora, nella colonna a sinistra, sul bottone verde "OK/Salva Dati".
Siete ora tornati nella prima schermata, se tutto quello che avete configurato e' ok, premete su "Connetti" e buona navigazione! :)

ALT!!! Un paio di annotazioni:
Vi descrivo brevemente quello che mi succede quando decido di connettermi: clicco su Connetti, si apre una finestrina dove una simpatica barra formata da quadratini verdi avanza.. ad un certo punto, appare un msg di errore: dice che non e' possibile connettersi.. bene, e' un bug, nel mio Siemens S55 appare la scritta GPRS seguita da un triangolino di questo tipo: |> beh, insomma più o meno così.. Quel triangolino indica che sono online! Ho già navigato in internet, vado in chat, funziona tutto a dovere.

Utilizzo Aruba che insieme a Wind offre la flat tramite connessione GPRS, per questo motivo l'APN (Access Point Name) di Wind (internet.wind), non corrisponde affatto a quello di Aruba (internet.wind.biz).
Come fare per modificare l'APN? Semplice, andare in /usr/share/gprsec/tools/ ed editare il file apn con vi. Nell'ultima riga sono presenti i parametri della connessione tramite Wind. Ho modificato l'APN internet.wind in internet.wind.biz e tutto funziona. Si può anche copiare l'intera stringa, incollarla, cambiare Wind in Aruba e lasciare invariati i parametri eccetto l'APN.. a voi la scelta :)

27e)CONFIGURARE SSH
Prima di tutto installare il programma ssh sulla propria distro:
pacman -S ssh (su ArchLinux)
apt-get install ssh (su Debian)
Spostarsi poi nella directory /etc/ssh/ e farsi una copia dei 2 files principali:
cp ssh_config ssh_configold
cp sshd_config sshd_configold

-Entrare in ssh_config ed abilitare i seguenti valori:
ForwardX11 yes
Port 22
Protocol 2,1
SendEnv LANG LC_*
HashKnownHosts yes
GSSAPIAuthentication yes
GSSAPIDelegateCredentials no

-Entrare in sshd_config e settare questi parametri:
Port 22
Protocol 2,1
SyslogFacility AUTH
LogLevel INFO
PasswordAuthentication yes
ChallengeResponseAuthentication no
X11Forwarding yes
X11 UseLocalhost yes
Subsystem sftp /usr/lib/openssh/sftp-server

Adesso avviamo il demone ssh:
cd /etc/rc.d/
./sshd start (se da errore disabilitare le ultime due righe nel file ssh_config e riavviare il demone)
Se su ArchLinux vogliamo sempre lanciare il demone all'avvio inserire sshd nel file /etc/rc.conf
Se vogliamo abilitare ssh nel firewall scrivere:
iptables -A INPUT -d 192.168.1.1 -p tcp --dport 22 -j ACCEPT
Per connettersi da un client a questo server con ssh abilitato basta scrivere:
ssh ip_server (ssh 192.168.1.1) oppure (ssh utente@192.168.1.1)
Se facciamo un login con ssh e vogliamo aprire un programma:
ssh -X 192.168.1.1 -l username nome_programma

Per visualizzare i files di log:
cat /var/log/auth.log | grep ssh
oppure
grep ssh /var/log/auth.log

28e)ASSEGNARE DOPPIO INDIRIZZO IP ALLA SCHEDA DI RETE
ifconfig eth0:1 192.168.1.3 netmask 255.255.255.0 up

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++