감옥 환경에서 Tor 서비스 실행

감옥 환경에서 Tor 서비스 실행

주로 다크넷 활동에 사용되는 기존 FreeBSD 시스템을 해킹하고 싶습니다. 질문:

감옥을 만드는 동안 이러한 오류에 대해 걱정해야 합니까?

Warning: Some services already seem to be listening on all IP, (including 127.0.1.1)
  This may cause some confusion, here they are:
root     ntpd       58008 20 udp6   *:123                 *:*
root     ntpd       58008 21 udp4   *:123                 *:*
root     lpd        48726 6  tcp6   *:515                 *:*
root     lpd        48726 7  tcp4   *:515                 *:*
Warning: Some services already seem to be listening on IP 192.168.1.105
  This may cause some confusion, here they are:
root     ntpd       58008 23 udp4   192.168.1.105:123     *:*
Warning: Some services already seem to be listening on all IP, (including 192.168.1.105)
  This may cause some confusion, here they are:
root     ntpd       58008 20 udp6   *:123                 *:*
root     ntpd       58008 21 udp4   *:123                 *:*
root     lpd        48726 6  tcp6   *:515                 *:*
root     lpd        48726 7  tcp4   *:515                 *:

이 시스템의 모든 트래픽이 Tor를 통해 라우팅된다고 가정하면 감옥에서 루프백 인터페이스와 공용 이더넷 인터페이스에 액세스할 수 있어야 합니까? 교도소에서는 통신을 위해 가상 네트워크 인터페이스를 설정해야 합니까?

답변1

아니요 - 감옥에서는 루프백이나 공용 인터페이스에 대한 액세스가 필요하지 않습니다. 또한 VLAN 태그 지정이나 고급 작업을 수행하려는 경우가 아니면 가상 네트워크 인터페이스(VNET/VIMAGE)를 사용할 필요가 없습니다.

제가 주로 하는 일은 루프백 인터페이스를 복제하는 것입니다. 그런 다음 감옥과 감옥 트래픽만을 위한 내부 인터페이스가 있습니다. 그런 다음 pf 방화벽을 사용하여 액세스를 관리합니다. 구체적이지는 않지만 해당 스크립트를 사용하고 있는 것 같습니다 ezjail. 저는 기본 시스템과 함께 제공되는 것을 사용하고 있지만 개념은 동일합니다. 감옥에서 설정한 많은 서비스에는 *:port또는 0.0.0.0:port. 그러면 사용 가능한 IP 주소에 바인딩되며 이러한 오류가 표시됩니다. 이러한 서비스를 감옥에서 사용할 수 있는 주소에 명시적으로 바인딩하면 이러한 오류가 표시되지 않습니다.

/etc/jail.conf모습은 다음과 같습니다.

# Global settings applied to all jails.
host.hostname = "${name}.jail";
interface = "lo1";
path = "/usr/local/jails/${name}";
mount.fstab = "/usr/local/jails/${name}.fstab";
exec.start = "/bin/sh /etc/rc";
exec.stop = "/bin/sh /etc/rc.shutdown";
exec.clean;
mount.devfs;

# Only needed for PostgreSQL:
# allow.sysvipc;

myjail1 { ip4.addr = 172.17.2.1; }
myjail2 { ip4.addr = 172.17.2.2; }
myjail3 { ip4.addr = 172.17.2.3; }

설정 lo1하다/etc/rc.conf

cloned_interfaces="lo1"
ifconfig_lo1="inet 172.17.2.0 netmask 255.255.255.0"

이전에는 각 IP를 개별적으로 설정했지만 /etc/rc.conf실제로는 필요하지 않습니다. 위의 in 두 줄 과 in /etc/rc.conf에 대한 참조만으로 충분합니다. 그러나 원하는 경우 미리 주소에 별칭을 지정할 수 있습니다.lo1/etc/jail.conf

ifconfig_lo1_alias0="inet 172.17.2.1 netmask 255.255.255.255"
ifconfig_lo1_alias1="inet 172.17.2.2 netmask 255.255.255.255"
ifconfig_lo1_alias2="inet 172.17.2.3 netmask 255.255.255.255"

그러면 어떤 출구가 들어오나요 /etc/pf.conf? 원하는 이름을 사용할 수 있지만 기본적으로 상단에는 다음 매크로가 사용됩니다.

##########
# Macros #
##########
if=             "em0"          # Realtek = "re0", Intel = "igb0" or "em0" - Whatever your interface is named.
jif=            "lo1"          # We use the clone of lo0 for jail traffic        
loopback=       "lo0"
jnet=           $jif:network

jailhost=       "1.1.1.1"      # I put my public IP here.

#jails
jail1=          "172.17.2.1"       # Describe my jail
jail2=          "172.17.2.2"       # do.
jail3=          "172.17.2.3"       # do.

#aliases for services
tornode=       $jail1
web=           $jail2
mail=          $jail3

나머지는 일반적인 방화벽 설정입니다.

외부에서 특정 감옥에 SSH 액세스(포트 1234)를 원할 경우 NAT 규칙을 사용합니다. 이는 포트 22의 Jail1에 매핑됩니다.

rdr pass log inet proto tcp from any to ($if) port 1234 -> $jail1 port ssh

따라서 포트 22에서 SSH를 실행하는 여러 감옥이 있는 경우 기본 SSH 구성이 0.0.0.0에 바인딩되므로 표시되는 오류가 발생합니다. 특정 IP 주소에 바인딩하면 이 오류가 표시되지 않습니다.

보면 기본적으로 다음 /etc/ssh/sshd_configjail1표시됩니다.

#ListenAddress 0.0.0.0

그런 다음 이를 감옥의 특정 IP에 바인딩하면 됩니다.

ListenAddress 172.17.2.1

돌아가다 /etc/pf.conf. 감옥 tornode에 접근하려면 포트 web80과 443에 대한 접근을 명시적으로 허용해야 합니다.

pass on $jif proto tcp from $tornode to $web port http
pass on $jif proto tcp from $tornode to $web port https

감옥 내에서 http를 테스트하려면 web다음도 명시해야 합니다.

pass on $jif proto tcp from $web to $web port http

많은 도로가 로마로 연결되지만 위의 방법은 나에게 잘 맞는 달콤하고 간단한 설정입니다.

관련 정보