액세스 리스트 종류
- Standard ACL(표준 ACL): 출발지 IP 주소만으로 허용/차단 결정
- Extended ACL(확장 ACL): 출발지/목적지 IP 주소, 포트 번호, 프로토콜 종류로 필터링
이와 별개로 ACL 이름을 짓느냐 숫자로 정하느냐에 따라 구분할 수 있다.
- named ACL: ACL에 관련된 이름 붙여주기
- numbered ACL: 숫자만 붙여주기 → 덜 직관적이므로 되도록 named를 사용하기
액세스 리스트 동작 순서
트래픽이 들어오면
- Inbound ACL의 첫 번째 조건부터 검사
- 차단에 해당하면 → 폐기
- 허용에 해당하면 → 2번으로
- Routing Lookup: 라우팅 테이블을 참조해 출구 인터페이스로 전송
- Outbound ACL이 적용된 경우 마찬가지로 첫 번째 조건부터 검사하여 허용 또는 차단
액세스 리스트 규칙
- 좁은 범위의 문장을 먼저 설정
- 조건에 맞을 경우 즉시 처리하여 다음으로 넘어가지 않기 때문
- 자주 부합하는 문장을 먼저 설정
- ACL 설정을 완료한 뒤에 인터페이스에 적용
- 정의되지 않은 ACL을 인터페이스에 적용하면 permit ACL로 동작
- 기본적으로 모든 ACL의 마지막 문장 다음에는 deny any가 묵시적으로 적용되어 있음. 따라서 permit이 하나도 없으면 모든 패킷을 차단. deny ip any any를 명시하면 폐기되는 패킷 수량 확인 가능
표준 액세스 리스트
- numbered 표준 액세스 리스트의 경우 1 - 99, 1300 - 1999 사이의 번호 사용
- 출발지 IP 주소만 가지고 필터링
보통 ACL은 내부망과 외부망을 연결하는 경계 라우터의 외부망 인터페이스에서 입력방향으로 설정하는 것이 일반적.
실습
R1, R2가 내부망이고 R2의 fa0/1에서 들어오는 쪽에 ACL을 걸어준다.
access-list 1 deny 1.1.34.4
access-list 1 permit any
int fa0/1
ip access-group 1 in

그럼 R4에서 R1으로 핑을 보낼 경우 아래와 같이 U로 표시되며 차단된다. 모든 패킷에 U가 표시되지 않는 이유는 표시하는 것이 라우터에 부하를 주기 때문에 이 자체가 DDos 공격이 되지 않도록 하기 위함이다.

패킷 차단 메시지 보내지 않기
아래와 같이 no ip unreachables를 해당 인터페이스에 설정하면 차단되는 패킷에 대해 U라고 표시하지 않는다.

그냥 점으로 나오는 모습.

차단 또는 허용된 패킷 확인
show ip access-list

액세스 리스트 삭제
no access-list 1 permit any로 permit any 문장을 삭제하면 ACL 자체가 삭제된다.

- 그러나 아래와 같이 인터페이스에는 그대로 적용되어 있다.

numbered acl은 위와 같이 특정 문장 수정이나 삭제가 까다로우므로 전체를 복사하는 게 낫다.
아니면 아래와 같이 적당한 순서의 번호를 지정하여 끼워넣는 방법이 있다.
ip access-list standard 10
15 deny 1.1.34.3
정렬이 안되어 보이는 이유는 입력 방식이 서로 달랐기 때문이라고 함. (챗 지피티 피셜) 어차피 시퀀스 번호대로(10→15→20) 검사하기 때문에 상관 x

show run | section access-list 10으로 확인하면 아래와 같이 나옴

ip access-list standard 명령어는 시퀀스 번호 기반으로 삽입하는 거라서, 여기서 no 번호를 통해 특정 문장만 삭제할 수 있다.
Named ACL 설정
ip access-list standard [이름]
deny 1.1.34.4
permit any
int fa0/1
ip access-group [이름] in
Named ACL 수정
ip access-list standard [이름]
15 deny 1.1.34.3 # 적당한 순서의 문장 설정
exit
순서 수정
표준 ACL에서는 앞에서 본 바와 같이, 내가 지정한 순서번호와 상관없이 IOS에 의해 문장 순서가 지정되는 경우가 있음. 시스템을 재부팅하거나 다음 명령어를 쓰면 다시 번호가 매겨짐
ip access-list resequence [이름] [첫 시작 번호] [증가폭]
ip access-list resequence in-acl 10 10

특정 문장 삭제
ip access-list standard in-acl
no 10
와일드 카드 마스크
- 반드시 일치해야 하는 부분은 0
- 일치하지 않아도 되는 부분은 1