我想破解我的 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
否 - 监狱不需要访问环回或公共接口。而且您可以不使用虚拟网络接口 (VNET/VIMAGE),除非您想要进行 VLAN 标记或更高级的操作。
我通常做的是克隆环回接口。然后我有一个仅用于监狱和监狱流量的内部接口。然后我使用 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
但这并不是真正需要的。上面 2 行 in/etc/rc.conf
和引用lo1
in/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_config
,jail1
您将默认拥有:
#ListenAddress 0.0.0.0
然后,您只需将其绑定到监狱的特定 IP:
ListenAddress 172.17.2.1
回到/etc/pf.conf
。如果我希望tornode
能够访问我的web
监狱,那么我明确允许访问端口 80 和 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
许多道路通罗马,但以上是一个甜蜜且简单的设置,对我来说效果很好。