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Ć³.
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 š
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 ^ _ ^
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
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.
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
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 ^ _ ^
Afegit a Favorits! : D!
GrĆ cies!
GrĆ cies š
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.
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?
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.
Efectivament, cal obrir els ports i redireccionar-cap a l'equip a quĆØ estem cridant.
LlĆ stima.
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
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 š
MoltĆssimes grĆ cies, no saps com m'ajuda, estic per muntar un servidor i aixĆ² em va de luxe.
Salutacions
Per aixĆ² estem, per ajudar š
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.
GrĆ cies per comentar š
Com sempre DesdeLinux ens porta excelĀ·lents post amb tutorials que sĆ³n realment Ćŗtils per posar en acciĆ³, grĆ cies per compartir!! š
GrĆ cies pel teu comentari š
SĆ, sempre intentem satisfer aquesta set de coneixement que tenen els nostres lectors š
InteressantĆssim, no coneixia l'opciĆ³.
Passa directament a engreixar la meva biblioteca de costelles.
GrĆ cies!
Un gust per a mi š
Salutacions
Salutacions KZKG ^ Gaara !!! EstrĆØnyer. Tremendo article per assegurar servidors. Ni @% * & ^ idea que hi ha alguna cosa aixĆ. Ja ho provarĆ©. grĆ cies
aixĆ² aquesta genial .... ^ - ^
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?
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%
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.
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