ACL(ACcess List)이란? 접근을 허가하고 제어하는 기준이 되는 리스트
-특정 사용자의 접근 제한(IP 기반)
-특정 서비스 이용을 제한(포트 기반)
-라우팅 경로의 조정(Dynamic 방식 사용 시)
ACL의 두가지 Type
-Standard
출발지 주소만을 확인하여 필터링
Ex) 출발지가 192.168.10.1인 패킷을 모두 차단해라
-EXtended
출발지 주소 뿐 아니라 목적지, 포트번호, 프로토콜까지 확인하여 필터링
상세한 트래픽 필터링이 가능
ACL 특징
-순서가 중요하다.(작은 범위가 제일 위쪽에)
ex)만약 첫번째에 192.168.10.0/24 대역을 차단하라란는 명령어를 두번째에 192.168.10.1 호스트를 허용해라 입력 시
-> 첫번째에 차단하라는 명령어를 기준으로 밑에 것 무시 즉, 192.168.10.1을 차단한다.
-암묵적으로 마지막에는 all deny 명령어가 숨어있다.
-인바운드 방식과 아웃바운드 방식 존재
인바운드: 패킷이 들어올 때 필터링
아웃바운드: 패킷이 나갈 때 필터링
ACL 설정 방식
-Standard
: access-list [1~99] {permit or deny} [출발지 ip] [wild card]
*wild card는 다음과 같은 경우 생략이 가능하다.
1.특정 IP대역 하나를 지정
ex)192.168.10.1 0.0.0.0 -> host 192.168.10.1로 바꿔서 쓰는 것 가능
2. 모든 IP 지정
ex)0.0.0.0 255.255.255.255 -> any로 바꿔서 쓰는 것 가능
-Extended
: access-list [100~199] {permit | deny} [protocol] [출발지 IP] [wild mask] [출발지 포트] [목적지 IP] [wild mask] [목적지 포트]
각 명령어 부분적 설명
[protocol] -> tcp인지 udp인지 혹은 IP , ICMP등의 통신 방식을 지정해주는 프로토콜 지정
[출발지, 목적지 포트] -> 서비스 내용을 지정, 보통 앞에 eq를 붙인다.
ex) 웹서비스를 차단하고 싶다. -> eq www 혹은 eq 80 형태로 지정.
access-list 명령어로 access-list 생성 후
원하는 인터페이스로 들어가서
ip access-group [number] { in | out } -> inbound로 사용 할 것인지 outbound로 사용 할 것인지 지정
여기서 [number[는 앞서 지정해준 access-list 번호
PC 0과 PC 1 모두 게이트웨이를 각각 192.168.10.2, 192.168.20.2로 지정한다.
또한 R1과 R2에 EIGRP를 구동한다면 R1의 S0/0으로 핑이 가능하다.
EIGRP는 간단하게 다음과 같이 설정한다.
R1(config)#router eigrp 1
R1(config-router)#network 10.0.0.0
R2(config)#router eigrp 1
R2(config-router)#network 10.0.0.0
R2(config-router)#network 192.168.10.0
R2(config-router)#network 192.168.20.0
핑이 되는 것을 확인하고 access-list로 PC 0만 통신을 차단해본다. 설정은 R2에서 진행한다.
R2(config)#access-list 10 deny 192.168.10.1 0.0.0.0
출발지 IP가 192.168.10.1인 패킷을 모두 차단하겠다.
R2(config)#access-list 10 permit any
나머지 패킷은 모두 허용하겠다.
R2(config-if)#ip access-group 10 out
int s0/0에서 진행한다. 패킷이 해당 인터페이스를 통해 나가므로 out으로 지정하였다.
위에서 앞서 언급했던 ACL의 특징 두 가지를 볼 수 있다.
우선 작은 범위부터 먼저 쓴다는 것.
만약 access-list 10 permit any을 먼저 썼다면?
모든 패킷이 허용이 우선 적용되어 뒤에 deny 명령어가 와도 차단 시킬 수 없다.
두 번째 마지막에는 암묵적으로 deny any가 들어간다. 고로 패킷을 허용하고 싶다면 permit any를 꼭 써준다.
PC>ping 10.10.12.1
Pinging 10.10.12.1 with 32 bytes of data:
Reply from 192.168.10.2: Destination host unreachable.
Reply from 192.168.10.2: Destination host unreachable.
Reply from 192.168.10.2: Destination host unreachable.
Reply from 192.168.10.2: Destination host unreachable.
이번에는 Extended ACL로 웹서비스만 차단해보는 것을 진행하겠다.
우선 진행하기에 앞서 이전에 설정했던 acl을 삭제한다.
R2(config-if)#no ip access-group 10 out
R2(config-if)#no access-list 10
우선 웹서비스 사용하는 법을 알아보자.
1. pc0-web browser를 클릭
1
2. http://10.10.12.1을 주소창에 입력하면 다음과 같은 문구가 뜬다. 다음 문구가 뜨면 웹전송을 하고있다는 뜻!!
웹에서 정보 전송은 80번 포트를 이용한다. 고로 access-list로 80번 포트를 막아보자.
R2(config)#access-list 101 deny tcp host 192.168.10.1 host 10.10.12.1 eq 80
웹은 tcp로 통신한다. 따라서 프로토콜을 tcp로 지정해주고 eq 80으로 80번 포트를 지정해준다.
R2(config)#access-list 101 permit ip any any
역시 암묵적으로 any deny가 되어있기메 모두 허용을 해준다.
R2(config)#int s0/0
R2(config-if)#ip access-group 101 out
해당 설정을 완료한 후 아까와 같이 들어가보면
잠시 대기하다가 위와 같은 문구가 뜨는 것을 확인 할 수 있다.
NAT(Network Address Translation)
:IP주소를 변환 시켜주는 기술, 현재 스마트폰과 같은 가정기기들의 스마트화로 IP가 부족한 상황이다. 모든 스마트 기기에 공인 IP를 할당해 줄 수 없다. 고로 개인이 직접 만든 사설 IP를 사용한다. 문제점은 사설 IP는 인터넷을 사용하지 못한다는 것. 따라서 인터넷 사용을 위해 공인 IP로 바꿔 줄 필요가 있다. 이 때 사용하는 기술이 NAT이다.
Static NAT
mapping IP를 하나하나 직접 입력
사설 IP와 공인 IP를 1:1 맵핑 시켜준다.
따라서 IP를 절약하는 기술이 아니다.(어차피 하나의 공인 IP를 하나의 디바이스가 사용하기때문에)
IP 절약보다는 보안에 더 신경쓴 방식.
주로 외부에서 접근해야하는 웹서버 같은 곳에 위와 같은 방식을 사용한다.
Dynamic NAT
각각 Basic Dynamic NAT와 PAT로 나누어진다.
Basic Dynamic NAT: 여러개의 사설 IP가 하나 이상의 공인 IP와 맵핑, 즉 하나의 공인 IP를 여러 사설 IP에 맵핑이 불가능하다.
만약 특정 사설 IP가 특정 공인 IP로 변환 돨 시 일정 시간동안 해당 공인 IP를 사용중으로 돌려놓는다.
내 옆에는 인터넷을 해도 공인 IP가 부족하기에 나는 인터넷을 못하는 사태가 발생한다.
PAT(Port Address Translation): 일반적으로 쓰는 인터넷에 사용하는 기술, 여러개의 사설 IP가 하나의 공인 IP에 맵핑 가능
IP만 보고서는 어떤 사설 IP가 해당 공인 IP로 변환되어 나간 것인지 알 수 가 없다.
따라서 IP뒤에 포트번호를 붙여서 각 사설 IP들을 식별한다.
설정 방식
Static은 비교적 간단.
ip nat inside source static [사설 ip] [공인 ip]
Dynamic은 비교적 복잡하다. 여러개의 IP를 맵핑시키는 것이므로 직접 IP를 지정하는 것이 아닌 IP범위를 지정한다.
사설 IP범위지정 -> access-list(Standard) 사용
access-list {1~99} permit [source-ip] [wildcard]
ex) access-list 10 permit 192.168.10.0 0.0.0.255 -> 192.168.10.0/24 대역을 사설 IP 대역으로 지정, 해당 IP 대역들을 공인 IP 대역으로 바꾸겠다.
공인 IP범위 지정 -> pool 사용
ip nat pool [name] [start ip] [end ip] [netmask netmask | prefix-length prefix]
ex)ip nat pool netdream [1.1.1.1] [1.1.1.254] [255.255.255.0] -> 바꿔주는 공인 IP 대역은 1.1.1.1 ~ 254, 1.1.1.0/24 대역이다.
ip nat inside source list [ACL-number] pool [pool-name] overload
해당 ACL-number에 해당하는 사설 IP 대역들을 pool-name에 지정해준 공인 IP로 변환시켜주겠다.
맨 마지막 overload가 없다면 basic dynamic, 있다면 PAT에 해당.
지정 후 인터페이스에서 도메인을 설정한다.
ip nat inside -> 해당 인터페이스는 NAT 내부 도메인, 내부 도메인에서는 출발지 IP가 변경된다.
ip nat outside -> 해당 인터페이스는 NAT 외부 도메인, 외부 도메인에서는 목적지 IP가 변경된다.
위의 토폴로지에서 192.168로 시작하는 대역(PC 0, PC1)은 모두 10번대 대역으로 변환하는 것 실습
R2(config)#access-list 10 permit 192.168.0.0 0.0.255.255
사설 IP 대역을 192.168로 시작하는 모든 대역으로 지정
R2(config)#ip nat pool netdrea 10.10.12.2 10.10.12.30 netmask 255.255.255.0
공인 IP 대역은 10.10.12.2 /24부터 10.10.12.30 /24으로 지정
R2(config)#ip nat inside source list 10 pool netdrea overload
list 10에 지정한 사설 IP를 netdrea에 지정한 공인 IP로 바꿔주겠다. 이때 바꾸는 방식은 overload(PAT)
R2(config)#int f0/0
R2(config-if)#ip nat inside
int f0/0은 출발지 IP가 변환되는 인터페이스.
R2(config-if)#int f0/1
R2(config-if)#ip nat inside
int f0/1 또한 출발지 IP가 변환되는 인터페이스.
R2(config-if)#int s0/0
R2(config-if)#ip nat outside
int s0/0은 목적지 IP가 변환되는 인터페이스.
pc0에서 핑을 한 후
show ip nat translations로 nat 테이블 확인 가능
R2#sh ip nat translations
Pro Inside global Inside local Outside local Outside global
icmp 10.10.12.2:47 192.168.10.1:47 10.10.12.1:47 10.10.12.1:47
icmp 10.10.12.2:48 192.168.10.1:48 10.10.12.1:48 10.10.12.1:48
icmp 10.10.12.2:49 192.168.10.1:49 10.10.12.1:49 10.10.12.1:49
icmp 10.10.12.2:50 192.168.10.1:50 10.10.12.1:50 10.10.12.1:50
'네트워크 > 네트워크 기초실습' 카테고리의 다른 글
네트워크 라우팅-Static(정적 라우팅)/Dynamic(동적 라우팅)/라우팅프로토콜 (1) | 2018.07.22 |
---|---|
네트워크 기본 기능-시리얼 인터페이스 설정/CDP/TELNET/백업 복사 (0) | 2018.07.15 |
네트워크 기본 설정 (0) | 2018.07.15 |
네트워크 기본적인 패킷트레이서 사용법 (0) | 2018.07.15 |