mercredi 7 octobre 2015

Un routeur derrière une box voo ?

Vous en avez marre de votre box voo et voulez contrôler de façon certaine ce qui sort de votre LAN ?

Il est temps de passer la voo en mode bridge !

Attention tout de même avant de vous lancer :

  • soyez certains de pouvoir et savoir configurer correctement le routeur que vous allez brancher derrière
  • les performances peuvent être revues à la baisse en fonction de votre équipement : c'est mon cas avec un CISCO 1841
  • il est facile de faire marche arrière si l'on sent une trop grosse galère arriver !



Pour ce faire rien de compliquer, le passage en mode bridge se fait via l'interface web.
Un petit redémarrage et voilà, votre box se transforme en bête modem.

Il est temps de brancher votre routeur (dans mon cas ce sera un cisco 1841)


Je passe rapidement sur la partie sécurité de la chose, voici un petit récapitulatif des choses obligatoires :


  • ZBF ou liste d'accès pour filtrer le traffic entrant dans votre LAN
  • des mots de passe d'administration super méga forts .... tellement puissant longs et chiants qu'on a pas envie de se connecter. Penser aussi à créer des comptes avec différents droits pour les tâches basiques. 
  • utiliser un serveur radius côté Lan pour vous authentifier (c'est mieux)
  • attention à la configuration de vos line vty .... ssh et absolument rien d'autre. On oublie pas les commandes login et password ....
  • utiliser mon petit script de fin qui désactivera les services qui tournent par défaut sur votre routeur 
  • configurer votre control plane pour résister aux attaques DOS

L'interface WAN


Ici par grand chose de compliqué : le but du jeux étant de récupérer une adresse IP via DHCP à travers le modem.

Exemple :

 interface FastEthernet0/1

 description WAN_Interface
 ip address dhcp
 no ip redirects
 no ip unreachables
 no ip proxy-arp
 ip nat outside
 ip virtual-reassembly in
 duplex auto
 speed auto

ce qui donne par exemple :

Home(config-line)#do sh ip int f0/1
FastEthernet0/1 is up, line protocol is up
  Internet address is 109.88.X.X/24
  Broadcast address is 255.255.255.255
  Address determined by DHCP
  MTU is 1500 bytes
  Helper address is not set

L'interface LAN


Ici ça dépend de vous ! En général votre routeur va remplacer votre BOX en tant que serveur DHCP.
Voici un exemple :

interface FastEthernet0/0
 ip address 192.168.0.15 255.255.255.0
 no ip redirects
 no ip unreachables
 no ip proxy-arp
 ip nat inside
 ip virtual-reassembly in
 duplex auto
 speed auto
end


DHCP


ip dhcp pool Lan
 network 192.168.0.0 255.255.255.0
 default-router 192.168.0.15
 dns-server 8.8.8.8

oui, ici j'utilise Google comme serveur DNS ...

avec suivant votre configuration des adresses à exclure du pool :

ip dhcp excluded-address 192.168.0.15

par exemple .....


NAT


Votre box partie, votre routeur va avoir la lourde charge d'exécuter les translations d'adresses vers l'extérieur :

ip nat inside source static list LAN interface FastEthernet0/1 overload

en utilisant une liste d'accès validant vos adresses IP côté LAN :

ip access-list standard LAN
permit 192.168.0.0 0.0.0.255


ip nat inside et ip nat outside sur vos interfaces  et le tour est joué , notre PAT est en place. 




Routage


ip route 0.0.0.0 0.0.0.0 FastEthernet0/1 suivant votre configuration.

Avec une config dans ce genre là ... ça surfe déjà !

NTP


Synchroniser votre routeur avec un serveur de temps c'est bien mieux pour la visualisation des logs. 

Tout simplement :

ntp logging
ntp update-calendar
ntp server fr.pool.ntp.org

Attention pour la résolution de noms, votre routeur doit être paramétré avec un DNS :

ip name-server 8.8.8.8

      encore et toujours ce google ! 


Sécurité avant tout


Exemple :

Oct  7 13:57:54.400 CEST: %SEC_LOGIN-4-LOGIN_FAILED: Login failed [user: webmaster] [Source: 74.208.97.147] [localport: 22] [Reason: Login Authentication Failed] at 13:57:54 CEST Wed Oct 7 2015
Oct  7 13:58:05.635 CEST: %SEC_LOGIN-4-LOGIN_FAILED: Login failed [user: mysql] [Source: 74.208.97.147] [localport: 22] [Reason: Login Authentication Failed] at 13:58:05 CEST Wed Oct 7 2015

et blablabla .... on est jamais en sécurité et y a toujours des gros cons plus malins que les autres qui voudront saboter votre travail !  


Appliquez donc ce petit script à votre bête :

no service tcp-small-servers
no service udp-small-servers
no ip http server (suivant les cas)
no ip http secure-server (suivant les cas)
no ip bootp server
no service dhcp (suivant les cas)
no ip finger
no service finger
no cdp run
no ip source-route
no boot network
no service config
no ip domain-lookup
no service pad
no ip identd
no ip gratuitous-arps
service tcp-keepalives-in
service tcp-keepalives-out
scheduler allocate 20000 1000
login block-for 100 attempts 5 within 100
login on-failure log
login on-success log
service timestamps log datetime msec localtime show-timezone
service sequence-numbers
logging console notification
logging trap informational
logging facility local6
logging rate-limit all 10
logging rate-limit all 10 except error
logging buffered 16000 information
logging monitor information
secure boot-image (!!!!!!!)
secure boot-config

!!!!!! : attention à cette commande qui empèche de supprimer l' IOS de votre routeur !!

On n'oublie pas les mots de passe et le service password encrytion si on aime faire profiter les voisins de sa config ....

Pour vos lines vty :
Si vous avez accès via câble console, fermez les avec une liste d'accès et utilisez la commande transport none 

Voici un exemple avec accès SSH :

line con 0
 login authentication BACKUP
line aux 0
line vty 0 4
access-class PERMIT in
 logging synchronous
 login authentication Distant
 transport preferred ssh
 transport input ssh
 transport output none
line vty 5 807
 access-class DENY in
 access-class DENY out
 transport preferred none
 transport input none
 transport output none

pour ceux qui auraient un doute, les lignes login authentication BACKUP et Distant sont liées à un aaa authentication en  début de config :

aaa authentication login BACKUP local
aaa authentication login Distant group radius local


ZBF


Beaucoup de tutos sur le net. Pour ma part, utilisant mon routeur pour un accès webvpn, je me suis inspiré de :

http://www.cisco.com/c/en/us/support/docs/security/anyconnect-vpn-client/111891-anyconnect-ios-zbpf-config.html

J'utilise en plus des ACL rejetant les paquets fragmentés, les pings provenant de l'extérieur et toutes ces joyeusetés de ce genre.


Pour le reste et si vous êtes motivés je vous conseille :

http://www.cisco.com/c/en/us/support/docs/ip/access-lists/13608-21.html#anc71

c'est long mais c'est bon ...

Après tout ça si vous êtes chauds foncez mais ne vous arrêtez pas en cours de chemin entre deux listes d'accès, les pas beaux qui sont dehors n'attendront pas que vous ayez terminé.
A ce jour je n'ai pas été la cible d'attaque particulière, en même temps je ne suis qu'un particulier. Par contre des tentatives d'intrusion sur le routeur via SSH, ça j'en ai à la pelle ! On oublie donc pas de vérifier ses logs de temps en temps .....


Bon clic à tous,


Aucun commentaire:

Enregistrer un commentaire