Contents

ACL / Standard ACL

   Dec 15, 2022     5 min read

ACL

ACL (Router 장비)
라우터가 받으면 무조건 in, 나갈때는 out.

  • 하나의 인터페이스에서 나갈 때 ACL을, 들어올 때 ACL을 걸러낼 수 있음.
    라우터를 꼭 방화벽처럼 쓰고 있는 것.
    즉, 외부에서 학원에 특정 네트워크가 들어올 수 있게/없게 설정할 수 있다는 것.

  • 데이터가 들어올 때/나갈 때 자동으로 목록(List)을 체크함. (IN / OUT)
    이 리스트는 우리가 설정하는 것임.

  • 방화벽 개념은 다 비슷함.
    말 그대로 필터링 한다는 의미

  • ACL을 라우터 인터페이스에 설정을 함. 들어올 때/나갈 때 ACL을 걸 수 있다.
    ACL은 문형이 2개임
    숫자에 따른 분류에서 숫자를 조심하자.
    숫자를 이름형식으로도 할 수 있다.


명령어

Standard ACL : 1-99, Only 출발지 IP (혹은 네트워크 주소)

conf t
access-list [1-99] [permit/deny] [출발지IP/네트워크주소] [Wildcard Mask] -> 조건 만들기
interface s1/0 -> 만들고 나서 적용하는 과정
ip access-group [1-99] [in/out]



  • Subnet Mask가 하는 역할?
    -> IP 주소가 있으면 어디까지가 네트워크 주소이고, 호스트 주소인지를 구분해주는 것.
    IP 주소 = Network 주소 자리(비트 1로 표기) + Host 주소 자리(0)
    Network (1) + Host (0)
    ex.
    192.168.10.1 255.255.255.0 -> 192.168.10 + 1
    192.168.10.1 255.255.0.0 -> 192.168 + 10.1
    192.168.10.1 255.0.0.0 -> 192 + 168.10.1
    192.168.10.1 0.255.255.255 (이런 서브넷 마스크는 존재 X)
    192.168.10.1 255.255.0.255 (존재 X)

Wildcard Mask : 조건을 주기 위해서 사용하는 것.


비트로 했을 때, 1은 조건 검사를 하지 않겠다는 것.
비트로 했을 때, 0은 조건 검사를 하겠다는 것.
ex.
192.168.10.1 0.0.0.255 -> 192.168.10.X (0에서 255까지 모두 포함)
192.168.10.1 0.0.255.255 -> 192.168.X.X (3,4번째 자리는 뭐가 오든 관계X)
192.168.10.1 0.255.255.255 -> 192.X.X.X
192.168.10.1 0.255.0.255 -> 192.X.10.X
192.168.10.1 0.0.0.0 -> 192.169.10.1

와일드 카드가 0.0.0.0인 경우 정확하게 ip 주소가 옴.(즉, 특정ip 주소를 의미)
이걸 우리는 의미하는 키워드가 있는데 host 192.168.10.1 -> 192.168.10.1 이라고 나타내기도 한다.

192.168.10.1 255.255.255.255 -> X.X.X.X (그럼 앞에 오는 것이 의미가 없음)
이거랑 같은 건 0.0.0.0 255.255.255.255 -> X.X.X.X (보통 모든 주소를 의미할 때는 ip 주소가 아니라 0.0.0.0을 줌)
이걸 간단한 키워드로 나타내기도 하는데 any -> X.X.X.X


정리

특정 주소 표현
192.168.10.1 0.0.0.0
host 192.168.10.1

모든 주소 표현
192.168.10.1 255.255.255.255
0.0.0.0 255.255.255.255
any

Ex.

access-list 10 permit 192.168.10.1 0.0.0.0
access-list 10 deny 192.168.10.0 0.0.0.255
access-liat 10 permit host 192.168.10.2

interface s1/0
ip access-group 10 out



s1/0에서 10번이 나갈 때 검사할 때,
위에서 밑으로 조건을 하나하나 따짐.
조건에 맞으면 더 이상 밑에 조건을 체크하지 않음.

ex01. 출발지 = 192.168.10.1 (목적지는 신경 쓸 필요X) -> 첫 번째 조건 맞음. permit이기 때문에 나감.
ex02. 출발지 = 192.168.10.2 -> 두 번째 조건 맞음. deny기 때문에 못 나감.
그럼 마지막은 의미가 없어짐. 두 번째에서 걸리기 때문에.
그래서 ACL은 위아래 순서가 중요함!


그렇다면 순서를 바꿔보자.

access-list 10 permit 192.168.10.1 0.0.0.0
access-list 10 permit host 192.168.10.2
access-list 10 deny 192.168.10.0 0.0.0.255


그럼 위로 갈 수록 좁아지고, 밑으로 갈 수록 넓어지는 것이 좋다.

ex03. 출발지 = 192.168.20.1 -> 나가려고 하는데 ACL이 걸려있음.
첫 번째, 두 번째, 세 번째 조건 모두 안 맞음.
조건에 맞는 게 하나도 없으면 전부 다 거름.

항상 ACL 제일 끝에는 눈에는 보이지 않지만

[access-list 10 deny 0.0.0.0 255.255.255.255]


이 조건이 항상 들어가 있음. 우리는 이것을 묵시적인 거부 라고 부름.
즉 조건에 안 맞으면 무조건 거부한다는 뜻.

조건에 안 맞는 것은 다 허용하고 싶으면 마지막 줄에 다 허용해주면 됨.

access-list 10 permit 0.0.0.0 255.255.255.255




Ex01.

17

조건)
우선 1.1.1.1이 2.1.1.1이 ping이 되면
1.1.1.1이 2.1.1.1으로 못 나가게 out 시켜라.
나머지는 다 넘어가게 시켜라.

방법)

access-list 10 deny host 1.1.1.1
access-list 10 permit any

interface e0/1
ip access-goup 1o out


ping 하면 1.1.1.1은 drop.
but 2.1.1.1에서 ping은 in.(in은 아무 관계 없음. 왜냐면 우리는 out을 했음.)
되돌아 갈 때 막히는 것.

Standard ACL은 한 쪽에서 ping이 안 되면 양쪽에서 다 안 되는 것.
3.1.1.1은 통신이 잘 되도록 하기.
1.1.1.1이랑 3.1.1.1은 ping잘 되도록.

결과)

18

19

그럼 router에서 2.1.1.1으로 ping을 하면 ping이 감.
router에서 출발하는 건 2.1.1.2에서 출발하는 것이기 때문임

주의) 라우터를 경유하는 경우에만 ACL이 적용 되어 짐.


20

만약 access-list 10 deny host 2.1.1.1이라면
L3에서 L2를 갈 때는 가지만 out할 때만 안 됨.



Ex02. Standard ACL

21

모든 PC가 다 ping이 되도록.

방법)

access-list 10 deny host 192.168.10.1
access-list 10 deny 192.168.20.0 0.0.0.255
access-list 10 deny 1.1.23.0 0.0.0.255
access-list 10 permit 0.0.0.0 255.255.255.255

interface e0/0
ip access-group 10 out




결과)

22

느김표 = 통신이 잘 되어진다는 뜻.

23

통신이 안 되는 것.

24

25

막혀있다는 뜻.

26

27



참고.

# show run
# show access-list
# show ip access-list


중에 아무거나 확인해도 됨.

# show ip interface e0/0
in/out 중 어디에 걸려 있는지 확인.

유형)
유형1 - 거부 목록 -> 나머지 전부 허용
유형2 - 허용 목록 -> 나머지 전부 거부



Ex. Standard ACL

28


풀이

access-list 30 deny host 192.168.10.1
access-list 30 deny 1.1.12.0 0.0.0.255
access-list 30 permit 0.0.0.0 255.255.255.255

interface e0/1
ip access-group 30 out


access-list 20 permit host 192.168.10.1
access-list 20 permit 1.1.12.0 0.0.0.255

interface e0/0
ip access-group 20 out


궁금한 점) ACL 번호가 다른 데 ping은 어떻게 확인하는 지.
-> 해결 : e0/0랑 e0/1이기 때문에 관계 X