www.fabiankeil.de/blog-surrogat/2006/06/25/tor-server-gestartet.html
Wie bereits erwähnt plane ich seit einiger Zeit, meine Website auf einen eigenen Server zu verschieben. Die Server-Angebote von Alturo hielt ich anfangs für attraktiv, mittlerweile sind sie aber ausverkauft und ich musste mich wo anders umsehen.
Das war auch gut so, für unwesentlich mehr Geld habe ich nun deutlich mehr Inklusiv-Traffic zur Verfügung. Für monatliche 19.99 Euro bot Alturo einen Celeron 2000 mit 400 Giga Byte Frei-Traffic an, für fünf Euro mehr habe ich einen Strato PowerServer S (Celeron 2400) mit 2 Terra Byte Inklusiv-Traffic bekommen.
Für meine jetzige Website käme ich locker mit drei Giga Byte aus, für den ebenfalls eingeplanten Tor-Server ist jedoch kein Limit zu hoch. Ich hoffe Strato hat sich bei seiner Kalkulation nicht zu weit aus dem Fenster gelehnt, 15 Cent pro Giga Byte hört sich für mich recht günstig an, die Kosten für den Server selbst sind dabei noch nichtmal berücksichtigt.
Nicht mein Problem. Den Server habe ich Donnerstag bestellt und erstmal das vorinstallierte GNU/Linux von der Festplatte getreten und mit dem Betriebssystem meiner Wahl ersetzt; Freitag wurde das Tor-Jail eingerichtet und gestartet.
Mit der Einrichtung von Mail- und Webserver werde ich noch einige Wochen warten. Meinen Domainfactory-Vertrag überlege ich für den Notfall zu behalten. Eine Beschlagnahmung des Tor-Servers wäre zwar rechtswidrig und vor allem sinnlos, in Zeiten der Anti-Terror-Hysterie ist das aber leider nur noch begrenzt relevant.
Von Tor-Server-Beschlagnahmungen in Deutschland habe ich zwar noch nichts gehört, in Frankreich gab es aber bereits mindestens eine. Da ich den Server nicht im Keller betreibe, rechne ich nicht mit Hausbesuch, ein vorübergehender Verlust von Mail- und Web-Server wäre aber ärgerlich genug – schneller Ersatz scheint sinnvoll.
Auch wenn Tor erst seit Freitag-Abend läuft, wurde bereits das ein oder andere Byte verarbeitet.
Die Grafiken kommen aus Stratos Webinterface, daher auch der kompetente Hostname.
Für die Außenwelt läuft der Server als tor.fabiankeil.de, der Tor-Nickname ist Zwiebelsuppe.
Auf der nach Traffic sortierten Tor-Server-Liste ist Zwiebelsuppe über Nacht auf Platz 25 (von 634) geklettert, mal sehen wie lange die Position gehalten werden kann. Update: mir spucken Instabilitäten in die Suppe, auf der Rangliste geht es daher auf und ab.
Momentan läuft Zwiebelsuppe mit einem Tages-Limit von 50 Giga Byte, daher auch die Pause in der ersten Nacht:
[fk@fabiankeil ~]$ tail -n 8 /usr/jails/tor-server/usr/local/var/log/tor/notices.log Jun 24 12:00:00.250 [notice] accounting_set_wakeup_time(): Configured hibernation. This interval began at 2006-06-24 12:00:00; the scheduled wake-up time was 2006-06-24 12:00:00; we expect to exhaust our quota for this interval around 2006-06-25 12:00:00; the next interval begins at 2006-06-25 12:00:00 (all times local) Jun 25 04:24:13.564 [notice] consider_hibernation(): Bandwidth soft limit reached; commencing hibernation. Jun 25 05:57:02.061 [notice] hibernate_go_dormant(): Going dormant. Blowing away remaining connections. Jun 25 12:00:00.079 [notice] accounting_set_wakeup_time(): Configured hibernation. This interval began at 2006-06-25 12:00:00; the scheduled wake-up time is 2006-06-25 12:00:32; we expect to exhaust our quota for this interval around 2006-06-26 11:59:32; the next interval begins at 2006-06-26 12:00:00 (all times local) Jun 25 12:00:00.079 [notice] hibernate_end_time_elapsed(): Accounting period ended. This period, we will hibernate until 2006-06-25 10:00:32 GMT Jun 25 12:00:32.289 [notice] hibernate_end(): Hibernation period ended. Resuming normal activity. Jun 25 12:00:32.289 [notice] connection_create_listener(): Opening OR listener on 10.0.0.1:9001 Jun 25 12:00:32.289 [notice] connection_create_listener(): Opening Directory listener on 10.0.0.1:9030
Das Tor-Limit werde ich nächsten Monat deutlich senken müssen: es bezieht sich lediglich auf den ausgehenden Verkehr, Stratos Monats-Limit gilt aber offensichtlich auch für den eingehenden Verkehr.
Ich hatte gehofft, es würde nur für den ausgehenden Verkehr gelten, durch den verspäteten Start wird das Limit aber diesen Monat auch so reichen.
Der Server ist momentan zu etwa 50 Prozent ausgelastet, für Mail und Web sind noch genug Reserven übrig:
last pid: 13463; load averages: 0.54, 0.55, 0.51 up 1+19:23:31 15:36:52 84 processes: 2 running, 67 sleeping, 15 waiting CPU states: 25.7% user, 0.0% nice, 15.2% system, 10.9% interrupt, 48.2% idle Mem: 115M Active, 166M Inact, 105M Wired, 60M Buf, 108M Free Swap: 1024M Total, 1024M Free PID USERNAME THR PRI NICE SIZE RES STATE TIME WCPU COMMAND 11 root 1 171 52 0K 8K RUN 31.2H 52.39% idle 12 root 1 -44 -163 0K 8K WAIT 130:55 7.03% swi1: net 23 root 1 -68 -187 0K 8K WAIT 41:33 2.10% irq12: fxp0 fxp1 35 root 1 20 0 0K 8K syncer 3:18 0.20% syncer 13 root 1 -32 -151 0K 8K WAIT 15:01 0.05% swi4: clock sio 1337 256 14 20 0 114M 111M kserel 529:56 0.00% tor 15 root 1 -16 0 0K 8K - 2:48 0.00% yarrow 642 root 1 -8 0 0K 8K geli:w 1:29 0.00% g_eli[0] md0 4 root 1 -8 0 0K 8K - 0:39 0.00% g_down 3 root 1 -8 0 0K 8K - 0:27 0.00% g_up 638 root 1 -8 0 0K 8K mdwait 0:25 0.00% md0 2 root 1 -8 0 0K 8K - 0:16 0.00% g_event 24 root 1 -64 -183 0K 8K WAIT 0:13 0.00% irq14: ata0 42 root 1 -16 0 0K 8K - 0:13 0.00% schedcpu 251 _pflogd 1 -58 0 1548K 1248K bpf 0:12 0.00% pflogd 450 root 1 96 0 2920K 1748K select 0:11 0.00% ntpd 37 root 1 -16 0 0K 8K sdflus 0:03 0.00% softdepflush 33 root 1 171 52 0K 8K pgzero 0:03 0.00% pagezero 26 root 1 0 0 0K 8K tzpoll 0:02 0.00% acpi_thermal 36 root 1 -4 0 0K 8K vlruwt 0:02 0.00% vnlru 34 root 1 -16 0 0K 8K psleep 0:01 0.00% bufdaemon 489 root 1 8 0 1312K 1044K nanslp 0:01 0.00% cron 820 root 1 8 0 1312K 1040K nanslp 0:01 0.00% cron 363 root 1 96 0 1300K 948K select 0:01 0.00% syslogd 762 root 1 96 0 1300K 956K select 0:00 0.00% syslogd 12967 fk 1 96 0 6080K 3148K select 0:00 0.00% sshd 31 root 1 -16 0 0K 8K psleep 0:00 0.00% pagedaemon 27 root 1 0 0 0K 8K coolin 0:00 0.00% acpi_cooling0 472 root 1 96 0 3356K 2560K select 0:00 0.00% sshd 13368 fk 1 8 0 3112K 1984K wait 0:00 0.00% bash 12964 root 1 4 0 6104K 3136K sbwait 0:00 0.00% sshd 12968 fk 1 8 0 1696K 1380K wait 0:00 0.00% sh
Die WCPU-Angabe für Tor ist unsinnig
da Tor mit mehreren Threads läuft und top
deren
Auslastung nicht erfassen kann. Tor läuft wie erwähnt in
einem eigenen Jail, die Auflösung von UID zu Benutzername
ist top
im Host-System unmöglich, der Nutzer _tor
ist
nur im Jail bekannt.
Tors Jail läuft von einem verschlüsselten Image. Falls ein prinzipienfreier Scherge den Server vom Strom trennen und einkassieren sollte, wird das gesamte Jail unzugänglich. Nicht das Tor irgendwelche personenbezogenen Daten protokollieren würde, aber ein bisschen Spass muss sein.
Obwohl die Paket-Filter-Konfiguration noch sehr locker ist, bleibt bereits haufenweise Müll hängen:
[fk@fabiankeil ~]$ sudo pfctl -si Status: Enabled for 1 days 19:27:18 Debug: Urgent Hostid: 0x9f9c7694 Interface Stats for fxp0 IPv4 IPv6 Bytes In 74450188872 0 Bytes Out 79786579915 0 Packets In Passed 103555546 0 Blocked 358300 0 Packets Out Passed 105250564 0 Blocked 11517 0 State Table Total Rate current entries 5290 searches 210203114 1343.7/s inserts 1192004 7.6/s removals 1186714 7.6/s Counters match 1843599 11.8/s bad-offset 0 0.0/s fragment 34 0.0/s short 0 0.0/s normalize 15 0.0/s memory 332 0.0/s bad-timestamp 0 0.0/s congestion 0 0.0/s ip-option 0 0.0/s proto-cksum 0 0.0/s state-mismatch 23769 0.2/s state-insert 0 0.0/s state-limit 0 0.0/s src-limit 2 0.0/s synproxy 36 0.0/s
Die dmesg-Ausgabe darf natürlich nicht fehlen:
Copyright (c) 1992-2006 The FreeBSD Project. Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 The Regents of the University of California. All rights reserved. FreeBSD 6.1-RELEASE-p2 #0: Fri Jun 23 20:06:57 CEST 2006 fk@fabiankeil.de:/usr/obj/usr/src/sys/BIGSLEEP Timecounter "i8254" frequency 1193182 Hz quality 0 CPU: Intel(R) Celeron(R) CPU 2.40GHz (2399.74-MHz 686-class CPU) Origin = "GenuineIntel" Id = 0xf29 Stepping = 9 Features=0xbfebf9ff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE> Features2=0x4400<CNTX-ID,<b14>> real memory = 536805376 (511 MB) avail memory = 515952640 (492 MB) kbd1 at kbdmux0 acpi0: <IntelR AWRDACPI> on motherboard acpi0: Power Button (fixed) Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000 acpi_timer0: <24-bit timer at 3.579545MHz> port 0x408-0x40b on acpi0 cpu0: <ACPI CPU> on acpi0 acpi_throttle0: <ACPI CPU Throttling> on cpu0 acpi_button0: <Power Button> on acpi0 pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff,0x400-0x4bf on acpi0 pci0: <ACPI PCI bus> on pcib0 agp0: <Intel 82845 host to AGP bridge> mem 0xe3000000-0xe33fffff at device 0.0 on pci0 pcib1: <PCI-PCI bridge> at device 1.0 on pci0 pci1: <PCI bus> on pcib1 pcib2: <ACPI PCI-PCI bridge> at device 30.0 on pci0 pci2: <ACPI PCI bus> on pcib2 fxp0: <Intel 82559 Pro/100 Ethernet> port 0xc000-0xc03f mem 0xe2200000-0xe2200fff,0xe2100000-0xe21fffff irq 12 at device 6.0 on pci2 miibus0: <MII bus> on fxp0 inphy0: <i82555 10/100 media interface> on miibus0 inphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto fxp0: Ethernet address: 00:30:48:52:d2:0a fxp1: <Intel 82559 Pro/100 Ethernet> port 0xc400-0xc43f mem 0xe2201000-0xe2201fff,0xe2000000-0xe20fffff irq 12 at device 7.0 on pci2 miibus1: <MII bus> on fxp1 inphy1: <i82555 10/100 media interface> on miibus1 inphy1: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto fxp1: Ethernet address: 00:30:48:52:d2:0b pci2: <display, VGA> at device 8.0 (no driver attached) isab0: <PCI-ISA bridge> at device 31.0 on pci0 isa0: <ISA bus> on isab0 atapci0: <Intel ICH2 UDMA100 controller> port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xf000-0xf00f at device 31.1 on pci0 ata0: <ATA channel 0> on atapci0 ata1: <ATA channel 1> on atapci0 pci0: <serial bus, SMBus> at device 31.3 (no driver attached) acpi_tz0: <Thermal Zone> on acpi0 sio0: <16550A-compatible COM port> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0 sio0: type 16550A sio1: <16550A-compatible COM port> port 0x2f8-0x2ff irq 3 on acpi0 sio1: type 16550A ppc0: <ECP parallel printer port> port 0x378-0x37f,0x778-0x77b irq 7 drq 3 on acpi0 ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode ppc0: FIFO with 16/16/9 bytes threshold ppbus0: <Parallel port bus> on ppc0 plip0: <PLIP network interface> on ppbus0 lpt0: <Printer> on ppbus0 lpt0: Interrupt-driven port ppi0: <Parallel I/O> on ppbus0 pmtimer0 on isa0 orm0: <ISA Option ROMs> at iomem 0xc0000-0xc7fff,0xc8000-0xc8fff on isa0 sc0: <System console> at flags 0x100 on isa0 sc0: VGA <16 virtual consoles, flags=0x300> vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0 atkbdc0: <Keyboard controller (i8042)> at port 0x60,0x64 on isa0 atkbd0: <AT Keyboard> irq 1 on atkbdc0 kbd0 at atkbd0 atkbd0: [GIANT-LOCKED] Timecounter "TSC" frequency 2399737412 Hz quality 800 Timecounters tick every 3.333 msec Fast IPsec: Initialized Security Association Processing. ad0: 58644MB <ExcelStor Technology J360 V22OA63A> at ata0-master UDMA100 WARNING: Expected rawoffset 112455, found 4032 Trying to mount root from ufs:/dev/ad0s2a GEOM_ELI: Device ad0s3f.eli created. GEOM_ELI: Cipher: AES GEOM_ELI: Key length: 256 GEOM_ELI: Crypto: software GEOM_ELI: Device md0.eli created. GEOM_ELI: Cipher: AES GEOM_ELI: Key length: 128 GEOM_ELI: Crypto: software Limiting icmp unreach response from 201 to 200 packets/sec Limiting icmp unreach response from 215 to 200 packets/sec Limiting icmp unreach response from 201 to 200 packets/sec Limiting closed port RST response from 222 to 200 packets/sec
md0.eli
ist das Image des Tor-Jails, ad0s3f.eli
das
verschlüsselte Swap-Slice. Wie die letzten vier Zeilen zeigen wurden auch die ersten
Skript-Kinder bereits auf den Server aufmerksam.
Nächste Woche werde ich ein Jail für den Privoxy-Filter-Test einrichten, die Konfigurations-Hürden scheinen einige abzuschrecken. Die erste Zeit wird es nur als Hidden Service über Tor erreichbar sein, beim Umzug meiner Website werde ich es dann integrieren und für den unverschlüsselten Verkehr freischalten.
Auf tor.fabiankeil.de
werde ich noch einen Webserver einrichten, der
Funktion und Rechtslage erläutert, auch wenn der Hostname eigentlich offensichtlich genug
sein sollte.