{"id":1359,"date":"2013-05-02T08:35:51","date_gmt":"2013-05-02T06:35:51","guid":{"rendered":"http:\/\/blog.sfsoft.it\/?p=1359"},"modified":"2013-05-02T08:35:51","modified_gmt":"2013-05-02T06:35:51","slug":"port-knocking-aprire-una-porta-di-iptables-con-una-sequenza-di-pacchetti","status":"publish","type":"post","link":"https:\/\/www.sfsoft.it\/blog\/2013\/05\/02\/port-knocking-aprire-una-porta-di-iptables-con-una-sequenza-di-pacchetti\/","title":{"rendered":"Port Knocking: aprire una porta di IPTABLES con una sequenza di pacchetti"},"content":{"rendered":"<p>Un articolo del buon <a href=\"http:\/\/www.cyberciti.biz\/\" target=\"_blank\">nixCraft<\/a> che spiega come aprire una porta ( ad es. la 22 ) su una macchina con <em>iptables<\/em> solo se viene inviata una determinata successione di pacchetti, detto <em>port-knocking<\/em>.<\/p>\n<p><a href=\"http:\/\/www.cyberciti.biz\/faq\/debian-ubuntu-linux-iptables-knockd-port-knocking-tutorial\/\" target=\"_blank\">http:\/\/www.cyberciti.biz\/faq\/debian-ubuntu-linux-iptables-knockd-port-knocking-tutorial\/<\/a><\/p>\n<p>Riassumendo \u00e8 necessario innanzitutto installare <em>knockd<\/em>:<\/p>\n<pre lang=\"bash\">sudo apt-get install knockd<\/pre>\n<p>Si configura il servizio modificando il file <em>knockd.conf<\/em>:<\/p>\n<pre lang=\"bash\">sudo nano \/etc\/knockd.conf<\/pre>\n<p>E impostandolo ad esempio per rispondere alla sequenza delle porte <em>TCP<\/em> 2022, 3022, 4022 per aprire la porta e la sequenza inversa per chiuderla:<\/p>\n<pre lang=\"bash\">[options]\r\n        UseSyslog\r\n\r\n[openSSH]\r\n        sequence    = 2022,3022,4022\r\n        seq_timeout = 5\r\n        command     = \/sbin\/iptables -A INPUT -s %IP% -p tcp --dport 22 -j ACCEPT\r\n        tcpflags    = syn\r\n\r\n[closeSSH]\r\n        sequence    = 4022,3022,2022\r\n        seq_timeout = 5\r\n        command     = \/sbin\/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT\r\n        tcpflags    = syn<\/pre>\n<p>Si salva e si apre l&#8217;altro file di configurazione:<\/p>\n<pre lang=\"bash\">sudo nano \/etc\/default\/knockd<\/pre>\n<p>Si cerca il parametro <em>START_KNOCKD<\/em> e si imposta il valore 1, eventualmente \u00e8 possibile anche impostare l&#8217;interfaccia di rete che deve essere utilizzata impostando ad esempio <em>KNOCKD_OPTS=&#8221;-i eth0&#8243;<\/em><\/p>\n<p>Si avvia infine il demone:<\/p>\n<pre lang=\"bash\">sudo service start knockd<\/pre>\n<p>La configurazione del <em>server<\/em> \u00e8 terminata, spostiamoci sulla macchina remota che richiede l&#8217;accesso.<\/p>\n<p>Per fare la richiesta di accesso \u00e8 sufficiente utilizzare un <em>port-knock client<\/em>, ad esempio <em>knock<\/em>:<\/p>\n<pre lang=\"bash\">knock -v &lt;IP\/HOST&gt; 2022 3022 4022<\/pre>\n<p>Mentre per richiederne la chiusura si passa la sequenza invertita:<\/p>\n<pre lang=\"bash\">knock -v &lt;IP\/HOST&gt; 4022 3022 2022<\/pre>\n<p>E&#8217; possibile utilizzare anche un misto di porte TCP e UDP:<\/p>\n<pre lang=\"bash\">knock &lt;IP\/HOST&gt; 2022:tcp 9090:udp 4022:tcp<\/pre>\n<p>Per maggiori chiarimenti si rimanda come sempre all&#8217;<a href=\"http:\/\/www.cyberciti.biz\/faq\/debian-ubuntu-linux-iptables-knockd-port-knocking-tutorial\/\" target=\"_blank\">articolo originale<\/a> e alla <a href=\"http:\/\/www.zeroflux.org\/projects\/knock\/\" target=\"_blank\">documentazione ufficiale<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Un articolo del buon nixCraft che spiega come aprire una porta ( ad es. la 22 ) su una macchina con iptables solo se viene inviata una determinata successione di pacchetti, detto port-knocking. http:\/\/www.cyberciti.biz\/faq\/debian-ubuntu-linux-iptables-knockd-port-knocking-tutorial\/ Riassumendo \u00e8 necessario innanzitutto installare knockd: sudo apt-get install knockd Si configura il servizio modificando il file knockd.conf: sudo nano \/etc\/knockd.conf [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[11,166,15,3,23],"tags":[12,167,16,39,8,70,5],"_links":{"self":[{"href":"https:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/posts\/1359"}],"collection":[{"href":"https:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/comments?post=1359"}],"version-history":[{"count":1,"href":"https:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/posts\/1359\/revisions"}],"predecessor-version":[{"id":1360,"href":"https:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/posts\/1359\/revisions\/1360"}],"wp:attachment":[{"href":"https:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/media?parent=1359"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/categories?post=1359"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/tags?post=1359"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}