Named ACL / Extended ACL
Named ACL
- ACL은 인터페이스별, 방향별(IN/OUT), 프로토콜별(ip, ipx 등)로 설정 가능함.
- ACL은 위에서 아래로 조건이 맞을 때까지 검사함
-> 조건에 맞으면 더 이상 아래로 조건 검사 X 라우터를 경류하는 패킷만 ACL로 필터링 할 수 있음.
(바로 나가는 경우는 ACL 적용 X)- interface에서 삭제할 경우는 명령어 앞에 no만 붙이면 됨.
- 숫자는 하나만 지우면 다 지우면 되고, interface 안에 들어가서 꼭
no ip access-group 30 out
을 해 줘야 함. 그렇지 않으면 묵시적 거부가 있기 때문에 다
거부
됨.- 숫자 형태로 만든 것을
Numbered ACL
이라고 한다. - 이것을 우리는
Named ACL
로 바꿔 보려고 한다.
Named ACL 명령어
conf t
ip access-list standard cisco1
deny host 192.168.10.1
deny 1.1.12.0 0.0.0.255
permit 0.0.0.0 255.255.255.255
interface e0/1
ip access-group cisco1 out
conf t
ip access-list standard cisco2
permit host 192.168.10.1
permit 1.1.12.0 0.0.0.255
interface e0/0
ip access-group cisco2 out
# show access-list
앞 번호는 자동으로 찍히는 것임.
숫자 형태는 제일 마지막에 추가되어 지는 것임.
중간에 ACL 명령어 삽입 안 됨.
그러나 Named 같은 경우에는 원하는 곳에 추가가 가능함.
10번과 20번 사이에 넣고 싶을 때,
ip access-list standard cisco1 에 들어가서
15 deny 1.1.23.0 0.0.0.255 이렇게 하면
순서적으로 봤을 때 15번은 10번과 20번 사이에 들어간다.
다시 # show access-list 하면 순서가 바뀌어져 있을 것임.
마찬가지로 제거하고 싶을 때,
ip access-list standard cisco1 에 들어가서 하면 됨.
ex. no 20 하면 20번이 사라짐.
확인할 때는 마찬가지로 # show access-list 로 확인하면 됨.
Extended ACL
Extended ACL : 100-199, 출발지IP/목적지IP/프로토콜/포트번호
access-list [100-199] [permit/deny] [protocol] [출발지IP] [Wildcard Mask] [목적지IP] [Wildcard] eq [Port 번호]
interface s1/0
ip access-group [100-199] [in/out]
eq = equal
[protocol]….[목적지 IP] [Wildcard] eq [Port 번호] 가 추가 됨.
참고
- Protocol : IP, ICMP, TCP, UDP ……. 多
- Port 번호
- TCP : HTTP(80), TELNET(23), SSH(22), FTP(21/20), DNS(53), SMTP(25), POP3(110) ……..多
- UDP : TFTP(69), DNS(53), SNMP(161,162) ……..多
프로토콜은 하나의 규약, 하나의 규칙, 즉 특정 역할을 하는 프로그램이라 생각하자.
프로토콜들은 자신만의 고유한 기능을 함.
ping하기 위해선 ICMP 프로그램이 각각 다 들어가 있어야 함.
[protocol] 자리에 TCP, UDP가 있는 경우 eq [Port 번호]가 들어감.
ex. [TCP] ….. eq [80] - TCP의 80번 방.
[protocol] 자리에 IP가 들어가면 eq [Port 번호]가 들어가지 않음.
방 하나하나가 포트번호임.
TCP는 웹 서버를 이용함. 웹 서버는 TCP 80번임.
이렇게 서버들은 대부분 포트 번호가 기본 값으로 정해져 있다.
DNS(53) - UDP : 이름 질의
DNS(53) - TCP : 서버 간 데이터 복제할 때
Ex.
access-list 100 permit ip host 1.1.1.1 host 2.2.2.2
access-list 100 permit tcp 192.168.10.0 0.0.0.255 host 3.3.3.3 eq 80
access-list 100 permit tcp host 2.2.2.2 192.168.30.0 0.0.0.255 eq 23
access-list 100 permit icmp host 3.3.3.3 host 4.4.4.4
access-list 100 permit udp host 1.1.1.1 host 2.2.2.2 eq 53
[access-list 100 deny op any any]
interface e0/1
ip acess-group 100 out
출발지 : 1.1.1.1 / 목적지 : 2.2.2.2 -> 첫 번째 조건 -> 2.2.2.2 PC에 있는 모든 방을 허용
ip를 허용 -> 다 허용- 두 번째 조건 : 3.3.3.3에 있는 80번 방에만 접근이 가능한.
- 세 번째 조건 : 2.2.2.2는 30점대로 시작하는 23번 방 가능한.
icmp = ping을 말함. - 네 번째 조건 : 3.3.3.3에서 4.4.4.4로 가는 ping을 허용한다는 의미.
4.4.4.4에 있는 모든 것 들어갈 수 X. 그냥 ping만 가능한 것. 즉, 갔다가 오는 것만 되는 것이지 방에 들어갈 수 있다는 것을 의미하지는 않음. - 다섯번째 조건 : 2.2.2.2의 포트 53을 의미함. 만약 eq가 1.1.1.1 바로 뒤에 붙었다면 1.1.1.1의 포트 53을 의미함. 즉, 2.2.2.2의 53을 허용한다는 의미.
항상 눈에 안 보이는 '묵시적 거부'가 있음을 기억할 것.
Ex.01
방법)
access-list 100 permit tcp host 192.168.10.1 host 192.168.20.1 eq 80
[access-list 100 deny icmp host 192.168.10.1 host 192.168.20.1]
interface e0/1
ip access-group 100 out
결과)
오류 발생)
httpd로 해야 하는데 http로 해 버림.
오류 해결)
Ex. 명령어 3개만 사용
마지막은 access-list 100 permit ip 192.168.20.0 0.0.0.255 192.168.10.0 0.0.0.255 이걸로 하기
223은 그러면 접근이 안 됨.
방법 01 - Standard
access-list 100 permit tcp host 192.168.20.1 host 192.168.10.1 eq 80
access-list 100 deny tcp 192.168.20.0 0.0.0.255 host 192.168.10.1 eq 80
access-list 100 permit ip 192.168.20.0 0.0.0.255 192.168.10.0 0.0.0.255
interface e0/0
ip access-group 100 out
cf. 다른 방법 01-01
access-list 100 deny tcp any host 192.168.10.1 eq 80
방법 02 - Named
ip access-list extended cisco1
permit tcp host 192.168.20.1 host 192.168.10.1 eq 80
deny tcp 192.168.20.0 0.0.0.255 host 192.168.10.1 eq 80
permit ip 192.168.20.0 0.0.0.255 192.168.10.0 0.0.0.255
interface e0/0
ip access-group cisco1 out
Ex.
DNS 질의는 되는데 ping은 불가능
- W10만 도메인 이름을 사용하여 웹 서버에 접근 되기를 원함. (DNS 이름 질의 -> 3대 다 접근)
- W11 / W12 단지 IP 주소로는 접근 되기를 원함. (DNS 이름 질의 X, IP 주소로만 접근 가능)
- 나머지는 전부 거부.
조건)
- 192.168.20.1 만 도메인 이동을 이용해 웹 서버에 접근 가능
- 192.168.20.2 / 192.168.20.3은 IP 주소를 이용해 웹 서버에 접근 가능
- 나머지는 전부 거부
방법)
R1)
access-list 100 permit ip 192.168.20.0 0.0.0.255 192.168.10.0 0.0.0.255
interface e0/0
ip access-group 100 out
R3)
access-list 100 permit udp host 192.168.20.1 host 223.255.255.1 eq 53
interface e0/0
ip access-group 100 out
Ex. Build Up
ICMP = ping
순서.
- 모두 ping이 가도록
- HTTP 서버 / DNS 서버 설정
- DHCP Client 예약하기 (주소 반납/받기/제외 주소)
- ACL OUT 설정하기
방법)
R2)
오른쪽 - 오른쪽 domain으로 가능
access-list 100 permit udp host 192.168.40.1 host 223.255.255.1 eq 53
access-list 100 permit udp host 192.168.40.2 host 223.255.255.1 eq 53
interface e0/0
ip access-group 100 out
오른쪽 ip으로 불가능
access-list 100 deny ip host 192.168.40.1 host 223.255.255.1
access-list 100 deny ip host 192.168.40.2 host 223.255.255.1
interface e0/0
ip access-group 100 out
오른쪽 ping 가능 / 나머지는 전부 불가능
access-list 100 permit icmp host 192.168.40.1 host 223.255.255.1
access-list 100 permit icmp host 192.168.40.2 host 223.255.255.1
access-list 100 deny icmp 192.168.40.0 0.0.0.255 host 223.255.255.1
interface e0/0
ip access-group 100 out
왼쪽 - 왼쪽 domain으로 불가능)
access-list 100 deny udp host 192.168.10.10 host 223.255.255.1 eq 53
access-list 100 deny udp host 192.168.10.20 host 223.255.255.1 eq 53
access-list 100 permit any
interface e0/0
ip access-group 100 out
왼쪽 ip을 가능
access-list 100 permit ip host 192.168.10.10 host 223.255.255.1
access-list 100 permit ip host 192.168.10.20 host 223.255.255.1
interace e0/0
ip access-group 100 out
왼쪽 ping 불가능/ 나머지는 전부 허용
access-list 100 deny icmp host 192.168.10.10 host 223.255.255.1
access-list 100 deny icmp host 192.168.10.20 host 223.255.255.1
access-list 100 permit icmp 192.168.10.0 0.0.0.255 host 223.255.255.1
interface e0/0
ip access-group 100 out
나와야 하는 결과.
왼쪽)
http://223.255.255.1 - O
http://www.x.com - X
ping 223.255.255.1 - X
ping www.x.com - X
오른쪽)
http://223.255.255.1 - O
http://www.x.com - O
ping 223.255.255.1 - O
ping www.x.com - O
오류 발생
ip 가 제일 크기 때문에 마지막으로 ACL을 해줘야 함.
domain >= http >= icmp >= ip
바꾼 방법) domain >= http >= icmp >= ip
오른쪽 - 오른쪽 domain으로 가능)
access-list 100 permit udp 192.168.40.0 0.0.0.255 host 223.255.255.1 eq 53
interface e0/0
ip access-group 100 out
오른쪽 http 가능
access-list 100 permit tcp 192.168.40.0 0.0.0.255 host 223.255.255.1 eq 80
interface e0/0
ip access-group 100 out
오른쪽 ping 가능 / 나머지는 전부 불가능
access-list 100 permit icmp 192.168.40.0 0.0.0.255 host 223.255.255.1
interface e0/0
ip access-group 100 out
오른쪽 ip으로 불가능
access-list 100 deny ip 192.168.40.0 0.0.0.255 host 223.255.255.1
interface e0/0
ip access-group 100 out
왼쪽 - 왼쪽 domain으로 불가능)
access-list 100 deny udp 192.168.10.0 0.0.0.255 host 223.255.255.1 eq 53
interface e0/0
ip access-group 100 out
왼쪽 http 가능
access-list 100 permit tcp 192.168.10.0 0.0.0.255 host 223.255.255.1 eq 80
interface e0/0
ip access-group 100 out
왼쪽 ping 불가능 / 나머지는 전부 허용
access-list 100 deny icmp 192.168.10.0 0.0.0.255 host 223.255.255.1
interface e0/0
ip access-group 100 out
왼쪽 ip으로 가능
access-list 100 permit ip 192.168.10.0 0.0.0.255 host 223.255.255.1
interface e0/0
ip access-group 100 out