<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ca">
	<id>http://wiki.lordwektabyte.cat/index.php?action=history&amp;feed=atom&amp;title=ASIX%2FM16%2FUF2%2FEX2%2F4</id>
	<title>ASIX/M16/UF2/EX2/4 - Historial de revisió</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.lordwektabyte.cat/index.php?action=history&amp;feed=atom&amp;title=ASIX%2FM16%2FUF2%2FEX2%2F4"/>
	<link rel="alternate" type="text/html" href="http://wiki.lordwektabyte.cat/index.php?title=ASIX/M16/UF2/EX2/4&amp;action=history"/>
	<updated>2026-05-04T17:35:59Z</updated>
	<subtitle>Historial de revisió per a aquesta pàgina del wiki</subtitle>
	<generator>MediaWiki 1.34.0</generator>
	<entry>
		<id>http://wiki.lordwektabyte.cat/index.php?title=ASIX/M16/UF2/EX2/4&amp;diff=5184&amp;oldid=prev</id>
		<title>Guillem: Guillem ha mogut M16/UF2/EX2/4 a ASIX/M16/UF2/EX2/4 sense deixar una redirecció: Crear subnivell ASIX</title>
		<link rel="alternate" type="text/html" href="http://wiki.lordwektabyte.cat/index.php?title=ASIX/M16/UF2/EX2/4&amp;diff=5184&amp;oldid=prev"/>
		<updated>2020-04-15T11:33:41Z</updated>

		<summary type="html">&lt;p&gt;Guillem ha mogut &lt;a href=&quot;/index.php?title=M16/UF2/EX2/4&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;M16/UF2/EX2/4 (encara no existeix)&quot;&gt;M16/UF2/EX2/4&lt;/a&gt; a &lt;a href=&quot;/wiki/ASIX/M16/UF2/EX2/4&quot; title=&quot;ASIX/M16/UF2/EX2/4&quot;&gt;ASIX/M16/UF2/EX2/4&lt;/a&gt; sense deixar una redirecció: Crear subnivell ASIX&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ca&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Versió més antiga&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revisió del 11:33, 15 abr 2020&lt;/td&gt;
				&lt;/tr&gt;
&lt;!-- diff cache key wiki:diff::1.12:old-3859:rev-5184 --&gt;
&lt;/table&gt;</summary>
		<author><name>Guillem</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.lordwektabyte.cat/index.php?title=ASIX/M16/UF2/EX2/4&amp;diff=3859&amp;oldid=prev</id>
		<title>Guillem: Es crea la pàgina amb «:*Port knocking és una tècnica per obrir ports mitjançant una seqüència preestablerta d’intents de connexió. :*Si intentes connexions a una sèrie de ports amb...».</title>
		<link rel="alternate" type="text/html" href="http://wiki.lordwektabyte.cat/index.php?title=ASIX/M16/UF2/EX2/4&amp;diff=3859&amp;oldid=prev"/>
		<updated>2019-02-28T17:25:09Z</updated>

		<summary type="html">&lt;p&gt;Es crea la pàgina amb «:*Port knocking és una tècnica per obrir ports mitjançant una seqüència preestablerta d’intents de connexió. :*Si intentes connexions a una sèrie de ports amb...».&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Pàgina nova&lt;/b&gt;&lt;/p&gt;&lt;div&gt;:*Port knocking és una tècnica per obrir ports mitjançant una seqüència preestablerta d’intents de connexió.&lt;br /&gt;
:*Si intentes connexions a una sèrie de ports amb una combinació predefinida s’obrirà el port.&lt;br /&gt;
:*L’ús més comú és per a SSH però també hi ha gent que l’utilitza amb altres serveis de connexió com VPN.&lt;br /&gt;
:*Fa una mica més segur el servidor però sobretot s’utilitza per evitar atacs de força bruta a aquells serveis.&lt;br /&gt;
:*Configura port knocking per SSH amb la teva pròpia seqüència d’obertura i de tancada i verifica que pots accedir-hi&lt;br /&gt;
::*'''+info'''&lt;br /&gt;
:::https://www.endpoint.com/blog/2009/11/16/pknocking-with-knockd ('''404 not found''')&lt;br /&gt;
:::https://www.digitalocean.com/community/tutorials/how-to-use-port-knocking-to-hide-your-ssh-daemon-from-attackers-on-ubuntu).&lt;br /&gt;
:*Fes un ''nmap'' abans, durant i després a veure que passa amb els serveis.&lt;br /&gt;
:*Posa't una contrasenya d’aquelles que pots trobar fàcilment en qualsevol llista i executa l’script nmap per esbrinar la contrasenya SSH. T’ha funcionat?&lt;br /&gt;
===Procediment===&lt;br /&gt;
====Preàmbul====&lt;br /&gt;
Per a poder aplicar un sistema de ''port knocking'' al nostre servidor de prova, haurem d'instal·lar el programari &amp;lt;code&amp;gt;knockd&amp;lt;/code&amp;gt; que ens facilitarà la configuració de regles per a poder aconseguir l'objectiu.&lt;br /&gt;
&lt;br /&gt;
Per a l'exemple d'aquest exercici farem servir combinacions relativament simples; però en un cas en un entorn de proves o productiu podríem fer servir seqüències més difícils d'endevinar o fins i tot més llargues per a dissuadir possibles atacants i mitigar els intents d'accés per SSH mitjançant força bruta.&lt;br /&gt;
&lt;br /&gt;
=====Instruccions=====&lt;br /&gt;
Primer de tot, afegirem una política per a l'interfície de ''loopback'' perquè s'acceptin les connexions entre els serveis que es troben a la mateixa màquina&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
iptables -A INPUT -i lo -j ACCEPT&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per a evitar quedar-nos fora de la sessió SSH que tenim oberta per a fer la pràctica, farem ús del mòdul '''Conntrack''' d'IPTables de manera que les connexions existents o relacionades amb les existents es permetin&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Després, afegirem una regla per al port 80 (web) per a permetre'l sempre. Aquestes regles es poden aplicar per a tots els serveis EXCEPTE el que volguem accedir mitjançant ''port knocking''&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
iptables -A INPUT -p tcp --dport 80 -j ACCEPT&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A partir d'aquí, afegim al final la regla per a descartar tots els paquets entrants que no coincideixin amb cap regla anterior&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
iptables -A INPUT -j DROP&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En aquest punt, si provem qualsevol connexió al servidor OpenSuse que no sigui pel port 80, no se'ns donarà resposta.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A partir d'aquí és on començarem a preparar el terreny per a dissenyar el nostre sistema de ''port knocking''. Necessitarem instal·lar el programa &amp;lt;code&amp;gt;iptables-persistent&amp;lt;/code&amp;gt; de manera que ens faciliti el desat i restaurat de regles del Firewall entre possibles reinicis del servidor. Podem desar les regles aplicades actualment &lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
iptables-save &amp;gt; /etc/iptables.cnf&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I restaurar-les des de l'arxiu en qualsevol moment&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
iptables-restore &amp;lt; /etc/iptables.cnf&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Després d'això, instal·larem el ''software'' &amp;lt;code&amp;gt;knockd&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
zypper in knockd&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L'arxiu de configuració es troba a &amp;lt;code&amp;gt;/etc/knockd.conf&amp;lt;/code&amp;gt;. Per defecte hi ha un exemple per a obrir i tancar el port 22 per a un servei SSH. El podem modificar per a ajustar-lo una mica a les nostres necessitats&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
[options]&lt;br /&gt;
        UseSyslog&lt;br /&gt;
        interface = eth1 &lt;br /&gt;
&lt;br /&gt;
[opencloseSSH]&lt;br /&gt;
        sequence      = 1234,5678,9101&lt;br /&gt;
        seq_timeout   = 15&lt;br /&gt;
        tcpflags      = syn&lt;br /&gt;
        start_command = /usr/sbin/iptables -I INPUT 1 -s %IP% -p tcp --dport ssh -j ACCEPT&lt;br /&gt;
        cmd_timeout   = 10&lt;br /&gt;
        stop_command  = /usr/sbin/iptables -D INPUT -s %IP% -p tcp --dport ssh -j ACCEPT&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Veiem com definim la '''seqüència''' de ports que s'han de &amp;quot;tocar&amp;quot; per a fer saltar l''''''start_command''''' i que hi ha un màxim de 15 segons per a fer això enviant paquets amb el ''flag'' de SYN activat. Una vegada es compleix aquesta regla, s'insereix (diferència -I amb -A) una regla nova a IPTables per tal d'obrir el port SSH NOMÉS per a l'adreça IP que ha fet el ''knock''. Al cap de 10 segons, s'elimina la regla; però la sessió SSH no s'interromprà perquè hi ha la regla d'ACCEPT per a les connexions que estiguin en estat ESTABLISHED.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Activarem el servei creant l'arxiu &amp;lt;code&amp;gt;/etc/default/knockd&amp;lt;/code&amp;gt; i posant el següent contingut&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
START_KNOCKD=1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Després d'això, el podem posar en marxa com qualsevol altre servei&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
systemctl start knockd&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Prova de funcionament====&lt;br /&gt;
=====Previ=====&lt;br /&gt;
Des del Kali Linux mateix podem provar d'obrir una sessió SSH al servidor normalment&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
ssh root@10.16.2.10&lt;br /&gt;
^C&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ens farà un ''timeout'' perquè el Firewall del servidor està aplicant la regla política de DROP dels paquets; ja que en aquest moment no hi ha cap regla per a permetre connexions entrants pel port 22 del servidor.&lt;br /&gt;
&lt;br /&gt;
Ara bé, si prèviament fem la seqüència de ''knock'' correcta, podrem obrir una sessió sense problemes.&lt;br /&gt;
&lt;br /&gt;
=====Costat client=====&lt;br /&gt;
Primer executarem ''nmap'' en els ports concrets en l'ordre concret sense paràmetres (per defecte usa SYN)&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
###########&lt;br /&gt;
# STAGE 1 #&lt;br /&gt;
###########&lt;br /&gt;
root@kali-gsb:~# nmap -p 1234 10.16.2.10 &lt;br /&gt;
Starting Nmap 7.70 ( https://nmap.org ) at 2019-02-28 20:45 CET&lt;br /&gt;
Nmap scan report for 10.16.2.10&lt;br /&gt;
Host is up (0.00074s latency).&lt;br /&gt;
&lt;br /&gt;
PORT     STATE    SERVICE&lt;br /&gt;
1234/tcp filtered hotline&lt;br /&gt;
MAC Address: 08:00:27:64:8E:09 (Oracle VirtualBox virtual NIC)&lt;br /&gt;
&lt;br /&gt;
Nmap done: 1 IP address (1 host up) scanned in 1.51 seconds&lt;br /&gt;
&lt;br /&gt;
###########&lt;br /&gt;
# STAGE 2 #&lt;br /&gt;
###########&lt;br /&gt;
root@kali-gsb:~# nmap -p 5678 10.16.2.10 &lt;br /&gt;
&lt;br /&gt;
Starting Nmap 7.70 ( https://nmap.org ) at 2019-02-28 20:45 CET&lt;br /&gt;
Nmap scan report for 10.16.2.10&lt;br /&gt;
Host is up (0.00074s latency).&lt;br /&gt;
&lt;br /&gt;
PORT     STATE    SERVICE&lt;br /&gt;
5678/tcp filtered rrac&lt;br /&gt;
MAC Address: 08:00:27:64:8E:09 (Oracle VirtualBox virtual NIC)&lt;br /&gt;
&lt;br /&gt;
Nmap done: 1 IP address (1 host up) scanned in 1.51 seconds&lt;br /&gt;
&lt;br /&gt;
###########&lt;br /&gt;
# STAGE 3 #&lt;br /&gt;
###########&lt;br /&gt;
root@kali-gsb:~# nmap -p 9101 10.16.2.10 &lt;br /&gt;
Starting Nmap 7.70 ( https://nmap.org ) at 2019-02-28 20:45 CET&lt;br /&gt;
Nmap scan report for 10.16.2.10&lt;br /&gt;
Host is up (0.00074s latency).&lt;br /&gt;
&lt;br /&gt;
PORT     STATE    SERVICE&lt;br /&gt;
9101/tcp filtered jetdirect&lt;br /&gt;
MAC Address: 08:00:27:64:8E:09 (Oracle VirtualBox virtual NIC)&lt;br /&gt;
&lt;br /&gt;
Nmap done: 1 IP address (1 host up) scanned in 1.51 seconds&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vegada tocats els ports, podem llançar la connexió SSH com sempre i podrem accedir&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
root@kali-gsb:~# ssh root@10.16.2.10&lt;br /&gt;
Password: &lt;br /&gt;
Last login: Thu Feb 28 16:26:57 2019 from 10.16.2.2&lt;br /&gt;
Have a lot of fun...&lt;br /&gt;
banner-grabbing:~ # &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Costat servidor=====&lt;br /&gt;
Paral·lelament, si des del propi servidor mirem els logs que genera ''knockd'' mentre s'executa (desat a &amp;lt;code&amp;gt;/var/log/knockd.log&amp;lt;/code&amp;gt; podem veure el comportament des que s'arrenca el servei de ''port-knocking'', el registre de cada etapa detectada (''stage'') i la comanda que executa per a permetre la connexió SSH durant 10 segons. Una vegada passat el ''cmd_time-out'', executa la comanda d'IPTables per a eliminar la regla de permetre la connexió SSH. Tot i així, com que hi ha una política que preval que permet connexions ja establertes, la connexió llançada no es tancarà fins que nosaltres fem un ''logout'' des del client.&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
[2019-02-28 18:06] starting up, listening on eth1&lt;br /&gt;
[2019-02-28 18:07] 10.16.2.11: opencloseSSH: Stage 1&lt;br /&gt;
[2019-02-28 18:07] 10.16.2.11: opencloseSSH: Stage 2&lt;br /&gt;
[2019-02-28 18:07] 10.16.2.11: opencloseSSH: Stage 3&lt;br /&gt;
[2019-02-28 18:07] 10.16.2.11: opencloseSSH: OPEN SESAME&lt;br /&gt;
[2019-02-28 18:07] opencloseSSH: running command: /usr/sbin/iptables -I INPUT 1 -s 10.16.2.11 -p tcp --dport ssh -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
[2019-02-28 18:07] 10.16.2.11: opencloseSSH: command timeout&lt;br /&gt;
[2019-02-28 18:07] opencloseSSH: running command: /usr/sbin/iptables -D INPUT -s 10.16.2.11 -p tcp --dport ssh -j ACCEPT&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Guillem</name></author>
		
	</entry>
</feed>