액세스 리스트(Access List) (1)
이번 시간에는 액세스 리스트에 대하여 배워보도록 하겠습니다.
먼저 액세스 리스트란 무엇일까요?
엑세스 리스트란 접근 목록으로, 네트워크에 접근을 허가할지 말지를 정해놓은 리스트로 주로 보안을 위해 사용되고 있습니다.
액세스 리스트는 라우터의 문지기 역할을 하는데 스탠더드 액세스 리스트(Standard Access List), 익스텐디드 액세스 리스트(Extended Access List) 두 가지가 있습니다.
사실 다이나믹 액세스 리스트라고 하나 더 있기는 하나 자주 사용되지 않아 스탠더드와 익스텐디드 위주로 배워보도록 하겠습니다.
스탠다드 액세스 리스트의 특징은 오직 출발지 주소만을 참고하여 통제한다는 점입니다.
즉 출발지 주소만 보고 어디서 왔는지를 파악한 후 통과 여부를 결정합니다.
그에 반해 익스텐디드 액세스 리스트는 출발지, 목적지, 프로토콜, 사용 포트 번호 등등을 본 후 통과 여부를 결정합니다.
아직 전부 배우지도 않았지만 익스텐디드의 경우가 훨씬 보안적이고 복잡하다는 생각이 듭니다.
본격적으로 액세스 리스트를 배우기 앞서 스탠더드 = 출발지, 익스텐디드 = 여러 가지라는 개념은 외우고 가도록 하겠습니다.
자 그러면 액세스 리스트에 규칙에 대하여 배워보도록 하겠습니다.
1. 액세스 리스트는 윗줄부터 하나씩 차례로 수행된다.
말 그래도 액세스 리스트는 가장 위의 명령어를 기준으로 위에서 아래의 순서로 명령어가 실행됩니다.
별 거 아닌것 같지만 액세스 리스트의 중요한 규칙 중 하나이니 주의하셔야 됩니다.
2. 액세스 리스트의 맨 마지막에 line에 "permit any"를 넣지 않을 경우는 default로, 어느 액세스 리스트도 match 되지 않은 나머지 모든 address는 deny 된다.
액세스 리스트의 가장 마지막 줄에는 항상 모든 것을 막는 deny all이 들어가 있습니다.
따라서 어떤 액세스 리스트 항목에도 해당하지 않는 주소는 내려오다 결국 마지막 줄인 deny all에 걸려서 막히게 됩니다.
그러므로 항상 2번 규칙을 생각하고 구성해야 합니다.
3. 액세스 리스트의 새로운 line은 항상 맨 마지막으로 추가되므로 access-list line의 선택적 추가(selective add)나 제거(remove)가 불가능하다.
자 간단한 예를 들겠습니다.
1. 안녕하세요?
2. 만나서 반갑습니다
3. 안녕히 계세요.
이렇게 3가지의 명령어를 적용시킨다고 가정하면 액세스 리스트의 경우는 도중의 추가나 삭제가 되지 않습니다.
즉 내가 두 번째 줄의 '만나서 반갑습니다'라는 명령어를 입력했는데 이 명령어를 '만나서 반가워요'라는 명령어로 바꾸고 싶습니다.
우리가 아는 명령어를 취소하는 방법은 앞에 no를 붙이면 되니 no만 붙이면 두 번째 줄의 명령어가 사라질까요?
정답은 아닙니다.
액세스 리스트의 경우 말씀드린 것처럼 이미 입력된 명령어들 사이의 새로운 명령어를 추가할 수도 삭제할 수도 없습니다.
오히려 no를 사용하게 되면 그동안의 모든 명령어들이 사라지게 됩니다.
그러니 항상 명령어를 입력하실 때 실수하지 않게 조심하셔야 합니다.
4. interface에 대한 액세스 리스트의 정의가 되어 있지 않은 경우(interface에 access-group 명령이 들어있지 않은 경우) 결과는 permit any가 된다.
이 부분도 굉장히 어렵게 느껴지는데 액세스 리스트가 정의되어 있지 않은 인터페이스는 액세스 리스트를 거치지 않고 바로 통과되기 때문에 결과가 permit any가 나온다는 뜻인데 지금은 이런 것도 있구나 하고 보시면 됩니다.
이렇게 액세스 리스트 규칙 4가지를 배워봤는데 예전에 STP 때처럼 하시면 됩니다.
그때도 그랬지만 물론 외우면 좋긴 한데 처음에 보자마자 외우기는 힘들기 때문에 어느 한쪽에 써놓으시고 실습할 때 필요한 경우에 한 번씩 보다 보면 어느 순간부터 이해가 되면서 머릿속에 들어오기 시각 할 겁니다.
다음 시간은 이번 시간에 이어 액세스 리스트에 대하여 계속하여 배워보도록 하겠습니다.
*정리*
액세스 리스트(Access List) : 네트워크에 접근을 허가할지 말지를 정해놓은 리스트
-스탠더드 액세스 리스트, 익스텐디드 액세스 리스트, 다이내믹 액세스 리스트가 있다.
액세스 리스트 규칙
1) 명령어는 위에서부터 아래의 순서로 수행된다
2) 가장 마지막 줄에는 deny all이 생략되어 있다
3) 명령 중간에 새로운 명령을 삽입하거나 이미 입력된 명령을 삭제할 수 없다
4) 액세스 리스트가 정의되어 있지 않은 인터페이스의 결과는 permit all이다