Bagi mereka yang perlu memberi diri mereka sendiri, orang yang mereka cintai, akses ke server mereka dari mana saja di dunia melalui SSH/RDP/lainnya, RTFM/spur kecil.
Kita perlu melakukannya tanpa VPN dan fasilitas lainnya, dari perangkat apa pun yang ada.
Dan agar Anda tidak perlu terlalu banyak berolahraga dengan server.
Yang Anda perlukan untuk ini hanyalah
“Semuanya ada di Internet,” tentu saja (bahkan di Internet).
Kita akan berlatih menggunakan Fedora/CentOS sebagai contoh, tapi itu tidak masalah.
Taji ini cocok untuk pemula dan ahli dalam hal ini, jadi akan ada komentar, tetapi akan lebih pendek.
1. Pelayan
-
instal ketukan-server:
yum/dnf install knock-server
-
konfigurasikan (misalnya di ssh) - /etc/knockd.conf:
[options] UseSyslog interface = enp1s0f0 [SSHopen] sequence = 33333,22222,11111 seq_timeout = 5 tcpflags = syn start_command = iptables -A INPUT -s %IP% -p tcp --dport 22 -j ACCEPT cmd_timeout = 3600 stop_command = iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT [SSHclose] sequence = 11111,22222,33333 seq_timeout = 5 tcpflags = syn command = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
Bagian “pembukaan” diatur untuk menutup otomatis setelah 1 jam. Kau tak pernah tahu...
-
/etc/sysconfig/iptables:
... -A INPUT -p tcp -m state --state NEW -m tcp --dport 11111 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 22222 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 33333 -j ACCEPT ...
-
maju:
service iptables restart service knockd start
-
Anda dapat menambahkan RDP ke server Windows virtual yang berputar di dalamnya (/etc/knockd.conf; gantikan nama antarmuka sesuai selera Anda):
[RDPopen] sequence = 44444,33333,22222 seq_timeout = 5 tcpflags = syn start_command = iptables -t nat -A PREROUTING -s %IP% -i enp1s0f0 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 192.168.0.2 cmd_timeout = 3600 stop_command = iptables -t nat -D PREROUTING -s %IP% -i enp1s0f0 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 192.168.0.2 [RDPclose] sequence = 22222,33333,44444 seq_timeout = 5 tcpflags = syn command = iptables -t nat -D PREROUTING -s %IP% -i enp1s0f0 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 192.168.0.2
Kami melacak semua tendangan kami dari klien di server dengan perintah
iptables -S
.
2. Panduan untuk menyapu
ketukan.conf:
Mana juga berisi segalanya (tapi ini tidak akurat), tetapi knockd adalah teman yang agak pelit dengan pesan, jadi Anda harus sangat berhati-hati.
- versi
Di repositori Fedora/CentOS, ketukan terbaru untuk hari ini adalah 0.63. Siapa yang mau UDP - cari paket 0.70. - antarmuka
Dalam konfigurasi default Fedora/CentOS, baris ini Tidak. Tambahkan dengan tangan Anda, jika tidak maka tidak akan berhasil. - batas waktu
Di sini Anda bisa memilih sesuai selera Anda. Klien harus memiliki cukup waktu untuk melakukan semua tindakan - dan bot pemindai port akan rusak (dan 146% akan memindai). - mulai/berhenti/perintah.
Jika ada satu perintah, maka perintah, jika ada dua, maka start_command+stop_command.
Jika Anda melakukan kesalahan, knockd akan tetap diam, tetapi tidak akan berfungsi. - prototipe
Secara teoritis, UDP dapat digunakan. Dalam praktiknya, saya mencampurkan tcp dan udp, dan klien dari pantai di Bali hanya mampu membuka gerbang untuk kelima kalinya. Karena TCP tiba saat dibutuhkan, namun UDP bukanlah fakta. Tapi sekali lagi, ini masalah selera. - urutan
Penggaruk tersirat adalah bahwa urutannya tidak boleh berpotongan... bagaimana mengatakannya...
Misalnya, seperti:
open: 11111,22222,33333
close: 22222,11111,33333
Dengan tendangan 11111 Buka akan menunggu tendangan berikutnya di 22222. Namun, setelah tendangan ini (22222) akan mulai bekerja menutup penjualan dan semuanya akan hancur. Hal ini tergantung pada keterlambatan klien juga. Hal-hal seperti itu ©.
iptables
Jika di /etc/sysconfig/iptables ini adalah:
*nat
:PREROUTING ACCEPT [0:0]
Itu tidak terlalu mengganggu kami, jadi ini dia:
*filter
:INPUT ACCEPT [0:0]
...
-A INPUT -j REJECT --reject-with icmp-host-prohibited
Itu memang mengganggu.
Karena knockd menambahkan aturan pada akhir rantai INPUT, kita akan mendapat penolakan.
Dan mematikan penolakan ini berarti membuka mobil terhadap segala angin.
Agar tidak tersesat di iptables apa yang harus dimasukkan sebelum apa (seperti ini
- bawaan di CentOS/Fedora pertama aturan (“apa yang tidak dilarang diperbolehkan”) akan diganti dengan yang sebaliknya,
- dan kami menghapus aturan terakhir.
Hasilnya seharusnya:
*filter
:INPUT DROP [0:0]
...
#-A INPUT -j REJECT --reject-with icmp-host-prohibited
Anda tentu saja dapat melakukan REJECT daripada DROP, tetapi dengan DROP hidup akan lebih menyenangkan bagi bot.
3. Klien
Tempat ini adalah yang paling menarik (dari sudut pandang saya), karena Anda harus bekerja tidak hanya dari pantai mana pun, tetapi juga dari perangkat apa pun.
Pada prinsipnya, sejumlah klien terdaftar
Saat memilih klien, Anda perlu memastikan bahwa klien tersebut mendukung opsi penundaan antar paket. Ya, ada perbedaan antara pantai dan 100 megabit tidak pernah menjamin bahwa paket akan tiba dalam urutan yang benar pada waktu yang tepat dari lokasi tertentu.
Dan ya, saat menyiapkan klien, Anda harus memilih sendiri penundaannya. Terlalu banyak waktu tunggu - bot akan menyerang, terlalu sedikit - klien tidak akan punya waktu. Terlalu banyak penundaan - klien tidak akan tiba tepat waktu atau akan ada konflik orang bodoh (lihat “penggaruk”), terlalu sedikit - paket akan hilang di Internet.
Dengan timeout=5s, delay=100..500ms adalah opsi yang sepenuhnya berfungsi
Windows
Betapapun lucunya kedengarannya, tidaklah sepele bagi Google sebagai klien yang jelas untuk platform ini. Sehingga CLI mendukung penundaan, TCP - dan tanpa busur.
Atau, Anda dapat mencoba
Linux
Sederhana saja di sini:
dnf install knock -y
knock -d <delay> <dst_ip> 11111 22222 33333
MacOS
Cara termudah adalah menginstal port dari homebrew:
brew install knock
dan menggambar file batch yang diperlukan untuk perintah seperti:
#!bin/sh
knock -d <delay> <dst_ip> 11111 22222 33333
iOS
Opsi yang berfungsi adalah KnockOnD (gratis, dari toko).
Android
"Ketuk Pelabuhan" Bukan iklan, tapi berhasil. Dan pengembangnya cukup responsif.
Penurunan harga PS di Habré, tentu saja Tuhan memberkatinya suatu hari nanti...
UPD1: terimakasih untuk
UPD2: Yang lainnya
Sumber: www.habr.com