Ji bo kesên ku hewce ne ku xwe, hezkiriyên xwe, bi gihandina serverên xwe ji her deverê cîhanê bi SSH/RDP/yên din, RTFM/spurek piçûk peyda bikin.
Pêdivî ye ku em bêyî VPN û zengil û bilbilên din, ji her amûrek di dest de bikin.
Û da ku hûn ne hewce ne ku pir bi serverê re tevbigerin.
Ya ku hûn ji bo vê yekê hewce ne ev e
"Her tişt li ser Înternetê ye," bê guman (heta li ser
Em ê wekî mînakek Fedora/CentOS bikar bînin, lê ew ne girîng e.
Spur di vê mijarê de hem ji bo destpêk û hem jî ji pisporan re maqûl e, ji ber vê yekê dê şîrove hebin, lê ew ê kurttir bin.
1. Server
-
knock-server saz bike:
yum/dnf install knock-server
-
wê mîheng bike (mînakek li ser 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
Beşa "vekirinê" piştî 1 saetê ji bo girtina bixweber tê danîn. Tu qet nizanî...
-
/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 ...
-
pêşve:
service iptables restart service knockd start
-
hûn dikarin RDP-ê li Servera Windows-ê ya virtual ku di hundurê de dizivire zêde bikin (/etc/knockd.conf; navê navrûyê li şûna tama xwe biguhezînin):
[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
Em bi fermanê hemî lêdanên xwe yên ji xerîdar li ser serverê dişopînin
iptables -S
.
2. Rêbera raketan
knockd.conf:
Mana jî her tiştî dihewîne (lê ev nerast e), lê knockd hevalek e ku bi peyaman re pir gêj e, ji ber vê yekê hûn hewce ne ku pir baldar bin.
- versiyon
Di depoyên Fedora/CentOS de, lêdana herî dawî ya îro 0.63 e. Kî UDP dixwaze - li pakêtên 0.70 bigerin. - virtual
Di veavakirina xwerû ya Fedora/CentOS de ev rêz winda ye. Bi destên xwe zêde bikin, wekî din ew ê nexebite. - başim
Li vir hûn dikarin li gorî tama xwe hilbijêrin. Pêdivî ye ku xerîdar ji bo hemî lêdanan dem têra xwe hebe - û bota skanera portê dê hilweşe (û 146% dê bişoxilîne). - destpêk / rawestandin / ferman.
Ger yek ferman hebe, wê hingê ferman, heke du hebin, wê hingê start_command+stop_command.
Ger hûn xeletiyek bikin, knockd dê bêdeng bimîne, lê dê nexebite. - prototîp
Teorîk, UDP dikare were bikar anîn. Di pratîkê de, min tcp û udp tevlihev kir, û xerîdar ji peravê li Bali karîbû tenê cara pêncemîn derî veke. Ji ber ku TCP dema ku hewce bû gihîşt, lê UDP ne rastiyek e. Lê belê ev meseleyeke tama ye, dîsa. - dor
Rakêşiya nehênî ev e ku rêzik neyên hevberdan... meriv çawa bilêv dike...
Ji bo nimûne, ev:
open: 11111,22222,33333
close: 22222,11111,33333
Bi kick 11111 vekirî dê li benda lêdana paşîn li 22222 bisekine. Lêbelê, piştî vê (22222) lêdanê ew ê dest bi xebatê bike. nêzîkî û her tişt wê bişkê. Ev jî bi derengiya xerîdar ve girêdayî ye. Tiştên weha ©.
iptables
Ger di /etc/sysconfig/iptables de ev e:
*nat
:PREROUTING ACCEPT [0:0]
Ew bi rastî me aciz nake, ji ber vê yekê ev e:
*filter
:INPUT ACCEPT [0:0]
...
-A INPUT -j REJECT --reject-with icmp-host-prohibited
Ew mudaxele dike.
Ji ber ku knockd qaîdeyan li dawiya zincîra INPUT zêde dike, em ê red bikin.
Û qutkirina vê redkirinê tê wateya vekirina otomobîlê ji hemî bayan re.
Ji bo ku di iptables de winda nebin berî çi têxin çi (wek vê
- destçûnî li ser CentOS / Fedora yekem qaîdeya ("tiştê ku ne qedexe ye destûr e") dê bi berevajî were guhertin,
- û em qaîdeya dawî radikin.
Divê encam ev be:
*filter
:INPUT DROP [0:0]
...
#-A INPUT -j REJECT --reject-with icmp-host-prohibited
Bê guman, hûn dikarin li şûna DROP REJECT bikin, lê bi DROP-ê re jiyan dê ji bo botan bêtir xweş be.
3. Xerîdar
Ev cîhê herî balkêş e (ji nêrîna min), ji ber ku hûn hewce ne ku ne tenê ji her deryayê, lê di heman demê de ji her amûrekê jî bixebitin.
Di prensîbê de, hejmarek xerîdar li ser têne navnîş kirin
Dema ku xerîdar hilbijêrin, hûn hewce ne ku pê ewle bin ku ew vebijarka dereng di navbera pakêtan de piştgirî dike. Erê, di navbera peravê de cûdahî hene û 100 megabit qet garantî nakin ku pakêt dê di wextê rast de ji cîhek diyarkirî bi rêza rast bigihîjin.
Û erê, dema ku xerîdarek saz dike, hûn hewce ne ku derengiyê bixwe hilbijêrin. Demjimêra pir zêde - bot dê êrîş bikin, pir hindik - dê xerîdar wext nemîne. Pir dereng - dê xerîdar di wextê xwe de biser nekeve an dê pevçûnek ehmeqan çêbibe (binihêrin "rakes"), pir hindik - dê pakêt li ser Înternetê winda bibin.
Bi wextê = 5s, dereng = 100..500ms vebijarkek bi tevahî xebitîn e
Windows
Her çiqas ew çiqas xweş xuya dike jî, ji Google re ji bo vê platformê xerîdarek bişkojka zelal a Google-ê pir ne-tahf e. Wusa ku CLI dereng, TCP - û bê kevan piştgirî dike.
Wekî din, hûn dikarin biceribînin
Linux
Li vir her tişt hêsan e:
dnf install knock -y
knock -d <delay> <dst_ip> 11111 22222 33333
MacOS
Rêya herî hêsan sazkirina portê ji homebrew e:
brew install knock
û pelên komê yên pêwîst ji bo emrên mîna:
#!bin/sh
knock -d <delay> <dst_ip> 11111 22222 33333
iOS
Vebijarkek xebatê KnockOnD (belaş, ji firotgehê) ye.
Android
"Li benderan bixin" Ne reklam, lê ew tenê dixebite. Û pêşdebiran pir bersivdar in.
Nîşana PS li ser Habré, bê guman, Xwedê rojek jê razî be...
UPD1: bi xêra
UPD2: Yeka din
Source: www.habr.com