Vir diegene wat hulself, hul geliefdes, van enige plek in die wêreld toegang tot hul bedieners moet voorsien via SSH/RDP/ander, 'n klein RTFM/spur.
Ons moet klaarkom sonder VPN en ander klokkies en fluitjies, vanaf enige toestel byderhand.
En sodat jy nie te veel met die bediener hoef te oefen nie.
Al wat jy hiervoor nodig het is
"Alles is op die internet," natuurlik (selfs op
Ons sal oefen om Fedora/CentOS as voorbeeld te gebruik, maar dit maak nie saak nie.
Die spoor is geskik vir beide beginners en kundiges in hierdie saak, so daar sal kommentaar wees, maar hulle sal korter wees.
1. Bediener
-
installeer knock-server:
yum/dnf install knock-server
-
stel dit op (byvoorbeeld op 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
Die "opening" deel is ingestel om outomaties toe te maak na 1 uur. Jy weet nooit...
-
/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 ...
-
vorentoe:
service iptables restart service knockd start
-
jy kan RDP by die virtuele Windows Server voeg wat binne draai (/etc/knockd.conf; vervang die koppelvlaknaam om jou smaak te pas):
[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
Ons volg al ons skoppe vanaf die kliënt op die bediener met die opdrag
iptables -S
.
2. Gids vir harke
knockd.conf:
Die mana bevat ook alles (maar dit is onakkuraat), maar knockd is 'n vriend wat nogal suinig is met boodskappe, so jy moet baie versigtig wees.
- weergawe
In die Fedora/CentOS-bewaarplekke is die jongste knockd vir vandag 0.63. Wie wil UDP hê - soek 0.70 pakkies. - koppelvlak
In die verstek Fedora/CentOS-konfigurasie hierdie reël geen. Voeg by met jou hande, anders werk dit nie. - Time-out
Hier kan jy kies volgens jou smaak. Dit is nodig dat die kliënt genoeg tyd het vir al die skoppe - en die port skandeerder bot sal breek (en 146% sal skandeer). - begin/stop/bevel.
As daar een opdrag is, dan opdrag, as daar twee is, dan start_command+stop_command.
As jy 'n fout maak, sal knockd stilbly, maar sal nie werk nie. - daarom
Teoreties kan UDP gebruik word. In die praktyk het ek tcp en udp gemeng, en die kliënt van die strand in Bali kon die hek net die vyfde keer oopmaak. Omdat TCP opgedaag het wanneer dit nodig was, maar UDP is nie 'n feit nie. Maar dit is weer 'n kwessie van smaak. - volgorde
Die implisiete hark is dat die rye nie moet sny nie ... hoe om dit te stel ...
Byvoorbeeld, hierdie:
open: 11111,22222,33333
close: 22222,11111,33333
Deur skop 11111 oop sal wag vir die volgende skop by 22222. Na hierdie (22222) skop sal dit egter begin werk naby en alles sal breek. Dit hang ook af van die kliënt se vertraging. Sulke dinge ©.
iptables
As dit in /etc/sysconfig/iptables is, is dit:
*nat
:PREROUTING ACCEPT [0:0]
Dit pla ons nie regtig nie, so hier is dit:
*filter
:INPUT ACCEPT [0:0]
...
-A INPUT -j REJECT --reject-with icmp-host-prohibited
Dit meng in.
Aangesien knockd reëls aan die einde van die INPUT-ketting byvoeg, sal ons verwerping kry.
En om hierdie verwerping af te skakel beteken om die motor vir alle winde oop te maak.
Om nie in iptables te verdwaal wat om voor wat in te voeg nie (soos hierdie
- verstek op CentOS/Fedora 1 die reël ("wat nie verbode is nie, word toegelaat nie") sal vervang word deur die teenoorgestelde,
- en ons verwyder die laaste reël.
Die resultaat moet wees:
*filter
:INPUT DROP [0:0]
...
#-A INPUT -j REJECT --reject-with icmp-host-prohibited
Jy kan natuurlik REJECT doen in plaas van DROP, maar met DROP sal die lewe vir bots lekkerder wees.
3. Kliënt
Hierdie plek is die interessantste (uit my oogpunt), aangesien jy nie net van enige strand af moet werk nie, maar ook vanaf enige toestel.
In beginsel is 'n aantal kliënte op gelys
Wanneer u 'n kliënt kies, moet u seker maak dat dit die vertragingsopsie tussen pakkies ondersteun. Ja, daar is verskille tussen strande en 100 megabits waarborg nooit dat pakkies in die regte volgorde op die regte tyd vanaf 'n gegewe plek sal aankom nie.
En ja, wanneer jy 'n kliënt opstel, moet jy self die vertraging kies. Te veel time-out - bots sal aanval, te min - die kliënt sal nie tyd hê nie. Te veel vertraging - die kliënt sal dit nie betyds maak nie of daar sal 'n konflik van idiote wees (sien "harke"), te min - die pakkies sal op die internet verlore raak.
Met time-out=5s, vertraging=100..500ms is 'n heeltemal werkende opsie
Windows
Maak nie saak hoe snaaks dit klink nie, dit is nogal nie-triviaal om 'n duidelike klopkliënt vir hierdie platform te Google. Sodanig dat die CLI vertraging, TCP ondersteun - en sonder boë.
Alternatiewelik kan jy probeer
Linux
Alles is eenvoudig hier:
dnf install knock -y
knock -d <delay> <dst_ip> 11111 22222 33333
MacOS
Die maklikste manier is om die port vanaf homebrew te installeer:
brew install knock
en teken die nodige bondellêers vir opdragte soos:
#!bin/sh
knock -d <delay> <dst_ip> 11111 22222 33333
IOS
'n Werkopsie is KnockOnD (gratis, vanaf die winkel).
Android
"Klop op hawens" Nie adverteer nie, maar dit werk net. En die ontwikkelaars reageer baie goed.
PS markdown op Habré, natuurlik, God seën hom eendag...
UPD 1: te danke aan
UPD 2: Nog een
Bron: will.com