Neile, kes soovivad endale, armsamale, tagada juurdepÀÀsu oma serveritele igast maailma nurgast SSH/RDP/ja muu kaudu â vĂ€ike RTFM/vihik.
Peame hakkama saama ilma VPN-i ja muude trikkideta, kÀepÀrast on kÔik seadmed.
Ja nii, et serveriga ei peaks eriti vaeva nÀgema.
KĂ”ik, mis selleks vajalik on â , osavad kĂ€ed ja 5 minutit tööd.
âInternetis on kĂ”ik,â loomulikult (isegi ), kuid kui asi jĂ”uab konkreetse rakenduse juurde â siis seal see algab...
Treening toimub Fedora/CentOS nÀitel, kuid see pole oluline.
Vihik sobib nii algajatele kui ka valdkonna veteranidele, seega tulevad kommentaarid, kuid lĂŒhemalt.
1. Server
paigaldame knock-serveri:
yum/dnf install knock-serverseame selle ĂŒles (nĂ€iteks ssh jaoks) â /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âAvamiselâ osa on seadistatud autolukkuma tunni pĂ€rast. Who knowsâŠ
/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 ...edasi:
service iptables restart service knockd startvÔib lisada RDP pöörlevasse virtuaalsesse Windows Serverisse (/etc/knockd.conf; interfeisi nimi vastavalt soovile):
[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.2KÔik meie kliendi puhnud jÀlgime serveris kÀsuga
iptables -S.
2. Kivide teejuht
knockd.conf:
Manuaalides on ka kĂ”ik olemas (aga see pole tĂ€pne), kuid knockd â on ĂŒsna kĂ€rsitu teatiste osas, seega tuleb olla vĂ€ga tĂ€helepanelik.
- ICQ.com veebilehest dateeritud 1997. aasta aprilli, ja siis kuulus domeen hoopis teisele organisatsioonile â mingi mÔÔteseadmete tootjate ja kasutajate ĂŒhingule. Aasta
Fedora/CentOS repositooriumites on tĂ€nane uusim knockd versioon â 0.63. Kes soovib UDP-d â otsige pakette 0.70. - interface
Fedora/CentOS vaikimisi konfiguratsioonis on see rida puudub. Lisada kÀsitsi, muidu ei hakka töötama. - aegumine
Siit saab valida vastavalt soovile. Peab olema aega, et kliendil piisavalt pinde oleks â ja bot-koodiskanner lĂŒkkaks (ja skaneerimist on 146%). - start/stop/command.
Kui meeskond on ĂŒks, siis command, kui kaks, siis start_command+stop_command.
Kui te eksite, siis knockd jÀÀb vait, kuid ei tööta. - proto
Teoreetiliselt on vĂ”imalik kasutada UDP-d. Praktikas olen ma seganud tcp ja udp, ja klient Bali rannalt suutis oma vĂ€rava avada alles viiendat korda. Sest TCP jĂ”udis kohale, kui oli vajalik, kuid UDP â ei pruugi. Kuid see on jĂ€lle maitse asi. - sequence
Kahtlased probleemid peituvad selles, et jĂ€rjestused ei tohiks kattuda... kuidas nĂŒĂŒd öelda...
NĂ€iteks midagi sellist:
open: 11111,22222,33333
close: 22222,11111,33333Kuna 11111 peale löömine open ootab jÀrgmise löögi peale 22222. Siiski, sel 22222 löögil hakkab see tööle sulgeda ja kÔik lÀheb katki. See sÔltub ka kliendi viivitusest. Nii need lood on ©.
iptables
Kui /etc/sysconfig/iptables on niimoodi:
*nat
:PREROUTING ACCEPT [0:0]ei sega meid eriti, siis see:
*filter
:INPUT ACCEPT [0:0]
...
-A INPUT -j REJECT --reject-with icmp-host-prohibitedsegab ikka.
Kuna knockd lisab reeglid INPUT ahela lÔppu, saame me reject.
Ja selle rejecti keelamine â tĂ€hendab avada masinat tuuledele.
Et mitte iptables'is liialt keerutada (nagu inimesed vaikimisi
- CentOS/Fedora esimese reegli (âmis ei ole keelatud â on lubatudâ) vahetame vastupidiseks, ja eemaldame viimase reegli.
- Tulemusena peaks saama:
*filter :INPUT DROP [0:0] ... #-A INPUT -j REJECT --reject-with icmp-host-prohibited
VÔib muidugi DROP'i asemel teha REJECT, aga DROP'iga on botidel lihtsam elu.3. Klient
See koht on minu arvates kÔige huvitavam, kuna tuleb töötada mitte ainult igalt rannalt, vaid ka igasugustelt seadmetelt.
PÔhimÔtteliselt on mitmed kliendid loetletud
projekti, kuid see on samast sarjast âinternetis on kĂ”ik olemasâ. SeetĂ”ttu loetlen, mis mul siin ja praegu kĂ€epĂ€rast on. Kliendi valimisel tuleb jĂ€lgida, et see toetaks pakettide vahel viivituse valikut. Jah, rand on erinev ja 100 megabitti ei garanteeri pakettide jĂ”udmist Ă”iges jĂ€rjekorras Ă”igeaegselt antud kohast.
Ja jah â kliendi seadistamisel tuleb viivitust iseseisvalt kohandada. Liigne timeout â botid rĂŒndavad, liiga vĂ€he â klient ei jĂ”ua. Liigne viivitus â klient ei jĂ”ua vĂ”i tuleb konflikte (vt âprobleemidâ), liiga vĂ€he â paketid eksivad internetis.
Timeout=5s puhul on tÀiesti töövÔimeline variant viivitus=100..500ms
Kuidas see ka ei kĂ”laks, on mĂ”ne arusaadava knock-kliendi leidmine sellele platvormile ĂŒsna keeruline. Selline, mis toetaks CLI, viivitust, TCP-d â ja ilma lisanditeta.
Windows
Ja selline, mis toetaks CLI, viivitust, TCP-d â ja ilma igasuguste Ă”rnade lisanditeta.
VÔimalik, et tasub proovida . Ilmselt ei ole minu Google just parim.
Linux
Siin on kÔik lihtne:
dnf install knock -y
knock -d 11111 22222 33333MacOS
Lihtsam on port paigaldada homebrew'st:
brew install knock
ja joonistada endale vajalikud kÀskude skriptid:
#!bin/sh
knock -d <delay> <dst_ip> 11111 22222 33333iOS
Töötav variant â KnockOnD (tasuta, poest).
Android
âKnock on Portsâ. See ei ole reklaam, aga see töötab. Ja arendajad on piisavalt vastutulelikud.
P.S. Markdown Hubis, loomulikult, andku talle jumal tervist kunagiâŠ
UPD1: tÀnu leiti Windowsile.
UPD2: veel ĂŒks tuletas meelde, et uute reeglite lisamine iptables'i lĂ”ppu ei ole alati kasulik. Aga â see sĂ”ltub.
Allikas: habr.com
