Apa yang Dibangun
Relay perantara: ia menerima koneksi dari klien dan relay lain, meneruskan lalu lintas di dalam jaringan, dan tidak pernah membuka koneksi ke tujuan di internet biasa. Tidak ada yang menerima keluhan penyalahgunaan tentang relay perantara, karena dari luar ia bertukar lalu lintas terenkripsi dengan daftar relay lain yang dipublikasikan dan tidak ada yang lain.
Perbedaan itulah satu-satunya alasan panduan ini ada. Relay keluar adalah percakapan terpisah: keluhan tentangnya sampai ke meja penyalahgunaan kami, bukan Anda, jadi baca kebijakan penggunaan yang dapat diterima dan buka tiket sebelum mengonfigurasinya. Semua hal di bawah ini sengaja mematikan keluar, dua kali.
Sebelum Anda Mulai
- Sebuah R-4. Tor adalah single-threaded per koneksi dan terikat jaringan; empat inti khusus akan memenuhi tautan jauh sebelum CPU menyadarinya.
- Sebuah situs dengan bandwidth yang rela Anda sumbangkan. BUH-01 dan HEL-01 adalah terabyte termurah yang kami jual, dan keduanya memiliki transit untuk mendukungnya.
- Jam yang bekerja. Relay dengan waktu yang miring dibuang dari konsensus, dan ini adalah penyebab paling umum dari relay yang dimulai dengan sempurna dan tidak pernah muncul di mana pun.
1. Sistem Dasar
apt update && apt full-upgrade -y
apt install -y tor nyx chrony nftables
timedatectl set-timezone UTC
chronyc trackingchronyc tracking harus melaporkan offset waktu sistem dalam mikro detik. Jika melaporkan detik, berhenti dan perbaiki dulu; tidak ada yang berfungsi di hilir.
2. Konfigurasi Relay
Ganti /etc/tor/torrc dengan berikut ini. Baca setiap baris, karena dua di antaranya adalah yang menjaga Anda tetap dalam kebijakan:
Nickname exampleRelay
ContactInfo [email protected]
ORPort 9001
ORPort [2001:db8:1a2b::2]:9001
SocksPort 0
ControlPort 0
ExitRelay 0
ExitPolicy reject *:*
IPv6Exit 0
RelayBandwidthRate 40 MBytes
RelayBandwidthBurst 60 MBytes
AccountingMax 40 TBytes
AccountingStart month 1 00:00
MetricsPort 127.0.0.1:9035
MetricsPortPolicy accept 127.0.0.1
User debian-tor
DataDirectory /var/lib/tor
Log notice syslogExitRelay 0 dan ExitPolicy reject *:* adalah sabuk dan pengaman. Salah satu saja sudah cukup; keduanya bersama-sama berarti tidak ada default paket masa depan, dan tidak ada edit setengah ingat di tengah malam, yang diam-diam mengubah Anda menjadi relay keluar.
Ganti alamat IPv6 asli instance Anda di baris ORPort kedua. Setiap instance dilengkapi dengan /64 yang dirutekan, jadi tidak ada alasan untuk menjalankan relay v4-only, dan relay yang mendukung v6 masih lebih sedikit daripada yang v4.
Akuntansi bandwidth layak dipikirkan daripada sekadar salin-tempel. Lalu lintas di jaringan kami tidak terukur dalam penggunaan wajar, tetapi relay yang tidak dibatasi akan menggunakan tepat sebanyak yang dapat ditemukan jaringan untuknya, selamanya. Empat puluh megabyte per detik dengan batas bulanan empat puluh terabyte adalah relay yang murah hati dan berperilaku baik. Ketika akuntansi tercapai, relay hibernate sampai periode bergulir kembali, alih-alih diputus di tengah sirkuit.
Jika Anda menjalankan lebih dari satu relay di mana pun, tambahkan baris MyFamily yang mencantumkan setiap sidik jari termasuk yang ini, dipisahkan koma. Klien menggunakannya untuk menghindari membangun sirkuit yang melewati dua mesin di bawah kendali yang sama, dan menghilangkannya adalah keluhan konfigurasi paling umum yang ditujukan kepada operator.
3. Memperkuat Unit
Unit yang dikemas layak; baris-baris ini membuatnya jauh kurang menarik bagi siapa pun yang menemukan bug di dalamnya.
systemctl edit tor@default[Service]
NoNewPrivileges=yes
PrivateTmp=yes
PrivateDevices=yes
ProtectSystem=strict
ProtectHome=yes
ProtectKernelTunables=yes
ProtectKernelModules=yes
ProtectControlGroups=yes
RestrictAddressFamilies=AF_INET AF_INET6 AF_UNIX
RestrictNamespaces=yes
MemoryDenyWriteExecute=yes
ReadWritePaths=/var/lib/tor /var/log/tor /run/tor
LimitNOFILE=65535Batas deskriptor file lebih penting daripada yang terlihat. Relay yang sibuk menahan ribuan soket simultan, dan batas default menghasilkan relay yang bekerja selama seminggu dan kemudian mulai menolak koneksi tanpa sesuatu yang jelas di log.
4. Firewall
flush ruleset
table inet filter {
chain input {
type filter hook input priority filter; policy drop;
ct state established,related accept
ct state invalid drop
iif lo accept
ip protocol icmp accept
ip6 nexthdr icmpv6 accept
tcp dport 22 accept
tcp dport 9001 accept
}
chain forward {
type filter hook forward priority filter; policy drop;
}
}systemctl enable --now nftables
systemctl restart tor@defaultPerhatikan bahwa port metrik terikat pada alamat loopback dan karena itu tidak memerlukan aturan. Capai melalui terowongan SSH saat Anda menginginkannya, dan jangan pernah mengeksposnya; metrik relay menarik bagi lebih banyak orang daripada Anda.
Verifikasi
Ini adalah bagian yang memakan waktu berjam-jam daripada menit, jadi mulai dan pergilah.
Pertama, dalam sekitar dua puluh menit setelah mulai, log harus mengatakan relay menguji portnya sendiri dari luar dan berhasil:
journalctl -u tor@default --since "20 min ago" | grep -i "self-testing"Anda ingin baris yang membaca bahwa ORPort Anda dapat dijangkau dari luar. Jika tidak pernah muncul, firewall memblokir 9001 masuk atau alamat v6 Anda di torrc tidak cocok dengan instance.
Kedua, ambil sidik jari Anda dan simpan:
cat /var/lib/tor/fingerprintKetiga, konfirmasi relay melakukan pekerjaan daripada sekadar berjalan:
nyx
curl -s http://127.0.0.1:9035/metrics | grep -E "tor_relay_traffic|tor_relay_connections"Penghitung lalu lintas harus naik dalam satu jam setelah uji mandiri lulus. Otoritas direktori membutuhkan sekitar tiga jam untuk memilih sidik jari Anda ke dalam konsensus, dan klien hanya mulai mengirim volume yang berarti setelah itu. Bendera Guard tiba sekitar hari kedelapan jika uptime Anda bertahan, dan saat itulah grafik lalu lintas berubah dari tetesan ke batas yang Anda tetapkan.
Keempat, dan yang terpenting untuk build khusus ini, buktikan bahwa Anda tidak keluar. Dari mesin kedua, periksa bahwa tidak ada apa pun kecuali lalu lintas relay yang keluar:
ss -tn state established | wc -l
ss -tn state established sport = :9001 | wc -lHampir setiap koneksi yang mapan harus melibatkan ORPort. Sejumlah besar koneksi keluar ke port arbitrer berarti kebijakan keluar yang tidak Anda maksudkan, pada titik itu hentikan daemon dan baca ulang langkah dua.
Mengoperasikannya
| Hal | Jawaban |
|---|---|
| Memulai ulang | Menghabiskan reputasi Anda beberapa jam. Kelompokkan perubahan Anda. |
| Peningkatan | apt upgrade lalu mulai ulang. Relay yang menjalankan versi lama akan ditandai dan akhirnya dibuang. |
| Memindahkan situs | Salin /var/lib/tor/keys dan sidik jari mengikuti relay. Bobot konsensus tidak diatur ulang. |
| Keluhan | Relay perantara tidak menghasilkan apa pun. Jika Anda menerima satu, sesuatu keluar dan Anda harus memeriksa. |
| Mematikan | Atur AccountingMax ke nilai kecil terlebih dahulu sehingga sirkuit mengalir, atau hentikan saja dan terima kehilangan reputasi. |
Cadangkan /var/lib/tor/keys di suatu tempat di luar instance pada hari Anda membangunnya. Kunci identitas adalah apa yang membuat relay ini menjadi relay itu; kehilangan itu dan Anda mulai lagi dari nol bobot konsensus, yang berarti delapan hari tidak ada yang menggunakan Anda. Posisi kami tentang apa yang kami catat saat relay Anda berjalan ada di halaman pencatatan, dan itu singkat.