일상/IT

리눅스 : 프라이빗 검색을 위해 SSH SOCKS 터널을 설정하는 방법

얇은생각 2021. 2. 24. 07:30
반응형

인터넷을 개인적으로 탐색하거나, 지역 제한 콘텐츠에 액세스하거나, 네트워크가 적용 중인 중간 방화벽을 무시하려는 경우가 있습니다. 

한 가지 옵션은 VPN을 사용하는 것이지만 이 옵션을 사용하려면 컴퓨터에 클라이언트 소프트웨어를 설치하고 자신의 VPN 서버를 설정하거나 VPN 서비스에 가입해야 합니다.

더 간단한 대안은 암호화된 SOCKS 프록시 터널을 사용하여 로컬 네트워크 트래픽을 라우팅하는 것입니다. 이렇게 하면 프록시를 사용하는 모든 애플리케이션이 SSH 서버에 연결되고 서버가 모든 트래픽을 실제 대상으로 전달합니다. ISP(인터넷 서비스 공급자) 및 기타 타사에서 사용자의 트래픽을 검사하고 웹 사이트에 대한 액세스를 차단할 수 없습니다. 

이 튜토리얼은 암호화된 SSH 터널을 만들고 SOCKS 프록시를 사용하도록 Firefox 및 Google Chrome 웹 브라우저를 구성하는 프로세스를 안내합니다.

 

 

 

필수 조건

-모든 종류의 Linux를 실행하는 서버로, SSH 액세스 권한을 통해 트래픽을 라우팅합니다.

- 웹 브라우저

- SSH 클라이언트

 

 

 

SSH 터널 설정

포트 9090의 로컬 시스템에서 포트 22의 SSH 서버로 트래픽을 안전하게 전달하는 SSH 터널을 생성합니다. 1024보다 큰 포트 번호를 사용할 수 있으며, 권한 있는 포트에는 루트만 포트를 열 수 있습니다.

 

 

 

리눅스 및 macOS 참조

로컬 시스템에서 리눅스, macOS 또는 기타 유닉스 기반 운영 체제를 실행하는 경우 다음 ssh 명령을 사용하여 SSH 터널을 쉽게 시작할 수 있습니다.

ssh -N -D 9090 [USER]@[SERVER_IP]

 

 

사용되는 옵션은 다음과 같습니다. 

-N - SSH에 원격 명령을 실행하지 말라고 합니다.

-D 9090 - 지정된 포트 번호에 SOCKS 터널을 엽니다.

- [USER]@[SERVER_IP] - 원격 SSH 사용자 및 서버 IP 주소입니다.

- 백그라운드에서 명령을 실행하려면 -f 옵션을 사용합니다.

- SSH 서버가 22(기본값) 이외의 포트에서 수신 대기 중인 경우 -p [PORT_NUMBER] 옵션을 사용합니다.

 

명령을 실행하면 사용자 암호를 입력하라는 메시지가 표시됩니다. 입력하면 서버에 로그인되고 SSH 터널이 설정됩니다. 

SSH 키 기반 인증을 설정하고 암호를 입력하지 않고 서버에 연결할 수 있습니다.

 

 

 

Windows

윈도우즈 사용자는 PuTTY SSH 클라이언트를 사용하여 SSH 터널을 생성할 수 있습니다. PuTTY를 다운로드할 수 있습니다.

Putty를 시작하고 Host name(또는 IP 주소) 필드에 서버 IP 주소를 입력합니다. 

연결 메뉴에서 SSH를 확장하고 터널을 선택합니다. 소스 포트 필드에 포트 9090을 입력하고 동적 라디오 버튼을 확인합니다.

리눅스 : 프라이빗 검색을 위해 SSH SOCKS 터널을 설정하는 방법 1

 

 

아래 이미지에 표시된 대로 Add 버튼을 클릭합니다.

리눅스 : 프라이빗 검색을 위해 SSH SOCKS 터널을 설정하는 방법 2

 

 

세션 페이지로 돌아가 설정을 저장하여 매번 입력할 필요가 없습니다. [저장된 세션] 필드에 세션 이름을 입력하고 [저장] 단추를 누릅니다.

리눅스 : 프라이빗 검색을 위해 SSH SOCKS 터널을 설정하는 방법 3

 

 

저장된 세션을 선택하고 Open 버튼을 클릭하여 원격 서버에 로그인합니다.

리눅스 : 프라이빗 검색을 위해 SSH SOCKS 터널을 설정하는 방법 4

 

 

사용자 이름과 암호를 묻는 새 창이 나타납니다. 사용자 이름과 암호를 입력하면 서버에 로그인되고 SSH 터널이 시작됩니다.

공용 키 인증을 설정하면 암호를 입력하지 않고도 서버에 연결할 수 있습니다.

 

 

 

프록시를 사용하도록 브라우저 구성

이제 SSH SOCKS 터널을 열었으므로 마지막 단계는 선호하는 브라우저를 사용하도록 구성하는 것입니다.

 

 

 

파이어폭스

다음 단계는 윈도우즈, macOS 및 리눅스의 경우와 동일합니다.

01. 오른쪽 상단 모서리에서 햄버거 아이콘을 클릭하여 Firefox의 메뉴를 엽니다.

02. ⚙ Preferences 링크를 클릭합니다. 

03. Network Settings(네트워크 설정) 섹션으로 스크롤하고 Settings...(설정...)를 클릭합니다. 단추를 누르십시오.

04. 새 창이 열립니다.

 - 수동 프록시 구성 라디오 버튼을 선택합니다.

- SOCKS Host 필드에 127.0.0.1을 입력하고 Port 필드에 9090을 입력합니다.

- SOCKS v5를 사용할 때 프록시 DNS 확인란을 선택합니다.

- OK(확인) 버튼을 클릭하여 설정을 저장합니다.

 

리눅스 : 프라이빗 검색을 위해 SSH SOCKS 터널을 설정하는 방법 5

 

 

이 때 Firefox가 구성되고 SSH 터널을 통해 인터넷을 검색할 수 있습니다. google.com을 열고 "내 IP란 무엇인가"를 입력하면 서버 IP 주소가 표시됩니다. 

기본 설정으로 되돌리려면 네트워크 설정으로 돌아가려면 시스템 프록시 설정 사용 라디오 버튼을 선택하고 설정을 저장합니다.

또한 Firefox의 프록시 설정(예: FoxyProxy)을 구성하는 데 도움이 되는 여러 플러그인도 있습니다.

 

 

 

구글 크롬

Google Chrome은 기본 시스템 프록시 설정을 사용합니다. 운영 체제 프록시 설정을 변경하는 대신 SwitchyOmega 같은 추가 기능을 사용하거나 명령줄에서 Chrome 웹 브라우저를 시작할 수 있습니다.

새 프로파일과 SSH 터널을 사용하여 Chrome을 실행하려면 다음 명령을 사용합니다.

 

 

Linux

/usr/bin/google-chrome \
    --user-data-dir="$HOME/proxy-profile" \
    --proxy-server="socks5://localhost:9090"

 

 

macOS

"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \
    --user-data-dir="$HOME/proxy-profile" \
    --proxy-server="socks5://localhost:9090"

 

 

Windows

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" ^
    --user-data-dir="%USERPROFILE%\proxy-profile" ^
    --proxy-server="socks5://localhost:9090"

 

 

프로필이 없는 경우 프로필이 자동으로 생성됩니다. 이렇게 하면 여러 개의 Chrome 인스턴스를 동시에 실행할 수 있습니다. 

SSH 터널이 제대로 작동하는지 확인하려면 google.com을 열고 "What is my ip"를 입력합니다. 브라우저에 표시된 IP는 서버의 IP 주소여야 합니다.

반응형