
1. IP 설정 및 Routing 설정
- SRX -
# Untrust Interface (WAN)
set interfaces ge-0/0/0 unit 0 family inet address 192.168.123.170/24
# Trust Interface (LAN)
set interfaces ge-0/0/2 unit 0 family inet address 172.30.0.1/24
# Default Routing (VM 8 Adapter)
set routing-options static route 0.0.0.0/0 next-hop 192.168.123.2
commit
- Linux -


테스트를 위해 host-inbound-traffic 허용
set security zones security-zone untrust host-inbound-traffic system-services ping
set security zones security-zone untrust host-inbound-traffic system-services https
set security zones security-zone untrust host-inbound-traffic system-services ssh
set security zones security-zone untrust host-inbound-traffic system-services http
commit
- 접속 확인 완료
Web 접속을 하기 위해서는 인터페이스를 지정해야한다.
set system services web-management https interface ge-0/0/0.0
set system services web-management https system-generated-certificate
commit

- 지정을 하지 않으면 접근 거부된다.

2. Zone 지정
- SRX -
Untrust와 Trust에 인터페이스를 할당한다.
set security zones security-zone trust interfaces ge-0/0/2.0
set security zones security-zone untrust interfaces ge-0/0/0.0
SRX의 Trust IP로 통신을 위해서는 위에서와 마찬가지로 추가 설정이 필요하다.
set security zones security-zone trust host-inbound-traffic system-services ping
- 이 설정을 다시 지우면 서비스 허용이 삭제되어 ping이 되지 않는다.

3. 정책 설정
- 화이트리스트 정책의 일환으로 필요한 것만 열고 전부 닫는 정책을 수립해본다.
- Linux에서 웹 서핑만 가능하도록 구성해본다.
- 웹 서핑 정책 -
- Trust 대역을 address-book으로 그룹화한다.
- 출발지는 Trust 대역에서 목적지는 any / 웹서핑에 필요한 포트(80,443,53) 을 지정
- 위 룰이 전부 match되면 허용하고 log를 남긴다.
set security zones security-zone trust address-book address TRUST_NET 172.30.0.0/24
set security policies from-zone trust to-zone untrust policy permit-WEB match source-address TRUST_NET
set security policies from-zone trust to-zone untrust policy permit-WEB match destination-address any
set security policies from-zone trust to-zone untrust policy permit-WEB match application junos-https
set security policies from-zone trust to-zone untrust policy permit-WEB match application junos-dns-udp
set security policies from-zone trust to-zone untrust policy permit-WEB match application junos-http
set security policies from-zone trust to-zone untrust policy permit-WEB match application junos-icmp-all
set security policies from-zone trust to-zone untrust policy permit-WEB match application junos-dns-tcp
set security policies from-zone trust to-zone untrust policy permit-WEB then permit
set security policies from-zone trust to-zone untrust policy permit-WEB then log session-init
set security policies from-zone trust to-zone untrust policy default-deny match source-address any
set security policies from-zone trust to-zone untrust policy default-deny match destination-address any
set security policies from-zone trust to-zone untrust policy default-deny match application any
set security policies from-zone trust to-zone untrust policy default-deny then deny
set security policies from-zone trust to-zone untrust policy default-deny then log session-init
commit
4. SNAT 정책
- 바로 이어서 NAT 정책을 설정한다.
- Zone 정책만 세워도 NAT 정책이 없으면 통신을 할 수 없다.
- Trust 존에서 Untrust 존으로 출발지가 172.30.0.0/24 대역이면 eggress Interface로 SNAT 처리를 한다.
set security nat source rule-set SRC-NAT from zone trust
set security nat source rule-set SRC-NAT to zone untrust
set security nat source rule-set SRC-NAT rule r1 match source-address 172.30.0.0/24
set security nat source rule-set SRC-NAT rule r1 then source-nat interface
commit

1. SNAT 규칙
- Traffic direction 지정
- From (interface / zone / routing-instance) To (interface / zone / routing-instance)
- Packet info 지정
- src / dst IP, src / dst Port, Protocol, Application 등
- Matcing Priority
- Interface > Zone > Routing-Instance (더 구체적인 규칙 우선 적용)
- 위의 조합으로 가능한 액션
- Off = SNAT 수행 X
- Pool = SNAT을 수행하기 위해 사용자가 지정한 Address Pool
- Interface = SNAT을 수행하기 위해 egreses interface 지정
- 설정이 완료되었으니 테스트를 해본다.
- Linux에서 NAVER로 웹 접속을 해본다.

- 정상적으로 잘 접속되었고, 이를 SRX에서 확인해본다.
- Trust 172.30.0.101에서 외부 443 포트로 나가고자 할 때, Untrust Interface로 외부 443 포트로 나갈 때, Untrust Interface가 지정되어 192.168.123.170에 임의 포트가 붙여서 통신이 되었다.
show security flow session

- 만약, IP를 지정하고 싶다면, address-book을 생성한 뒤 지정하면 된다.
set security nat source pool PUB-POOL address 192.168.123.170/32
set security nat source rule-set SRC-NAT from zone trust
set security nat source rule-set SRC-NAT to zone untrust
set security nat source rule-set SRC-NAT rule r1 match source-address 172.30.0.0/24
set security nat source rule-set SRC-NAT rule r1 then source-nat pool PUB-POOL
5. DNAT 정책
- 외부에서 Trust에 있는 Linux FTP Server에 접속하는 테스트를 진행한다.
- 외부에서 방화벽 Untrust Interface의 IP에 21번 포트로 접속하면 내부 172.30.0.100의 21번 FTP로 포트 포워딩하는 정책을 수립한다.
set security nat destination pool ftp-pool address 172.30.0.100/32
set security nat destination rule-set PERMIT-FTP from zone untrust
set security nat destination rule-set PERMIT-FTP rule r-ftp match destination-address 192.168.123.170/32
set security nat destination rule-set PERMIT-FTP rule r-ftp match destination-port 21
set security nat destination rule-set PERMIT-FTP rule r-ftp match destination-port 20
set security nat destination rule-set PERMIT-FTP rule r-ftp then destination-nat pool ftp-pool
commit
- 화이트리스트 정책의 일환이기 때문에 FTP만 열고 다 Deny처리를 한다
set security policies from-zone untrust to-zone trust policy permit-FTP match source-address any
set security policies from-zone untrust to-zone trust policy permit-FTP match destination-address TRUST_NET
set security policies from-zone untrust to-zone trust policy permit-FTP match application junos-ftp
set security policies from-zone untrust to-zone trust policy permit-FTP match application junos-ftp-data
set security policies from-zone untrust to-zone trust policy permit-FTP match application junos-icmp-all
set security policies from-zone untrust to-zone trust policy permit-FTP then permit
set security policies from-zone untrust to-zone trust policy permit-FTP then log session-init
set security policies from-zone untrust to-zone trust policy permit-FTP then log session-close
set security policies from-zone untrust to-zone trust policy permit-FTP then count
set security policies from-zone untrust to-zone trust policy default-deny match source-address any
set security policies from-zone untrust to-zone trust policy default-deny match destination-address any
set security policies from-zone untrust to-zone trust policy default-deny match application any
set security policies from-zone untrust to-zone trust policy default-deny then deny
set security policies from-zone untrust to-zone trust policy default-deny then log session-init
commit
- Linux -
- systemctl status vsftpd로 실행하고 있는지 확인하고, 실행하고 있지 않으면 systemctl start vsftpd로 실행한다.

- vsFTP를 설치하고 실행한 뒤, 21번 포트로 listening하고 있는지 확인한다.

- 그리고 root 접속을 위해, ftpusers와 user_list에서 root를 지운다.


- 이제 ftp 프로그램으로 ftp server에 접속해본다. 포트포워딩이기 때문에 방화벽 Untrust IP로 접근해야한다.
- 정상적으로 접속되는 것을 확인했다.

5. 트러블 슈팅
- 정책은 Top-Down이고 deny 정책이 없으면 암묵적 Deny라는 점을 기억하자
- 화이트리스트의 개념을 다시 바로 잡아보았다. top-down이기 때문에 필요한 정책을 위에서부터 쌓아가고, 최하단에는 All-Deny 정책을 넣어야한다.
- 위에서 통신이 안 되었을 때는 최상단에 All-Deny가 존재한 뒤 필요한 정책을 열었기 때문에 안 되었다. 뭔가 단단히 착각을 했었다.
- 다 막고 필요한 것만 여는 것은 맞는데, 정책 설정 상 필요한 것만 다 열고 All-Deny 해야한다.
- 이것때문에 헷갈렸다.
- 반대로 블랙리스트는 위에서부터 닫아야하는 정책을 쌓고 All-Permit 그리고 최하단에 All-Deny 정책으로 마무리한다.
- DNAT 테스트할 때 정책에서 문제가 있는 줄 알고 한참을 헤맸는데 혹시나 싶어서 찾아보니 Linux 방화벽으로 막혀있었다.
- 아래 사진은 명령어를 통해 추가해서 21/tcp가 있지만, 트러블슈팅할 때는 없었다.

'IT > ㄴ HPE & Juniper' 카테고리의 다른 글
| Junos VLAN / LACP / RSTP / IRB / VSTP / VRRP / Cisco 연동 기본 (0) | 2025.09.23 |
|---|---|
| Juniper SRX VPN IPSec 기본 구성 routed-base (0) | 2025.09.18 |
| Junos BGP #5 기초 구성해보기 (no-export) (1) | 2025.09.08 |
| Junos BGP #4 기초 구성해보기 (AS-Path) (0) | 2025.09.04 |
| Junos BGP #3 기초 구성해보기 (Local-Pref) (0) | 2025.09.03 |