수업 38일차 네트워크 Port Security , ACL

유동우·2022년 11월 6일
0

■ 스위치에서의 포트 보안 (port security)

L2 기반의 장비인 스위치는 MAC주소를 기반으로 통신을 한다.
포트 당 학습할 수 있는 맥주소를 제한할 수 있다.
특정 컴퓨터의 침입 (DDOS) 을 MAC주소를 통해 차단할 수 있다.

[ 조건 ]
- 정적 액세스 포트에서만 가능
- 이더채널에는 설정안됨
- 포트보안만으로 보안문제를 완전히 해결안됨

[ 설정방법 ]
- 인터페이스로 들어간다
- access 모드 설정
- port security 활성화
- 위의 인터페이스로부터 학습할 최대 MAC주소 개수 설정

[ 학습방식 ]
- static	: 정적으로 MAC주소를 입력하여 포트 보안 설정
- dynamic	: 동적으로 MAC주소를 입력하여 포트 보안 설정
			학습한 주소는 NVRAM에 저장할 수 없다.
- sticky	: 동적으로 학습하고 running-config에 기록한다.

[ 위반시 모드 ]
- protect : 현 상태 유지, 위반된 MAC주소의 장비로부터 오는 모든 프레임 drop(제거)
- restrict : 현 상태 유지, 위반된 MAC주소의 장비로부터 오는 모든 프레임 drop, log기록
- shutdown : 위반시 포트 상태를 비활성화 시킨다.

<실습>

Switch(config)#int fa0/1
Switch(config-if)#switchport mode access
Switch(config-if)#switchport port-security

***위의 설정은 무조건 해야함****

Switch(config-if)#switchport port-security mac-address sticky
Switch(config-if)#switchport port-security maximum 1
Switch(config-if)#switchport port-security violation protect

=========================================

[ 정적으로 수동설정 ]
Switch(config-if)#switchport port-security mac-address sticky 0001.C738.52B2
위의 MAC주소를 sticky(수동)으로 설정되어 있다

=======================================

■ 라우터 보안 Access List ( ACL )

- 네트워크에 접근여부를 허용할지 말지를 결정하는 리스트 ( 필터링 )

- 라우터에서 설정한다고 해서 네트워크 계층까지가 아니라 응용 계층의 일부분까지
	관리하기 때문에 L3까지라고 단정할 수 없다.
	( 물리 ~ 응용 계층 모두를 완벽히 막을 수 없기 때문에 더 많은 보안 기능이 있는 
		방화벽같은 전문 보안 장비를 사용한다. )

- ACL은 크게 numbered 와 named 로 구분할 수 있다
	각각 standard와 extended가 있다.

1) standard 표준 ACL	: 출발지 주소만 참조해서 필터링
	( 1 ~ 99 )

2) extended 확장 ACL	: 출발지 주소 외에도 목적지 주소, 프로토콜, 포트번호 등도 참조
	( 100 ~ 199 )

■ ACL 규칙

1) ACL은 맨 윗줄부터 순서대로 수행된다. 그래서 ACL은 좁은 범위 설정이 먼저 되어야 한다.

	만약 아래와 같이 넓은 범위를 먼저 설정하면 모든 패킷이 허용된다. ( 필터링 효가가 없게됨 )

R(config)#access-list 1 permit any
R(config)#access-list 1 deny 125.101.2.0 0.0.0.255	//방화벽은 무조건 와일드 마스크!!

2) ACL은 맨 마지막은 deny any가 생략되어 있다.

R(config)#access-list 1 deny 125.101.2.0 0.0.0.255

즉, 맨 마지막에 permit any가 없을 경우 ACL조건에 없는 모든 주소가 거부 된다.

3) numbered ACL은 순서대로 입력되기 때문에 중간 삽입이나 중간 삭제가 불가능

4) ACL 규칙은 인터페이스에  ACL이 정의가 되어 있지 않으면 아무런 필터링이 동작하지 않는다.

■ ACL 동작방식

1) inbound
	패킷이 라우터 내부로 들어올때 필터링 여부를 결정

2) outbound
	패킷이 라우터 외부로 나갈때 필터링 여부를 결정

■ Standard ACL

- 패킷의 출발지 주소와 ACL에 정의된 출발지 주소가 일치하면 ACL의 내용을 수행한다

- permit이면 패킷을 정해진 경로로 전송하고 deny면 패킷의 흐름을 막은 다음
'host unreachable'이라는 ICMP 메시지를 뿌린다.

R(config)#access-list <list-number> {permit | deny} {<출발지주소> <와일드카드마스크> | any}

R(config)#int se0/0
R(config-if)#ip access-group <list-number> <in | out>

◆ ACL은 최종 목적지 라우터에서 설정해야 한다.
  중간에 위치한 라우터에 설정하면 다른 라우터들끼리 ACL의 영향을 받아서
  정상적으로 패킷 전송이 이루어지지 않을 수 있다.

ex1) 출발지가 210.100.8.0/24 인 트래픽이 라우터에 들어오지 못하게 차단하세요

R(config)#access-list 10 deny 210.100.8.0 0.0.0.255
R(config)#access-list 10 permit any

R(config)#int se0/0
R(config-if)#ip access-group 10 in

ex2) 출발지가 190.150.82.0/24 인 트래픽만 라우터에 들어오도록 설정하세요

R(config)#access-list 10 permit 190.150.82.0 0.0.0.255

R(config)#int se0/0
R(config-if)#ip access-group 10 in

ex3) 출발지가 51.100.92.8/32 인 패킷이 라우터를 통해 외부로 나가지 못하게 설정하세요

R(config)#access-list 10 deny host 51.100.92.8
R(config)#access-list 10 permit any

R(config)#int se0/0
R(config-if)#ip access-group 10 out

show access-list 라우터에 있는 access-list보여주는 명령어

< 실습 >

Router(config)#access-list 1 deny host 3.1.1.1
Router(config)#access-list 1 permit any 
Router(config)#int fa0/0
Router(config-if)#ip access-group 1 out

Router(config)#access-list 2 deny host 3.1.1.2
Router(config)#access-list 2 permit any
Router(config)#int fa0/1
Router(config-if)#ip access-group 2 out

=========================================================

■ extended ACL

R(config)#access-list <list-number> {permit | deny} <protocol> {<출발지주소> <와일드카드마스크> <목적지주소> <와일드카드마스크> <port number>

◆ Port(포트)
	
	물리 ~ 전송계층 사이에 존재하는 패킷(프레임)에는 이 데이터가 어떤 종류인지는 알 수 없다.
	응용계층 중 어떤 서비스인지를 판단하는 기준이 포트 번호이다.

	1) TCP	FTP(20,21) TELNET(23) SMTP(25) HTTP(80) HTTPS(443)

	2) UDP	DNS(53) TFTP(69) DHCP(67,68)	

ex) 라우터로 들어오는 트래픽 중 출발지가 192.11.100.0/24이고 목적지가 210.150.6.0/24인
	트래픽 모두 차단하세요

R(config)#access-list 120 deny ip 192.11.100.0 0.0.0.255 210.150.6.0 0.0.0.255
R(config)#access-list 120 permit ip any any

int fa0/0
ip access-group 120 in

// 포트가 따로없으면 ip라고 써야함


ex) 라우터로 들어오는 트래픽 중 출발지가 200.101.52.0/24 네트워크만이 12.29.31.0/24 네트워크에
	있는 ftp 와 telnet 서버에 접속할 수 있도록 하세요


R(config)#access-list 110 permit tcp 200.101.52.0 0.0.0.255 12.29.31.0 0.0.0.255 eq20
R(config)#access-list 110 permit tcp 200.101.52.0 0.0.0.255 12.29.31.0 0.0.0.255 eq21
R(config)#access-list 110 permit tcp 200.101.52.0 0.0.0.255 12.29.31.0 0.0.0.255 eq23

int fa0/0
ip access-group 110 in


ex) 라우터에 들어오는 트래픽 중 목적지가 210.150.6.0/24 네트워크에 있는 트래픽 모두 차단하세요

R(config)#access-list 100 deny ip 210.150.6.0 0.0.0.255 
R(config)#access-list 100 permit ip any any

int fa0/0
ip access-group 100 in

ex 라우터의 97.2.13.1 에서 나가는 트래픽 중 HTTP와 TFTP 만을 차단하고 모두 허용하세요

R(config)#access-list 90 deny udp host 97.2.13.1 eq69
R(config)#access-list 90 deny tcp host 97.2.13.1 eq80
R(config)#access-list 90 permit ip any any

int fa0/0
ip access-group 90 out

ex) 라우터로 들어오는 트래픽 중 목적지가 HTTP서버(201.11.102.10) FTP서버 (190.20.8.1)인
트래픽만 들어올 수 있도록 설정하세요


R(config)#access-list 80 permit tcp any host 201.11.102.10 eq 80
R(config)#access-list 80 permit tcp any host 190.20.8.1 eq20
R(config)#access-list 80 permit tcp any host 190.20.8.1 eq21

int fa0/0
ip access-group 80 in
profile
클라우드 엔지니어가 되고싶은 클린이

0개의 댓글