보안/Network

ACL(Access Control List) & numbered standard ACL

lowcodingpython 2022. 2. 11. 02:34
반응형

What is acl?

인터페이스로 들어오고 나가는 패킷을 분석 및 정해진 규칙에 의거 패킷을 전송 or 차단하여 네트워크 접근제어

표준 ACL : 출발지 IP 주소 만으로 패킷의 허용 및 차단을 결정

확장 ACL : 출발지/목적지 IP 주소, 프로토콜 종류, 출발지/목적지 포트 번호 등을 참조하여 패킷의

허용 및 차단을 결정

Numbered ACL : ACL을 만들 때 번호를 사용하는 방식

Named ACL : ACL을 만들 때 이름을 사용

번호로 사용하는 것은 직관적이지 않으므로 named ACL을 사용하는 것이 좋다.

1) 입력 인터페이스에 트래픽이 도착하면 Inbound ACL의 첫 번째 조건부터 부합하는 체크

2) 조건에 맞는 다현 허용 또는 차단을 결정 허용된 패킷은 계속해서 4단계로 이동하게 되며 차단일 경우 패킷을

폐기한다.

3) 조건에 부합하지 않는다면 다음 조건으로 넘어가서 부합하는 리스트가 나올 때까지 위의 동작을 반복,

패킷이 Inbound ACL 내의 모든 규칙에 맞지 않는다면 폐기

4) Inbound ACl을 통과한 패킷은 라우팅 테이블을 참조하여(Routing lookup) 출구 인터페이스로 전송한다.

5) 만약 출구 인터페이스에서 Outbound ACL이 적용되어 있다면, Inbound ACL과 마찬가지로 설정된 액세스 리스트에 따라 허용 또는 차단한다.

ACL의 규칙

위에 출처 있어요

1) 좁은 범위를 먼저 설정.

-> ACL은 먼저 설정된 문장부터 검사 즉 조건에 맞을 경우 즉시 처리하고 다음 문장은 검사 X

 

2) 자주 부합하는 문장을 먼저 설정. 조건 문장에 맞으면 이후는 무시하기 때문에 ACL의 처리 속도 UP!

3) ACL 설정 완료 후 인터페이스 적용!!!

4) 정의되지 않은 ACL을 인터페이스에 적용 시 해당 ACL은 인터페이스에서 permit any로 동작한다.

5) ACL 마지막에 deny ip any any 문장을 명시하면 폐기되는 패킷의 수량을 확인할 수 있어 공격 여부 파악에 도움

기본 네트워크 구성

 
 

기본 아이피 구성과 OSPF 설정입니다.

 
 

Numbered standard ACL

1 ~ 99, 1300 ~ 1999사이의 번호를 사용

출발지 IP주소만으로 패킷의 허용 여부 판단

R2의 인터페이스 0/1에 출발지 IP주소가 1.1.34.4인 패킷이

내부망으로 전송되는것을 차단

- permit 옵션 해당 패킷 허용

- deny 옵션 차단

즉 IP주소가 1.1.34.4이면 차단하라는 뜻

permit any ??

-> IP주소가 1.1.34.4가 아니면 모두 허용 ( any = '모든 패킷'을 의미)

핑 테스트시 UUU로 뜨는 표시하지 않게 하기

UUU로 표시하게 되면 라우터에 부하를 주고

이것 자체가 DDoS 공격이 되는 것을 막기 위함

show ip access-list을 통해서

차단 or 허용된 패킷을 확인 가능


번호를 사용해서 acl list를 수정

한 권으로 끝내는 firewall 네트워크 보안 방화벽

현재 1.1.34.3의 패킷도 차단하고 싶어 아래와 같이 명령어를 입력했을 때

영어로 뭐라 뭐라 하는 에러 메시지가 표시되는 것을 보신 분들도 있습니다.

[IP 주소 1.1.34.3은 20번 문장의 일부분이며 더 높은 번호로 설정될 수 없다.]

번호를 사용해서 ACL 문장을 삭제 후

show로 확인해 주세요.

show run을 봐도 정의가 안된 것을 확인 가능합니다.


번호를 사용해서 아래와 같이 다시 ACL을 만들어주세요.

여기서 본문에서 하려고 했던 방식입니다.

#ip access-list standard 10 명령어와 함께 ACL 번호를 지정

이후 적당한 순서 번호와 함께 원하는 문장을 설정해 주세요.

저는 1.1.34.3을 막기를 원하기 때문에 아래 사진과 같이 설정했습니다.

show run을 확인해 보시면 아래와 같이 ACL이 수정이 되어 있는 것을 확인 가능합니다.

특정의 문장을 제거하는 방법도 간단합니다.

특정 문장(15) 앞에 no을 해주시면 삭제가 됩니다.

모든 명령어를 수행 후 show로 확인을 해주세요.


standard ACL의 이름 방식을 사용하여 acl 정책을 추가하는 방법입니다.

이름을 사용하여 ACL

1. ip access-list : IP ACL 임을 정의

2. standard 옵션을 사용 : 표준 ACL 임을 정의 및 extended

3. inbound-acl : ACL 이름 정의 (주의 ACL 이름은 대소문자를 구분)

4. int e0/1 : 해당 인터페이스 설정 모드에서 ACL을 적용


ACL 설정 후 핑 테스트

#show ip access-lists로 차단 및 허용된 패킷 수를 확인이 가능합니다.


출발지 IP 주소가 1.1.23.3인 패킷만 허용하기

ACL의 마지막 문장은 실제 명시 여부와 상관없이 항상 deny any입니다.

출발지 IP 주소가 1.1.23.3인 패킷만 허용하는 ACL을 새로 생성하고 deny any 적용해 보기

설정 후에는 R3에서 #ping 1.1.12.1 | R4에서 #ping 1.1.12.1 핑 테스트

named ACL 문장 추가

해당 방식은 저번 번호 ACL에서 많이 보셨을 겁니다.

설정하는 방식은 기존과 동일합니다.

설정 후 핑 테스트!!

순서 번호 재설정

resequence을 사용

1. in-acl : 번호를 정리한 ACL의 이름을 지정

2. 10 : ACL의 처음 문장의 번호를 지정

3. 10 : 번호의 증가폭을 지정

해당 설정 후

#show ip access-lists in-acl을 해보시면 번호의 증가폭이 10단위로 바뀐 것을 확인이 가능합니다.

반응형