ACL(Access control list)
라우터를 경유하는 packet을 IP, TCP, UDP 헤더를 검사하여 패킷을 허용하거나 거부하는 IP Packet filter를 구성한다.
ACL생성이유
1. 네트워크 트래픽을 젷나하고 네트워크 성능을 증진시킨다.
2. 트래픽 흐름을 제어한다.
3. 네트워크 접근에 대한 기본적인 보안 레벨을 제공한다.
4. 어떤 트래픽 유형이 라우터의 인터페이스에서 전송할 것인지 차단될 것인지 결정한다.
IP Header
Source IP address
Destination IP address
TCP Header
Source port
Destination port
Flag(syn ack fush fin res urg)
UDP Header
Source port
Destination port
제어를 위해 꼭 알아야할 Application port 정보
FTP : control 21 data 20
Telnet : 23
SSH : 22
SMTP : 25
POP3 : 110
DNS : 53
HTTP : 80
TFTP : 69
DHCP : server 68 client 67
ACL 설정작업
-전역설정모드(Global configuration mode)에서 ACL 생성한다.
-허락할 IP 프로토콜을 정의하고 다른 프로토콜은 거부
-어떤 프로토콜을 검사할 것인지 선택 나머지 프로토콜은 거부
-인터페이스에 ACL 적용
Standard ACL
출발지 IP만 검사해서 허용하거나 거부하는 항목을 만든다.
Extended ACL
출발지 목적지 IP 프로토콜, 프로토콜 옵션을 검사해서 허용하거나 거부하는 항목을 만든다.
생성된 리스트는 다양한 곳에 적용을 해야한다. 즉 리스트만 생성한 경우 라우터는 아무런 필터링도 하지 않는다. Interface에 List를 적용하면 Interface 로 Inbound 되거나 Outbound 되는 Packet을 허용, 거부 할 수 있다.
Standard ACL 생성
router(config)# access-list <list-number> <permit/deny> <source IP address> <wildcardmask>
List-Number : 1~99 1300-1999
ex) 192.168.1.0/24 Network 거부하기
router(config)# access-list 1 deny 192.168.1.0 0.0.0.255
router(config)# access-list 1 permit any
ex) 192.168.1.1 host Network 허용하기
router(config)# access-list 2 permit 192.168.1.1
Standard ACL 생성시 주의사항
1.standard는 Source IP만 검사하기 때문에 목적지를 확인할 수 없다. 그래서 제어 적용시에는 Outbound interface에 적용한다.
2. First Matching 기법을 사용함으로 좁은 범위 설정이 먼저 되어야 한다.
3. ACL가 생성되는 경우 리스트는 암시적으로 모두 거부이다. 그러므로 일부 거부 후 나머지를 허용하고자 하는 경우 Access-list 10 ermit any를 항상 마지막에 선언해야한다.
일부를 허용하고 나머지를 거부하는 경우에는 암시적 거부이기 때문에 선언해줄 필요가 없다.
4. ACL 한번 생성한 후에는 변경이 불가능하다. 수정할 수 없기 때문에 노트패드에 미리 리스트를 만들고 Copy & Paste 기능을 이용하여 설정한다.
Standard ACL 제어하기
192.1681.0/24 Network를 Telnet제어하기
router(config)# access-list 10 deny 192.168.1.0 0.0.0.255
router(config)# access-list 10 permit any
router(config)# line vty 0 4
router(config-line)#
Telnet 제어하기
R11(config)# access-list 1 deny host 192.168.2.2
R11(config)# access-list 1 permit any
R11(config)# line vty 0 4
R11(config-line)# access-class 1 in
R12(config)# access-list 1 deny host 192.168.2.1
R12(config)# access-list 1 permit any
R12(config)# line vty 0 4
R12(config-line)# access-class 1 in
R11(config)# access-list 2 permit 192.168.1.0 0.0.0.255
R11(config)# line vty 0 4
R11(config-line)# access-class 1 in
R12(config)# access-list 2 permit 192.168.3.0 0.0.0.255
R12(config)# line vty 0 4
R12(config-line)# access-class 1 in
FTP 제어하기
R11(config)# access-list 3 deny 192.168.3.0 0.0.0.255
R11(config)# access-list 3 permit any
R11(config)# interface ethernet 0
R11(config-if)# ip access-group 3 out
FTP 제어하기
R12(config)# access-list 3 deny 192.168.1.0 0.0.0.255
R12(config)# access-list 3 permit any
R12(config)# interface ethernet 0
R12(config-if)# ip access-group 3 out
Extended ACL 생성하기
router(config)# access-list <permit/deny> <list-num> <protocol> <Source address><Wildcardmask> <Destination address><Wildcardmask> <option>
List-Number : 100-199 2000-2699
Extended ACL 생성시 주의사항
1. ACL 적용은 inbound interface에 적용한다.
2. First Matching 기법을 사용함으로 좁은 범위 설정이 먼저 되어야 한다.
3. ACL가 생성되는 경우 리스트는 암시적으로 모두 거부이다. 그러므로 일부 거부 후 나머지를 허용하고자 하는 경우 Access-list 10 ermit any를 항상 마지막에 선언해야한다.
일부를 허용하고 나머지를 거부하는 경우에는 암시적 거부이기 때문에 선언해줄 필요가 없다.
4. ACL 한번 생성한 후에는 변경이 불가능하다. 수정할 수 없기 때문에 노트패드에 미리 리스트를 만들고 Copy & Paste 기능을 이용하여 설정한다.
ex) IP 제어하기
192.168.1.0/24 Network 는 192.168.2.0/24 Network로 Packet을 전달할 수 없다.
router(config)# access-list 100 deny ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255
router(config)# access-list 100 permit ip any any(이거 해주지않으면 전체거부가 될 수 있기때문에 해준다.)
ex) 회사 내부에서 사용자가 HTTP 허용 FTP, TFTP, Telnet는 거부하는 항목을 만드시오.
router(config)# access-list 101 deny tcp 192.168.1.0 0.0.0.255 any eq 20
router(config)# access-list 101 deny tcp 192.168.1.0 0.0.0.255 any eq 21
router(config)# access-list 101 deny ucp 192.168.1.0 0.0.0.255 any eq 69
router(config)# access-list 101 deny tcp 192.168.1.0 0.0.0.255 any eq 23
router(config)# access-list 101 permit ip any any
ex)회사 내부에서 사용자(192.168.1.0/24)가 HTTP 허용 나머지 거부하는 항목을 만드시오.
router(config)# access-list 102 permit tcp 192.168.1.0 0.0.0.255 any eq 80
Telnet 제어하기
R11(config)# access-list 100 deny tcp 192.168.3.0 0.0.0.255 host 192.168.2.1 eq 23
R11(config)# access-list 100 permit ip any any
R11(config)# interface serial 1
R11(config-if)# ip access-group 100 in
R12(config)# access-list 100 deny tcp 192.168.1.0 0.0.0.255 host 192.168.2.2 eq 23
R12(config)# access-list 100 permit ip any any
R12(config)# interface serial 1
R12(config-if)# ip access-group 100 in
WEB Server만들기
router(config)# ip http server
router(config)# ip http authentication local
router(config)# username root privilege 15 password cisco
접속할때는 serial 주소로 접속한다.........
R11(config)# access-list 102 deny tcp 192.168.3.0 0.0.0.255 192.168.2.1 eq 80
R11(config)# access-list 102 permit ip any any
R11(config)# interface serial 1
R11(config)# access-group 102 in
R12(config)# access-list 102 deny tcp 192.168.1.0 0.0.0.255 192.168.2.2 eq 80
R12(config)# access-list 102 permit ip any any
R12(config)# interface serial 1
R12(config)# access-group 102 in