Beraiek, beren maiteei, munduko edozein lekutatik zerbitzarietarako sarbidea eman behar dietenei SSH/RDP/besteren bidez, RTFM/spur txiki bat.
VPN eta beste txistu eta txisturik gabe egin behar dugu esku artean dagoen edozein gailutatik.
Eta zerbitzariarekin gehiegi ariketa egin behar ez izateko.
Horretarako behar duzun guztia da
"Dena Interneten dago", noski (baita
Fedora/CentOS adibide gisa erabiltzen praktikatuko dugu, baina horrek ez du axola.
Espoloia egokia da gai honetan hasiberrientzat zein adituentzat, beraz, iruzkinak egongo dira, baina laburragoak izango dira.
1. Zerbitzaria
-
instalatu knock-server:
yum/dnf install knock-server
-
konfiguratu (adibidez ssh-n) - /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
"Irekitzea" zatia ordubete igaro ondoren automatikoki ixteko ezartzen da. Ez dakizu inoiz...
-
/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 ...
-
aurrera:
service iptables restart service knockd start
-
RDP gehi dezakezu Windows Server zerbitzari birtualera barruan biraka (/etc/knockd.conf; ordezkatu interfazearen izena zure gustura):
[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
Bezerotik zerbitzarian gure jaurtiketa guztiak jarraitzen ditugu komandoarekin
iptables -S
.
2. Rastriluen gida
knockd.conf:
Manak ere dena dauka (baina hau zehazgabea da), baina knockd mezuekin nahiko zikorrak diren laguna da, beraz, kontu handiz ibili behar duzu.
- Bertsio
Fedora/CentOS biltegietan, gaurko azken kolpea 0.63 da. Nork nahi du UDP - bilatu 0.70 pakete. - interfaze
Fedora/CentOS konfigurazio lehenetsian lerro hau no. Gehitu eskuekin, bestela ez du funtzionatuko. - timeout
Hemen zure gustuaren arabera aukeratu dezakezu. Beharrezkoa da bezeroak jaurtiketa guztietarako denbora nahikoa izatea, eta portuko eskaner bot-a hautsi egingo da (eta % 146k eskaneatu egingo du). - hasi/gelditu/agindu.
Komando bat badago, orduan komandoa, bi badira, hasi_agindua+gelditu_agindua.
Akatsen bat egiten baduzu, knockd isilik geratuko da, baina ez du funtzionatuko. - hortaz
Teorian, UDP erabil daiteke. Praktikan, tcp eta udp nahastu nituen, eta Baliko hondartzako bezeroak bosgarren aldiz bakarrik ireki ahal izan zuen atea. TCP behar zenean iritsi zelako, baina UDP ez da egia. Baina hau gustu kontua da, berriro. - sekuentzia
Rake inplizitua da sekuentziak ez direla gurutzatu behar... nola jarri...
Adibidez, hau:
open: 11111,22222,33333
close: 22222,11111,33333
11111 ostikoz ireki hurrengo jaurtiketa 22222an itxarongo du. Hala ere, (22222) jaurtiketa honen ondoren lanean hasiko da itxi eta dena hautsiko da. Hau bezeroaren atzerapenaren araberakoa da ere. Horrelako gauzak Β©.
iptables
/etc/sysconfig/iptables-en bada hau:
*nat
:PREROUTING ACCEPT [0:0]
Ez gaitu benetan molestatzen, beraz, hona hemen:
*filter
:INPUT ACCEPT [0:0]
...
-A INPUT -j REJECT --reject-with icmp-host-prohibited
Oztopatzen du.
Knockd-ek INPUT katearen amaieran arauak gehitzen dituenez, ezetza jasoko dugu.
Eta errefus hori itzaltzeak autoa haize guztietara irekitzea esan nahi du.
iptables-en ez galtzeko zer txertatu aurretik (hau
- lehenetsia CentOS/Fedora-n lehen araua (βdebekatuta ez dagoena baimenduta dagoβ) kontrakoa jarriko da,
- eta azken araua kentzen dugu.
Emaitza izan beharko litzateke:
*filter
:INPUT DROP [0:0]
...
#-A INPUT -j REJECT --reject-with icmp-host-prohibited
Noski, DROP egin beharrean ERREJECT egin dezakezu, baina DROP-ekin bizitza dibertigarriagoa izango da botentzat.
3. Bezeroa
Leku hau interesgarriena da (nire ikuspuntutik), edozein hondartzatik ez ezik, edozein gailutatik ere lan egin behar duzulako.
Printzipioz, bezero batzuk zerrendatzen dira
Bezero bat aukeratzerakoan, paketeen arteko atzerapen aukera onartzen duela ziurtatu behar duzu. Bai, ezberdintasunak daude hondartzen artean eta 100 megabit-ek inoiz ez dute bermatzen paketeak ordena egokian iritsiko direnik kokapen jakin batetik une egokian.
Eta bai, bezero bat konfiguratzerakoan, atzerapena zuk zeuk hautatu behar duzu. Denbora-muga gehiegi - bot-ek eraso egingo dute, gutxiegi - bezeroak ez du denborarik izango. Atzerapen handiegia - bezeroak ez du garaiz iritsiko edo ergelen gatazka egongo da (ikus "rastreak"), gutxiegi - paketeak Interneten galduko dira.
Timeout=5s-ekin, atzerapena=100..500ms guztiz funtzionatzen duen aukera da
Windows
Dibertigarria den arren, ez da hutsala Google-k plataforma honetarako kolpe-bezero argia izatea. Hala nola, CLI-k atzerapena, TCP eta arkurik gabe onartzen ditu.
Bestela, saiatu dezakezu
Linux
Hemen dena erraza da:
dnf install knock -y
knock -d <delay> <dst_ip> 11111 22222 33333
MacOS
Modurik errazena ataka homebrewtik instalatzea da:
brew install knock
eta marraztu beharrezko batch fitxategiak honelako komandoetarako:
#!bin/sh
knock -d <delay> <dst_ip> 11111 22222 33333
IOS
Lan egiteko aukera bat KnockOnD da (doan, dendatik).
Android
"Jokatu Portuak" Ez da publizitatea, baina funtzionatzen du. Eta garatzaileek nahiko erantzuten dute.
PS-ren deskontua HabrΓ©-ri, noski, Jainkoak bedeinka dezala noizbait...
UPD1: eskerrak
UPD2: Beste bat
Iturria: www.habr.com