Post

(python) 외부 IP 사이의 소켓 통신 GET/POST 요청 2편

(python) 외부 IP 사이의 소켓 통신 GET/POST 요청 2편

들어가며

이전 내용

1편 포스트에서 다룬 내용은 python 코딩에 필요한 모듈들 설치, 외부 IP 확인하기, 라우터 포트포워딩(Router Port Forwarding)이다. 만약 이 부분이 설정되어 있지 않다면, 1편 포스트를 통해 먼저 확인하고 오도록하자.

방화벽 설정

주요 개념

방화벽 설정을 하기 전에 알고 들어가야 하는 개념이 몇 가지 있다. 아래 정리를 통해 간단히 개념을 알도록 하자.

인바운드 규칙 (Inbound Rule): 네트워크 트래픽을 관리할 때 사용하는 용어로, 네트워크 외부에서 내부로 들어오는 트래픽을 의미한다.

방화벽 인바운드 규칙 (Firewall Inbound Rule): 방화벽이 네트워크 외부에서 내부로 들어오는 트래픽을 규칙에 따라 차단할지 허용할지를 결정한다.

아웃바운드 규칙 (Outbound Rule): 네트워크 트래픽을 관리할 때 사용하는 용어로, 네트워크 내부에서 외부로 나가는 트래픽을 의미한다.

방화벽 아웃바운드 규칙 (Firewall Outbound Rule): 방화벽이 네트워크 내부에서 외부로 나가는 트래픽을 규칙에 따라 차단할지 허용할지를 결정한다.

윈도우 버전 (Window Ver.)

윈도우에서는 Windows Defender라는 프로그램이 자체적으로 방화벽 백그라운드 프로세스를 실행시키며 방화벽을 유지하고 있다. 따라서 이 프로그램에 들어가 IP와 포트를 허용해주어야 한다.

STEP 1
먼저, 제어판 > 시스템 및 보안 > Windows Defender 방화벽 > 고급설정(관리자 권한)으로 창을 열어준다.

STEP 2
인바운드 규칙을 생성해주도록 한다. 좌측 패널에서 “인바운드 규칙”을 누른다. 그리고 우측 패널에서 “새 규칙”을 누른다.

STEP 3
인바운드 규칙 생성을 위한 창이 떠있다. 이 창에서 생성시 설정을 해주도록 한다. 설정은 다음과 같이 한다.

적용 프로토콜: TCP
적용 포트: 5000
수행 작업: 연결 허용
적용 시기: 모두 체크
이름 및 설명: test (알아서 적자)

STEP 4
인바운드 규칙이 해당 이름으로 잘 생성되었는지 중앙 패널에서 확인한다.

STEP 5
아웃바운드 규칙도 인바운드 규칙과 마찬가지로 동일한 방식으로 생성하면 된다.

MacOS 버전

MacOS나 Linux같은 경우 많은 방식으로 방화벽 설정을 할 수 있는데, MacOS의 경우 가장 간단하고 확실한 방법은 pf.conf 파일을 수정하는 방식이다. pfpacket filter의 줄임말로, 들어오고 나가는(인바운드와 아웃바운드) 패킷을 필터링해주는 configure 파일이다. 해당 파일은 /etc/pf.conf에 위치해있으며, 그 정보를 일차적으로 확인해보고 필터링을 설정하도록 한다.

STEP 1
먼저, 해당 파일의 내용을 아래의 명령어로 확인해보자.

1
sudo cat /etc/pf.conf

사실 여기에 나오는 내용을 이해할 필요는 없지만, 대충 읽어보면 apple에서 자체적으로 정의한 방화벽 프로토콜을 적용시킨다고 이해할 수 있다. 이는 나중에 다시 자세히 다뤄보겠다. 아무튼 글을 잘 읽어보면, 부팅때 처음 로드되고, 자동으로 다시 불러오지 않는다고 한다. 따라서, 이 파일을 수정한 이후에 해당 configuration을 수동으로 활성화하거나 비활성화해야한다. 이 부분은 추후 하도록 한다.

STEP 2
이 파일을 nano나 vim 편집기를 열어 수정할 것이다. 나는 vim을 쓸텐데, nano를 쓰고 싶다면, 아래의 명령어 중 vim을 nano로 수정해서 쓰자.

1
sudo vim /etc/pf.conf

편집기를 열었다면, 아래의 코드를 집어 넣는다. IP 주소는 Server-side가 될 기기가 가진 IP를 넣는다. 나의 경우 1편에서 언급했던 서버의 예시 IP 주소인 111.222.33.123를 넣어놓았다. 고대로 복붙하지 말자.

1
2
pass in proto tcp from any to 111.222.33.123 port 5000
pass out proto tcp from 111.222.33.123 port 5000 to any

작성했다면, 저장하고 나오자. (esc키 누른 뒤:wq를 입력하면 된다.)

STEP 3
이제 이 configuration을 활성화해주면 된다. 먼저, 아래의 명령어로 pf.conf를 활성화해준다.

1
sudo pfctl -e 

그 다음, 아래의 명령어로 변경된 규칙 적용을 위해 pf.conf 파일을 로드시켜줍니다.

1
sudo pfctl -f /etc/pf.conf

기본적으로는 여기서 끝입니다. 다만, 인/아웃바운드 규칙 적용 상태를 확인하기 위해서 아래의 명령어를 활용할 수 있습니다.

1
sudo pfctl -sr

다음 편에 계속

이번 글은 여기서 마치며, 다음 글에서 계속해서 올리도록 하겠다.

This post is licensed under CC BY 4.0 by the author.