[server] port knocking

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Ozzie PHP

Ozzie PHP

25/01/2015 00:18:49
Quote Anchor link
Hallo,

Ik ben KiTTY aan het configureren en bij het onderdeel "Connection" kun je een "Port knocking sequence" invoeren. Nu vraag ik me af wat port knocking precies is en hoe dat werkt. Ik heb gelezen dat het lijkt alsof je SSH-poort dichtstaat, maar dat die door op een bepaalde manier te "kloppen" opengaat. Kan iemand me uitleggen hoe zoiets werkt? Wat houdt het in, en hoe stel je zo'n sequence dan in? Weet iemand dat toevallig?
 
PHP hulp

PHP hulp

19/04/2024 02:05:08
 
Yoop Overmaat

Yoop Overmaat

25/01/2015 09:17:08
Quote Anchor link
KiTTY is een afgeleide van putty een ssh client.

Het heeft verder weinig met de ssh-server te maken daar het 2 verschillende verhalen zijn. Het port knocking verhaal is het aantal keren dat deze ssh-client probeert een connectie met de voorgedefinieerde server te maken, gaat dit mis, houdt het op.

Zo uit mijn hoofd, kun je 5x een verbinding met een ssh-server proberen te maken, Klopt na 5x de gebruikersnaam of het wachtwoord niet wordt je gebanned & is het einde oefening.

Meer informatie is te vinden in een /etc/ssh/sshd_config (Linux) of Google op een sshd_config.
Gewijzigd op 25/01/2015 09:19:57 door Yoop Overmaat
 
Ivo P

Ivo P

25/01/2015 12:30:26
Quote Anchor link
Geband wordt je gelukkig niet vanzelf. Wel wordt de verbinding beëindigd.

Toevoeging op 25/01/2015 12:33:45:

Verder zou je even moeten google-n op 'putty port knocking' voor wat uitleg en waarom het putty-team dat niets vindt
 
Ozzie PHP

Ozzie PHP

25/01/2015 14:52:40
Quote Anchor link
>> KiTTY is een afgeleide van putty een ssh client.

>> Het heeft verder weinig met de ssh-server te maken daar het 2 verschillende verhalen zijn.

Dat klopt, maar het was enkel even een introductie-verhaaltje hoe ik bij dat port knocking terecht kwam.

>> Verder zou je even moeten google-n op 'putty port knocking' voor wat uitleg en waarom het putty-team dat niets vindt

Dit heb ik gelezen inderdaad, maar ik heb er ook positieve reacties over gelezen. Je SSH-poort is namelijk niet meer zichtbaar. Vandaar dat ik benieuwd ben hoe het nu eigenlijk werkt.

Ik kon zo gauw geen plaatje van KiTTY vinden, maar hier van een vergelijkbaar programma in een vreemde taal. Maar rechts onderin zie je dus dat je een port knocking sequence kan invoeren. Nu zie ik daar verschillende getallen staan: 3333.tcp, 9999:udp enz. Wat houdt dat in?

Afbeelding
Nu kan je in KiTTY dus ook zo'n sequence invoeren. Maar stel dat mijn PHP-editor dat niet ondersteunt, dan kan ik daar dus niet meer mee inloggen als ik het goed begrijp?
Gewijzigd op 25/01/2015 14:54:00 door Ozzie PHP
 
Dos Moonen

Dos Moonen

25/01/2015 17:26:10
Quote Anchor link
Wat is er niet duidelijk aan de uitleg op wikipedia?
"In computer networking, port knocking is a method of externally opening ports on a firewall by generating a connection attempt on a set of prespecified closed ports. Once a correct sequence of connection attempts is received, the firewall rules are dynamically modified to allow the host which sent the connection attempts to connect over specific port(s). A variant called Single Packet Authorization exists, where only a single "knock" is needed, consisting of an encrypted packet.[1][2][3]"

Als je die uitleg combineert net een een komma gescheiden lijst van string in het formaat <nummer>.<tcp/udp> dan snap ik niet hoe iemand het niet kan snappen. Tenzij hij/zij niet weet wat TCP en UDP is, maar daar is googe/wikipedia ook voor te raadplegen.

Het komt neer op een secret knock zoals je in films wel eens ziet: je wordt alleen binnen gelaten als je op de juiste manier op de deur klopt.

"Nu kan je in KiTTY dus ook zo'n sequence invoeren. Maar stel dat mijn PHP-editor dat niet ondersteunt, dan kan ik daar dus niet meer mee inloggen als ik het goed begrijp?"
Putty laat je tunnels opzetten, ik neem aan KiTTY ook.
Wat betekend dat je je PHP editor naar localhost kan wijzen. Welke port hang er van af op welke port je de tunnel hebt opgezet.
Gewijzigd op 25/01/2015 17:28:06 door Dos Moonen
 
Ozzie PHP

Ozzie PHP

26/01/2015 00:06:38
Quote Anchor link
Ik weet van serverbeheer en internet protocollen niet zo heel veel af. Vandaar mijn vraag. Wat wil bijv. "3333.tcp" zeggen?

>> Het komt neer op een secret knock zoals je in films wel eens ziet: je wordt alleen binnen gelaten als je op de juiste manier op de deur klopt.

Oké. Maar klop je dan een paar keer op dezelfde SSH poort, waarna die poort opengaat? Of klop je op verschillende poorten waarna de SSH poort opengaat?

>> Putty laat je tunnels opzetten, ik neem aan KiTTY ook.

Ja, ik kan tunnels instellen, maar ik heb hier (nog) geen ervaring mee.

>> Wat betekend dat je je PHP editor naar localhost kan wijzen. Welke port hang er van af op welke port je de tunnel hebt opgezet.

Kun je dit principe eens uitleggen? In mijn editor kan ik een SFTP verbinding maken, moet ik die nu dan naar localhost laten verwijzen? En log ik dan via de editor in of via KiTTY (PuTTY)?

Sorry, wellicht voor jou een rare vraag, maar voor mij is dit geen gesneden koek en ik heb zoiets nooit eerder gedaan.

Toevoeging op 26/01/2015 00:07:33:

En oh ja ... hoe weet de server dan eigenlijk op welke sequence ie moet reageren?
 
Dos Moonen

Dos Moonen

26/01/2015 09:22:43
Quote Anchor link
3333.tcp,9999:udp,1010:udp,8675:tcp

Secret knock:
Stuur een packet via port 3333 met het TCP protocol.
Stuur een packet via port 9999 met het UDP protocol.
Stuur een packet via port 1010 met het UDP protocol.
Stuur een packet via port 8675 met het TCP protocol.
Breng een SSH (of wat dan ook) verbinding tot stand.

"En oh ja ... hoe weet de server dan eigenlijk op welke sequence ie moet reageren?"
De server's firewall moet support hebben voor port knocking voor zover ik het begrijp.

Tunnels voor zover ik ze begrijp (en versimpelt):
Een utility verbind met de opgegeven server op de opgegeven port.
De zelfde utility gaat op jouw pc luisteren naar de andere opgegeven port.
Packets die het lokaal ontvangt stuurt het het op die bestaande verbinding door naar de externe server. Packets die het ontvangt van de externe server stuurt het door via de lokale verbinding.
De utility logt dus in op de externe server.

PS. ja, ik weet dat de P in TCP en UDP voor Protocol staat
 
Ivo P

Ivo P

26/01/2015 09:54:48
Quote Anchor link
Even een copy paste uit een mail die ik een tijdje terug aan iemand stuurde als uitleg.
Helaas zonder de plaatjes:

In de linker kolom van het putty/ kitty connectie scherm klik je SSH open.
Klik op Tunnels

vul daar in bij Source port 3306
en bij Destination localhost:3306
klik Add

crol in de balk terug naar boven en klik op Session

Kies een leuke naam om de verbinding op te slaan. (MYNAME)
en kies SAVE.

Daarna kun je in het grote vlak dubbelklikken op de naam, of de button Open kiezen.

Er wordt een ssh verbinding opgebouwd.
De tunnel zorgt dat wat je op je pc op poort 3306 aanspreekt, doorgeleid wordt naar de server.

(als je het leuk vindt, kun je ook poort 3399 (door die bij Source Port in te vullen ) doorverbinden naar 3306 op de server. Dat geeft je de mogelijkheid om tegelijk op meerdere remote servers te werken.)

Werkt ook voor andere poorten, zoals voor ftp, DNS etc etc.
 
Ozzie PHP

Ozzie PHP

26/01/2015 12:33:42
Quote Anchor link
Dankjulliewel voor de uitleg!

@Dos:

>> De server's firewall moet support hebben voor port knocking voor zover ik het begrijp.

Ah oké, dan moet ik eens uitzoeken hoe zoiets werkt met IPTABLES.

@Ivo:

Stel ik heb een PHP editor, waar vul ik dan die "localhost:3306" in? Vul ik dat in waar ik normaal de SFTP host en poortnummer invul? Of moet ik nu juist bij het FTP gedeelte invullen?
 
Ivo P

Ivo P

26/01/2015 12:37:38
Quote Anchor link
3306 is het poortnummer van Mysql. Mijn uitleg ging over het gebruik van HeidiSQL op je pc om de remote database te beheren.

Jij zou de ftp port(s) moetem tunnelen

je server wordt dan "localhost" op de plek waar eerst ftp.ozziesserver.nl stond

google zelf even de portnummers
 
Ozzie PHP

Ozzie PHP

26/01/2015 12:44:23
Quote Anchor link
Ivo, sorry ik ben een beetje een noob op dit gebied.

Ik gebruik SSH om te connecten met mijn server, en niet FTP. Moet ik dan niet de SSH poort gebruiken? In mijn editor is een SFTP port waar ik de host en poortnummer invul. Moet ik daar dan niet localhost invullen? En die poort moet toch de lokale poort op mijn pc zijn (en niet op de server)?
 
Ivo P

Ivo P

26/01/2015 12:47:08
Quote Anchor link
welke editor gebruik je btw?

het moet de port zijn die jij localhost gebruikt en "forwardt" naar de server.

Maar vaak ondersteunen editors al ftp-via-ssh (niet te verwarren met sftp)
 
Ozzie PHP

Ozzie PHP

26/01/2015 13:04:04
Quote Anchor link
De editor die ik vaak gebruik (maar nu even niet omdat ik m'n computer aan het opschonen ben) is een oudere Zend Studio editor die helaas niet meer wordt ondersteund. Maar daar kon ik dus rechtstreeks via SSH met een server connecten. Omdat dat port knocking me wel zinvol lijkt, wil ik het straks via deze of een andere editor eens gaan proberen door een tunnel op te zetten via KiTTY (fork van PuTTY).

In KiTTY gebruik ik dan denk ik de normale sessie, maar dan voeg ik daar dus die tunneling port aan toe. Correct? Of moet ik voor die tunneling een aparte sessie aanmaken? Ik zou denken dat ik gewoon 1 sessie kan gebruiken, die dan ondertussen gewoon ook luistert naar een bepaalde poort. Of gaat het dan mis als ik in de terminal en de PHP editor tegelijkertijd iets aan het doen ben?

Maar goed, ik zeg dus tegen KiTTY dat ie de lokale poort 1234 moet connecten met poort 22 op de server. En mijn vraag is dan, waar moet ik in de editor die localhost en poort 1234 invullen?

Dit is een nieuwere versie van Zend Studio, maar ziet er volgens mij vergelijkbaar uit met hoe ik normaal een server-connectie maak:

Afbeelding
 
Ivo P

Ivo P

26/01/2015 13:11:13
Quote Anchor link
bij hostname komt localhost.

bij remote port komt 1234

Kitty zit intussen te luisten naar port 1234. Komt daar iets langs, dan stuurt Kitty dat door naar de remote server waar Kitty mee verbonden is, en biedt dat daar aan op port 22.
 
Ozzie PHP

Ozzie PHP

26/01/2015 13:27:20
Quote Anchor link
Ah oké, helder. Maar zoals je in het plaatje ziet, kan ik kiezen tussen "Secure FTP" (daar staat ie in het plaatje op ingesteld) en "Regular FTP". Maakt dat nog wat uit?

Ik snap nu hoe het werkt, maar kan ik in KiTTY de tunneling optie onderbrengen in dezelfde sessie die ik normaal gesproken gebruik om in te loggen op SSH? Dit zou dan inhouden dat wanneer ik niet met de PHP-editor aan het werken ben, maar wel iets in KiTTY aan het doen ben, dat ie dan toch luistert naar port 1234. Ik kan ook 2 sessies maken, eentje met en eentje zonder tunneling. Of is dat niet de bedoeling?
Gewijzigd op 26/01/2015 13:41:23 door Ozzie PHP
 
Dos Moonen

Dos Moonen

26/01/2015 14:23:01
Quote Anchor link
Ik neem aan dat ze met Secure FTP eigenlijk SSH FTP (SFTP) bedoelen en niet FTP over SSL/TLS (FTPS).

Regular FTP is precies dat: plaintext passwords verzenden om te authenticeren, files plaintext senden zonder dat de ontvangen kan detecteren of een man in de middle iets aangepast heeft.

Of Kitty meteen ook een CLI tevoorschijn tovert als je een tunnel opzet weet ik niet. Twee sessies hoort geen issue te zijn.
 
Ozzie PHP

Ozzie PHP

26/01/2015 14:40:16
Quote Anchor link
>> Ik neem aan dat ze met Secure FTP eigenlijk SSH FTP (SFTP) bedoelen en niet FTP over SSL/TLS (FTPS).

Ja, zoals je in het plaatje kunt zien, hebben ze het inderdaad over SFTP Settings en SFTP Details.

>> Regular FTP is precies dat: plaintext passwords verzenden om te authenticeren, files plaintext senden zonder dat de ontvangen kan detecteren of een man in de middle iets aangepast heeft.

Oké, maar als ik die tunneling ga gebruiken via KiTTY/PuTTY, maakt het dan nog iets uit waar ik die localhost en die poort instel in de PHP-editor? Kan ik beter de SFTP optie gebruiken of de regular FTP optie?

>> Of Kitty meteen ook een CLI tevoorschijn tovert als je een tunnel opzet weet ik niet.

Hoe bedoel je dit? Hoe ik het begreep moet je wel eerst je gebruikersnaam en wachtwoord invoeren. Ik neem dus aan dat er om die reden een CLI tevoorschijn komt. Ik neem dan ook aan dat als ik vervolgens inlog als Dos en vervolgens mijn PHP-editor start, dat ik dan met die PHP-editor ook als user Dos ben ingelogd. En als ik als Ozzie inlog via KiTTY dat ik dan met de PHP-editor als user Ozzie ben ingelogd. Correct, of zeg ik nu iets geks?

>> Twee sessies hoort geen issue te zijn.

Wat bedoel je hier precies mee? Bedoel je 2 sessies die je afzonderlijk instelt in KiTTY, dus bijv. "Dos Server (normal)" en "Dos Server (tunneling)"? Of bedoel je 2 sessies in de zin van dat je inlogt en tegelijkertijd dingen in KiTTY doet en tegelijkertijd met de PHP-editor werkt?
Gewijzigd op 26/01/2015 14:41:11 door Ozzie PHP
 
Ivo P

Ivo P

26/01/2015 14:40:47
Quote Anchor link
Kitty toont gewoon zoals zonder tunnel ook een zwart scherm met de cursor. (of een andere kleur als je dat liever hebt).

via het menu (icoontje links boven) kun je opvragen of er portforwarding actief is.

let wel dat er maar 1 instantie van het programma een port kan forwarden.
dus niet 2x port 666 naar dezelfde server, en ook niet naar 2 verschillende servers.

zelf forward ik localhost 3306 naar mijn server 6 naar mysql en 3307 naar server 7 etc

Zolang Heidi verbinding heeft met de database, kan ik trouwens de instantie van Kitty die de forwarding regelt, niet afsluiten (tenminste niet soft)


--
ik verwar nu zelf de verschillende namen van ftp (s)
http://nl.wikipedia.org/wiki/SSH_File_Transfer_Protocol

Toevoeging op 26/01/2015 14:41:59:

http://nl.wikipedia.org/wiki/FTP_over_SSL
 
Ozzie PHP

Ozzie PHP

26/01/2015 14:48:50
Quote Anchor link
Oeps, we waren gelijktijdig aan het typen Ivo :)

>> Kitty toont gewoon zoals zonder tunnel ook een zwart scherm met de cursor. (of een andere kleur als je dat liever hebt).

Maar begrijp ik nu dat een "tunnel" session afwijkt van een normale session? Ik dacht eigenlijk om dus een tunnel toe te voegen aan mijn "normale", reeds bestaande session. Als ik je goed begrijp werkt dat niet? Moet ik dan op het Session tabblad ook geen host of ip-adres invullen?

Toevoeging op 26/01/2015 14:53:06:

Wat ik dus dacht is ... ik heb in KiTTY een normale sessie waarmee ik verbind met SSH. In de configuratie opties voeg ik de tunneling poorten toe.

Ik start de sessie. Ik voer Ozzie en mijn wachtwoord in. Vervolgens kan ik gewoon in KiTTY m'n dingen doen, maar ondertussen luistert KiTTY ook naar poort 1234. Als ik vervolgens de PHP editor opstart, dan laat ik die verbinden met poort 1234 waardoor ik binnen de PHP editor automatisch ben ingelogd als user Ozzie. Klopt dit, of niet?
Gewijzigd op 26/01/2015 14:49:47 door Ozzie PHP
 
Ivo P

Ivo P

26/01/2015 15:01:30
Quote Anchor link
ja, je connect met de server

nee, je bent niet automatisch ingelogd. Dat zal mogelijk van de toepassing afhangen, maar bijv. voor Mysql moet je nog steeds username en ww opgeven.

vergelijk het met dat je in Kitty, nadat verbinding hebt gemaakt, in het zwarte scherm intikt:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
ftp localhost
 
Ozzie PHP

Ozzie PHP

26/01/2015 15:07:17
Quote Anchor link
>> ja, je connect met de server

Oké, dus ik moet gewoon nog steeds op het Session tabblad de host of ip-adres invoeren?

Maar goed, dan verbind ik dus met de SSH poort. Kan ik dan na invoeren van username en ww KiTTY nog gewoon gebruiken zoals ik dat normaliter doe? Kan ik nog gewoon commando's invoeren? Of gaat dat niet, omdat de tunneling optie is geactiveerd?
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.