와일드카드 마스크, ACL

oogu ㅣ 2022. 4. 27. 22:22

@ 와일드(wild)카드 마스크

 - 공통 비트 : 0
 - 비공통 비트 : 1
 - 특징 : 1, 0 연속 규칙이 없다. (참고 : 서브넷 마스크는 1이 연속되어야 한다.)

연속되지 않은 ip를 설정을 할 때 서브넷마스크를 사용하면 너무 길다 따라서 와일드카드 마스크 사용한다.

서브넷 마스크        와일드카드 마스크

255.255.255.0         0.0.0.255
255.255.0.0            0.0.255.255
255.0.0.0               0.255.255.255
0.0.0.0                  255.255.255.255
255.255.255.255      0.0.0.0

255.255.255.252      0.0.0.3
255.255.255.248      0.0.0.7
255.255.255.240      0.0.0.15
255.255.255.224      0.0.0.31
255.255.255.128      0.0.0.127
255.255.254.0         0.0.1.255
255.255.240.0         0.0.15.255

정답은 와일드카드 마스크 예제.txt 참고


Ex1) 192.168.1.0/24 ~ 192.168.255.0/24 중에 홀수 서브넷를 한줄로 정의하여라. 

Ex2) 192.168.1.0/24 ~ 192.168.255.0/24 중에 짝수 서브넷를 한줄로 정의하여라.

Ex3) 192.168.112.32 ~ 192.168.112.63까지 IP 주소를 한줄로 정의하여라.

Ex4) A 클래스

Ex5) B 클래스

Ex6) C 클래스

Ex7) A 클래스 사설 IP 주소

Ex8) B 클래스 사설 IP 주소

Ex9) C 클래스 사설 IP 주소

Ex10) IP 주소 전체

Ex11) 13.13.10.100 IP 주소 1개를 정의하여라.


 - 199.172.1.0/24 ~ 199.172.16.0/24를 다음 조건에 맞게 간결하게 설정하여라.

Ex12) 199.172.1.0/24, 199.172.3.0/24를 한줄로 설정하여라.

199.172.000000 0 1.0
199.172.000000 1 1.0
---------------------------> 199.172.1.0 0.0.2.255
   0.    0.000000 1 0.255 <- 0.0.2.255


Ex13) 199.172.1.0/24 ~ 199.172.3.0/24, 199.172.8.0/24 ~ 199.172.11.0/24를 한줄로 설정

199.172.000000 01.0
199.172.000000 10.0
199.172.000000 11.0
-------------------------------------> 199.172.0.0 0.0.3.255
   0.   0.000000 11.255 <- 0.0.3.255


Ex14) 199.172.5.0/24, 199.172.7.0/24, 199.172.10.0/24, 199.172.14.0/24를 두줄로 설정

199.172.00001 01.0
199.172.00001 10.0
199.172.00001 11.0
--------------------------> 199.172.4.0 0.0.3.255
   0.   0.00000 11.255 <- 0.0.3.255

Ex15) 199.172.1.0/24 ~ 199.172.16.0/24 중에 홀수만 설정하여라.

199.172.0000 0001.0
199.172.0000 0011.0
199.172.0000 0101.0
199.172.0000 0111.0
~
199.172.0000 1111.0
------------------------------> 199.172.1.0 0.0.14.255
   0.   0.0000 1110.255 <- 0.0.14.255  



@ ACL(Access Control List)

외부 -> 내부, 내부 -> 외부로 접근하는 걸 관리한다.
 1. 차단
 2. 허용
 3. 로그

1. ACL 목적

 - 트래픽 필터링
 - 방화벽 구성
 - IP 주소,서브넷, 포트 번호 정의


2. ACL 설정시 파악할 요소 -> 세 가지

 - 출발지 / 목적지
 - 허용(permit) / 차단(deny)
 - in / out
 - 추가적으로 파악할 요소 : 서비스 유형 및 포트 번호, TCP 플래그 정보, IP Fragments 정보...
 - 검사 범위는 IP 헤더 부터 상위 헤더 정보까지 검사가 가능하다.

      HTTP, FTP, TELNET....   검사 X IDS/IPS(snort, suricata), WAF(웹 어플리케이션 방화벽)...
----------------------------
       TCP, UDP, ICMP.....     검사 O Firewall, IDS/IPS(snort, suricata)
----------------------------
               IP                 검사 O Firewall, IDS/IPS(snort, suricata)
----------------------------


3. ACL 처리 과정 및 주의 사항

 1) 서브넷 범위가 작은 항목부터 설정해야 한다.

 - ACL를 설정하면 설정된 순서대로 순서 번호를 할당 받는다.
 - 순서 번호대로 검사하여 조건에 만족된 항목이 있으면, ACL 동작을 실시한다.
 - 그 다음 항목은 검사하지 않는다.

             

             환경


Ex1) 잘못된 예제

R1(config)#access-list 10 permit 13.13.0.0 0.0.255.255
R1(config)#access-list 10 deny 13.13.30.0 0.0.0.255 > 차단이 안된다.
R1(config)#int s1/0
R1(config-if)#ip access-group 10 in      -> access-list 10번을 위에서 부터 검사
R1(config-if)#end

serial1/0 인터페이스에 ip access-group 10 in 이있기 때문에 10번을 확인한다. 

access-list 10을 확인하는데 위에서부터 순서대로 확인한다. 13.13.0.0 범위가 13.13.30.0 보다 넓기 때문에 무조건 13.13.0.0에서 걸리게 된다. -> 13.13.30.0 으로는 안간다. 잘못됨!



 - F(13.13.30.3)에서 '13.13.10.100'으로 ping 테스트 및 웹-접속이 차단이 될것인가?

F -> Desktop -> Command Prompt -> ping 13.13.10.100
F -> Desktop -> Web Browser -> http://13.13.10.100

13.13.0.0이 9번 요청받은 걸 확인 할 수 있다.

R1#conf t
R1(config)#no access-list 10


Ex2) 잘된 예제

R1(config)#access-list 10 deny 13.13.30.0 0.0.0.255
R1(config)#access-list 10 permit 13.13.0.0 0.0.255.255
R1(config)#end


 - F(13.13.30.3)에서 '13.13.10.100'으로 ping 테스트 및 웹-접속이 차단이 될것인가?

F -> Desktop -> Command Prompt -> ping 13.13.10.100
F -> Desktop -> Web Browser -> http://13.13.10.100

 

access-list를 잘 구성했기 때문에 13.13.30.0 이 ping 실패가 된걸 볼 수 있다.

 



 - 나머지 외부 시스템(13.13.x.x)에서는 '13.13.10.100'으로 ping 테스트 및 웹-접속이 차단이 될것인가?

D -> Desktop -> Command Prompt -> ping 13.13.10.100
D -> Desktop -> Web Browser -> http://13.13.10.100

 

13.13.x.x 네트워크에서는 13.13.30.0 deny에 걸리지 않고 13.13.0.0 permit에 걸리기 때문에 ping이 성공했다.

 



R1#conf t
R1(config)#no access-list 10


 2) ACL 마지막 항목에는 'deny any'가 동작한다. -> 눈에 보이지는 않는다.

 

any = 0.0.0.0 255.255.255.255


Ex1) 잘못된 예제

R1(config)#access-list 10 deny 13.13.30.0 0.0.0.255
R1(config)#end

access-list에 13.13.30.0 만 deny 될거 처럼 보이지만 마지막에 'deny any' 처리 실시된다. -> 눈에 안보임

따라서 다른 네트워크도 접근할 수  없다.

 - F(13.13.30.3)에서 '13.13.10.100'으로 ping 테스트 및 웹-접속이 차단이 될것인가?

F -> Desktop -> Command Prompt -> ping 13.13.10.100
F -> Desktop -> Web Browser -> http://13.13.10.100

 

13.13.30.3 은 access-list 에서 13.13.30.0 이 존재해서 차단이 된다.

 



 - 나머지 외부 시스템(13.13.x.x)에서는 '13.13.10.100'으로 ping 테스트 및 웹-접속이 차단이 될것인가?

D -> Desktop -> Command Prompt -> ping 13.13.10.100
D -> Desktop -> Web Browser -> http://13.13.10.100

 

access-list에 13.13.30.0 deny 만 있어서 다른 네트워크는 접근이 가능할거 같지만 사실 눈에 안보이는 'deny any'가 동작해서 13.13.12.1도 차단이 된 것이다. -> 주의하자!


R1#show ip access-lists
Standard IP access list 10
    10 deny 13.13.30.0 0.0.0.255 (11 match(es))
    (마지막에 'deny any' 처리에 의해서 차단됨)


Ex2) 잘된 예제

R1(config)#access-list 10 deny 13.13.30.0 0.0.0.255 <- 설정되어 있음
R1(config)#access-list 10 permit any  <- 설정 추가
R1(config)#end

access-list 10 permit any = access-list 10 permit 0.0.0.0 255.255.255.255

 - 나머지 외부 시스템(13.13.x.x)에서는 '13.13.10.100'으로 ping 테스트 및 웹-접속이 차단이 될것인가?

D -> Desktop -> Command Prompt -> ping 13.13.10.100
D -> Desktop -> Web Browser -> http://13.13.10.100

 

access-list에서 13.13.30.0 일 떄를 제외한 모든 네트워크(permit any)를 허용 했기 때문에 ping이 가능하다

 



 3) 항목 부분 추가 및 부분 삭제 불가능

 

부분적인 삭제가 안된다. -> 다 삭제됨 하나만 삭제할라해도

 

R1#show ip access-lists
Standard IP access list 10
    10 deny 13.13.30.0 0.0.0.255 (10 match(es))
    20 permit any (9 match(es))

R1#conf t
R1(config)#access-list 10 deny 13.13.20.0 0.0.0.255
R1(config)#end

R1#show ip access-lists
Standard IP access list 10
    10 deny 13.13.30.0 0.0.0.255 (11 match(es))
    20 permit any (9 match(es))
    30 deny 13.13.20.0 0.0.0.255              -> 쓸모 없다. 위에가 permit any 라서

 - D(13.13.20.3)에서 '13.13.10.100'으로 ping 테스트 및 웹-접속이 차단이 될것인가?

D -> Desktop -> Command Prompt -> ping 13.13.10.100
D -> Desktop -> Web Browser -> http://13.13.10.100

R1#show ip access-lists
Standard IP access list 10
    10 deny 13.13.30.0 0.0.0.255 (11 match(es))
    20 permit any (35 match(es))
    30 deny 13.13.20.0 0.0.0.255

R1#conf t
R1(config)#no access-list 10 deny 13.13.20.0 0.0.0.255
R1(config)#end

R1#show ip access-lists
(ACL 10 항목 전체가 삭제되었다.)

R1#


[참고] Named ACL은 부분 추가 및 삭제가 가능하다.

R1#conf t
R1(config)#access-list 10 deny 13.13.30.0 0.0.0.255
R1(config)#access-list 10 permit any 
R1(config)#end

R1#show ip access-lists 
Standard IP access list 10
    10 deny 13.13.30.0 0.0.0.255
    20 permit any

R1#conf t
R1(config)#ip access-list standard 10
R1(config-std-nacl)#
R1(config-std-nacl)#?
  <1-2147483647>  Sequence Number
  default         Set a command to its defaults
  deny            Specify packets to reject
  exit            Exit from access-list configuration mode
  no              Negate a command or set its defaults
  permit          Specify packets to forward
  remark          Access list entry comment
R1(config-std-nacl)#
R1(config-std-nacl)#15 deny 13.13.20.0 0.0.0.255
R1(config-std-nacl)#end

R1#show ip access-lists 
Standard IP access list 10
    10 deny 13.13.30.0 0.0.0.255
    15 deny 13.13.20.0 0.0.0.255
    20 permit any

 - D(13.13.20.3)에서 '13.13.10.100'으로 ping 테스트 및 웹-접속이 차단이 될것인가?

D -> Desktop -> Command Prompt -> ping 13.13.10.100
D -> Desktop -> Web Browser -> http://13.13.10.100

R1#show ip access-lists 
Standard IP access list 10
    10 deny 13.13.30.0 0.0.0.255
    15 deny 13.13.20.0 0.0.0.255 (11 match(es))
    20 permit any

R1#conf t
R1(config)#ip access-list standard 10
R1(config-std-nacl)#no 15
R1(config-std-nacl)#end

R1#show ip access-lists
Standard IP access list 10
    10 deny 13.13.30.0 0.0.0.255
    20 permit any

R1#conf t
R1(config)#no access-list 10
R1(config)#
R1(config)#int s1/0
R1(config-if)#no ip access-group 10 in
R1(config-if)#end
R1#


3. Standard ACL -> 출발지만 확인해서 제약이 많다.

 - ACL 번호 : 1~99
 - 검사 항목 : 출발지 
                                 인터넷
                                    │
                                    │
                                    │
         13.13.10.0/24          [S1/0]    172.16.1.0/24
PC─────────[F0/0]R1[F0/1]──────────서버
13.13.10.1                                                    172.16.1.1

Ex1) ’13.13.10.0/24’ 사용자들이 ‘172.16.1.1’ 서버에 접근하는 것을 차단하고 나머지는 허용한다.

Ex2) ‘13.13.10.0/24’ 사용자들이 인터넷을 사용하는 것을 제한하며, ‘172.16.1.1’ 서버로 접근이 가능하도록 한다.

access-list 10 deny 13.13.10.0 0.0.0.255
aceess-list 10 permit any

int s1/0
ip access-group 10 out

Ex3)  ‘172.16.1.1’ 서버는 인터넷과 연결된 외부 사용자들에게 서비스가 되지 않도록 하며, 오직 ‘13.13.10.0/24’ 사용자들에게만 서비스가 가능하도록 한다.

server가 불필요한 동작을함 다시 ㄱㄱ
access-list 10 deny 172.16.1.0 0.0.0.255
access-list 10 permit any

int s1/0
ip access-group 10 out

Ex4) 출발지가 ‘13.13.30.0/24’인 패켓만 ‘13.13.10.0/24’ 서브넷으로 접근하는 것을 차단하며, 그 외 나머지는 허용하는 ACL를 R1에서 구성하도록 한다.

 - F(13.13.30.3)에서 '13.13.10.100'으로 ping 테스트 및 웹-접속이 차단되는지 확인한다.

F -> Desktop -> Command Prompt -> ping 13.13.10.100
F -> Desktop -> Web Browser -> http://13.13.10.10

 - 나머지 외부 시스템(13.13.x.x)에서는 '13.13.10.100'으로 ping 테스트 및 웹-접속이 허용되는지 확인한다.

D -> Desktop -> Command Prompt -> ping 13.13.10.100
D -> Desktop -> Web Browser -> http://13.13.10.100

R1#show ip access-lists

 - 다음 내용을 알아보기 위해서 ACL 관련 설정을 삭제한다.

[참고] 서비스 포트 

 - 참고 사이트 : https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml

TCP UDP

http 80 domain
https bootps
telnet bootpc
ssh tftp
ftp snmp
ftp-data ntp
smtp netbios-ns
pop3 netbios-dgm
mysql
http-alt
nfs
sunrpc
netbios-ssn
microsoft-ds


4. Extended ACL

 - ACL 번호 : 100~199
 - 검사 항목 : 출발지/목적지, 프로토콜(ip, tcp, udp, icmp, eigrp, ospf...), 포트 번호...
 - 포트 번호를 안적으면 -> any

 - range 10 21 -> 10 ~ 21


Ex1) 출발지가 ‘13.13.30.3’인 PC가, FTP 서버 ‘13.13.10.100’로 접근하는 트래픽 허용하여라.

프로토콜 출발지 IP 주소 출발지 포트 목적지 IP 주소 목적지 포트


Ex2) 출발지가 ‘13.13.20.3’인 PC가, 웹-서버 ‘13.13.10.100’로 접근하는 트래픽 허용하여라.

프로토콜 출발지 IP 주소 출발지 포트 목적지 IP 주소 목적지 포트


Ex3) 출발지가 ‘13.13.30.3’인 PC가, ‘13.13.10.100’로 Ping 되는 것을 차단하여라.

프로토콜 출발지 IP 주소 출발지 포트 목적지 IP 주소 목적지 포트


Ex4) 출발지가 ‘13.13.30.3’인 PC가, ‘13.13.10.0/24’로 접근하는 트래픽 차단하여라.

프로토콜 출발지 IP 주소 출발지 포트 목적지 IP 주소 목적지 포트


Ex5) RIP 라우팅 업데이트 허용하여라.


Ex6) EIGRP & OSPF 패켓 허용하여라.


Ex7) '13.13.30.3' PC가 웹-서버 '13.13.10.100'으로부터 다운로드하는 트래픽을 차단하여라.

프로토콜 출발지 IP 주소 출발지 포트 목적지 IP 주소 목적지 포트


        인터넷
           │
           │
           │
       13.13.10.0/24          [S1/0]             172.16.1.0/24
PC─────────[F0/0]R1[F0/1]──────────서버
13.13.10.1      172.16.1.1

Ex8) ’13.13.10.0/24’ 네트워크에서 ‘172.16.1.1’으로 접근하는 것을 차단하여라.


Ex9) Extended ACL

① 출발지가 ‘13.13.10.1’ 호스트가 FTP 서버 ‘172.16.1.1’로 접근하는 것을 차단하여라.
② 출발지가 ‘13.13.10.0/24’ 서브넷이 FTP 서버 ‘172.16.1.1’로 접근하는 것은 허용하여라.
③ 외부 사용자가 인터넷을 통하여 ‘172.16.1.1’ 서버로 Telnet 접속하는 것을 차단하여라.
④ 이외 나머지 트래픽들은 접근이 가능하도록 허용하여라.


Ex10) Extended ACL

① 출발지가 ‘13.13.10.1’ 호스트가 웹-서버 ‘172.16.1.1’로 접근하는 것을 차단하여라.
② 출발지가 ‘13.13.10.0/24’ 서브넷이 웹-서버 ‘172.16.1.1’로 접근하는 것은 허용하여라.
③ 외부 사용자가 인터넷을 통하여 ‘172.16.1.1’ 서버로 ping 하는 것을 차단하여라.
④ 단, '172.16.1.1' 서버는 외부로 Ping이 되어야 한다.
⑤ 이외 나머지 트래픽들은 접근이 가능하도록 허용하여라.



Ex11) R1에서 조건에 맞게 Extended ACL를 구성한다. 

- 출발지 네트워크가 ‘13.13.30.0/24’인 트래픽이 내부 로컬 네트워크 ‘13.13.10.1’로 Telnet 접근을 차단하여라.

- 외부에서 내부 서버 ’13.13.10.100’으로 Ping이 되는 것을 차단하여라. 단, '13.13.10.100' 서버는 외부로 Ping이 되어야 한다.

- 출발지 네트워크가 ‘13.13.20.0/24’인 트래픽이 내부 로컬 웹서버 ‘13.13.10.100’으로 접근하는 것을 차단하여라.

- 위에 조건을 제외한 나머지 트래픽은 허용한다.

- 위의 조건을 구성할때에는 최대한 간결하게 ACL를 구성하며, ACL을 R1 Serial 1/0 에 적용하여라.


차단 F -> Desktop -> Command Prompt -> telnet 13.13.10.1
차단 D, F -> Desktop -> Command Prompt -> ping 13.13.10.100
허용 내부 서버 -> Desktop -> Command Prompt -> ping 13.13.20.3, ping 13.13.30.3
차단 D -> Desktop -> Web Browser -> http://13.13.10.100



 

 

 

'네트워크' 카테고리의 다른 글

STP  (0) 2022.05.09
스위치 특징, VLAN  (0) 2022.05.02
동적 경로 OSPF  (0) 2022.04.26
동적 경로 EIGRP 프로토콜  (0) 2022.04.25
Cisco IOS 명령어(4) - 정적 경로, 동적 경로(RIPv1, RIPv2)  (0) 2022.04.23