본문 바로가기

카테고리 없음

Switch Security.


 

===== Switch attack Categories =====

1. MAC layer attacks

   - Mac-address flooding (Mitigation : Port-security)

 

2. VLAN attacks

  - VLAN hopping (Mitigation : no DTP on unused port)

  - Attacks between devices on a common VLAN ((Mitigation : PVLANs)

 

3. Spoofing Attacks

  - DHCP starvation and DHCP spoofing ((Mitigation :DHCP snooping)

  - Spanning tree compromises ((Mitigation : root guard)

  - Mac spoofing (Mitigation : DHCP snooping, Port-security)

  - ARP spoofing (Mitigation :Dynamic ARP inspection, DHCP snooping, Port-security)

 

4. Attacks on switch devices

  - CDP manipulation (diable CDP)

 - Telnet attack (use SSH ver2, user telnet with vty ACL)

 

* ARP spoofing
네트워크 장비들은 MAC 주소를 관리하는 table을 가지고 있으며 이것이 arp table입니다.
ARP spoofing은 arp table를 변조시키는 방법으로 진행됩니다.

A라는 PC의 MAC주소가 1111인데 공격자 B가 주기적으로 A의 MAC주소는 2222이라고
거짓정보를 뿌려줍니다. 이렇게 되면 C라는 PC에서 ARP table에 A의 MAC 주소가 2222라고

기록됩니다. C가 A랑 통신하려고 데이타를 보내면 실제로는 B가 중간에서 받게됩니다. 물론 B는

받은 데이타를 다시 A한테 보내줘서 A와 C통신은 이상없이 이루어집니다.
ARP spoofing 공격으로 정상 호스트가 웹 접속시 감염 PC는 패킷을 가로챈다

 

===== PORT-Security =====

port security restrics a switch port to a specific set or number of MAC address.
Those addresses can be leaned dynamically or configured statically.

Config port security on a switch
1. set mac address limit
2. specify allowable MAC address
3. define violation actions
4. enable port security


* switchport port-security 명령어를 먼저 사용하면 스위치의 MAC 주소 테이블에 있는 주소를

  사용하여 동적인 보안포트 MAC주소가 먼저 지정된다. 따라서 포트용 MAC 주소를 먼저

  지정하는 것이 정적인 보안 포트 지정에 편리하다
* port sticky란 동적인 포트 보안 MAC주소를 영구적인 주소로 변경시키는것, 스위치 전원을

  꺼도 삭제되지 않는다.
* switchport port-security violation ?
   protect  해당장비의 접속 차단 (조치 shutdown > no shutdown)
   restrict 해당장비의 접속 차단하면서 로깅 메시지 발생 (조치 shutdown > no shutdown)
   shutdown 보안 침해 발생시 포드 shutdown
* 자동으로 접속 차단된 port 사용하게 설정

   # errdisable recovery cause security-violation

   # rrdisable recovery interval 300


Rack1SW1(config)#inter f0/1
Rack1SW1(config)#switchport mode access
Rack1SW1(config-if)#switchport port-security maximum 1
Rack1SW1(config-if)#switchport port-security mac-address 0001.1111.1111
Rack1SW1(config-if)#switchport port-security mac-address sticky
Rack1SW1(config-if)#switchport port-security violation ?
                                                                               protect   Security violation protect mode
                                                                               restrict  Security violation restrict mode
                                                                               shutdown  Security violation shutdown mode

Rack1SW1(config-if)#switchport port-security


Verify
# show port-security
# show port-security interface f0/0
# show port-security address

 

===== AAA ======

Authentication : Verifies a user identify
Authorization : Specifies the permitted tasks for the user
Accounting : Provides billing, audting, and monitoring

 

 

1. Authentication
Rack1SW1(config)#username cisco password cisco
Rack1SW1(config)#aaa new-model
Rack1SW1(config)#aaa authentication login TELNETLOGIN group tacacs+ local

Rack1SW1(config)#line vty 0 4
Rack1SW1(config-line)#login authentication TELNETLOGIN

 

2. Authorization
Rack1SW1(config)#username cisco privilege 5 password cisco
Rack1SW1(config)#privilege exec level 5 show running-config

Rack1SW1(config)#aaa new-model
Rack1SW1(config)#aaa authorization exec TELNETLOGIN group tacacs+ local

Rack1SW1(config)#line vty 0 4
Rack1SW1(config-line)#authorization exec TELNETLOGIN

 

privilege 설정예

privilege exec level 5 ping 
privilege exec level 5 write memory
privilege exec level 5 copy run start
privilege exec level 5 configure terminal
privilege configure level 5 interface
privilege interface level 5 ip address

 

==== 802.1x Port-Base Authentication ====
The IEEE 802.1x standard defines a port-based access control and authentication protocol

that restric unauthorized workstations from connecting to a LAN through pubicly accessible

switch ports

 

Rack1SW1(config)#aaa new-model
Rack1SW1(config)#aaa authentication dot1x default group radius
Rack1SW1(config)#dot1x system-auth-control

Rack1SW1(config)#interface f0/5
Rack1SW1(config-if-range)#dot1x port-control auto

 
====== access-list ========
access-list 11 permit 10.1.1.0 0.0.0.255
access-list 111 permit tcp 10.1.1.0 0.0.0.255 any eq telnet

 

====== prefix-list ==========
ip prefix-list NET22 seq 3 permit 11.11.11.0/24
ip prefix-list NET22 seq 5 permit 22.22.22.0/24

 

===== named-access-list =======
ip access-list extended BGP_ROUTE_MAP
    permit tcp 10.1.1.0 0.0.0.255 any eq telnet
    deny   tcp 10.1.2.0 0.0.0.255 any eq telnet

 

==== VACL (VLAN_ACL) =====
VACL apply to all traffic on the VLAN

VMAP을 사용하면 vlan간의 트래픽뿐만 아니라 VLAN 내부에 있는 장비간의 트래픽도

제어할 수 있어 유용하다.
라우터 ACL은 동일한 VLAN 내부의 트래픽은 제어할 수 없다. 이 경우 포트 ACL을 사용해도
 
되지만 트래픽을 수신할 때만 적용할 수 있고, VLAN 맵이나 수신 라우터 ACL과 같이 사용 할

없는 등의 제약사항이 많아 VLAN 맵을 사용하는 것보다 못하다.

 

VLAN 맵 설정방법
1. creat VLAN map access-list
2. vlan access-map 명령어를 사용하여 VLAN map 만든다
3. vlan filter vlan-list 명령어를 사용하여 VLAN 맵을 VLAN에 적용

 

Rack1SW1(config)#vlan access-map TEST 10
Rack1SW1(config-access-map)#match ip address 1
Rack1SW1(config-access-map)#action drop

Rack1SW1(config)#vlan access-map TEST 20
Rack1SW1(config-access-map)#action forward


Rack1SW1(config)#vlan filter TEST vlan-list  2

Rack1SW1(config)#access-list 1 permit 10.1.0.0 0.0.255.255

 

====== Racl ======
interface vlan 20
ip access-group 101 in

access-list 101 deny ip host  192.1.2.1 host 192.1.1.1


==== Private VLAN =====

PVANs provide  layer 2 isolation betwwen ports within the same VLAN.
the isolation eliminates the need for a separate VALN and ip subnet per customer
Private VLAN type
isolated :          communicate with only promiscuous ports
promiscuous : communicate with all other ports
community :     communicate with other members of community and promiscuous ports

 

Rack1SW1(config)#vtp mode transparent

Switch(config)#vlan 100
Switch(config-vlan)#private-vlan primary
Switch(config-vlan)#private-vlan association 10,20

Rack1SW1(config)#vlan 10
Rack1SW1(config-vlan)#private-vlan community
Rack1SW1(config)#vlan 20
Rack1SW1(config-vlan)#private-vlan isolated

Switch(config)#interface range f0/1 - 2
Switch(config-if-range)#switchport mode private-vlan host
Switch(config-if-range)#switchport private-vlan host-association 100 10

Switch(config)#interface range f0/3 - 4
Switch(config-if-range)#switchport mode private-vlan host
Switch(config-if-range)#switchport private-vlan host-association 100 20

Switch(config)#interface  f0/5
Switch(config-if-range)#switchport mode private-vlan promiscuous
Switch(config-if-range)#switchport private-vlan mapping 100 10,20

 

======= DHCP Snooping ======
DHCP spoofing attack
attacker activates DHCP server on VLAN / attacker replies to valid client DHCP requests /
atacker establishes man-in-the-middle attack

 

Solution for DHCP spoofing
- config DHCP snooping on uplinks to a DHCP server
- untrusted ports cannot process DHCP replies
- Do not config DHCP snooping on client ports

 

Switch(config)#ip dhcp snooping
Switch(config)#inter f0/2
Switch(config-if)#ip dhcp snooping trust

Switch(config)#inter f0/3
Switch(config-if)#ip dhcp snooping limit rate 399

Switch(config)#ip dhcp snooping vlan 2

Switch#  sh ip dhcp snooping

 

verify
shwo ip dhcp snooping

 

====== IP Source Guard =======

IP source Guard is similar to DHCP snooping. This feature can be enabled on a DHCP snooping untrusted layer 2 port to prevent IP address spoofing.
To start, all IP traffic on the port is blocked except for DHCP packets that are captured by the DHCP

snooping process
* ip source guard is configured on untrusted L2 interface

 

Switch(config-if)#ip verify source port-security  (IP source Guard)
Switch#sh ip verify source interface f0/5

 

====== Dynamic ARP Inspection =======
Switch(config)#ip arp inspection vlan 2  (DAI)
Switch(config)#ip arp inspection validate src-mac dst-mac ip
Switch(config)#inter f0/3
Switch(config-if)#ip arp inspection trust
Switch#show ip arp inspection

 

======Protecting the operation of STP======

Protection against switches being added on Portfast ports
BPDU guard shuts ports down (when the port receives a BPDU,  it is put in the error-disabled state)
BPDU filter specifies action to be taken when BPDU are received.

spanning-tree protocol이 스위치 네트워크의 레이어 2루프를 방지해 주지만, 포트 패스트 기술을

사용하거나 케이블이 불량일 때 loop가 발생할 수 있다.

 

======BPDU Guard======

BPDU guard란 port를 통해서 BPDU를 수신했을 때 해당 포트를 자동으로
shutdown 시키는 기능

 

Rack01_SW1(config)#spanning-tree portfast bpduguard default
Rack01_SW1(config-if)#spanning-tree bpduguard enable

 

======= BPDU Filter ======
BPDU filtering 이란 특정 port로 BPDU를 보내거나 받지 않게 하는 기능
스위치 port에 접속된 종단 장치에 불필요한 부하가 걸리는 것을 방지할 수 있다.

 

Rack01_SW1(config)#spanning-tree portfast bpdufilter default
Rack01_SW1(config-if)#spanning-tree bpdufilter enable

Rack01_SW1#show spanning-tree summary totals

 

====== Root Guard =======

Root guard란 특정 퐅에 접속된 네트워크에 있는 스위치들은 루트 스위치가
될 수 없도록 하는 기능

 

root guard (per interface적용)
(designated port ====> root port가 되는것을 막음)

Rack01_SW1(config)#spanning-tree guard root
Rack01_SW1#show spanning-tree inconsistentports

 

======== UDLD ========

UDLD(unidirectional link detection)

UniDirectional link Detection 은 스위치간에 단방향 링크가 생겼을 때 해당 포트를
셧다운 시키는 기능을 하는 layer 2 protocol. 단방향 링크는 내가 보낸 신호는 상대
스위치가 수신하는데, 상대가 보낸 신호를 내가 수신하지 못하는 경우를 말한다.

에러가 발생하였을시 err-disable로 떨어지기 때문에 자동으로복구되지 않는다

 

normal mode(default) / aggrasive mode(eight attempts to re-establish)

Switch(config)#udld enable
Switch(config)#udld aggressive

Switch(config)#interface gigabit0/1
Switch(config-if)#udld port
Switch(config-if)#udld port aggressive

Switch#sh udld f0/1

 

======= Loop Guard ======

(rp,ap) link up 되어있지만 받지 못하는 경우

링크가 업이 되어있지만 BPDU를 수신하지 못한다고 판단 사용하지 못하는 포트로
만든다. BPDU를 수신하고만 있는 포트에만 셋팅해주면 루프를 방지할 수 있다.

Switch(config-if)#spanning-tree guard loop 

  

====== VTY Access-list ======
access-list 10 permit host 10.10.10.40


line vty 0 15
password cisco
login
access-class 10 in