ZONES
인터페이스가 곧 영역
ETH1 외부 203.0.113.2/29, ETH2 내부 10.10.10.1/30, ETH3 DMZ 172.16.10.1/24. 내부 대역으로 가는 복귀 경로는 L3 로 보냅니다.
// WHAT WE BUILT
ZONES
ETH1 외부 203.0.113.2/29, ETH2 내부 10.10.10.1/30, ETH3 DMZ 172.16.10.1/24. 내부 대역으로 가는 복귀 경로는 L3 로 보냅니다.
NAT
내부 직원은 SNAT 로 203.0.113.10 하나를 공유해 나가고, 외부에서는 203.0.113.20 으로 들어와 DMZ 웹 서버에 닿습니다.
ADMIN
방화벽 GUI · SSH 는 보안 담당자 PC 192.168.10.50 에서만. 5회 실패 시 10분 잠금, 10분 무입력 시 세션 종료.
// CONFIGURATION
장비에 입력한 순서 그대로입니다. 계정 비밀번호는 공개 사이트라 가렸습니다.
#> admin
/admin #> initconf
/admin #> exit
#> system
/system #> reboot
// GUI: https://[interface IP]:50005ETH1 External 203.0.113.2/29
ETH2 Internal 10.10.10.1/30
ETH3 DMZ 172.16.10.1/24
!
192.168.10.0/24 → 10.10.10.2
192.168.20.0/24 → 10.10.10.2
192.168.30.0/24 → 10.10.10.2
0.0.0.0/0 → 203.0.113.1 (ISP)SNAT-USER-OUT src 192.168.10.0/24, 192.168.20.0/24 → 203.0.113.10 (PAT) DNAT-WEB-IN 203.0.113.20 : TCP 80, 443 → 172.16.10.10
// PACKET FILTERING
정책은 순서대로 평가됩니다. 차단을 가장 위에, 기본 거부를 가장 아래에 두었습니다.
| # | 정책 | 조건 | 동작 |
|---|---|---|---|
| 1 | BLOCK-MALICIOUS-IN | 210.95.199.0/24 → any | DENY |
| 2 | BLOCK-MALICIOUS-OUT | any → 210.95.199.0/24 | DENY |
| 3 | MGMT-ALLOW | 192.168.10.50 → 방화벽 (HTTPS · SSH) | ALLOW |
| 4 | MGMT-DENY | any → 방화벽 (HTTPS · SSH) | DENY |
| 5 | EXT-to-WEB | any → 203.0.113.20 (80, 443) | ALLOW |
| 6 | ADMIN-to-WEB-SSH | 192.168.10.50 → 172.16.10.10:2222 | ALLOW |
| 7 | WEB-to-DB-MYSQL | 172.16.10.10 → 192.168.30.20:3306 | ALLOW |
| 8 | EXT-to-SERVERFARM-DENY | 외부 → 192.168.30.0/24 | DENY |
| 9 | DENY-DMZ-to-INSIDE | 172.16.10.0/24 → 192.168.0.0/16 | DENY |
| 10 | LOG-to-LOGSRV | Web · DB · 사용자 → 192.168.30.30:514 | ALLOW |
| 11 | NTP-OUT | 전 대역 → time.bora.net:123/UDP | ALLOW |
| 12 | USER-to-INTERNET | 192.168.10/20.0/24 → any (80, 443, 53) | ALLOW |
| 99 | DEFAULT-DENY-ALL | any → any | DENY |
// VERIFICATION
CB-L3-SW# ping 10.10.10.1
!!!!! Success rate is 100 percent (5/5)
user-pc$ curl -s https://ifconfig.me
203.0.113.10 ✓ SNAT
outside$ curl -I http://203.0.113.20
HTTP/1.1 200 OK ✓ DNAT → WEB
other-pc$ curl -k https://10.10.10.1:50005
curl: (28) Connection timed out ✓ MGMT-DENY// PITFALLS
| 증상 | 원인 | 해결 |
|---|---|---|
| GUI 접속 안 됨 | 443 으로 접속 | 포트 50005 필수 |
| ETH0 변경 후 끊김 | 접속 중인 인터페이스 변경 | 바뀐 IP 로 재접속 |
| 허용했는데 막힘 | 정책 순서 | 위에서부터 먼저 맞는 규칙 적용 |