MacOS port forwarding – SMB 서버 설정

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 해서 서비스가 가능하도록 설정한다.

 

설정 적용순서를 아래와 같다.

    1. 서비스 제공중인 Network interface 확인
    2. port redirection rule 설정 (/etc/pf.anchors/smb.forwarding)
    3. redirection rule 을 anchor로 지정하고 anchor를 load하는 config 설정 (/etc/pfctl-smb-config.conf)
    4. 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을 위한 설정 방법이다.