Limetime's TimeLine
article thumbnail
반응형

액세스 리스트 (Access List)

*Host Unreachable : 액세스 리스트에 걸려서 못들어가는 경우의 메시지

 


액세스 리스트 종류

  • 스탠다드 액세스 리스트 (Standard Access List)
    • 출발지 주소(Source)로 통과여부 결정
  • 익스텐디드 액세스 리스트 (Extended Access List)
    • (출발지 주소 + 목적지 주소 + 프로토콜 + 포트번호 + etc...)로 통과여부 결정
  • 다이내믹 액세스 리스트 (Dynamic Access List)
    • Username과 패스워드에 따라 통제 가능

 

액세스 리스트의 규칙

  • 액세스 리스트는 윗줄부터 하나씩 차례로 수행된다.
  • (액세스 리스트가 적용된 인터페이스) 액세스 리스트 맨마지막 line에 'permit any'를 넣지 않으면 default로, 어느 액세스 리스트와도 match되지 않은 나머지 모든 Address 'deny'된다.
    • 즉, 맨마지막 줄엔 'deny all'이 생략되어 있다. (default)
  • (액세스 리스트가 적용되지 않은 인터페이스) Interface에 대한 액세스 리스트가 정의되어 있지 않으'permit any'
    • 즉, Interface에 accessgroup 명령이 들어 있지 않은경우.
  • 액세스 리스트의 새로운 line은 항상 맨 마지막으로 추가되므로 access-list line선택적 추가(selective add) 제거(remove)불가능하다.
Router(config)# access-list 105 permit tcp any host 201.222.11.7 eq domain
Router(config)# access-list 105 permit tcp any host 201.222.11.7 eq ftp
Router(config)# access-list 105 permit tcp any host 205.222.11.7 eq ftp-data
Router(config)# no access-list 105 permit tcp any host 205.222.11.7 eq ftp-data
Router(config)# access-list 105 permit tcp any host 201.222.11.7 eq ftp-data
Router(config)# do show running-config
!
...
!
access-list 105 permit tcp any host 201.222.11.7 eq 42
!

 

*반드시 메모장에서 입력 후 확인하고 적용할 것!

*액세스 리스트를 지정한 후 ping을 이용해서 접속 여부 테스트 시 반드시 확장형 핑 이용!!!

 


스탠다드 액세스 리스트 (Standard Access List)

 


INBOUND

*Standard Access List

인바운드(Inbound)

① 라우터의 인터페이스로 패킷이 들어오면 라우터는 해당 인터페이스에 액세스 리스트가 설정되어 있는지 확인한다.

*아니요 : 패킷을 정해진 경로로 바로 통과시킴

② 액세스 리스트가 걸려 있다면 그 액세스 리스트에 있는 주소가 들어온 패킷의 출발지 주소를 비교한다.

③ 주소가 서로 일치하면 액세스 리스트 수행.

조건 비교 Deny 'Host unreachable'이라는 ICMP Message를 뿌린다.
Permit 패킷을 정해진 경로로 보낸다.

 


OUTBOUND

*Standard Access List

아웃바운드(Outbound)

 


스탠다드 액세스 리스트 설정

  • 액세스 리스트 정책
Router(config)# access-list access-list-number {permit | deny} {source [source-wildcard] | any}

액세스 리스트 번호 : 1~99 사이

permit 또는 deny

source [source-wildcard] : 출발지 주소 또는 출발지 네트워크를 넣고 그 뒤에는 와일드마스크를 넣는다.

*와일드 마스크 생략시 와일드 마스크는 0.0.0.0으로 적용된다. (호스트 그 자체!)

any : 모든 주소가 포함된다.

 

  • 인터페이스에 액세스 리스트 지정

*적용을 원하는 인터페이스에 접속해야 한다.

Router(config-if)# ip access-group access-list-number {in | out}

정의했던 액세스 리스트 번호동일하게 써준다. 액세스 리스트의 명령을 인터페이스에 연결해주는 기능이다. (1~99 사이)

액세스 리스트를 인터페이스의 들어 오는 쪽(in)에 부여할 것인가? 나오는 쪽(out)에 부여할 것인가? (Default : out)

 


예제

규칙 ㆍPC C를 제외한 210.240.100.0 네트워크의 모든 PC는 PC A에 접속 가능
210.240.150.0 네트워크에서는 PC B를 포함한 모든 PC들이 PC A에 접속 가능
인터넷의 모든 PC는 PC A에 접속 불가

 

Router_A(config)# access-list 2 deny 210.240.100.5
Router_A(config)# access-list 2 permit 210.240.100.0 0.0.0.255
Router_A(config)# access-list 2 permit 210.240.150.0 0.0.0.255
Router_A(config)# int e 0
Router_A(config-if)# ip access-group 2 out
Router_A(config-if)# exit
Router_A(config)# do show ip access-lists
	standard IP access list 2
    	deny 210.240.100.5
        permit 210.240.100.0, wildcard bits 0.0.0.255
        permit 210.240.150.0, wildcard bits 0.0.0.255

 


스탠다드 액세스 리스트 위치 찾기

  • PC D가 PC A를 접속하지 못하게 액세스 리스트를 적용할 것인데... 어느 라우터에 적용을 하면 되겠는가?
  • 적용되는 액세스 리스트
Router(config)# access-list 10 deny 210.240.100.5
Router(config)# access-list 10 permit any

*힌트: 스탠다드 액세스 리스트는 목적지에 가까운 라우터에 적용

  • Case 1. 라우터 C에 적용한다면?
    • PC A뿐만 아니라 B, C, 라우터 A, B 조차 접근 불가

  • Case 2. 라우터 B에 적용한다면?
    • PC C와 라우터 C는 접근 가능. But, PC A, B, 라우터 A 접근 X
  • Case 3. 라우터 A에 적용한다면?
    • PC A만 접근 불가. (답!!!)

 


익스텐디드 액세스 리스트 (Extended Access List)

 


스탠다드 액세스 리스트와의 차이

  • Standard Access List는 Source Address만 제어.
    • Extended Access List는 Source Address와 Destination Address 모두 제어 가능
  • Standard Access List는 전체 TCP/IP에 대한 제어만 한다.
    • Extended Access List는 ip, tcp, udp, icmp 등 특정 프로토콜을 지정해 제어 가능
  • Standard Access List는 1~99까지 Access List 번호로 사용
    • Extended Access List는 100~199까지 Access List 번호로 사용.

 


익스텐디드 액세스 리스트 동작

 


익스텐디드 액세스 리스트 설정

① 액세스 리스트 정의

Router(config)# access-list access-list-number {permit | deny} protocol source source-wildcard [operator port] destination detination-wildcard [operator port] [established] [log]
  1. 0.0.0.0 255.255.255.255는 any로 바꾸어 사용할 수 있다.
    1. ex) access-list 101 permit ip any any = access-list 101 permit ip 0.0.0.0 255.255.255.255 0.0.0.0 255.255.255.255
  2. 131.108.5.17 0.0.0.0은 host 131.108.5.17로 바꾸어 사용할 수 있다.
    1. ex) access-list 101 permit ip any host 131.108.5.17 = access-list 101 permit ip any 131.108.5.17 0.0.0.0
  3. established 옵션은 TCP 데이터그램이 ACK나 RST bit가 set되어 들어 오늘 경우에만 match가 발생된다.
    1. ex) access-list 104 permit tcp any 128.88.0.0 0.0.255.255 established
    2. 어느 source주소에서든지 ACK나 RST bit가 set되어 있는 경우 128.88.0.0 네트워크와 Connection 가능하다. 그러나 ACK나 RST bit는 128.88.0.0 쪽에서 먼저 Connection 요청을 시도해야 set 되므로 128.88.0.0 이외의 외부에서 먼저 Connection을 맺을 수 없고, 128.88.0.0 쪽에서 먼저 Connection을 설정하려고 할 때 reply 가능하다.
    3. 즉, 128.88.0.0 네트워크에 있는 Host들은 외부로 나갈 수 있고, 외부에서는 128.88.0.0 네트워크로 접근할 수 있다.

 

② 인터페이스에 액세스 리스트 지정

Router(config)# ip access-group access-list-number {in | out}

 


예제

조건 150.100.1.0 255.255.255.0 네트워크에 있는 호스들에 대해서 150.100.2.0 255.255.255.0에 있는 호스트들이 FTP와 Telnet을 못하게 제한한다.
나머지 모든 곳에서 150.100.1.0 255.255.255.0 네트워크로 들어 오는 트래픽은 허가하기로 한다.

 

Router_A(config)# access-list 101 deny tcp 150.100.2.0 0.0.0.255 150.100.1.0 0.0.0.255 eq ftp-data
Router_A(config)# access-list 101 deny tcp 150.100.2.0 0.0.0.255 150.100.1.0 0.0.0.255 eq ftp
Router_A(config)# access-list 101 deny tcp 150.100.2.0 0.0.0.255 150.100.1.0 0.0.0.255 eq telnet
Router_A(config)# access-list 101 permit ip any any
Router_A(config)# int e 0
Router_A(config-if)# ip address 150.100.1. 255.255.255.0
Router_A(config-if)# no shutdown
Router_A(config-if)# ip group 101 out
Router_A(config-if)# exit
Router_A(config)# e 1
Router_A(config-if)# ip address 150.100.2.1 255.255.255.0
Router_A(config-if)# no shutdown
Router_A(config-if)# exit
Router_A(config)# do show ip interface ethernet0
	Ethernet0 is up, line protocol is up
    	Internet address is 150.150.1.1/16
        Broadcast address is 255.255.255.255
        Address determined by non-volatile memory
        MTU is 1500 bytes
        Helper address is not set
        Directed broadcast forwarding is disabled
        outgoing access list is 101
        Inbound access list is not set
        proxy ARP is enabled
        security level is default
        split horizon is enabled
        ICMP redirects are always sent
        ICMP unreachables are always sent
        ICMP mask replies are never sent
        IP fast switching is enabled
        IP fast switching on the same interface is disabled
        IP Flow switching is disabled
        IP Feature Fast switching turbo vector
        IP multicast fast switching is enabled
        IP multicast distributed fast switching is disabled
        IP route-cache flags are fast
        Router Discovery is disabled
        --More--
Router_A(config)# do show ip access-list
	Extended IP access list 101
    	deny tcp 150.100.2.0 0.0.0.255 150.100.1.0 0.0.0.255 eq ftp-data
        deny tcp 150.100.2.0 0.0.0.255 150.100.1.0 0.0.0.255 eq ftp
        deny tcp 150.100.2.0 0.0.0.255 150.100.1.0 0.0.0.255 eq telnet
        permit ip any any

 


텔넷포트(VTY Port)에서의 액세스 리스트

*주로 스탠다드 액세스 리스트 사용

Router(config)# line vty 0 4 // 0~4 총 5개의 가상 터미널 포트
Router(config-line)# password cisco
Router(config-line)# login // login 명령어가 빠지면 Telnet 접속 시 패스워드를 묻지 않는다.
Router(config-line)# exit
Router(config)# access-list 10 permit 200.10.10.0 0.0.0.255 // 액세스 리스트 정의 - Standard
Router(config)# line vty 0 4
Router(config-line)# access-class 10 in // in: Filter incoming connections, out: Filter outgoing connections

→ 200.10.10.0 네트워크에 있는 (IP주소 200.10.10.1 ~ 200.10.10.254) 모든 호스트들은 이 라우터로 텔넷 가능.

But, 나머지 모든 IP 주소를 가진 호스트들은 이 라우터로 텔넷 접속 불가!!

반응형
profile

Limetime's TimeLine

@Limetime

포스팅이 좋았다면 "공감❤️" 또는 "구독👍🏻" 해주세요!