Port Knocking: La millor seguretat que pots tenir al teu ordinador o servidor (ImplementaciĆ³ + ConfiguraciĆ³)

Cop de ports (En anglĆØs port Knocking) Ɖs sense cap dubte una prĆ ctica que bĆ© tots els que administrem servidors haurĆ­em de conĆØixer, aquĆ­ els explico detalladament quĆØ Ć©s aixĆ² i com implementar i configurar aixĆ² šŸ˜‰

Ara mateix els que administrem algun servidor tenim accĆ©s SSH a aquest servidor, alguns canviem el port per defecte de SSH i ja no fa servir el port 22 i uns altres simplement ho deixen aixĆ­ (cosa no recomanat), no obstant el servidor tĆ© habilitat l'accĆ©s per SSH mitjanƧant algun port i aixĆ² ja Ć©s una 'vulnerabilitat'.

Amb Port Knocking podem aconseguir el segĆ¼ent:

1. L'accƩs SSH no estƠ habilitat per cap port. Si tenim SSH configurat pel port 9191 (per exemple) aquest port (9191) estarƠ tancat per a tothom.
2. Si algĆŗ vol accedir per SSH a servidor no podrĆ  Ć²bviament, ja que el port 9191 estĆ  tancat ... perĆ², si fem servir una combinaciĆ³ 'mĆ gica' o secreta se'ns obrirĆ  aquest port, per exemple:

1. Faig una telnet a el port 7000 de l'servidor
2. Faig un altre telnet a el port 8000 de l'servidor
3. Faig un altre telnet a el port 9000 de l'servidor
4. El servidor detecta que algĆŗ ha efectuat la combinaciĆ³ secreta (tocar els ports 7000, 8000 i 9000 en aquest ordre) i obrirĆ  el port 9191 perquĆØ se solĀ·liciti el login per SSH (l'obrirĆ  nomĆ©s per a la IP des de la qual es va fer la combinaciĆ³ de ports satisfactĆ²ria).
5. Ara per tancar SSH simplement faig un telnet a port 3500
6. FarƩ un altre telnet a port 4500
7. I finalment un altre telnet a port 5500
8. A l'efectuar aquesta altra combinaciĆ³ secreta que el servidor detecta, es tancarĆ  el port 9191 de nou.

O sigui, explicant de forma encara mĆ©s simple aixĆ² ...

Amb Port Knocking el servidor nostre podrĆ  tenir determinats ports tancats, perĆ² quan el server detecti que des X IP es va efectuar la combinaciĆ³ de ports correcta (configuraciĆ³ prĆØviament definida en un fitxer de configuraciĆ³) ExecutarĆ  ordre determinada en ell mateix Ć²bviament (Comando tambĆ© definit a l'arxiu de configuraciĆ³).

ĀæS'entĆ©n no? šŸ™‚

Com instalĀ·lar un dimoni per a Port Knocking?

Jo ho faig amb el paquet kockd, Que ens permetrĆ  de forma molt perĆ² molt simple i rĆ pida poder implementar i configurar Port Knocking.

InstalĀ·lin el paquet: knockd

Com configurar Port Knocking amb knockd?

Un cop instalĀ·lat passem a configurar-lo, per aixĆ² vam editar (com a root) l'arxiu /etc/knockd.conf:

nano /etc/knockd.conf

Com podran veure en aquest arxiu ja ve una configuraciĆ³ per defecte:

 Explicar la configuraciĆ³ per defecte Ć©s realment simple.

- Primer, UseSyslog significa que per a registrar activitat (log) es farĆ  servir / var / log / syslog.
- Segon, a la secciĆ³ [OpenSSH] Ć©s on Ć²bviament aniran les instruccions per obrir SSH, primerament tenim la seqĆ¼ĆØncia de ports (la combinaciĆ³ secreta) que estĆ  configurada per defecte (port 7000, port 8000 i finalment port 9000). ƒbviament els ports es poden canviar (de fet ho recomano) aixĆ­ com no han de ser 3 obligatĆ²riament, poden ser mĆ©s o menys, depĆØn de vostĆØs.
- Tercer, seq_timeout = 5 significa el temps que s'esperarĆ  perquĆØ s'efectuĆÆ la combinaciĆ³ secreta de ports. Per defecte estĆ  posat 5 segons, aixĆ² vol dir que un cop comencem a efectuar el port Knocking (o sigui, que quan fem un telnet a port 7000) tenim mĆ xim 5 segons per acabar la seqĆ¼ĆØncia correcta, si passen 5 segons i no hem culminat el port Knocking llavors simplement serĆ  com si la seqĆ¼ĆØncia no haguĆ©s estat vĆ lida.
- Quart, comanda no necessita de molta explicaciĆ³. Aquest serĆ  simplement la comanda que el servidor executarĆ  quan detecti la combinaciĆ³ abans definida. La comanda que estĆ  posat per defecte el que fa Ć©s obrir el port 22 (canviĆÆn aquest port pel de la seva SSH) nomĆ©s a la IP que va efectuar la combinaciĆ³ correcta de ports.
- CinquĆØ, tcpflags = syn amb aquesta lĆ­nia especifiquem el tipus de paquets que reconeixerĆ  el servidor com a vĆ lids per al port Knocking.

DesprĆ©s hi ha la secciĆ³ per tancar el SSH, que la configuraciĆ³ per defecte no Ć©s mĆ©s que la mateixa seqĆ¼ĆØncia de ports anterior perĆ² en ordre contrari.

AquĆ­ els deixo una configuraciĆ³ amb algunes modificacions:

 Com iniciar el daemon knockd?

Per iniciar-lo primer hem de modificar (com a root) l'arxiu / Etc / default / knockd:

nano /etc/default/knockd

AquĆ­ canviem la lĆ­nia nĆŗmero 12 que diu: Ā«START_KNOCKD = 0Ā»I canviar aquest 0 per un 1, ens quedaria:Ā«START_KNOCKD = 1Ā«

En aquest punt ara simplement el vam iniciar:

service knockd start

I ja estĆ , ja estĆ  configurat i funcionant.

Port Knocking amb knockd en funcionament!

Com poden veure en la configuraciĆ³ anterior, si es fa un port knock a port 1000, desprĆ©s a l'any 2000 i finalment a l'3000 llavors s'obrirĆ  el port 2222 (el meu SSH), doncs bĆ© aquĆ­ un altre ordinador executant el port knock:

Un cop premeu [Enter] al Knock No.1, al No.2 i finalment en el No.3 s'obrirĆ  el port, aquĆ­ els deixo el log:

Com poden veure a l'fer el knock a port 1000 es va registrar l'stage (pas) 1, desprĆ©s a l'any 2000 serĆ  l'stage 2 i finalment a el 3 amb el 3000, a l'fer aixĆ² s'executa la comanda que li vaig declarar al .conf i llest .

DesprƩs per tancar el port nomƩs seria fer un knock a al 9000, 8000 i finalment a el 7000, aquƭ els deixo el log:

I bĆ© aquĆ­ acaba l'explicaciĆ³ d'Ćŗs šŸ˜€

Com poden veure, el Port Knocking Ć©s veritablement interessant i Ćŗtil, ja que si bĆ© no volem simplement obrir un port desprĆ©s de determinada combinaciĆ³ de ports, la comanda o ordre que el servidor executarĆ  pot variar, Ć©s a dir ... en comptes d'obrir un port podem declarar que mati un procĆ©s, atureu un servei com apatxe o mysql, etc ... el lĆ­mit Ć©s la seva imaginaciĆ³.

El Port Knocking nomƩs funciona quan es tƩ un servidor fƭsic o quan el servidor virtual Ʃs tecnologia KVM. Si el teu VPS (servidor virtual) Ʃs OpenVZ llavors el Port Knocking no crec que et funcioni ja que no pots manipular directament iptables

BĆ© i fins aquĆ­ l'article ... no sĆ³c ni de lluny un expert en aquesta matĆØria perĆ² volia compartir amb vostĆØs aquest tan interessant procĆ©s.

Salutacions šŸ˜€


Deixa el teu comentari

La seva adreƧa de correu electrĆ²nic no es publicarĆ . Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ɓngel GatĆ³n
  2. Finalitat de les dades: Controlar l'SPAM, gestiĆ³ de comentaris.
  3. LegitimaciĆ³: El teu consentiment
  4. ComunicaciĆ³ de les dades: No es comunicaran les dades a tercers excepte per obligaciĆ³ legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informaciĆ³.

  1.   ErunamoJAZZ va dir

    ExcelĀ·lent article, estĆ  bastant interessant i no sabia que existia ... seria genial que segueixis traient articles per sysadmin novells i aixĆ² šŸ˜€

    Salutacions i grĆ cies ^ _ ^

    1.    KZKG ^ Gaara va dir

      GrĆ cies a tu per fer comentaris.
      SĆ­ ... Ć©s que amb els articles sobre DNS de fic, no em vull quedar enrere LOL !!!

      Res de debĆ². Fa diversos mesos vaig escoltar alguna cosa sobre Port Knocking i em va cridar immediatament l'atenciĆ³, perĆ² com vaig pensar que anava a ser molt complex en aquell moment no vaig decidir endinsar-me, just ahir revisant uns paquets de l'repo vaig descobrir knockd i vaig decidir intentar-ho, i aquĆ­ hi ha el tutorial.

      A mi sempre m'ha agradat posar articles tĆØcnics, alguns potser no siguin prou interessants perĆ² ... espero que altres sĆ­ šŸ˜‰

      Salutacions

    2.    Mario va dir

      Hola, es que aquest article ja tĆ© una mica de temps perĆ² llanƧo la meva consulta a veure si algĆŗ me la resol.
      El cas Ć©s que he implementat el port Knocking al meu raspberry per intentar millorar la seguretat quan em connecto a ella des de fora de la xarxa local. PerquĆØ aixĆ² funcioni he hagut d'obrir el rang de ports en el router 7000-9990 direccionant cap a la mĆ quina. Ɖs segur obrir aquests ports en el router o per contra a l'intentar tenir mĆ©s seguretat estic fent el contrari?

      Una salutaciĆ³ i grĆ cies.

  2.   ever va dir

    Genial, sĆ³c sysadmin fa anys i no el coneixia.
    Una pregunta ... com fas els Ā«KnocksĀ»?
    ĀæExecutes telnet contra aquests ports? ĀæQue et respon el telnet? O hi ha alguna ordre ona Ā«knockĀ»?
    Genial genial Ć©s article. Espectacular. moltes grĆ cies

    1.    KZKG ^ Gaara va dir

      Vaig fer la prova amb telnet i va funcionar de meravelles tot ... perĆ², curiosament sĆ­ que hi ha una ordre 'knock', fes man knock perquĆØ vegis šŸ˜‰

      El telnet no em respon en realitat res, iptables amb la polĆ­tica DROP fa que no respongui res i el telnet es quedi aquĆ­ esperant per alguna resposta (que mai arribarĆ ), perĆ² el dimoni knockd si reconeixerĆ  el knock encara que ningĆŗ ho respongui šŸ˜€

      Moltes grĆ cies a tu pel teu comentari, Ć©s un plaer saber que encara els meus articles agraden ^ _ ^

  3.   st0rmt4il va dir

    Afegit a Favorits! : D!

    GrĆ cies!

    1.    KZKG ^ Gaara va dir

      GrĆ cies šŸ˜€

  4.   caƧador va dir

    Ahh seguretat, aquesta sensaciĆ³ agradable de quan assegurem la pc a plom, i llavors dies / setmanes mĆ©s tard tractant de connectar-nos des d'algun lloc remot no podem accedir perquĆØ el tallafocs estĆ  en mode Ā«no hi ha pa ningĆŗĀ», a aixĆ² se li crida quedar fora de l'castell en termes de sysadmins. šŸ˜‰

    Per aixĆ² aquest post Ć©s tan Ćŗtil, amb el knockd pots accedir des de qualsevol lloc que pugui enviar un paquet a la teva xarxa local, i els atacants perden l'interĆØs a el veure que el port ssh estĆ  tancat, no crec que es llancin a fer knock a forƧa bruta per obrir el port.

  5.   Manuel va dir

    Escolta, estĆ  genial l'article.

    Una cosa: Serveix per connectar des de fora de la xarxa local?

    Ho dic perquĆØ tinc el router amb els ports tancats almenys el que correspon a l'ssh que estĆ  redirigit cap al servidor.

    Imagino que perquĆØ funcioni des de fora de la xarxa local caldrĆ  obrir els ports de l'router corresponents a l'Port Knocking i fer que aquests es redirigan tambĆ© a l'server.

    Mmm ...

    No sĆ© fins a quin punt Ć©s segur fer aixĆ².

    QuĆØ opinen?

    1.    KZKG ^ Gaara va dir

      No estic molt segur, no he fet la prova perĆ² crec que sĆ­, que hauries de obrir ports en el router ja que altrament no podries arribar a fer els Knocks al servidor.

      Fes la prova sense obrir ports en el router, si no us funciona Ć©s una pena, ja que estic d'acord amb tu, no Ć©s aconsellable obrir aquests ports en el router.

      1.    Manuel va dir

        Efectivament, cal obrir els ports i redireccionar-cap a l'equip a quĆØ estem cridant.

        LlĆ stima.

  6.   Rabba08 va dir

    Bonissim moltes grƠcies! recent comenƧo a estudiar la carrera de xarxes i aquests estatuts em vƩnen de meravella! grƠcies per trobar el temps de compartir el coneixement

    1.    KZKG ^ Gaara va dir

      Jo he aprĆØs moltĆ­ssim al llarg dels anys amb la comunitat de Linux global ... des de fa uns anys he volgut aportar jo tambĆ©, precisament per aixĆ² escric šŸ˜€

  7.   gener981 va dir

    MoltĆ­ssimes grĆ cies, no saps com m'ajuda, estic per muntar un servidor i aixĆ² em va de luxe.

    Salutacions

    1.    KZKG ^ Gaara va dir

      Per aixĆ² estem, per ajudar šŸ˜‰

  8.   Jean Ventura va dir

    ExcelĀ·lent article! No tenia coneixement d'aixĆ² i em serveix bastant (Estic utilitzant Rackspace que fa servir KVM, de manera que em cau com anell a el dit!). Addicionat a favorit.

    1.    KZKG ^ Gaara va dir

      GrĆ cies per comentar šŸ™‚

  9.   Algabe va dir

    Com sempre DesdeLinux ens porta excelĀ·lents post amb tutorials que sĆ³n realment Ćŗtils per posar en acciĆ³, grĆ cies per compartir!! šŸ™‚

    1.    KZKG ^ Gaara va dir

      GrĆ cies pel teu comentari šŸ™‚
      SĆ­, sempre intentem satisfer aquesta set de coneixement que tenen els nostres lectors šŸ˜€

  10.   Timbleck va dir

    InteressantĆ­ssim, no coneixia l'opciĆ³.
    Passa directament a engreixar la meva biblioteca de costelles.
    GrĆ cies!

    1.    KZKG ^ Gaara va dir

      Un gust per a mi šŸ˜€
      Salutacions

  11.   Federico. A. ValdĆ©s Toujague va dir

    Salutacions KZKG ^ Gaara !!! EstrĆØnyer. Tremendo article per assegurar servidors. Ni @% * & ^ idea que hi ha alguna cosa aixĆ­. Ja ho provarĆ©. grĆ cies

  12.   White ^ collaret va dir

    aixĆ² aquesta genial .... ^ - ^

  13.   AprĆØnLinux va dir

    Hola, podries explicar-me com instalĀ·lar-lo en CentOS 5.x ??

    Jo he descarregat el rpm:
    http://pkgs.repoforge.org/knock/knock-0.5-3.el5.rf.x86_64.rpm

    instalĀ·lat:
    rpm -i knock-0.5-3.el5.rf.x86_64.rpm

    Configureu l'arxiu de configuraciĆ³ amb 15 segons de temps i el port que faig servir per connectar per ssh al meu VPS

    Comenze el dimoni:
    / Usr / sbin / knockd &

    Faig el telnet i res el port no es tanca, per defecte el port estĆ  obert, perĆ² no es tanca.

    Una cosa estic fent malament?

  14.   Recupera el teu aspecte d'abans... va dir

    Mmmm, les peticions de telnet a aquests ports podrien ser apreses pel admin de la nostra xarxa local, o po rnuestro proveĆÆdor de serveis no ?, igual bloquejaria a gent externa perĆ² a ells no, o sigui si ells vols activar el nostre port el podrien fer perquĆØ veuen les peticions que fem, mmm diguem que protegeix perĆ² no a el 100%

    1.    Roberto va dir

      Podria ser, perĆ² no crec que es barren a imaginar que determinats telnet les X, acciĆ³. Fora que vegin que se segueixen els mateixos patrons en els telnet.

  15.   Pau Andres Diaz Aramburo va dir

    Interessant l'article, em sorgeix un dubte. Crec que hi ha un error en la imatge de l'arxiu de configuraciĆ³, ja que si analisas bĆ©, en ambdues lĆ­nies de l'command utilitzeu ACCEPT a Iptables. Penso que un ha de ser ACCEPT i un altre ha de ser REJECT.

    Per la resta, excelĀ·lent iniciativa. Moltes grĆ cies per prendre el teu temps a explicar als altres els teus coneixements.

    Salutacions