MacOS 에 파일 공유 기능, SMB서버 설정을 했을 때 외부에서도 접속가능하게 하는 방법이다.
많이 받는 질문 중에 하나가
“smb 서버가 회사내나 센터 내에서는 접속이 잘 되는데
외부에서는 접속이 안 되요 ” 라는 질문이다.
그 이유는 SMB 서비스용 port가 통신산/ISP (Internet Service Provider)들에 의해 막혀 있어서다.
그래서 막혀 있는 445 port 대신 다른 port 를 통해서 request를 받고,
받은 request를 서비스 port로 forwarding(redirection) 해주는 설정이 필요하다.
아래 그림은 MacOS에서 port forwarding(redirection) 을 설명하는 그림이다.
request를 보내는쪽에서 11111 port로 request를 보내고
SMB Server가 서비스하는 445 port로 request를 forwarding 해서 서비스가 가능하도록 설정한다.
설정 적용순서를 아래와 같다.
-
- 서비스 제공중인 Network interface 확인
- port redirection rule 설정 (/etc/pf.anchors/smb.forwarding)
- redirection rule 을 anchor로 지정하고 anchor를 load하는 config 설정 (/etc/pfctl-smb-config.conf)
- config를 읽어서 실행 (rule 활성화)
1. 네트워크 interface 확인
$ ifconfig
2. port redirection rule 설정
$ sudo vi /etc/pf.anchors/smb.forwarding
입력 내용
rdr pass on en0 inet proto tcp from any to xxx.xxx.xxx.xxx port 11111 -> xxx.xxx.xxx.xxx port 445
3. anchor load config. 설정
$ sudo vi /etc/pfctl-smb-config.conf
입력 내용
rdr-anchor "forwarding"
load anchor "forwarding" from "/etc/pf.anchors/smb.forwarding"
4. rule 활성화
$ sudo pfctl -ef /etc/pfctl-smb-config.conf
이제 부터는 해당 SMB서버를 mount 해서 사용할 때 아래처럼 11111 port로 연결해서 사용하면 된다.
Finder 파인더에서 command+[k] 누르고
smb://xxx.xxx.xxx.xxx:11111 입력
이상 MacOS SMB서버의 port forwarding을 위한 설정 방법이다.