ProxyChains 및 Tor로 Linux 트래픽 익명화

Linux 환경에서 익명성 확보: Tor와 ProxyChains 활용

리눅스 기반 운영체제에서 인터넷 사용 시 익명성을 유지하는 것은 생각보다 간단합니다. 복잡한 VPN 서비스에 의존하지 않고도, 오늘날 제공되는 도구들을 활용하여 충분히 가능합니다.

칼리 리눅스는 WiFi 네트워크, 웹사이트, 서버의 보안을 테스트하는 데 주로 사용되지만, 데비안이나 우분투와 같은 다른 리눅스 배포판도 이 목적에 적합합니다.

ProxyChainsTor는 여러 프록시를 연결하여 익명성을 높이는 데 사용됩니다. 이렇게 하면 실제 IP 주소를 추적하기가 훨씬 어려워집니다. ProxyChains는 여러 프록시 서버를 거쳐 실제 IP 주소를 숨기며, 프록시 수가 많을수록 인터넷 연결 속도는 느려질 수 있습니다.

ProxyChains란?

ProxyChains는 네트워크 트래픽을 리디렉션하여 IP 주소를 숨기는 데 사용되는 유닉스 프로그램입니다. SOCKS와 HTTP 프록시를 포함한 다양한 프록시를 통해 TCP 트래픽을 라우팅할 수 있습니다. Tor 네트워크를 함께 사용하면 더욱 강력한 익명성을 확보할 수 있습니다.

  • Nmap과 같은 TCP 스캐닝 도구와 호환됩니다.
  • 설정된 프록시 체인을 통해 모든 TCP 연결을 인터넷으로 전달할 수 있습니다.
  • Tor 네트워크가 기본적으로 지원됩니다.
  • 다양한 종류의 프록시를 혼합하여 사용할 수 있습니다.
  • 방화벽 및 침입 탐지/방지 시스템(IDS/IPS) 우회에도 활용 가능합니다.

프록시 연결 설정은 생각보다 간단하며, 누구든 쉽게 따라 할 수 있습니다.

이 가이드에서는 리눅스에서 Tor와 ProxyChains를 설정하여 익명성을 확보하는 방법을 안내합니다.

리눅스에 Tor 및 ProxyChains 설치

먼저, 시스템 업데이트를 통해 최신 패치 및 애플리케이션을 설치합니다. 터미널을 열고 다음 명령을 실행합니다.

sudo apt update && sudo apt upgrade

이제 다음 명령을 각각 실행하여 Tor 및 ProxyChains가 이미 설치되어 있는지 확인합니다.

proxychains
tor

만약 설치되어 있지 않다면, 터미널에서 다음 명령을 실행하여 설치합니다.

sudo apt install proxychains tor -y

Tor 브라우저를 설치하는 것이 아니라, 로컬 호스트의 특정 포트(기본적으로 9050)에 바인딩되는 tor 서비스를 설치하는 것입니다.

Tor 서비스의 상태를 확인하려면 다음 명령을 사용합니다.

service tor status

Tor 서비스를 시작하려면:

service tor start

Tor 서비스를 중지하려면:

service tor stop

ProxyChains 구성

먼저, 다음 명령을 사용하여 ProxyChains 설정 파일의 위치를 찾습니다.

locate proxychains

일반적으로 설정 파일은 다음 경로에 있습니다.

/etc/proxychains4.conf

이제 이 파일을 텍스트 편집기(예: leafpad, vim, nano)로 열어 설정을 변경합니다. 여기서는 nano 편집기를 사용합니다.

nano /etc/proxychains.conf

설정 파일이 열리면, 다음 사항을 수정해야 합니다.

1. 동적 체인(dynamic_chain) 주석을 해제합니다. `dynamic_chain` 앞의 `#` 기호를 제거합니다.

dynamic_chain
#
# Dynamic - Each connection will be done via chained proxies
# all proxies chained in the order as they appear in the list
# at least one proxy must be online to play in chain
# (dead proxies are skipped)
# otherwise EINTR is returned to the app

2. 임의 체인(random_chain)과 엄격 체인(strict_chain) 주석을 설정합니다. `random_chain`과 `strict_chain` 앞에 `#` 기호를 추가합니다.

#random_chain
#
# Random - Each connection will be done via random proxy
# (or proxy chain, see  chain_len) from the list.
# this option is good to test your IDS :)

3. 프록시 DNS 요청(proxy_dns) 주석을 해제합니다. DNS 누출을 방지하여 실제 IP 주소 노출을 막을 수 있습니다.

# Proxy DNS requests - no leak for DNS data
proxy_dns

4. 프록시 목록의 마지막 줄에 `socks5 127.0.0.1 9050`을 추가합니다. `socks4` 프록시는 이미 제공됩니다.

[ProxyList]
# add proxy here ...
# meanwile
# defaults set to "tor"
socks4  127.0.0.1 9050
socks5  127.0.0.1 9050

이제 변경 사항을 저장하고 편집기를 종료합니다.

ProxyChains 사용

ProxyChains를 사용하려면 먼저 Tor 서비스를 시작해야 합니다.

service tor start

Tor 서비스가 시작되면, ProxyChains를 사용하여 익명으로 탐색 및 검색을 수행할 수 있습니다. 또한, Nmap 또는 sqlmap과 같은 도구를 ProxyChains와 함께 사용하여 익스플로잇을 익명으로 검사할 수 있습니다.

ProxyChains를 사용하려면 터미널에서 `proxychains` 명령 뒤에 사용할 애플리케이션 이름을 입력합니다. 예시는 다음과 같습니다.

proxychains firefox www.flippa.com

Nmap을 사용하는 경우:

proxychains nmap -targetaddress

sqlmap을 사용하는 경우:

proxychains python sqlmap -u target

다음과 같이 익명으로 익스플로잇을 테스트할 수도 있습니다.

proxychains python sqlmap -u http://www.targetaddress/products.php?product=3

기본적으로 모든 TCP 스캔 도구를 ProxyChains와 함께 사용할 수 있습니다.

ProxyChains가 제대로 작동하는지 최종적으로 확인하려면 dnsleaktest.com으로 이동하여 IP 주소와 DNS 유출을 확인하십시오.

ProxyChains를 실행한 후, 파이어폭스가 다른 언어로 로드되었을 수 있습니다. 다음 명령으로 DNS 누출 테스트를 실행합니다.

proxychains firefox dnsleaktest.com

보시다시피, 실제 위치가 변경되었으며, ProxyChains는 IP 주소를 동적으로 변경하여 익명성을 보장합니다.

새로운 결과를 보려면, 파이어폭스를 닫고 터미널을 정리한 다음, Tor 서비스를 다시 시작하고 ProxyChains를 다시 실행합니다. DNS 누출 테스트에서 다음과 같이 다양한 결과를 확인할 수 있습니다.

보시다시피, 위치가 계속 변경됩니다. 동적 체인 프록시가 작동하는 방식입니다. 이를 통해 해킹 작업 시 더 높은 익명성을 확보할 수 있습니다.

결론

이 가이드에서는 인터넷에서 익명성을 유지하고, 침투 테스트 중에 온라인 개인 정보를 보호하는 방법을 배웠습니다. ProxyChains는 Nmap 및 Burpsuite와 같은 보안 도구와 함께 사용할 수 있으며, IDS, IPS 및 방화벽 탐지를 우회하는 데에도 자주 사용됩니다.

빠르고 쉬운 설정 방법을 원한다면 트래픽을 즉시 익명화해주는 VPN을 사용하는 것도 고려해볼 수 있습니다.