Skip to content

Cisco IOS

Cisco IOS

Initial Checklist:
1. Reconfigure Passwords
2. Encrypt Passwords
3. Change Banner/motd
4. Backup Config
5. Turn off HTTP/HTTPS/SNMP
6. Turn off default usernames
7. Turn off finger
8. Turn off DNS Lookup
9. Turn off CDP
10. Turn off Bootp
11. Create ACL
12. Backup Config

Defaults to Change

Encrypt the Password on Config:

service password-encryption

Change Default username:

router# conf t
router(conf)# username YOUR_NEW_USER password YOUR_NEW_PASSWORD
router(conf)# enable secret YOUR_NEW_SERET_PASSWORD
router(conf)# no username OLD_USER

Disable telnet:

CiscoDevice(config)# line vty 0 15 
CiscoDevice(config-line)# transport input none 

Disable DNS Lookup:

no ip domain-lookup

Disable CDP:

no cdp run

Have Linenumber on configs:

service linenumber

Turn off default servers:

no snmp-server
no ip http server
no ip http secure-server
no ip bootp server

Logging Changes

Default Logging Changes:

no logging console
no logging monitor
logging trap 6
logging buffered 4096 6
clock timezone EST -5
service timestamps log datetime msec localtime show-timezone

Transfer to Syslog:

logging <IP>
logging source-interface <INTERFACE>

Monitoring SPAN Port

Setting up an Monitoring Port:

#Set the source
monitor sesssion 1 source int <INTERFACE> both
monitor sesssion 2 source int <INTERFACE> tx
monitor sesssion 3 source int <INTERFACE> rx
#Set the destination
monitor session 1 dest int <INTERFACE>

SSH

Enable secure SSH:

ip ssh version 2
ip domain-name mycompany.com
crypto key generate rsa modulus 2048
ip ssh time-out 60
ip ssh authentication-retries 3 

#Set SSH ACL
ip access-list extend ssh-imbound
permit 172.24.X.0 0.0.0.255 any eq 22
permit 192.168.14.0 0.0.0.255 any eq 22
permit 192.168.32.0 0.0.0.255 any eq 22
deny ip any any log

#Disable
line vty 0 1
access-class ssh-inbound in 
sesssion-limit 2
login authentication default
transport input ssh
transport output ssh
transport perfred none
line vty 2 4
login authentication default
transport input none
transport output none
transport preferred none

Hardened Security

Disable AUX port:

line aux 0
transport input none
transport output none
no exec
exec timeout 0 1
login authentication default

Require Console port login:

line con 0 
login authentication default

BGP

Enable BGP:

router bgp <64496|autonomous-system-number>
address-family ipv4 unicast
network 192.0.2.0

Configure BGP Neighbors:

neighbor <192.0.2.1|IP|Group Name> remote-as 64497

Reset BGP Connections:

clear ip bgp <address>
clear ip bgp *

Disable BGP:

no router bgp <64496|autonomous-system-number>

DHCP

Setup DHCPv4:

ip dhcp pool <NAME>
network 10.1.1.0 /24
default-router 10.4.4.1
dns-server 4.2.2.2
lease infinite

Setup DHCPv6:

ipv6 dhcp pool <NAME>
dns-server <fe80::1ff:fe23:4567:890a>
domain-name <domain>
int type <0|number>
ipv6 dhcp server <NAME>
ipv6 nd other-config-flag
ip name-server <fe80::1ff:fe23:4567:890a>

ACL for IPv6:

interface <Interface>
ipv6 trafic-filter <access-list-name> {in|out}

Setup Dual Stack:

conf titleipv6 unicast-routing
int <fa0/0>
ip address <192.168.10.1|IP> <255.255.255.0|Subnet>
ipv6 address 3ffe:b00:c18:1::3/127

VLANs

VLANs Setup:

#Group Physical Interfaces
int range fastEthernet 0/1-10
spanning-tree portfast
spanning-tree bpguard enable

Create Vlans:

vlan 14 name 192.168.14.0/24_SERVERS
vlan 32 name 192.168.32.0/24_WORKSTATIONS
vlan 500 name bogus_native

Add Servers to VLAN:

interface <fastEthernet 0/1>
switchport mode access
switchport access vlan 14

Add Workstations to VLAN:

interface <fastEthernet 0/5>
switchport mode access
switchport access vlan 32

Add Connection to router:

interface <fastEthernet 0/1>
switchport mode trunk
switchport trunk native vlan 500
switchport trunk encapsulation dot1q
switchport trunk allowed vlan remove 500

Setup Router for VLANs:

interface <fastEthernet 0/1>
no ip address
exit 
#Setup VLAN 14
int <fa0/1.14>
encapsulation dot1q 14 ip address 192.168.14.1 255.255.255.0
#Setup VLAN 32
int <fa0/1.32>
encapsulation dot1q 32 ip address 192.168.32.1 255.255.255.0
exit 
#Setup Default VLAN
int <fa0/1.1>
encapsulation dot1q 1 native ip address 192.168.1.1 255.255.255.0
exit

Finalize the Settings:

ip default-gateway 192.168.32.1
int vlan 32
ip address 192.168.32.2 255.255.255.0
no shut

NAT/PAT

Create Connection between VLANS:

ip access-list standard NAT-ACL
permit 192.168.14.0 0.0.0.255
permit 192.168.32.0 0.0.0.255

#Create External NAT
ip nat pool NET-POOL 172.24.X.1 172.24.X.254 pre 24
ip nat inside source list NAT-ACL pool NET-POOL

#Connect Internal and External NAT
ip nat inside source static tcp 192.168.14.10 25 172.24.X.7 25
ip nat inside source static tcp 192.168.14.10 110 172.24.X.7 110
ip nat inside source static tcp 192.168.14.10 53 172.24.X.7 53
#Second Server
ip nat inside source static tcp 192.168.14.12 80 172.24.X.25 80
ip nat inside source static tcp 192.168.14.12 443 172.24.X.25 443
#Third Server
ip nat inside source static tcp 192.168.14.13 80 172.24.X.15 80
ip nat inside source static tcp 192.168.14.13 443 172.24.X.15 443

#Set interfaces to NATs
interface <WAN>
ip nat outside
interface <SUBINTERFACE>
ip nat inside

Recovery

Use Break/alt+b to enter rommon mode

Reset Router Password:

confeg 0x2142
reset 
copy start run 
change password
config-reg 0x2102
copy run start
reload

Reset Switch Password:

flash_init
load_helper
dir flash:
rename flash:config.text flash:config.old
boot 
write memory

Restore from TFTP:

IP_ADDRESS=192.168.20.1
IP_SUBNET_MASK=255.255.255.0
DEFAULT_GATEWAY=192.168.20.254
TFTP_SERVER=192.168.20.254
TFTP_FILE=c1841-ipbase-mz.123-14.T7.bin
tftpdnld

ACL Examples

Default ACL:

ip access-list extended NET-IN-ACL

deny ip 127.0.0.0 0.255.255.255 any log
deny ip 192.0.2.0 0.0.0.255 any log
deny ip 224.0.0.0 31.255.255.255 any log
deny ip host 255.255.255.255 any log
deny ip host 0.0.0.0 any log


deny ip 172.24.X.0 0.0.0.255 any log
deny ip 192.168.0.0 0.0.255.255 any log

deny tcp any any fragments
deny udp any any fragments
deny icmp any any fragments
deny ip any any fragments

permit tcp host <BGP Peer IP> host <WLAN IP> eq bgp
permit tcp host <BGP Peer IP> eq bgp host <WLAN IP> 
deny ip any host <WLAN IP> log

deny ip 192.168.14.0 0.0.0.255 any log
deny ip 192.168.32.0 0.0.0.255 any log

deny any icmp any any 

#Introspection on Packets
permit udp any eq domain host 172.24.X.7 gt 1023
permit udp any eq domain host 172.24.X.7 eq domain
permit tcp any 172.24.X.0 0.0.0.255 established
permit udp any range 1 1023 172.24.X.0 0.0.0.255 gt 1023
evaluate EGRESS-REF

#External Services
#DNS
permit udp any gt 1023 host 172.24.x.7 eq domain
deny udp any any eq domain
deny tcp any any eq domain

#Mail
permit tcp any host 172.24.x.7 eq smtp
permit tcp any host 172.24.x.7 eq pop3

#HTTP
permit tcp any host 172.24.x.15 eq www
permit tcp any host 172.24.x.15 eq 443
permit tcp any host 172.24.x.25 eq www
permit tcp any host 172.24.x.25 eq 443

deny ip any any

Add a site to a blocklist:

access-list 101 deny tcp any host www.badsite.com eq www