네트워크 구성
GNS ACL LAB Config 파일
- 일반적인 1세대 방화벽(ACL)은 세션을 인지할 수 없다. (Stateless)
- 내부에서 외부로 전송한 패킷의 응답 메시지를 자동으로 허용하는 것이 불가능하다.
- 1세대 방화벽에서 응답 패킷을 수신하기 위한 방법에는 established 옵션과 RACL이 있다.
Established 옵션
- TCP의 경우 RACL을 사용하지 않아도 외부에서 시작되는 세션을 차단할 수 있다.
- established옵션을 사용해 ACK나 RST비트가 설정된 패킷만 허용하면 된다.
41 permit tcp any 1.1.1.0 0.0.0.255 established
1.1.1.0/24 IP 대역이 다른 장비로 먼저 요청을 할 때 방화벽이 established상태를 체크한 후 패킷을 허용한다.
<IOS_FW> conf t ip access-list extended HQ_Access_Rules 41 permit tcp any 1.1.1.0 0.0.0.255 established ! |
클라이언트 테스트
- Win7_A에서 Branch 라우터로 텔넷이 접속되는 것을 확인할 수 있다.
- established 옵션은 TCP 트래픽 중 응답에 관련된 패킷들을 허용할 수 있다.
- established 옵션이 실제 TCP Session을 인지하는 것이 아니라 TCP 헤더의 TCP Flag(제어 비트) 중 응답에 관련된 bit(ex.ACK)가 1인 경우 해당 패킷을 허용한다는 의미이다.
- Win7_B에서 CE 라우터로 텔넷 접속이 실패하는 것을 확인할 수 있다.
- established 옵션의 경우 TCP 프로토콜과 관련된 응답 패킷들은 어느 정도 처리하는 것이 가능하다.
- 다른 네트워크에서 보낸 SYN 비트는 허용하지 않는다.
- TCP를 사용하지 않는 나머지 프로토콜에 대해서는 처리가 불가능하다.
- 공격자가 Ack Bit와 같이 TCP Flag bit를 1로 표기하여 대량의 트래픽을 내부로 전송하는 것도 가능하다.
- 1세대 방화벽 기술에서는 established 옵션을 사용하여 응답 트래픽을 처리하는 것보다 RACL(Reflexive ACL)을 사용하여 응답 트래픽을 처리하는 것이 더 효과적이다.
RACL (Reflexsive ACL)
- RACL의 경우도 1세대 방화벽 기술이기 때문에 Session을 인지하는 것은 불가능하다.
- RACL이 구성된 경우 IOS_FW 라우터는 자신이 전송한 Packet의 So-IP / De-IP주소와 So-Port / De-Port 번호를 확인 후 응답 트래픽을 수신하기 위한 임시 ACL을 생성한다.
- 임시 ACL은 요청 트래픽의 출발지와 목적지를 (출발지 포트 / 목적지 포트 번호)를 역으로 변경한 것이다.
- established 옵션과 다르게 TCP 이외에도 관리자가 지정한 프로토콜에 대한 응답을 수신하는 것이 가능하다. (UDP, ICMP 등)
- 내부에서 제한없이 외부와 통신이 가능하고, 외부에서 내부로의 접속은 차단할 때 사용한다.
IOS_FW Router 설정
- 기존 설정된 Named ACL을 삭제한다.
<IOS_FW> conf t int fa 0/1 no ip access-group extended HQ_Access_Rules in ! no ip access-list extended HQ_Access_Rules |
RACL 설정
permit tcp any any reflect RACL_PACKET
tcp가 외부로 나갈 경우 임시(reflect) ACL을 RACL_PACKET이름으로 생성한다.
eveluate RACL_PACKET
임시 ACL이 들어올 때 RACL_PACKET을 확인한다.
<IOS_FW> conf t ip access-list extended RACL_OUT permit tcp any any reflect RACL_PACKET permit udp any any reflect RACL_PACKET permit icmp any any reflect RACL_PACKET permit ip any any ! ip access-list extended RACL_IN permit ospf host 1.1.100.6 any permit udp any host 1.1.1.250 eq 53 permit tcp any host 1.1.1.251 eq 80 evaluate RACL_PACKET deny ip any any log-input ! int fa 0/1 ip access-group RACL_OUT out ip access-group RACL_IN in ! |
Client 테스트
- Win7_A에서 외부로 통신하는 것을 확인할 수 있다.
- Win7_A에서 Branch 라우터로 텔넷 접근이 가능하다.
- Win7_B에서 Web서버(1.1.1.251)의 도메인 조회가 가능한 것을 확인할 수 있다.
- Win7_B에서 Win7_A로 ICMP 패킷이 이동할 수 없다.
- Win7_B에서 HQ 라우터에 텔넷 접근을 할 수 없다.
- 패킷이 나갈 경우(Out-bound) 임시 ACL을 만들고 들어올 경우(In-bound)는 RACL_IN 정책을 따른다. 그러므로 DNS 조회, 웹 페이지 접근만 가능하다.
- RACL의 경우 1세대 방화벽 기술이기 때문에 세션을 인지하는 것은 불가능하다.
- 단순히 출발지 / 목적지 주소와 포트번호를 반대로 지정한 임시 ACL을 생성할 뿐이다.
- FTP 같은 2개 이상의 포트를 사용하는 동적 포트의 경우 연결을 하지 못한다. (FTP의 경우 Passive Mode로 해결)
https://peemangit.tistory.com/66
FTP 서버에 Passive Mode 접속 확인
<CMD 접속 방법>
C:\ ftp 2.2.2.250 접속 후 로그인
ftp> quote pasv
- Passive Mode로 접속할 경우 정상적인 접속과 파일 내용이 잘 보이는 것을 확인할 수 있다.
FTP 서버에 Active Mode 접속 확인
- 접속하는 포트는 서로 인바운드, 아웃바운드 포트가 일치해서 접속은 성공한다.
- FTP 서버에서 Data-Channel 구성을 위해 포트를 먼저 Client에게 알려 주므로 클라이언트는 해당 패킷을 볼 수 없다.
- FTP 서버에 어떤 데이터가 있는지 확인하지 못하고 데이터 전송도 불가능하다.
- 이러한 문제를 완벽히 해결할 수 있는 방법은 세션을 인지할 수 있는 3세대 방화벽 기술인 SPI(Stateful Packet Inspection)를 사용하는 것이다.
'Network > CIsco Router FW' 카테고리의 다른 글
[Firewall] ZFW(Zone-base Firewall) / ZPF (Zone-based Policy Firewall) 설정 (0) | 2019.11.22 |
---|---|
[Firewall] CBAC(Context-Based ACL) 설정 (0) | 2019.11.21 |
[Firewall] DACL(Dynamic ACL) 설정 (0) | 2019.11.21 |
[Firewall] Extended ACL 방화벽설정 추가기능들 (0) | 2019.11.20 |
[Firewall] Extended ACL(Access Control List) 설정 (0) | 2019.11.20 |
공부&일상 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요! 질문은 언제나 환영입니다😊