Attivazione autenticazione in RIP

Un modo per consentire solo a delle determinate apparecchiature il traffico sulla propria rete è l’utilizzo dell’autenticazione in RIP

La seguente serie di comandi consente l’autenticazione in testo normale:

Router1#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#key chain ORA
Router1(config-keychain)#key 1
Router1(config-keychain-key)#key-string oreilly
Router1(config-keychain-key)#exit
Router1(config-keychain)#exit
Router1(config)#interface FastEthernet0/0.1
Router1(config-subif)#ip rip authentication key-chain ORA
Router1(config-subif)#ip rip authentication mode text
Router1(config-subif)#end
Router1#

Per una maggiore sicurezza, i router Cisco possono anche utilizzare l’autenticazione basata su MD5:

Router1#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#key chain ORA
Router1(config-keychain)#key 1
Router1(config-keychain-key)#key-string oreilly
Router1(config-keychain-key)#exit
Router1(config-keychain)#exit
Router1(config)#interface FastEthernet0/0.1
Router1(config-subif)#ip rip authentication key-chain ORA
Router1(config-subif)#ip rip authentication mode md5
Router1(config-subif)#end
Router1#

Autenticazione di RIP è uno dei miglioramenti del protocollo che appagliono nella versione 2.L’esempio della prima configurazione in questo articolo utilizza una normale autenticazione. In generale, si consiglia di utilizzare l’autenticazione MD5 perché il testo in chiaro è fin troppo facile da craccare. Se si desidera impostare l’autenticazione per assicurarsi di ricevere aggiornamenti solo dai dispositivi appropriati, è necessario utilizzare la versione più sicura MD5. L’unica ragione per considerare  la modalità in chiaro è che se alcuni dei dispositivi RIP non posso abilitare MD5. Poiché la RFC per RIP versione 2 descrive solo l’ autenticazione semplice, i non-Cisco dispositivi potrebbero non supportare l’autenticazione MD5.Entrambe le forme di autenticazione RIP contribuiscono a garantire che solo apparecchiature di rete legittime e autorizzate possono partecipare agli update di RIP. Ciò è particolarmente importante se si dispone di segmenti di rete contenenti dispositivi che possono corrompere le tabelle di routing. In questo esempio, la chiave viene applicata su un’interfaccia. Ciò consente di specificare una chiave diversa per ogni segmento di rete. Tuttavia, non c’è nulla che impedisca di utilizzare lo stesso codice su più di una interfaccia, o anche utilizzando una sola chiave in  tutta la rete.Le tracce di debug seguenti sono state prese con abilitato l’autenticazione. La prima traccia mostra il testo semplice e include la password:

Router1#debug ip rip
RIP protocol debugging is on
Aug 12 02:08:03.386: RIP: received packet with text authentication oreilly
Aug 12 02:08:03.390: RIP: received v2 update from 172.25.1.7 on FastEthernet0/0.1

La seconda traccia si presenta con un aggiornamento contenente l’autenticazione MD5. In questo caso, il router non è in grado di decodificare la stringa di autenticazione. Invece, si confronta la stringa della password cifrata con la versione cifrata della propria password per vedere se corrispondono. Non ci sono metodi noti per invertire in modo univoco la crittografia MD5:

Router3#debug ip rip
RIP protocol debugging is on
Aug 11 22:14:50 EDT: RIP: received packet with MD5 authentication
Aug 11 22:14:50 EDT: RIP: received v2 update from 172.25.1.5 on Ethernet0

il comando show ip protocols include informazioni sulle catene chiave di autenticazione:

Router3#show ip protocols
Routing Protocol is "rip"
  Sending updates every 30 seconds, next due in 16 seconds
  Invalid after 180 seconds, hold down 180, flushed after 240
  Outgoing update filter list for all interfaces is
  Incoming update filter list for all interfaces is
  Redistributing: rip
  Default version control: send version 2, receive version 2
    Interface        Send  Recv   Key-chain
    Ethernet0        2     2      ORA
  Routing for Networks:
    172.25.0.0
  Routing Information Sources:
    Gateway         Distance      Last Update
    172.25.1.5           120      00:00:01
  Distance: (default is 120)
Router3#

Se il router riceve un aggiornamento RIP che ha un chiave sbagliata (o nessuna chiave affatto), scarta il pacchetto, come mostrato nella traccia di debug seguente:

Router3#debug ip rip
RIP protocol debugging is on
Aug 11 22:17:07 EDT: RIP: ignored v2 packet from 172.25.1.5 (invalid authentication)

Controllo dell’accesso in base all’indirizzo MAC

Si desidera che solo una macchina particolare, identificata dal suo indirizzo MAC, può accedere al tuo sistema.

# iptables -F INPUT
# iptables -A INPUT -i lo -j ACCEPT
# iptables -A INPUT -m mac --mac-source 12:34:56:89:90:ab -j ACCEPT
# iptables -A INPUT -j REJECT

ipchains non supporta questa funzionalità.

Questa tecnica funziona solo all’interno della vostra sottorete locale. Se si riceve un pacchetto da una macchina di fuori della subnet, conterrà l’indirizzo MAC del gateway, non quella della macchina originale.

Gli indirizzi MAC possono essere contraffatti. Supponiamo di avere una macchina chiamata pippo il cui indirizzo MAC è considerato attendibile dal vostro firewall. Se un intruso scopre questo fatto, e pippo è giù, l’intruso potrebbe prendere l’indirizzo mac di pippo e il vostro firewall non saprebbe nulla. D’altra parte, se è pippo durante lo spoofing è acceso, il suo kernel inizieràurlare” (via syslog) che il suo indirizzo mac è stato duplicato.

Incapsulamento WAN

Nelle comunicazioni WAN è necessario selezionare il protocollo di livello 2 più consono:

 

  • HDLC: il tipo di incapsulazione di default sulle connessioni punto-punto tra apparati CISCO. HDLC è la base del protocollo sincrono PPP
  • PPP: Fornisce connessioni host-to-network o router-to-router su circuiti sincroni o asincroni. PPP lavora con molti protocolli di livello rete come IP ed IPX. PPP implementa meccanismi di sicurezza come PAP e CHAP
  • Serial Line Internet Protocol (SLIP): un protocollo per connessioni punto-punto che utilizza TCP/IP, ampiamente sostituito da PPP
  • X.25/Link Access Procedure Balanced (LAPB): standard ITU-T che definisce come gestire le connessioni tra DTE e DCE per comunicazioni su rete pubblica e accesso da terminale remoto
  • Frame Relay: standard di livello 2 data link che gestisce reti switchate e circuiti virtuali multipli. Frame Relay è l’evoluzione di X.25 eliminando alcuni dei processi “time consuming” (come correzione di errore e flow control)
  • ATM: lo standard internazionale per il “cell relay”, nato per gestire servizi differenti come voce, video e dati. Le celle sono di lunghezza fissata: 53 byte. La lunghezza fissata delle celle consente che esse siano processate in hardware riducendo i tempi di latenza. ATM utilizza standard trasmissivi ad alta velocità come E3 e SDH

 

 

Esercizi sulle access-list di cisco

A)Permettere all’host 192.168.1.17 l’accesso al Server 192.168.250.1 per ogni tipo di traffico (TCP, UDP) e negare tutto il resto
B)Permettere all’host 192.168.1.17 l’accesso al Server 192.168.250.1 solo per il servizio TFTP e negare tutto il resto
C)Negare alla seconda metà degli host della sottorete 172.20.160.0/20 qualsiasi tipo di traffico verso qualsiasi tipo di destinazione e permettere tutto il resto
D)Negare all’host 172.16.3.10 l’accesso in FTP verso tutti i 254 server della network 172.16.1.0/24 e permettere tutto il resto
E)Data la rete 192.168.10.0 permettere solo agli host dal .32 al .47 il traffico http verso il mondo esterno negando tutto il resto
G)Data la sottorete 172.16.192.0/23 permettere alla metà superiore degli host tutto il traffico tcp eccetto il servizio SMTP (porta 25) e negare il resto
H)Permettere all’host 192.168.1.1 il traffico telnet verso il server 172.16.1.1, permettere allo stesso host il traffico http verso il server 172.16.1.2 e negare tutto il resto
J)Data la sottorete 172.18.128.0/17, considerare la metà superiore degli host e negare agli host di tale metà superiore tutto il traffico IP verso chiunque e permettere tutto il resto
K) Permettere all’host 199.1.10.68 tutto il traffico verso il server 200.200.200.38 garantendogli anche la funzionalità del ping
A2)Permettere agli host 192.168.1.24 e 192.168.1.25 l’accesso al Server 192.168.240.1 per ogni tipo di traffico (TCP,UDP) e negare il resto
B2)Permettere agli host 192.168.1.25 e 192.168.1.26 l’accesso al Server 192.168.240.1 per ogni tipo di traffico (TCP,UDP) e negare il resto
C2)Data la rete 192.168.10.0 permettere solo agli host dal .15 al .31 il traffico http verso il mondo esterno negando tutto il resto
D2)Data la sottorete 172.16.64.0/18, considerare la metà superiore degli host e negare agli host PARI di tale metà superiore tutto il traffico IP verso chiunque e permettere tutto il resto
E2)Data la nostra rete 170.1.17.0/28 e la rete esterna 200.3.23.0/25 permettere il solo traffico ftp in uscita dei propri host pari verso gli host dispari dell’altra e in ingresso degli host pari dell’altra verso i nostri host dispari.

Colorazione della sintassi in Nano

 

Un’opzione carina da vedere e configurare è quella della colorazione della sintassi attraverso il nostro editor nano.Io ho aggiunto questa nuova riga per vedere colorato il file di configurazione di apache2:

/etc/nanorc
## Apache2 files
include "/usr/share/nano/apacheconf.nanorc"

aggiungo il nuovo file apacheconf.nanorc con la seguente configurazione:

## Apache httpd.conf highlighting

##

#how to add sites-enabled files? "default" is too generic to keep in here I think

syntax "Apache2" "apache2.conf$"

color brightwhite "(ServerRoot|LoadModule|(Lock|Pid)File|Timeout|(Max)?KeepAlive(Requests|Timeout)?)"

color brightwhite "(User|Group|LogFormat|ErrorLog|Include|(Script)?Alias)"

color brightwhite "(ErrorDocument|AccessFileName|UseCanonicalName|TypesConfig|DefaultType)"

color brightwhite "(HostnameLookups|IndexOptions|(Readme|Header)Name|LanguagePriority)"

color brightwhite "(AddIcon(ByEncoding|ByType)?|DefaultIcon|IndexIgnore|BrowserMatch)"

color brightwhite "(Add(Encoding|Language|(Default)?Charset|Type|Handler)|DirectoryIndex)"

color brightwhite "(DocumentRoot|Server(Admin|Signature)|LogLevel|CustomLog)"

color brightwhite "((Force)?LanguagePriority|NameVirtualHost)"

color brightyellow "(SetHandler|Order|Deny|Allow|SetOutputFilter)"

color yellow "(AllowOverride|FileInfo|AuthConfig|Limit)"

color yellow "([^A-Z0-9a-z]Options|Indexes|(\+|\-)?SymLinksIfOwnerMatch)"

color yellow "(Includes(NoExec)?|(\+|\-)?MultiViews)"

color yellow "(None|allow,deny|deny,allow|(allow)? from (all)?|Prefer|Fallback)"

color yellow "(Add(Handler|OutputFilter)|NumServers|AcceptMutex)"

color yellow "((Min|Max)Spare(Threads|Servers|Processors)|Start(Threads|Servers))"

color yellow "(MaxClients|(Min|Max)?ThreadsPerChild|MaxRequestsPerChild)"

color yellow "(FancyIndexing|VersionSort|ExecCGI|FollowSymLinks|(Min|Max)Processors)"

color yellow "hostmaster@[A-Za-z0-9\.]*"

color brightred "(On|Off)[[:space:]]*$"

color brightred "[[:space:]]+(debug|info|notice|warn|error|crit|alert|emerg)[[:space:]]*$"

color brightred "[[:space:]]+(combined|common|referer|agent)[[:space:]]*$"

color brightred "[[:space:]]+(redirect\-carefully|nokeepalive)[[:space:]]*"

color brightred "[[:space:]]+(force\-response\-1\.0)[[:space:]]*"

color brightred "[[:space:]]+(downgrade\-1\.0)[[:space:]]*"

color brightred "[[:space:]]+application/[a-zA-Z\-]+[[:space:]]*"

color brightred "[[:space:]]+type-map[[:space:]]*"

color magenta "[[:space:]]+[0-9]+[[:space:]]*"

color magenta "(/)?(2[0-5]{2}|1[0-9]{2}|[1-9][0-9]|[1-9])(\.(2[0-5]{2}|1[0-9]{2}|[1-9][0-9]|[0-9])){3}([[:space:]]+::(2[0-5]{2}|1[0-9]{2}|[1-9][0-9]|[0-9])/(2[0-5]{2}|1[0-9]{2}|[1-9][0-9]|[0-9]))?"

color brightcyan start="<" end=">"

color white ""(\\.|[^\"])*""

# Unix-based paths

# can't use \] in the regex for some reason?!? Maybe a bug?

# this is preventing a 100% "to the end of the line" match for a few

# lines (the trailing characters from ] to the EOL are not highlighted.

# if anyone knows how to make it work, let me know.. 😉

color white "[[:space:]]+(/[/\[\^#A-Za-z0-9\.\*\_\-]+)+"

color green "^[[:space:]]*#.*"

color cyan "\<(ServerName|Serveralias|DocumentRoot|DirectoryIndex|ErrorLog|CustomLog)\>"

 

1 18 19 20 21