Translate

sábado, 3 de agosto de 2013

Proxy ARP

A opção de Proxy arp está activa por defeito nos routers Cisco. Para desactivar esta opção basta fazer no contexto do interface do gateway: "no ip proxy-arp".

Isto permite que um PC de origem, sem "default-gateway" configurado, possa chegar a um PC de destino noutra rede.

Assim, tendo com base o laboratório abaixo, que consiste em 2 routers que se comportam como PCs (ie, têm desactivada a opção de routing (no ip routing) e um router que faz de gateway, pretende-se pingar o PC_LAN2 a partir do PC_LAN1:




Cenário 1:

- PC_LAN1 configurado com "default-gateway" (172.16.1.254);
- Router configurado sem proxy arp no interface fa0/0 ("no ip proxy-arp");
- Fazer "clear arp-cache" para apagar a cache ARP no PC de origem (172.16.1.1);
- Pingar o PC de destino (192.168.1.1);
- Ver a tabela ARP, com "show arp":

PC_LAN1#show  arp
Protocol  Address          Age (min)  Hardware Addr   Type   Interface
Internet  172.16.1.254            0   c806.08b4.0000  ARPA   FastEthernet0/0
Internet  172.16.1.1              -   c803.08b4.0000  ARPA   FastEthernet0/0

Resultado: O mapeamento que o PC_LAN1 irá registar na sua ARP table, é o mac-address do Fa0/0 do Router associado ao respectivo IP.

Cenário 2:

- PC_LAN1 configurado sem "default-gateway";
- Router configurado com proxy arp no interface fa0/0 ("ip proxy-arp");
- Fazer "clear arp-cache" para apagar a cache ARP no PC de origem (172.16.1.1);
- Pingar o PC de destino (192.168.1.1);
- Ver a tabela ARP, com "show arp":

PC_LAN1#sh arp
Protocol  Address          Age (min)  Hardware Addr   Type   Interface
Internet  192.168.1.1             0   c806.08b4.0000  ARPA   FastEthernet0/0
Internet  172.16.1.1              -   c803.08b4.0000  ARPA   FastEthernet0/0

Resultado: O O mapeamento que o PC_LAN1 irá registar na sua ARP table, é o mac-address do Fa0/0 do Router associado ao IP de destino !!!


Conclusão:

Quando o PC_LAN1 faz um "arp-request" (ie, pede o MAC associado ao IP de destino), envia um broadcast para toda a rede LAN1. Como o Router "conhece" o PC_LAN2 (porque está ligado a ele), responde ao "arp-request" do PC_LAN1, com o Mac address dele próprio (Router).

Assim, para o PC_LAN1, o mac-address do PC_LAN2 é o mac-address do fa0/0 do Router quando a opção "proxy arp" está configurada.

Vantagens de Proxy-ARP:

- Permitir aos PCs clientes "descobrir" os PCs de destino sem estarem configurados correctamente a nível de máscara e gateway;

Desvantagens de Proxy-ARP:

- Aumento de tráfego ARP na rede local;
- Aumento da tabela ARP nas máquinas cliente;
- Aumento de risco de "spoofing";





domingo, 12 de maio de 2013

Configuração EIGRP - Anunciar "Default Route"

Existem 4 possibilidades de anunciar a "default-route" no EIGRP. Assim, no router da periferia entre a LAN e a WAN pode recorrer-se a um de quatro métodos:

1) Redistribuição de Rota;
2) Rede 0.0.0.0;
3) Comando "ip default-network";
4) Sumarização de Rota;

Assim, considerando o seguinte cenário, depois da configuração EIGRP para o AS 100, em todos os routers da LAN (R1, R2 e R3) e da criação de uma "default route" no router ISP, dirigida para o router da periferia:


1) "Route Redistribution":

No R1:

a) Criar rota estática:

R1(config): ip route 0.0.0.0 0.0.0.0 FastEthernet1/0

b) Redistribuir no processo do EIGRP a rota estática criada antes:

R1(config): router eigrp 100
R1(config-router): redistribute static metric 1 1 1 1 1

2) "Network 0.0.0.0":

No R1:

a) Criar rota estática:

R1(config): ip route 0.0.0.0 0.0.0.0 Null0

Nota: O comando "Null0" evita que ocorram "routing loops"

b) Anunciar a rota 0.0.0.0 (que significa tudo) no processo do EIGRP:

R1(config): router eigrp 100
R1(config-router): network 0.0.0.0

3) "IP Default-Network":

No R1:

a) Criar "default network" para a rede que liga à WAN:

R1(config): ip default-network 192.168.100.0

Nota: Este comando é no EIGRP o equivalente ao "default-information originate" no OSPF, com a desvantagem neste caso que anuncia uma rede "classful". Assim, a rede 192.168.100.0/30 é anunciada como 192.168.100.0/24

b) Verificar que no "show run" a rede acima aparece como "classfull" (ie, a rede é considerada neste caso de classe C de acordo com o RFC 1918), tal como foi referido acima.

c) Acrescentar no processo de EIGRP:

R1(config): router eigrp 100
R1(config-router): network 0.0.0.0

4) "Route Summarization":

No R1:

R1(config): interface fastethernet 1/0
R1(config-if): ip summary-address eigrp 100 0.0.0.0 0.0.0.0

R1(config): router eigrp 100
R1(config-router): network 0.0.0.0

Nota: Neste caso procede-se à sumarização da rede, ie., reduzir a uma só rede todas as redes num só "anúncio".

No final, verificar com "ping" e/ou "show ip route" que por exemplo em R3, tal como com os restantes routers,  consegue-se chegar ao ISP.



domingo, 5 de maio de 2013

Configuração SSH

Configuração de SSH (cliente e servidor) em Routers Cisco (série 3600):


Como funciona o SSH ?

a) Negociação entre o cliente e servidor quanto à versão de SSH e o tipo de encriptação comum a utilizar;
b) O servidor envia a sua chave pública para o cliente;
c) O cliente recebe a chave pública do servidor e gera um par de chaves de sessão (pública/privada);
d) O cliente envia o par de chaves de sessão encriptado com a chave pública do servidor;
e) O servidor decripta o par de chaves de sessão recorrendo à chave privada que já possui e envia mensagem de confirmação encriptada com a chave de sessão;
f) A partir daqui a comunicação é encriptada com o par de chaves de sessão que é partilhado por ambos;

Configurações do Laboratório:

1) Atribuir/alterar nome do SSH_Server:

Router(config): hostname SSH_Server

2) Configurações de rede:

SSH_Server(config): interface ethernet0/0
SSH_Server(config-if): no shutdown
SSH_Server(config-if): ip address 192.168.10.2 255.255.255.0

SSH_Server(config): interface ethernet1/0
SSH_Server(config-if): no shutdown
SSH_Server(config-if): ip address 192.168.100.2 255.255.255.0

SSH_Client2(config): interface ethernet0/0
SSH_Client2(config-if): no shutdown
SSH_Client2(config-if): ip address 192.168.100.1 255.255.255.0

Nota: O "SSH_Client1" é o interface de loopback do computador físico onde está instalado o GNS3 e tem o IP 192.168.10.1/24

3) Atribuir/alterar nome do SSH_Server:

Router(config): hostname SSH_Server

4) Apagar par de chaves que eventualmente existam no servidor (opcional):

SSH_Server(config): crypto key zeroize rsa

5) Criar sufixo (domínio) por forma a ter um FQDN ("Fully Qualified Domain Name"):

SSH_Server(config): ip domain-name cisco.lan

6) Gerar par de chaves pública/privada no servidor:

SSH_Server(config): crypto key generate rsa general-keys modulus 1024

Nota: "1024" refere-se ao tamanho da chave em bits

7) Criar utilizador local e respectiva senha:

SSH_Server(config): username cisco privilege 15 secret cisco

Nota: Pretende-se criar um usuário com privilégios totais de acesso, daí o "privilege 15", sendo que a senha fica armazenada no próprio router mas encriptada por forma a não ser possível vê-la no ficheiro de configuração, daí o comando "secret", seguido da senha.

8) Configurar o acesso ao "SSH_Server":

SSH_Server(config): line vty 0 4
SSH_Server(config-line): login local
SSH_Server(config-line): transport input ssh
SSH_Server(config-line): exit

Nota: O comando "login" significa que o acesso às linhas VTY exige sempre senha e o "local", que esta está armazenada no próprio Router. O comando "transport input ssh", significa que a única forma de acesso autorizada é por ssh, não sendo por exemplo possível entrar por telnet.

9) Garantir que a versão de SSH é a "2", reduzir o número de tentativas para 3 e o time-out para 5 segundos, antes de fechar a sessão:

SSH_Server(config): ip ssh version 2
SSH_Server(config): ip ssh authentication-retries 3
SSH_Server(config): ip ssh time-out 5

10) Testar  o acesso a partir do "SSH_Client1", recorrendo ao aplicativo "Putty":

a) Inserir o IP do servidor de SSH (192.168.10.2) e a porta (22):

b) O Servidor responde com o envio da chave pública - escolher a opção "Sim":


c) O Servidor pede as credenciais de acesso que são o "username" e "password" definidas no passo 7:


d) Verificar quem está logado, recorrendo ao comando "who", depois de se ter estabelecido uma sessão:


e) Verificar aspectos relacionados com o protocolo SSH, recorrendo aos comandos "show ip ssh" e "show ssh":


11) Testar  o acesso a partir do "SSH_Client2", pelo CLI:



Nota: Os comandos utilizados foram:

SSH_Server ssh -l cisco 192.168.100.2

em que: "cisco" é o username e "192.168.100.2" é o IP do servidor

12) Verificar quais as portas abertas no "SSH_Server":

SSH_Server# show control-plane host open-ports

(Dependendo do modelo do Router e versão do IOS, este comando poderá não existir)

quarta-feira, 1 de maio de 2013

Spanning-Tree e Port Mirroring

Configuração de STP e SPAN em GNS3:


Nota: Todos os objectos da topologia acima são Routers da série 3600, em que mudei a "skin" para se parecerem fisicamente com Switches ou PCs/Servers consoante o caso. Para além disso, para que os routers se "comportem" como switches, está configurado na "slot0" do GNS3 o módulo "NM-16ESW".

1) Configurações de rede:

PC(config): interface ethernet0/0
PC(config-if): no shutdown
PC(config-if): ip address 192.168.10.100 255.255.255.0

WEBSERVER(config): interface ethernet0/0
WEBSERVER(config-if): no shutdown
WEBSERVER(config-if): ip address 192.168.10.101 255.255.255.0

O PC "Wireshark" é uma ligação do tipo "Host" onde se configura a ligação ao "Microsoft Loopback". No PC físico, está instalado o Wireshark e o IP do Loopback está configurado tal como na figura abaixo:


2) Criação de VLAN 10, em todos os Switches:

Switch1# vlan database
Switch1(vlan)# vlan 10
Switch1(vlan)# apply
Switch1(vlan)# exit

Switch2# vlan database
Switch2(vlan)# vlan 10
Switch2(vlan)# apply
Switch2(vlan)# exit

Switch3# vlan database
Switch3(vlan)# vlan 10
Switch3(vlan)# apply
Switch3(vlan)# exit

3) Configuração de VTP em todos os switches:

Switch1# vlan database
Switch1(vlan)# vtp domain JOAO
Switch1(vlan)# vtp password cisco
Switch1(vlan)# vtp server
Switch1(vlan)# apply
Switch1(vlan)# exit

Switch2# vlan database
Switch2(vlan)# vtp domain JOAO
Switch2(vlan)# vtp password cisco
Switch2(vlan)# vtp server
Switch2(vlan)# apply
Switch2(vlan)# exit

Switch3# vlan database
Switch3(vlan)# vtp domain JOAO
Switch3(vlan)# vtp password cisco
Switch3(vlan)# vtp server
Switch3(vlan)# apply
Switch3(vlan)# exit

4) Configuração de speed/duplex em todos os interfaces dos switches:

Switch1(config): interface range fastethernet 0/0 - 15
Switch1(config-if): duplex half
Switch1(config-if): speed 10

Switch2(config): interface range fastethernet 0/0 - 15
Switch2(config-if): duplex half
Switch2(config-if): speed 10

Switch3(config): interface range fastethernet 0/0 - 15
Switch3(config-if): duplex half
Switch3(config-if): speed 10

Nota: Esta configuração permite que o GNS3 comunique correctamente com o "Loopback". Note-se que este interface lógico comunica a 10Mbps, tal como se pode confirmar na figura abaixo:


5) Associar o interface de "loopback" (fa0/0) e o interface que liga ao PC (fa0/1), à vlan 10:

Switch1(config): interface fastethernet 0/0
Switch1(config-if): no shutdown
Switch1(config-if): switchport mode access
Switch1(config-if): switchport access vlan 10
Switch1(config-if): exit

Switch1(config): interface fastethernet 0/1
Switch1(config-if): no shutdown
Switch1(config-if): switchport mode access
Switch1(config-if): switchport access vlan 10
Switch1(config-if): exit

6) Em todos os switches, criar interfaces lógicos de gestão:

Switch1(config): interface vlan 10
Switch1(config-if): no shutdown
Switch1(config-if): ip address 192.168.10.201 255.255.255.0

Switch2(config): interface vlan 10
Switch2(config-if): no shutdown
Switch2(config-if): ip address 192.168.10.202 255.255.255.0

Switch3(config): interface vlan 10
Switch3(config-if): no shutdown
Switch3(config-if): ip address 192.168.10.203 255.255.255.0

7) Criar "trunks" entre os diversos switches:

Switch1(config): interface range fastethernet 0/2 - 3
Switch1(config-if): no shutdown
Switch1(config-if): switchport mode trunk
Switch1(config-if): switchport trunk encapsulation dot1q
Switch1(config-if): switchport trunk allowed vlan all
Switch1(config-if): switchport trunk native vlan 1

Switch2(config): interface fastethernet 0/0
Switch2(config-if): no shutdown
Switch2(config-if): switchport mode trunk
Switch2(config-if): switchport trunk encapsulation dot1q
Switch2(config-if): switchport trunk allowed vlan all
Switch2(config-if): switchport trunk native vlan 1

Switch3(config): interface fastethernet 0/0
Switch3(config-if): no shutdown
Switch3(config-if): switchport mode trunk
Switch3(config-if): switchport trunk encapsulation dot1q
Switch3(config-if): switchport trunk allowed vlan all
Switch3(config-if): switchport trunk native vlan 1

8) configurar o "Switch1" como "root bridge", para a vlan 10:

Switch1(config): spanning-tree vlan 10 priority 4096

9) Verificar o cenário, com os seguintes comandos:

Em todos os switches verificar o status referente ao "spanning-tree". Neste caso, a imagem é retirada do "Switch1", após ter executado o comando "show spanning-tree brief". Verifica-se que este é o "root bridge" para a vlan 10:

Em todos os switches verificar os "trunks". Neste caso, a imagem é retirada do "Switch2", após ter executado o comando "show interfaces trunk":

Em todos os switches verificar o mapeamento de interfaces a vlans. Neste caso, a imagem é retirada do "Switch3", após ter executado o comando "show vlan-switch"

10) Configurar "SPAN" (ie., Port Mirroring na linguagem Cisco), por forma a poder analisar o tráfego que "corre" entre o PC e o Webserver, no Wireshark que está instalado no PC físico:

Switch1(config): monitor session 1 source interface fastethernet 0/1 both
Switch1(config): monitor session 1 destination interface fastethernet 0/0

11) Verificar no Wireshark, o tráfego entre o "PC" e o "WebServer" quando a partir do "PC" se faz um ping:



Como se pode verificar na imagem acima, o interface "loopback" está a capturar tráfego que não é recebido nem transmitido pela sua própria porta. Esta é a vantagem do "Port Mirroring", que consiste em poder analisar tráfego que circula em todo o switch ou switches (neste caso poder-se-ia utilizar o RSPAN, mas o GNS3 não permite) e não apenas o que corre no PC onde está o Wiereshark.

quinta-feira, 25 de abril de 2013

Configuração simples de QoS

Neste cenário pretende-se mostrar que após a aplicação de uma política de QoS no Router, deixa de ser possível aceder ao Server por telnet a partir do PC:


1) Configuração básica de rede em todos os activos:

PC(config): interface fastethernet 0/0
PC(config-if): no shutdown
PC(config-if): ip address 10.10.10.1 255.0.0.0
PC(config-if): exit

ROUTER(config): interface fastethernet 1/0
ROUTER(config-if): no shutdown
ROUTER(config-if): ip address 10.10.10.254 255.0.0.0
ROUTER(config-if): exit
ROUTER(config): interface fastethernet 0/0
ROUTER(config-if): no shutdown
ROUTER(config-if): ip address 192.168.1.254 255.255.255.0
ROUTER(config-if): exit

SERVER(config): interface fastethernet 0/0
SERVER(config-if): no shutdown
SERVER(config-if): ip address 192.168.1.1 255.255.255.0
SERVER(config-if): exit

2) Configuração de roteamento:

PC(config): no ip routing
PC(config): ip default-gateway 10.10.10.254

SERVER(config): no ip routing
SERVER(config): ip default-gateway 192.168.1.254

3) Criação de access-list no Router:

ROUTER(config): ip access-list extended OUTBOUND
ROUTER(config-ext-nacl): permit tcp host 10.10.10.1 host 192.168.1.1

Nota: Pretende-se incluir apenas o PC e o SERVER para simplificar

4) Definição de política de QoS (MQC) no Router:

a) Criação de "Class-map" para escolher o que controlar, neste caso pretende-se controlar ambas as condições ao mesmo tempo: o acesso por telnet e a access-list "OUTBOUND", daí o comando "match-all":

ROUTER(config): class-map match-all CONTROLE
ROUTER(config-cmap): match access-group name OUTBOUND
ROUTER(config-cmap): match protocol telnet
ROUTER(config-cmap): exit

b) Criação de "Policy-map" para escolher o que fazer com o que se escolheu antes. Neste caso, pretende-se impedir o acesso ao server na porta 23, daí o comando "drop":

ROUTER(config): policy-map NO_TELNET
ROUTER(config-pmap): class CONTROLE
ROUTER(config-pmap-c): drop

c) Aplicação da regra anterior ao interface no sentido "outbound":

ROUTER(config): interface fastethernet 0/0
ROUTER(config-if): service-policy output NO_TELNET

5) Testar no PC:

No PC fazer um telnet ao SERVER e verificar que não é possível entrar na porta 23:


6) Testar no Router:

ROUTER: show policy-map interface fastethernet 0/0

Nota: Verificar o incremento de pacotes à medida que se testam sucessivamente




domingo, 31 de março de 2013

Port Forwarding em Router Cisco

Redirecionamento de portas em Router Cisco:


1) Configuração inicial de rede em todos os routers do lab:

SSH(config): interface fastethernet 0/0
SSH(config-if): no shutdown
SSH(config-if): ip address 192.168.123.1 255.255.255.0

WEB(config): interface fastethernet 0/0
WEB(config-if): no shutdown
WEB(config-if): ip address 192.168.123.2 255.255.255.0

R3(config): interface fastethernet 0/0
R3(config-if): no shutdown
R3(config-if): ip address 192.168.123.3 255.255.255.0
R3(config): interface fastethernet 1/0
R3(config-if): no shutdown
R3(config-if): ip address 192.168.34.3 255.255.255.0

R4(config): interface fastethernet 0/0
R4(config-if): no shutdown
R4(config-if): ip address 192.168.34.4 255.255.255.0

2) Desactivação de funcionalidades de Router em WEB e SSH, para simular servidores:

WEB(config): no ip routing
WEB(config): ip default-gateway 192.168.123.3

SSH(config): no ip routing
SSH(config): ip default-gateway 192.168.123.3

3) Configuração de roteamento no R3 e R4:

R3(config): ip route 0.0.0.0 0.0.0.0 192.168.34.4

R4(config): ip route 192.168.123.0 255.255.255.0 192.168.34.3

4) Configuração de acesso total por telnet em WEB e SSH (não recomendado em ambientes de produção):

WEB(config): line vty 0 4
WEB(config-line): privilege level 15

SSH(config): line vty 0 4
SSH(config-line): privilege level 15

5) Configuração de NAT no R3:

R3(config): interface fastethernet 0/0
R3(config-if): ip nat inside
R3(config-if): exit

R3(config): interface fastethernet 1/0
R3(config-if): ip nat outside
R3(config-if): exit

6) Abertura das porta 80 no WEB e 22 no SSH:

WEB(config): ip http server

SSH(config): ip domain-name LAB.LOCAL
SSH(config): crypto key generate rsa
SSH(config): line vty 0 4
SSH(config-line): transport input ssh

7) Configuração de "Port Forwarding"  nas portas 80 e 22 para o WEB e SSH respectivamente:

R3(config): ip nat inside source static tcp 192.168.123.2 80 192.168.34.3 80
R3(config): ip nat inside source static tcp 192.168.123.1 22 192.168.34.3 22

8) Testar o acesso por telnet no R4:

telnet 192.168.34.3 80
telnet 192.168.34.3 22

O resultado será o seguinte:

9) Enquanto a ligação telnet está aberta testar no WEB:

WEB# show ip http server connection














sábado, 30 de março de 2013

Configuração ADSL em Router Cisco

CONFIGURAÇÃO DE ROUTER CISCO 877 ADSL (APENAS INTERNET):



1) Excluir o IP do Gateway (192.168.1.254) da atribuição DHCP :

Router(config): ip dhcp excluded-address 192.168.1.254

2) Configuração de Scope de DHCP chamada de "LAN":

Router(config): ip dhcp pool LAN
Router(dhcp-config): network 192.168.1.0 255.255.255.0
Router(dhcp-config): default-router 192.168.1.254
Router(dhcp-config): dns-server 192.168.1.254
Router(dhcp-config): lease infinite

3) Configuração de DNS:

Router(config): ip dns server
Router(config): ip name-server 194.65.47.43
Router(config): ip name-server 194.65.47.44

Nota: Estes IPs podem ser outros em função da operadora. Inclusivamente podem colocar-se os "famosos" servidores de DNS: 4.2.2.2, 8.8.8.8, etc...

4) Configuração da placa física ADSL:

Router(config): interface ATM0
Router(config-if): no ip address
Router(config-if): no atm ilmi-keepalive
Router(config-if): dsl operating-mode auto
Router(config-if): pvc 0/35
Router(config-if-atm-vc): encapsulation aal5snap
Router(config-if-atm-vc): pppoe-client dial-pool-number 1

Nota: Na MEO (PT), as definições de PVC (VPI/VCI) são 0/35 e encapsulamento é "aal5snap". Estas podem variar consoante as operadoras.

5) Configuração simples para as 4 placas de rede do Switch:

Router(config): interface range FastEthernet 0 - 3
Router(config-range-if): switchport mode access
Router(config-range-if): switchport access vlan 1

6) Configuração do Default-Gateway:

Router(config): interface Vlan1
Router(config-if): description GATEWAY LAN
Router(config-if): ip address 192.168.1.254 255.255.255.0
Router(config-if): ip nat inside

7) Configuração do interface Dialer 1 (Interface lógico de ATM0):

Router(config): interface Dialer1
Router(config-if): ip address negotiated
Router(config-if): ip mtu 1492
Router(config-if): ip nat outside
Router(config-if): encapsulation ppp
Router(config-if): dialer pool 1
Router(config-if): dialer-group 1
Router(config-if): no cdp enable
Router(config-if): ppp authentication pap callin
Router(config-if): ppp pap sent-username asxxxxxxxx@3p.sapo.pt password 0 xxxxxxxx
Router(config-if): ppp ipcp dns request

Nota:

- O IP de Dialer 1 é recebido dinamicamente  por IPCP, daí o comando "ip address negotiated";
- O MTU é 1492 pois trata-se de uma ligação PPPoE, daí o comando "ip mtu 1492";
- É este interface que faz o NAT para fora, daí o comando "ip nat outside";
- O encapsulamento é "PPP", daí o comando "encapsulation ppp";
- A autenticação na operadora é neste caso "PAP", daí os comandos "ppp pap"
- O "username" e "password" são facultados pela operadora.

8) Configuração de rota estática:

Router(config): ip route 0.0.0.0 0.0.0.0 Dialer1

9) Configuração de NAT (tipo PAT):

Router(config): access-list 1 permit 192.168.1.0 0.0.0.255

Router(config): route-map internet-nat permit 10
Router(config-route-map): match ip address 1
Router(config-route-map): match interface Dialer1

Router(config): ip nat inside source route-map internet-nat interface Dialer1 overload

10) Configuração de NTP:

Router(config): ntp master
Router(config): ntp server 195.220.94.163

Nota: O servidor de NTP pode ser outro como por exemplo o "pool.ntp.org" (195.22.17.7)