(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
파일을 수정하는 방식이다. pf
는 packet 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
다음 편에 계속
이번 글은 여기서 마치며, 다음 글에서 계속해서 올리도록 하겠다.