토출구 노드의 iptables


9

열린 Tor 라우터 를 실행하고 싶습니다 .

종료 정책은 ReducedExitPolicy 와 유사합니다 .

그러나 나는 또한 토르 네트워크가 내 자원을 남용하기 어렵게 만들고 싶습니다.

클라이언트가 Tor를 통해 수행하지 못하게하려는 경우 :

  • 매우 많은 패킷으로 한 사이트를 망치기.
  • 전체 IP 블록의 공격적인 넷 스캔

클라이언트가 Tor를 통해 수행하는 것을 방지하고 싶지 않은 경우 :

  • 수백 개의 이미지 파일을 클라우드에 업로드
  • 급류를 파종

내 질문은,이 작업을 전혀 할 수 있습니까? 어떻게 할 수 있습니까?

내 생각은 방화벽 (Linux / iptables 또는 * BSD / ipfw / pf) 이었지만 Onion 라우터의 고유 속성으로 인해 아마도 쓸모가 없을 것입니다.

이 주제에 대해 진행중인 torproject 팀 개발이 있습니까?

Tor 종료 노드 보안에 대한 일반적인 힌트도 요청합니다.

업데이트 (2012 년 9 월)

유용한 답변과 다른 연구에서 나는 이것이 불가능하다고 생각합니다.

DDOS에 기여하기 위해 사람들이 종료 노드를 남용하지 못하게하려면 최선의 방법은 하나의 IP로 향하는 매우 빈번한 패킷을 탐지하는 것입니다.

"매우 빈번한"임계 값은 총 노드 대역폭에 따라 다릅니다. 잘못된 경우, 긍정적 인 실시간 TCP 앱의 트래픽과 많은 클라이언트에서 하나의 대상으로 전송되는 트래픽을 차단하는 오 탐지가 발생합니다.

업데이트 (2014 년 12 월)

내 예측은 분명히 맞았습니다. 인터넷 제공 업체로부터 네트워크 남용에 대한 불만이 여러 차례있었습니다.

서비스 종료를 피하기 위해 다음과 같은 iptables규칙 을 사용해야 ONEW했습니다 (송신 TCP SYN (일명 NEW) 패킷의 체인 임).

나는 그것이 충분할 지 확신하지 않지만 여기에 있습니다 :

-A ONEW -o lo -j ACCEPT
-A ONEW -p udp --dport 53 -m limit --limit 2/sec --limit-burst 5 -j ACCEPT
-A ONEW -m hashlimit --hashlimit-upto 1/second --hashlimit-mode dstip --hashlimit-dstmask 24 --hashlimit-name ONEW -j ACCEPT
-A ONEW -m limit --limit 1/sec -j LOG --log-prefix "REJECTED: "
-A ONEW -j REJECT --reject-with icmp-admin-prohibited

답변:


2

명심하십시오 :

  • Tor 클라이언트는 10 분마다 가상 회로를 현재의 이해로 전환합니다. 이는 소스 IP가 해당 시간 프레임 내에서 변경됨을 의미합니다. 해당 기간보다 오래 악의적 인 행동을 방지하지는 않습니다.

  • Tor는 TCP 트래픽 만 프록시하고 다른 프로토콜은 프록시하지 않기 때문에 악용 가능성이 상당히 제한됩니다.

iptables새로운 발신 TCP 연결을 기존 연결과 다르게 처리 할 수 ​​있습니다. "기존의 TCP 연결"체인에 포함되거나 전달 ESTABLISHED,RELATED되어야 하는 것은 있으며 ACCEPTED, 이에 걸리지 않는 발신 TCP는 속도가 제한 될 수 있습니다. 나가는 Tor 트래픽은 여기에 따라야합니다.

위의 내용과 "감소 된 종료 정책"을 사용하는 것이 최선의 방법이라고 생각합니다.

이상적으로 Tor 상자에서 다른 것을 실행하지 마십시오.

  • 아마도 SSH를 사용했을 것입니다. 22와 다른 포트에 넣으십시오.
  • 이 페이지 를 표시 하기 위해 간단한 웹 서버를 실행하고 싶을 것입니다 . chroot의 mini-httpd인스턴스가해야합니다. 를 사용하지 마십시오 inetd.

다른 용도로 사용중인 상자에서 Tor를 실행하지 마십시오. Tor Legal FAQ 의 "Exit Relays"섹션을 읽고 그 의미를 완전히 이해해야합니다. 또한 이 모든 것을 읽고 수행하십시오 .


1

소스 IP가 일정하지 않기 때문에 이러한 공격을 방지하는 것이 평소보다 어려울 것입니다. 그러나 내 지식으로는 tor의 경로는 몇 분마다 변경됩니다.

따라서 소스 IP 뒤에 전체 네트워크가 있다고 가정해야하기 때문에 일부 표준 제한 / 필터링 규칙을 여전히 배치 할 수 있지만 임계 값은 더 높습니다.

다음을 필터링 할 수 있습니다.

  • 잘못되었거나 일반적인 지문 / 스캔 패킷 (잘못된 TCP / IP 플래그, XMAS, 대부분의 ICMP 유형 등)
  • 진행 중이거나 새로운 연결에 적합하지 않은 잘못된 패킷 (-m 상태)
  • 다소 높은 임계 값에서 시작하는 새로운 연결

그러나 이러한 작업은 일반적으로 인바운드 트래픽에서 수행됩니다. "고객"이 어떤 종류의 프로토콜을 실행할지 모르므로 성가 시거나 불명확 할 수있는 방식으로 제한 할 수 있습니다.

또한 속도 제한 NEW (또는 상태 비 저장) 패킷의 경우 거부 된 패킷 (임의의 공격이 아니라면 절대로 DROP이 아님)이 무작위로 분류되는 몇 가지 관련 체계를 고려할 수 있습니다. 이런 식으로 일반 사용자는 전체 속도가 현재 한계에 도달하더라도 재로드를 시도하고 운이 좋을 수 있지만 동시 포트 스캐너는 속도 한계를 우회 할 수 없습니다.

또한 Tor 메일 링리스트에 문의 하십시오 . https://lists.torproject.org/cgi-bin/mailman/listinfo


1

우선,이 모든 것을 해결하기 위해 iptables를 제안하지는 않을 것입니다. 실제로 이상적인 출구 Tor 노드는 몇 개의 VPN 터널을 통해 balace 트래픽을로드하여 ISP의 눈을 패킷과 실제 목적지에서 지키고 캐시 프록시를 사용하여 아웃 바운드 반복 요청을 유지합니다. 인기있는 정적 콘텐츠를 최소한으로 ...이 옵션을 살펴 보면서 남용 불만 문제에 대한 반창고 가 있습니다.

사용 된 정보 출처

http://www.ossramblings.com/using_iptables_rate_limiting_to_prevent_portscans

http://blog.nintechnet.com/how-to-block-w00tw00t-at-isc-sans-dfind-and-other-web-vulnerability-scanners/

두 개의 소스 링크를 규칙으로 결합하여 포트 스캔에 Tor 종료 노드를 사용하려는 봇을 좌절시키는 데 사용할 수 있습니다. 이 규칙으로 인해 nmap 중단 시간이 발생하므로 종료 노드를 사용하는 해커가 매우 만족스럽지 않을 수 있습니다.

#!/bin/bash
## Network interface used by Tor exit daemon
_tor_iface="eth1"
## Ports that Tor exit daemon binds to, maybe comma or space sepperated.
_tor_ports="9050,9051"
## Time to ban connections out in secconds, default equates to 10 minutes, same as default Tor cercut.
_ban_time="600"
## How long to monitor conections in seconds, default equates to 10 minutes.
_outgoing_tcp_update_seconds="600"
## How many new connections can be placed to a server in aloted update time limits. May nead to increes this depending on exit node usage and remote servers usages.
_outgoing_tcp_hitcount="8"
## How long to monitor connections for in minuets, default is 15 minutes but could be lessoned.
_outgoing_tcp_burst_minute="15"
## Hom many connections to accept untill un-matched
_outgoing_tcp_burst_limit="1000"

iptables -N out_temp_ban -m comment --comment "Make custom chain for tracking ban time limits" || exit 1
iptables -A out_temp_ban -m recent --set --name temp_tcp_ban -p TCP -j DROP -m comment --comment "Ban any TCP packet coming to this chain" || exit 1

iptables -N out_vuln_scan -m comment --comment "Make custom chain for mitigating port scans originating from ${_tor_iface}" || exit 1
for _tor_port in ${_tor_ports//,/ }; do
    iptables -A out_vuln_scan -p TCP -o ${_tor_iface} --sport ${_tor_port} -m recent --name temp_tcp_ban --update --seconds ${_ban_time} -j DROP -m comment --comment "Update ban time if IP address is found in temp_tcp_ban list" || exit 1
    iptables -A out_vuln_scan -p TCP -o ${_tor_iface} --sport ${_tor_port} -m state --state NEW -m recent --set -m comment --comment "Monitor number of new conncetions to ${_server_iface}" || exit 1
    iptables -A out_vuln_scan -p TCP -o ${_tor_iface} --sport ${_tor_port} -m state --state NEW -m recent --update --seconds 30 --hitcout 10 -j out_temp_ban -m comment --comment "Ban address when to many new connections are attempted on ${_tor_iface}" || exit 1
done
iptables -A out_vuln_scan -j RETURN -m comment --comment "Return un-matched packets for further processing" || exit 1

## Add rules to accept/allow outbound packets
iptables -N tor_out -m comment --comment "Make custom chain for allowing Tor exit node services" || exit 1
for _tor_port in ${_tor_ports//,/ }; do
    iptables -A tor_out -p TCP -o ${_tor_iface} --sport ${_tor_port} -m state --state NEW -m recent --set --name limit_${_tor_port} -m comment --comment "Track out-going tcp connections from port ${_tor_port}" || exit 1
    iptables -A tor_out -p TCP -o ${_tor_iface} --sport ${_tor_port} -m state --state NEW -m recent --update --seconds ${_outgoing_tcp_update_seconds:-60} --hitcount ${_outgoing_tcp_hitcount:-8} --rttl --name limit_${_tor_port} -j LOG --log-prefix "TCP flooding port ${_tor_port}" -m comment --comment "Log atempts to flood port ${_tor_port} from your server" || exit 1
    iptables -A tor_out -p TCP -o ${_tor_iface} --sport ${_tor_port} -m state --state NEW -m recent --update --seconds ${_outgoing_tcp_update_seconds:-60} --hitcount ${_outgoing_tcp_hitcount:-8} --rttl --name limit_${_tor_port} -j DROP -m comment --comment "Drop attempts to flood port ${_tor_port} from your server" || exit 1
    iptables -A tor_out -p TCP -o ${_tor_iface} --sport ${_tor_port} -m limit --limit ${_outgoing_tcp_burst_minute:-15}/minute --limit-burst ${_outgoing_tcp_burst_limit:-1000} -j ACCEPT -m comment --comment "Accept with conditions new connections from port ${_tor_port} from your server" || exit 1
done
iptables -A tor_out -j RETURN -m comment ---comment "Reurn un-matched packets for further filtering or default polices to take effect." || exit 1
## Activate jumps from default output chain to new custom filtering chains
iptables -A OUTPUT -p TCP -o ${_tor_iface} -j out_vuln_scan -m comment --comment "Jump outbound packets through vulnerability scaning mitigation" || exit 1
iptables -A OUTPUT -p TCP -o ${_tor_iface} -j tor_out -m comment --comment "Jump outbound packets through conditional acceptance" || exit 1

위와 같이 실행 bash하면 ,cammas가있는 변수에 마법이 미리 형성됩니다 .

user@host~# bash iptables_limit_tor.sh

다시 변수 목록이 있습니다.

_tor_iface="eth1"
_tor_ports="9050,9051"
_ban_time="600"
_outgoing_tcp_update_seconds="600"
_outgoing_tcp_hitcount="8"
_outgoing_tcp_burst_minute="15"
_outgoing_tcp_burst_limit="1000"

악용 가능한 서버를 찾기 위해 일부 봇이 사용하는 재미있는-m state NEW ! --syn 종류의 비즈니스에 대해 새로운 아웃 바운드 연결을 필터링 할 수도 있습니다. 여기에는 잘못된 조작 된 채터를 추가로 필터링하기 위해 위의 두 가지를 미리 수행 할 수있는 예제 체인이 있습니다.

iptables -N out_bad_packets -m comment --comment "Make new chain for filtering malformed packets" || exit 1
iptables -A out_bad_packets -p TCP --fragment -j out_temp_ban -m comment --comment "Drop all fragmented packets" || exit 1
iptables -A out_bad_packets -p TCP -m state --state INVALID -j out_temp_ban -m comment --comment "Drop all invalid packets" || exit 1
iptables -A out_bad_packets -p TCP ! --syn -m state --state NEW -j out_temp_ban -m comment --comment "Drop new non-syn packets" || exit 1
iptables -A out_bad_packets -p TCP --tcp-flags ALL NONE -j out_temp_ban -m comment --comment "Drop NULL scan" || exit 1
iptables -A out_bad_packets -p TCP --tcp-flags ALL ALL -j out_temp_ban -m comment --comment "Drop XMAS scan"|| exit 1
iptables -A out_bad_packets -p TCP --tcp-flags ALL FIN,URG,PSH -j out_temp_ban -m comment --comment "Drop stealth scan 1" || exit 1
iptables -A out_bad_packets -p TCP --tcp-flags ALL SYN,RST,ACK,FIN,URG -j out_temp_ban -m comment --comment "Drop pscan 1"|| exit 1
iptables -A out_bad_packets -p TCP --tcp-flags SYN,FIN SYN,FIN -j out_temp_ban -m comment --comment "Drop pscan 2" || exit 1
iptables -A out_bad_packets -p TCP --tcp-flags FIN,RST FIN,RST -j out_temp_ban -m comment --comment "Drop pscan 3" || exit 1
iptables -A out_bad_packets -p TCP --tcp-flags SYN,RST SYN,RST -j out_temp_ban -m comment --comment "Drop SYN-RST scan" || exit 1
iptables -A out_bad_packets -p TCP --tcp-flags ACK,URG URG -j out_temp_ban -m comment --comment "Drop URG scans" || exit 1
iptables -A out_bad_packets -p TCP --tcp-flags ALL SYN,FIN -j out_temp_ban -m comment --comment "Drop SYNFIN scan" || exit 1
iptables -A out_bad_packets -p TCP --tcp-flags ALL URG,PSH,FIN -j out_temp_ban -m comment --comment "Drop nmap Xmas scan" || exit 1
iptables -A out_bad_packets -p TCP --tcp-flags ALL FIN -j out_temp_ban -m comment --comment "Drop FIN scan" || exit 1
iptables -A out_bad_packets -p TCP --tcp-flags ALL URG,PSH,SYN,FIN -j out_temp_ban -m comment --comment "Drop nmap-id scan" || exit 1
iptables -A out_bad_packets -p TCP --tcp-flags RST RST -o ${_tor_iface} --sport ${_tor_port} -m limit --limit 2/second --limit-burst 3 -j out_temp_ban -m comment --comment "Mitigate Smurf attacks from excesive RST packets"
iptables -A out_bad_packets -p TCP --tcp-flags RST RST -o ${_tor_iface} --sport ${_tor_port} -m limit --limit 2/second --limit-burst 2 -j RETURN -m comment --comment "Ban Smurf attacks using excesive RST packets"
iptables -A out_bad_packets -j RETURN -m comment --comment "Return un-matched packets for further processing." || exit 1

모든 일치하는 패킷이 IP가 (아마도 변경 금지해야합니다 그러나, 위의 체인은 매우 제한적인 것 -j out_temp_ban-j DROP또는 -j REJECT그 체인의 규칙에서 선택한 그러나 많은 초 동안 테스트하기 위해). 이 규칙 세트는 또한 클라이언트 측에서 잘못 코딩 된 앱이 새로운 Tor cercut을 통해 다시 연결될 때 잘못된 긍정적 인 원인이 될 수 있습니다.

~~~~~

추가 트래픽 처리를 위해 고려해야 할 소프트웨어 firejailLinux를 확인 하고 소스는 Github 및 Source forge에 있으며 매뉴얼 페이지는 이전 홈 페이지, 워드 프레스 하위 도메인에서 찾을 수 있으며 DigitalOcean에는 PHP 및 Firejail을 사용하는 Nginx에 대한 가이드가 있습니다. 약간만 수정하면 네트워크를 어느 위치로 되돌려 야하는지 훨씬 더 많은 정보를 얻을 수 있습니다. 같은 다른 도구가 있습니다 KVM있도록 운영 boundries 내 spiciffic 서비스를 유지하는 데 사용 할 수도 가게 arround를 시스템에 가장 적합한 하나를 찾을 수는.

또 다른 옵션은 fail2banmad sys-admin이 IP에 http 또는 ssl 연결을 지정할 때 규칙이 삭제되도록 추가하는 방식 으로 실행 하는 것입니다.-m state --state NEW출구 통지 페이지를 요청하는 사람들에게 연결. 제정 된 금지 금지 시간 제한과 함께 사용하면 원격 서버가 중단되어 sys-admin이 로그 오염에 대해 중얼 거릴 수 있습니다 .-) 그러나 이것은 현재 답변의 범위를 벗어 났으며 서비스에 사용하는 소프트웨어에 따라 다릅니다. 종료 통지 페이지; 힌트 이제 URL이 요청 된 경우 nginx와 apache 모두 구성에서 첫 번째 호스트 또는 서버 블록을 제공합니다. 아파치 또는 nginx 이외의 다른 것을 사용하는 경우 man 페이지를 참조하고 싶지만 첫 번째 호스트를 다른 파일에 로그하도록 설정하고 fail2ban이 해당 로그의 IP를 임시 금지 목록에 추가하는 것만 큼 간단합니다. ; 이는 일반적으로 IP 주소를 사용하고 서버가 봇 트랩을 제공하는 도메인 요청 결과를 제공하지 않기 때문에 퍼블릭 서버에서 봇을 금지하는 데 효과적입니다.

제한된 Tor 종료 정책을 실행 한 다음 (두 번째로 처리 한 것처럼 보이는) VPN 터널을 통해 트래픽을 푸시하고 멀티 풀 터널 간로드 밸런싱을위한 추가 크레딧 포인트를 제공합니다. 이는 Tor 네트워크 트래픽을 방해하지 않고 VPN 트래픽을 스니핑하고 크랙하기를 원하지 않는 한 종료 노드를 실행하고 있다는 사실에 ISP의 눈을 흐리게 유지합니다. 이는 임시 호스트를 금지하거나 원격 호스트의 자체 금지를 허용하는 규칙을 실행하면 트래픽을 VPN (또는 소수)으로 푸시하면 클라이언트의 개인 정보를 보호하고 사용자의 개인 정보를 보호 할 수있는 노드의 클라이언트에 대한 개인 정보 보호 위반이 발생할 수 있기 때문입니다. ISP 는 실행 가능한 정부에 의해 네트워크 트래픽 로그 요청 으로 인해 방해받지 않습니다 whois www.some.domain.

~~~~

편집 / 업데이트

~~~~

내 extencive 메모를 살펴보고 내가 사용하는 공용 서버의 구성을 가져 왔습니다.

여기 fail2ban jail.local스탠자가 있습니다.

[apache-ipscan]
enabled  = true
port = http,https
filter = apache-ipscan
logpath = /var/log/apache*/*error_ip*
action = iptables-repeater[name=ipscan]
maxretry = 1

그리고 여기 필터 apache-ipscan.conf파일이 있습니다

[DEFAULT]
_apache_error_msg = \[[^]]*\] \[\S*:error\] \[pid \d+\] \[client <HOST>(:\d{1,5})?\]
[Definition]
failregex = \[client <HOST>\] client denied by server .*(?i)/.*
#^<HOST>.*GET*.*(?!)/.*
#   ^%(_apache_error_msg)s (AH0\d+: )?client denied by server configuration: (uri )?.*$
#            ^%(_apache_error_msg)s script '\S+' not found or unable to stat(, referer: \S+)?\s*$
ignoreregex = 
# DEV Notes: 
# the web server only responds to clients with a valid Host: 
# header. anyone who tries using IP only will get shunted into 
# the dummy-error.log and get a client-denied message
#
# the second regex catches folks with otherwise valid CGI paths but no good Host: header
#
# Author: Paul Heinlein

그리고 여기 액션 iptables-repeater.conf파일이 있습니다

# Fail2Ban configuration file
#
# Author: Phil Hagen <phil@identityvector.com>
# Author: Cyril Jaquier
# Modified by Yaroslav Halchenko for multiport banning and Lukas Camenzind for persistent banning
# Modified by S0AndS0 to combine features of previous Authors and Modders
#
[Definition]
# Option:  actionstart
# Notes.:  command executed once at the start of Fail2Ban.
# Values:  CMD
#
actionstart = iptables -N fail2ban-BADIPS-<name>
              iptables -A fail2ban-BADIPS-<name> -j RETURN
          iptables -I INPUT -j fail2ban-BADIPS-<name>
          ## Comment above line and uncomment bello line to use multiport and protocol in addition to named jails
          #iptables -I INPUT -p <protocol> -m multiport --dports <port> -j fail2ban-BADIPS-<name>
          # set up from the static file
          #cat /etc/fail2ban/ip.blocklist.<name> |grep -v ^\s*#|awk '{print $1}' | while read IP; do iptables -I fail2ban-BADIPS-<name> 1 -s $IP -j DROP; done
          cat /etc/fail2ban/ip.blocklist.<name> |grep -v ^\s*#|awk '{print $1}' | while read IP; do iptables -I fail2ban-BADIPS-<name> 1 -d $IP -j DROP; done
          ## Comment above line and uncomment bellow line to check if there are blacklist files to load before attempting to load them
          # if [ -f /etc/fail2ban/ip.blacklist.<name> ]; then cat /etc/fail2ban/ip.blacklist.<name> | grep -e <name>$ | cut -d "," -s -f 1 | while read IP; do iptables -I fail2ban-BADIPS-<name> 1 -s $IP -j DROP; done; fi
# Option:  actionstop
# Notes.:  command executed once at the end of Fail2Ban
# Values:  CMD
#
actionstop = iptables -D INPUT -p <protocol> -m multiport --dports <port> -j fail2ban-BADIPS-<name>
         iptables -F fail2ban-BADIPS-<name> 
         iptables -X fail2ban-BADIPS-<name>
# Option:  actioncheck
# Notes.:  command executed once before each actionban command
# Values:  CMD
#
#actioncheck = iptables -n -L INPUT | grep -q fail2ban-BADIPS-<name>
actioncheck = iptables -n -L OUTPUT | grep -q fail2ban-BADIPS-<name>
# Option:  actionban
# Notes.:  command executed when banning an IP. Take care that the
#          command is executed with Fail2Ban user rights.
# Tags:    <ip>  IP address
#          <failures>  number of failures
#          <time>  unix timestamp of the ban time
# Values:  CMD
#
#actionban = if ! iptables -C fail2ban-BADIPS-<name> -s <ip> -j DROP; then iptables -I fail2ban-BADIPS-<name> 1 -s <ip> -j DROP; fi
actionban = if ! iptables -C fail2ban-BADIPS-<name> -d <ip> -j DROP; then iptables -I fail2ban-BADIPS-<name> 1 -d <ip> -j DROP; fi
# Add offenders to local blacklist, if not already there
        if ! grep -Fxq '<ip>,<name>' /etc/fail2ban/ip.blocklist.<name>; then echo "<ip>,<name> # fail2ban/$( date '+%%Y-%%m-%%d %%T' ): auto-add for BadIP offender" >> /etc/fail2ban/ip.blocklist.<name>; fi
# Report offenders to badips.com
#        wget -q -O /dev/null www.badips.com/add/<name>/<ip>
# Option:  actionunban
# Notes.:  command executed when unbanning an IP. Take care that the
#          command is executed with Fail2Ban user rights.
# Tags:    <ip>  IP address
#          <failures>  number of failures
#          <time>  unix timestamp of the ban time
# Values:  CMD
#
#actionunban = iptables -D fail2ban-REPEAT-<name> -s <ip> -j DROP
actionunban = iptables -D fail2ban-REPEAT-<name> -d <ip> -j DROP
# Disabled clearing out entry from ip.blacklist (somehow happens after each stop of fail2ban)
#sed --in-place '/<ip>,<name>/d' /etc/fail2ban/ip.blacklist.<name>
[Init]
# Defaut name of the chain
# 
# Defaut name of the chain
name = BADIPS
# Option:  port
# Notes.:  specifies port to monitor
# Values:  [ NUM | STRING ]  Default:
# 
#port = ssh
# Option:  protocol
# Notes.:  internally used by config reader for interpolations.
# Values:  [ tcp | udp | icmp | all ] Default: tcp

위의 필터는 OUTPUT시작 / 중지 동작 을 차단하도록 편집 되었지만 여전히 -p TCP -m state --state NEW기록 된 IP 주소에서 새로운 아웃 바운드 연결 만 차단되도록 각 라인에 구성을 추가하려고 합니다.

마지막으로 Apache vHost 구성을 설정하여 도메인을 요청하지 않는 사람들을 특정 액세스 및 오류 로그로 라우팅하고 허용 대 거부 액세스를 설정하여 항상 오류가 발생합니다. 루프백조차도 오류가 발생하지 않고 페이지를 가져올 수 없습니다 . 마지막으로 아파치 오류 페이지를 Tor의 기본 종료 알림으로 설정하여 503또는 대신에 제공되도록하십시오.404블랜드 메시지. 또는 fail2ban에 대한 iptables 조치에 상태 행을 추가 한 경우 종료 알림에 사용되는 동일한 로그 파일을 쉽게 가리킬 수 있습니다. 결과적으로 서버가 IP 주소를 확인했지만 설정된 연결 및 관련 연결이 여전히 허용되는 서버의 IP에 새 연결을 만들 수는 없습니다. 즉, 여전히 다른 페이지를 찾아 볼 수는 있지만 다른 사이트를 찾아 볼 수는 없습니다. .


가장 반가운 소식은, GitHub에 방대한 양의 스크립트 / 노트를 푸시 한 것입니다. 1 년 전에이 프로젝트를 시작했지만 건강은 문제가되었으므로 완료 할 수없는 경우 기능을 디버깅하고 추가하기 위해 공개했습니다. 다른 사람에 의해 및 localY 및 globaly 촬영 sertain 조치는 것을 및 encurged 나 개인 정보를 쉽게 스위치를 만들기위한 독립을 촬영합니다.
S0AndS0

다른 프로젝트를 작성하여 GitHub로 푸시했습니다 . 이는 서버 관리자가 GnuPG 비대칭 암호화를 사용하여 서버의 로그를 보호하는 데 도움이됩니다. 엑시트 노드 또는 숨겨진 서비스가 관련 개인 키를 보유하지 않는 한, 위의 프로젝트는 사용자의 노드에 연결된 다른 노드의 IP 주소가 유출되지 않도록 과거의 로그를 유지해야합니다.
S0AndS0

0

나머지 Tor 네트워크의 제한된 대역폭은 이러한 문제를 해결합니다. 또한 걱정되는 경우 종료 노드가 아닌 릴레이 만 실행하십시오.


0

더 나은 해결책이 있습니다 : 오징어 캐시 서버. 정의 acl및 사용자 deny또는 accept각각 을 구성하는 데 사용할 수있는 오징어 캐시 서버 acl. 오징어 팀이 위키에서 규칙 세트를 정의하는 규칙 이 다른 층에서 작업하기 때문에 귀하의 질문 iptables,PF 있거나 다른 사람이 귀하의 작업을 수행 할 수 없다는 것을 매우 흥미롭게 생각합니다.


나는 오징어 (내가 알고 좋아하는)를 토르와 결합시키는 현명한 방법을 보지 못한다.
filiprem

로 시도하십시오 Zebra route.
페르시아 걸프

포트 80으로가는 출구 출구 트래픽을 리디렉션하고 오징어를 통해 파이핑하여 제어를 추가하는 것을 의미합니까? 이렇게하면 문제의 일부만 해결됩니다. 실제 원인은 모든 IP 기반 DDOS에 대한 Tor 남용을 방지하는 것입니다.
filiprem

3 계층에서 네트워크 설계를 사용할 수 있습니다. 1. 외부 계층 2. 프로세스 계층. 3.user / server layer ====> 보안을 향상시킵니다.
PersianGulf
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.