Go, Vantage point
가까운 곳을 걷지 않고 서는 먼 곳을 갈 수 없다.
Github | https://github.com/overnew/
Blog | https://everenew.tistory.com/
티스토리 뷰
환경
Cisco packet tracer에서 해당 네트워크를 구성하면서 router ACL에 대해 학습해보자.
네트워크 세팅
이미 IP가 주어졌으므로, 모두 IP 세팅 후 라우터에서는 no sh로 interface를 활성화 시켜주면된다.
라우팅의 경우 단 두개의 라우터만 존재하므로, 모르는 네트워크 대역대는 서로에게 디폴트로 넘겨 책임 전가를 해주자.
ip routing
ip route 0.0.0.0 0.0.0.0 192.168.2.2
ip routing
ip route 0.0.0.0 0.0.0.0 192.168.2.1
ACL 세팅
ACL은 두가지 타입이 존재한다.
수신한 패킷의 내용 중 출발지 주소만 확인하여 필터링하는 방식.
서비스나 특정 트래픽의 구분 없이 필터링하는 경우에 사용한다.
출발지·목적지 주소, 프로토콜과 포트번호까지 확인하여 필터링 하는 방식.
특정 서비스나 트래픽의 구분을 통해 좀 더 상세한 필터링을 할 수 있다.
문제에서 각 PC는 특정 프로토콜 이외에는 접근을 차단당하면 안 된다.
따라서 Extended ACL을 사용해서 풀어야 한다.
Interface ACL Setup
Pc0(사장님)의 htttp 통신만 차단
Pc0(사장님)이 server들로 접근하지 못하게 하기 위해 Router1의 se0/0/0의 inbound에 TCP의HTTP port인 80번을 두 서버로 나가지 못하게 막아주자.
deny tcp 192.168.1.2 0.0.0.0 192.168.3.2 0.0.0.0 eq 80
deny tcp 192.168.1.2 0.0.0.0 192.168.4.2 0.0.0.0 eq 80
- 사실, 회사의 라우터에 설정 권한이 있기 때문에, ISP의 라우터보다는 Router0의 se0/0/0 outbound에 설정해 주는 것이 좋다. 네트워크 대역을 소비하지 않도록 패킷이 아예 나가지 않도록 막는 것도 좋을 것이다.
- Router0의 f0/0의 inbound에서 막는다면, 패킷 검사 후 통과가 필요하므로 성능상 se0/0/0 outbound가 적절하다.
Pc1(좋아)이 server들로 ping통신만 막기
다음으로 Pc1(좋아)이 server들로 핑 통신을 못하게 하기 위해 Router0의 se0/0/0의 outbound에 icmp 프로토콜이 외부로 못 나가게 막아주자.
deny icmp 192.168.1.3 0.0.0.0 any echo #imcp는 포트x니까 없어도 됨.
백본 라우터(router0)의 외부 서버로의 백업은 차단
백본 라우터(router0)가 특정 서버로만 TFTP를 사용하지 못하도록 제어야 한다.
이때 문제가, Cisco 라우터는 자기가 만든 패킷에 대해서는 ACL list를 lookup 하지 않는다.
따라서 Router0의 se0/0/0의 outbound에 다음과 같이 세팅하면,
deny udp 192.168.2.1 0.0.0.0 192.168.3.2 0.0.0.0 eq 69 #TFTP는 udp의 69번 포트
자신의 패킷이므로 source deny 조건에 걸려 drop 될 것 같지만, 필터링하지 않고 통과한다.
이처럼 보안 정책은 자신의 서비스에 적용을 안 하는 디바이스가 있지만, 그렇지 않은 디바이스도 존재하므로 주의가 필요하다.
따라서 Router0의 se0/0/0의 outbound가 아니라 Router1의 se0/0/0의 inbound에 deny 정책을 걸어주어야 제대로 차단이 된다.
세팅 command
하나의 interface의 각 in/out bound에는 여러 개의 정책이 적용되진 못한다.
따라서 하나의 list로 통합해주자.
#Route 0 백본
ip access-list extended sajang
deny icmp 192.168.1.3 0.0.0.0 any echo #imcp는 포트x니까 없어도 됨.
permit ip any any
interface s 0/0/0
ip access-group sajang out
#router1 ISP
ip access-list extended ski
deny tcp 192.168.1.2 0.0.0.0 192.168.3.2 0.0.0.0 eq 80
deny tcp 192.168.1.2 0.0.0.0 192.168.4.2 0.0.0.0 eq 80
deny udp 192.168.2.1 0.0.0.0 192.168.3.2 0.0.0.0 eq 69 #또는 eq tftp
permit ip any any
interface s 0/0/0
ip access-group ski in
성능 논의
동일한 deny를 Router1의 se0/0/0 inboud에서 설정해주는 것이 좋을까?
Router1의 fa0/0 outboud에서 설정해주는 것이 좋을까?
inboud에서 차단해준다면, 라우터 내부에서 Fa0/0으로의 스위치 작업이 필요가 없게 된다.
fa0/0 outboud에서 차단한다면, 라우터 내부에서는 패킷 내부를 뜯어보고 해석해, Fa0/0으로 스위칭 해주는 작업이 진행되야 하므로 리소스의 낭비가 발생할 수 있다.
결과
PC0에서만 HTTP 차단.
PC1에서도 ping 통신 차단.
Router0에서의 server0(네이버)로의 TFTP 서비스 차단.
'개발 > 네트워크 & Ubuntu' 카테고리의 다른 글
Ubuntu server MariaDB 설치 및 내외부접속 (1) | 2024.01.31 |
---|---|
[GNS3] DHCP 서버를 ip helper-address로 다른 네트워크에서 사용하기 (1) | 2024.01.25 |
[GNS3] OSPF와 NAT로 네트워크 구성하기 (0) | 2024.01.23 |
[GNS3] L3 switch Access mode와 Trunk mode (VLAN) (1) | 2024.01.21 |
[GNS3] static Routing 세팅 (VLAN, SubInterface) (1) | 2024.01.21 |