SPACE.IN
[ Network ] ACCESS LIST (ACL) / Extended ACL 본문
● 라우터 보안 access list
: 네트워크에 접근 여부를 허용할지 말지를 결정하는 리스트 (필터링)
: 라우터에서 설정한다고 해서 네트워크 계층까지가 아니고 응용계층의 일부분까지도 관리한다.
: 물리 - 응용 계층 모두를 완벽히 막을 수 없기 때문에 UTM과 같은 전문 방화벽 장비를 사용한다
: ACL은 크게 numbered과 named으로 구분 각각 standard와 extended가 있다
표준 ACL 1-99 : 출발지 주소만 참고하여 제어
확장 ACL 100-199 : 출발지, 목적지 주소, 프로토콜, 포트 참고 제어 가능
● ACL 기본 규칙
1) ACL은 맨 윗줄부터 아래로 차례대로 수행
> 그래서 좁은 범위 설정을 먼저 해야한다 그렇지 않으면 모든 패킷이 허용된다
= 전혀 필터링 효과가 없다
ex.
R(config)# access-list 9 deny 125.101.2.0 0.0.0.255
R(config)# access-list 9 permit any
2) 맨 마지막 줄에는 deny any가 생략되어 있다
단 deny로 끝나는 ACL이 있다면 반드시 마지막 줄에 permit 구문을 작성해야한다 그렇지 않으면 모두 거부된다
ex.
R(config)# access-list 12 deny 125.101.2.0 0.0.0.255
>> 요러고 끝내면 안된다는 말인겨
3) 순서대로 입력되고 수행되기 때문에 중간에 삽입, 수정, 삭제가 불가능함
별도의 메모장에서 미리 작성하고 검증을 한 후에 실행하자
4) ACL은 해당하는 인터페이스에 ACL이 정의되지 않으면 동작하지 않는다
5) 언제 적용할 지도 지정해야 한다.
outbound / inbound
● ACL 설정
* ACL 정의 하는 명령어
R(config)# access-list (list 숫자) (permit | deny) {<출발지ip> <와일드카드마스크> | any}
:: list 숫자는 1 - 99 중에 관리자 마음대로 정하는거, 여기서 | 는 또는이란 뜻
* ACL 적용하는 명령어
R(config)# int s0/0
R(config-if)# ip access-group <list 숫자> <in | out> :: inbound , outbound
+ deny any는 맨 끝에 생략되어있다고 생각하면 됨 (permit any는 생략안되어있어서 필요하면 써야함)
+ ACL은 목적지 라우터에서 설정해야한다
ex. 출발지가 210.100.8.0/24인 패킷이 라우터로 들어오지 못하게 설정
R(config)# access-list 7 deny 210.100.8.0 0.0.0.255
R(config)# access-list 7 permit any
R(config)# int s0/0
R(config-if)# ip access-group 7 in : 들어오지 못하게 설정이라서
ex. 출발지가 190.150.82.0/24 인 패킷만 들어오게 설정하세요
R(config)# access-list 7 permit 190.150.82.0 0.0.0.255 :: 이거만 적어도 뒤에 deny any가 생략되어있어서 안써두댐 (R(config)# access-list 7 deny any 생략된거임)
R(config)# int s0/0
R(config-if)# ip access-group 7 in
ex. 출발지가 51.100.92.8/32인 패킷이 외부로 나가지 못하게 설정하세요.
R(config)# access-list 7 deny 51.100.92.8 0.0.0.0
R(config)# access-list 7 permit any
R(config)# int s0/0
R(config-if)# ip access-group 7 out
[ 실습 0 ]
3.1.1.1 주소가 연결되지 않도록 설정
access-list 1 deny 3.1.1.1 0.0.0.0 : ip하나만 막는거라서 0.0.0.0으로 주는거 !
access-list 1 permit any
access-list 2 deny 3.1.1.2 0.0.0.0
access-list 2 permit any
int f0/0
ip access-group 1 out
int f0/1
ip access-group 2 out
[ 실습1 (클라우드) ]
access-list 1 deny any
access-list 2 permit 3.0.0.0 0.255.255.255
access-list 2 deny any
access-list 3 permit 2.0.0.0 0.255.255.255
access-list 3 permit 4.0.0.0 0.255.255.255
access-list 3 deny any
[ 실습 2 (클라우드) ]
access-list 1 deny 192.168.10.1 0.0.0.0
access-list 1 deny 192.168.30.1 0.0.0.0
access-list 1 permit any
192.168.40.1 인터페이스에
int f0/0
ip access-group 1 out
으로 적용
● Extended ACL
(config)# access-list <list number> <permit | deny> ip <출발지 주소> <와일드마스크> <목적지주소> <와일드카드마스크>
(config)# access-list <list number> <permit | deny> <protocol> <출발지 주소> <와일드마스크> <목적지주소> <와일드카드마스크> eq <port번호>
:: 여기서 list num은 100보다 크다잉, 프로토콜 포트마다 다 적용해줘야함, eq = equal
:: 0.0.0.0 와일드마스크대신 host쓸수있음
ex.
R(config)# access-list 222 permit tcp any 201.11.102.10. 0.0.0.0 eq 80
R(config)# access-list 222 permit tcp any host 201.11.102.10 eq 80
+ tcp : ftp 20 21 / telnet 23 / smtp 25 / http 80 / https 443
+ udp : dns 53 / tftp 69 / dhcp 67 38
ex1. 라우터에 들어오는 신호 중 출발지가 192.11.100.0/24이고 목적지가 210.150.6.0/24 네트워크인 트래픽 모두를 차단하시오
R(config)# access-list 120 deny ip 192.11.100.0 0.0.0.255 210.150.6.0 0.0.0.255
R(config)# access-list 120 permit ip any any
ex2. 라우터에 들어오는 것 중 목적지가 210.150.6.0/24 네트워크에 있는 모든 신호들을 차단하세요
R(config)# access-list 130 deny ip any 210.150.6.0 0.0.0.255
R(config)# access-list 130 permit ip any any
ex3. 라우터로 들어오는 신호 중 출발지가 200.101.52.0/24 네트워크만이 129.29.32.0/24 네트워크에 있는 FTP와 Telnet 서버에 접속할 수 있도록 하라
R(config)# access-list 110 permit tcp 200.101.52.0 0.0.0.255 129.29.32.0 0.0.0.255 eq 20
R(config)# access-list 110 permit tcp 200.101.52.0 0.0.0.255 129.29.32.0 0.0.0.255 eq 21
R(config)# access-list 110 permit tcp 200.101.52.0 0.0.0.255 129.29.32.0 0.0.0.255 eq 23
:: permit를 줄때는 맨 마지막 deny 생략가능 (왜? 차피 마지막은 deny 생략되어있는거니까)
ex4. 197.2.13.1/32에서 나가는 트래픽 중 http와 tftp만을 차단하고 나머지는 모두 허용해라
R(config)# access-list 111 deny tcp host 197.12.13.1 any eq 80
R(config)# access-list 111 deny udp host 197.12.13.1 any eq 69
R(config)# access-list 111 permit ip any any
ex5. 들어오는 트래픽 중 목적지가 http서버 (201.11.102.10) ftp서버 (192.20.81.1)인 트래픽만 들어올 수 있도록 설정하시오
R(config)# access-list 222 permit tcp any host 201.11.102.10 eq 80
R(config)# access-list 222 permit tcp any host 192.20.81.1 eq 20
R(config)# access-list 222 permit tcp any host 192.20.81.1 eq 21
[ 실습 1 (클라우드) ]
access-list 100 deny tcp host 192.168.10.1 host 192.168.30.1 eq 80
access-list 100 permit icmp host 192.168.10.1 host 192.168.30.1
access-list 100 deny icmp host 192.168.20.1 host 192.168.30.1
access-list 100 permit tcp host 192.168.20.1 host 192.168.30.1 eq 80
server가는 인터페이스에
int f1/0
ip access-group 100 out
확인) pc에서 web-browser, command prompt사용해서 확인
[ 실습2 (클라우드)]
1) dns서버에 dns > http://www.naver.com / http://www.ftp.com
2) pc에 dns서버 ip 주기 223.255.255.1
3)
access-list 100 permit tcp host 192.168.10.1 host 191.255.255.1 eq 80
access-list 100 permit tcp host 192.168.20.1 host 191.255.255.1 eq 21
access-list 100 permit icmp host 1.1.1.1 host 191.255.255.1 echo
만들고 서버 쪽으로 하기
4) int f0/1
ip access-group 100 out
[ 실습 3 (클라우드) ]
access-list 100 permit tcp host 192.168.10.1 host 192.168.20.1 eq 80
access-list 100 deny tcp 192.168.10.0 0.0.0.255 host 192.168.20.1 eq 80
access-list 100 permit ip any any
서버쪽으로가는 인터페이스
int f0/0
ip access-group 100 out
'Network' 카테고리의 다른 글
[ Network ] OSPF 수동축약 / 가상링크 (0) | 2024.08.22 |
---|---|
[ Network ] OSPF 수동축약 / virtual link (0) | 2024.08.22 |
[ Network ] 스위치 보안 (0) | 2024.08.13 |
[ Network ] 실습 _ OSPF (인증, 재분배) (0) | 2024.08.08 |
[ Network ] SWITCH / trunk (0) | 2024.08.07 |