Difference between revisions of "Cisco Security"

From HackerNet
Jump to: navigation, search
 
(11 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[Cisco_IOS|Cisco IOS]] har stöd för många säkerhetsmekanismer och protokoll.  
+
[[Cisco_IOS|Cisco IOS]] har stöd för många säkerhetsmekanismer och protokoll. Se även [[Cisco_L2_Security|L2 Security]], [[Cisco_L3_Security|L3 Security]], [[Cisco_DMVPN|DMVPN]] och [[Cisco_IPsec|Cisco IPsec]].
  
 
=Device Security=
 
=Device Security=
 
Login enhancements
 
Login enhancements
 
  login block-for [seconds] attempts [attempts] within [seconds]
 
  login block-for [seconds] attempts [attempts] within [seconds]
 +
login on-failure log every 3
 +
 +
show login
 +
show login failures
  
login quiet-mode access-class TRUSTED_HOSTS
+
Lägg till undantag
 
  ip access-list standard TRUSTED_HOSTS
 
  ip access-list standard TRUSTED_HOSTS
 
   permit host 10.0.0.10
 
   permit host 10.0.0.10
 +
login quiet-mode access-class TRUSTED_HOSTS
 +
 +
Default genereras det ett syslog-meddelande om det görs 8 misslyckade inloggningsförsök inom en minut. Detta tröskelvärde går att konfigurera.
 +
security authentication failure rate 8 log
  
 
Password recovery är på default men går att stänga av.
 
Password recovery är på default men går att stänga av.
 
  no service password-recovery
 
  no service password-recovery
 
Management Plane Protection
 
control-plane host
 
  management-interface GigabitEthernet 0/1 allow ssh https
 
 
Control Plane Protection
 
show control-plane features
 
show control-plane counters
 
  
 
===SSH===
 
===SSH===
 
  ip ssh version 2
 
  ip ssh version 2
 
  crypto key generate rsa modulus 2048
 
  crypto key generate rsa modulus 2048
 +
 +
line vty 0 15
 +
  transport input ssh
  
 
Verify
 
Verify
 
  show ssh
 
  show ssh
 
  show ip ssh
 
  show ip ssh
  show control-plane host open-ports
+
  show users
 +
 
 +
'''Public key SSH authentication''' <br/>
 +
Ens SSH-nyckel får inte plats på en rad utan man får lägga in det på flera rader och avsluta med exit.
 +
ip ssh pubkey-chain
 +
  username cisco
 +
  key-string
 +
    AAAAB3NzaC1yc2EAAAADAQABAAABAQDLf...
 +
    VPrV/fn35p1xq5Pc7b2oTxhe2sPEssVM7...
 +
    exit
 +
 
 +
Enable key based authentication only. Ordning på authentication methods är default: publickey, keyboard-interactive, password.
 +
ip ssh server algorithm authentication publickey
 +
 
 +
===Control Plane===
 +
Det är viktigt att skydda CPU i sina enheter, man kan styra accessen (Control-Plane Policing) och man kan överbelastningsskydda (Control-Plane Protection). CoPP skyddar route processor genom att behandla det som en separat enhet med eget ingress interface. Man kan styra trafik till control plane med hjälp av ACL:er och [[Cisco_QoS|QoS]]-filter.
 +
 
 +
class-map match-all COPP-IN-IP
 +
  match protocol ip
 +
 +
policy-map COPP-INBOUND
 +
  class COPP-IN-IP
 +
  police rate 10 pps conform-action transmit  exceed-action drop
 +
 +
control-plane
 +
  service-policy input COPP-INBOUND
 +
 +
show policy-map control-plane
 +
 
 +
Default CoPP
 +
cpp system-default
 +
 
 +
Management Plane Protection
 +
control-plane host
 +
  management-interface GigabitEthernet 0/1 allow ssh https
 +
 +
show management-interface
 +
 
 +
'''AutoSecure''' <br/>
 +
AutoSecure finns i två modes, Interactive och Noninteractive där det senare "Automatically executes the recommended Cisco default settings" vilket bland annat stänger av ICMP redirects, unreachables och Proxy-ARP på alla interface.
 +
auto-secure no-interact
 +
show auto secure config
  
 
=AAA=
 
=AAA=
The aaa new-model command causes the local username and password on the router to be used in the absence of other AAA statements.
+
AAA authentication på IOS kan konfigureras att använda upp till fyra olika metoder för autentisering. Enheten kommer att använda metoderna i ordning och det är endast vid error som nästa metod används, detta gör att man kan ha fallbacks. ''aaa new-model'' gör att lokala usernames och passwords på enheten används vid avsaknad av andra AAA statements.  
 
  aaa new-model
 
  aaa new-model
  show aaa
+
  aaa authentication username-prompt "Enter Username:"
  show aaa local user lockout
+
  aaa authentication password-prompt "Enter Password:"
 +
 +
aaa authentication enable default group tacacs+ enable
 +
aaa authentication login default group tacacs+ local
 +
Debug
 +
debug aaa authentication
  
 
Fallback user account ifall AAA-server är unreachable
 
Fallback user account ifall AAA-server är unreachable
 
  username fallback privilege 15 secret SECRETS
 
  username fallback privilege 15 secret SECRETS
 +
 +
Max failed attempts to lock the user
 +
aaa local authentication attempts max-fail 10
 +
show aaa local user lockout
 +
clear aaa local user locked
  
 
===TACACS===
 
===TACACS===
Line 45: Line 99:
 
   ip vrf forwarding Mgmt
 
   ip vrf forwarding Mgmt
 
   ip tacacs source-interface gi0
 
   ip tacacs source-interface gi0
 +
 
  aaa authentication login default group tacacs+ local
 
  aaa authentication login default group tacacs+ local
  aaa authorization exec default group tacacs+ local
+
  aaa authorization exec default group tacacs+ if-authenticated
 +
 
 
Verify
 
Verify
 +
test aaa group tacacs+ USER SECRET123 new-code
 
  show tacacs
 
  show tacacs
  
 
===Radius===
 
===Radius===
Använder UDP 1645-1646 eller 1812-1813, accounting är separat från authentication och authorization. Endast lösenord är krypterat.  
+
Cisco IOS RADIUS använder AV pairs, UDP port 1645-1646 eller 1812-1813, accounting är separat från authentication och authorization. Endast lösenord är krypterat.  
radius-server host 10.0.0.10 auth-port 1812 acct-port 1813 key RadiusKey
 
aaa authentication login default group radius local
 
Verify
 
show radius
 
  
=L2 Security=
+
  radius server ISE1
Se även [[Cisco_VLAN#Private_VLAN|Private VLANs]] och [[Cisco_DHCP#Snooping|DHCP Snooping]].
+
   address ipv4 10.0.0.30 auth-port 1812 acct-port 1813
 
+
   key 7 01300F175804575D72
Ändra beteende på en switch. Fungerar som säkerhetsmekansim om CAM går fullt för då floodas inte alla frames.
+
switchport block unicast
+
  aaa group server radius ISE-GROUP
  switchport block multicast
+
   server name ISE1
 
+
   server name ISE2
===Port Security===
+
   ip vrf forwarding mgmt
interface [interface]
+
  ip radius source-interface Vlan100
  switchport mode access
+
  retransmit 2
  switchport port-security
+
   timeout 4
  switchport port-security maximum 1
+
   deadtime 1
   switchport port-security mac-address sticky
 
  switchport port-security violation shutdown
 
Verify
 
show port-security interface
 
Ska port security kombineras med [[Cisco_HSRP|HSRP]] bör BIA MAC användas.
 
 
 
===VACL===
 
VLAN ACL
 
access-list 100 permit ip any host 10.0.0.10
 
vlan access-map BLOCK-TO-SERVER 10
 
   match ip address 100
 
  action drop
 
  vlan access-map BLOCK-TO-SERVER 20
 
   action forward
 
Apply to vlan
 
vlan filter BLOCK-TO-SERVER vlan-list 10
 
 
 
VACL funkar också med non-IP traffic.
 
 
 
===Storm Control===
 
Storm control är teknik för att låta administratörer dämpa unicast-, multicast- eller broadcast-trafik på L2-interface. Det kan användas för att reducera skadan vid broadcast-stormar. Man måste ange gränsvärde (rising) men falling är optional.
 
interface gi0/7
 
   storm-control broadcast level bps 1m 500k
 
Ange vad som ska hända när tröskelvärde överskrids, t.ex. droppa frames eller skicka syslog-trap.
 
   storm-control action trap
 
Verify
 
show storm-control
 
 
 
===802.1x===
 
802.1x är ett säkerhetsprotokoll som låter klienter autentisera sig för att få tillgång till tråd/trådlösa nätverk.
 
show dot1x
 
 
 
===DAI===
 
För att skydda sitt L2-nätverk mot MITM med hjälp av G-ARP kan man använda Dynamic ARP inspection. DAI kräver DHCP Snooping eftersom ARP valideras mot snooping-databasen. Om inte ARPen stämmer överens mot det som står i databasen kommer frames att droppas, SW_DAI-4-DHCP_SNOOPING_DENY. Man slår på DAI per VLAN man vill skydda.
 
ip arp inspection vlan 10
 
show ip arp inspection
 
 
 
ip arp inspection trust
 
ip arp inspection validate ip
 
 
 
Static entries behövs för hostar som inte använder DHCP.
 
ip arp inspection filter ARP_ACL vlan 10
 
Logging
 
ip arp inspection vlan 10 logging acl-match
 
 
 
=L3 Security=
 
Tillåt ej IP options och source routing är bra praktik!
 
ip options drop
 
no ip source-route
 
 
 
===ACL===
 
Accesslistor finns i flera olika varianter.
 
 
 
'''Reflexive ACL''' <br/>
 
För att använda reflexive ACL behövs det en ACL för inbound traffic, en för outbound och en reflexive för att hålla koll på dynamic entries. Några begränsningar är att trafik endast kan initieras från ena sidan och det går inte ge olika trafikklasser olika access. Det funkar inte heller med applikationer som jobbar med olika portnummer, t.ex. FTP.
 
ip access-list extended Egress
 
   permit ip any any reflect Mirror
 
ip access-list extended Ingress
 
   evaluate Mirror
 
 
   
 
   
  interface gi0/1
+
  aaa authentication login VTY-LINES group ISE-GROUP local
  description Outside
+
  aaa authorization exec default group radius local
  ip access-group out Egress
 
  ip access-group in Ingress
 
Verify
 
show ip access-lists Mirror
 
show ip access-lists
 
 
 
'''Lock and Key''' (Dynamic ACLs) <br/>
 
Lock and key configuration starts with the application of an extended ACL to block traffic through the router. Users that want to traverse the router are blocked by the extended ACL until they Telnet to the router and are authenticated. The Telnet connection then drops and a single-entry dynamic ACL is added to the extended ACL that exists. This permits traffic for a particular time period; idle and absolute timeouts are possible.
 
 
 
'''Turbo ACL''' <br/>
 
The turbo ACL feature is designed in order to process ACLs more efficiently in order to improve router performance. Found only on high-end platforms.
 
  show access-list compiled
 
 
 
===CBAC===
 
Context-Based Access Control tillhandahåller stateful packet inspection på IOS-enheter.
 
ip access-list extended DENY_ALL
 
  deny ip any any
 
ip inspect name Web http
 
ip inspect name Web https
 
interface gi0/0
 
  description Outside
 
  ip access-group DENY_ALL in
 
  ip inspect Web out
 
  
 
Verify
 
Verify
  show ip inspect all
+
  test aaa group radius USER SECRET123 new-code
show ip inspect sessions
+
  show radius
 
 
===uRPF===
 
Unicast Reverse Path Forwarding är en mekanism som förhindrar spoofing attacks. Source-adressen på paket som kommer in kollas och jämförs mot den egna FIB:en för att säkerställa att paketen kommer in på det interface som routern själv hade använt för att nå den adressen. [[Cisco_CEF|CEF]] är därför ett prereq för uRPF. uRPF finns i två modes och tar hänsyn till equal och unequal cost load sharing. Om default-routen också ska användas vid kontrollen måste ''allow-default'' sättas efter interface-kommandot.
 
 
 
Strict mode, fungerar såklart inte med asymmetric routing.
 
ip verify unicast source reachable-via rx
 
 
 
Loose mode <br/>
 
Med Loose mode räcker det att sourcen är reachable via något interface.
 
ip verify unicast source reachable-via any
 
 
 
Vill man inte kontrollera all trafik kan man matcha RPF-checken mot en ACL.
 
ip verify unicast source reachable-via rx <ACL>
 
Verify
 
Show ip traffic
 
show ip verify source
 
 
 
=IPv6=
 
===RA guard===
 
interface GigabitEthernet0/1
 
  ipv6 nd raguard
 
Verify
 
  show ipv6 snooping features
 
show ipv6 nd raguard
 
 
 
DHCP guard, Binding table, Device tracking, ND inspection/snooping, Source guard, PACL
 
  
 
=IPS=
 
=IPS=
Line 190: Line 135:
 
  ip ips config location flash:/ips
 
  ip ips config location flash:/ips
 
  ip ips name IPS
 
  ip ips name IPS
 +
 
  show ip ips config
 
  show ip ips config
  
 
[[Category:Cisco]]
 
[[Category:Cisco]]

Latest revision as of 08:55, 25 June 2019

Cisco IOS har stöd för många säkerhetsmekanismer och protokoll. Se även L2 Security, L3 Security, DMVPN och Cisco IPsec.

Device Security

Login enhancements

login block-for [seconds] attempts [attempts] within [seconds]
login on-failure log every 3

show login
show login failures

Lägg till undantag

ip access-list standard TRUSTED_HOSTS
 permit host 10.0.0.10
login quiet-mode access-class TRUSTED_HOSTS

Default genereras det ett syslog-meddelande om det görs 8 misslyckade inloggningsförsök inom en minut. Detta tröskelvärde går att konfigurera.

security authentication failure rate 8 log 

Password recovery är på default men går att stänga av.

no service password-recovery

SSH

ip ssh version 2
crypto key generate rsa modulus 2048

line vty 0 15
 transport input ssh

Verify

show ssh
show ip ssh
show users

Public key SSH authentication
Ens SSH-nyckel får inte plats på en rad utan man får lägga in det på flera rader och avsluta med exit.

ip ssh pubkey-chain
 username cisco
  key-string
   AAAAB3NzaC1yc2EAAAADAQABAAABAQDLf...
   VPrV/fn35p1xq5Pc7b2oTxhe2sPEssVM7...
   exit

Enable key based authentication only. Ordning på authentication methods är default: publickey, keyboard-interactive, password.

ip ssh server algorithm authentication publickey

Control Plane

Det är viktigt att skydda CPU i sina enheter, man kan styra accessen (Control-Plane Policing) och man kan överbelastningsskydda (Control-Plane Protection). CoPP skyddar route processor genom att behandla det som en separat enhet med eget ingress interface. Man kan styra trafik till control plane med hjälp av ACL:er och QoS-filter.

class-map match-all COPP-IN-IP
 match protocol ip

policy-map COPP-INBOUND
 class COPP-IN-IP
  police rate 10 pps conform-action transmit  exceed-action drop 

control-plane
 service-policy input COPP-INBOUND

show policy-map control-plane

Default CoPP

cpp system-default 

Management Plane Protection

control-plane host
 management-interface GigabitEthernet 0/1 allow ssh https

show management-interface

AutoSecure
AutoSecure finns i två modes, Interactive och Noninteractive där det senare "Automatically executes the recommended Cisco default settings" vilket bland annat stänger av ICMP redirects, unreachables och Proxy-ARP på alla interface.

auto-secure no-interact
show auto secure config

AAA

AAA authentication på IOS kan konfigureras att använda upp till fyra olika metoder för autentisering. Enheten kommer att använda metoderna i ordning och det är endast vid error som nästa metod används, detta gör att man kan ha fallbacks. aaa new-model gör att lokala usernames och passwords på enheten används vid avsaknad av andra AAA statements.

aaa new-model
aaa authentication username-prompt "Enter Username:"
aaa authentication password-prompt "Enter Password:"

aaa authentication enable default group tacacs+ enable
aaa authentication login default group tacacs+ local

Debug

debug aaa authentication

Fallback user account ifall AAA-server är unreachable

username fallback privilege 15 secret SECRETS

Max failed attempts to lock the user

aaa local authentication attempts max-fail 10
show aaa local user lockout
clear aaa local user locked

TACACS

TACACS+ är Ciscoproperitärt och all trafik är krypterad. Tacacs kommunicerar på TCP port 49.

aaa group server tacacs+ 
 server-private 10.0.0.20 key 7 078905478...
 server-private 10.0.0.21 key 7 134272319...
 ip vrf forwarding Mgmt
 ip tacacs source-interface gi0

aaa authentication login default group tacacs+ local
aaa authorization exec default group tacacs+ if-authenticated

Verify

test aaa group tacacs+ USER SECRET123 new-code
show tacacs

Radius

Cisco IOS RADIUS använder AV pairs, UDP port 1645-1646 eller 1812-1813, accounting är separat från authentication och authorization. Endast lösenord är krypterat.

radius server ISE1
 address ipv4 10.0.0.30 auth-port 1812 acct-port 1813
 key 7 01300F175804575D72

aaa group server radius ISE-GROUP
 server name ISE1
 server name ISE2
 ip vrf forwarding mgmt
 ip radius source-interface Vlan100
 retransmit 2
 timeout 4
 deadtime 1

aaa authentication login VTY-LINES group ISE-GROUP local
aaa authorization exec default group radius local

Verify

test aaa group radius USER SECRET123 new-code
show radius

IPS

IOS kan sättas upp som ett Intrusion Prevention System.

mkdir ips
ip ips config location flash:/ips
ip ips name IPS

show ip ips config