VCN: Difference between revisions

From ortiche
Jump to navigation Jump to search
No edit summary
No edit summary
 
(9 intermediate revisions by 2 users not shown)
Line 12: Line 12:
installa [http://www.tinc-vpn.org/ Tinc]
installa [http://www.tinc-vpn.org/ Tinc]


lancia '''tinc''' e fagli creare una chiave:
lancia '''tinc''' (se non lo trovi prova con tincd) e fagli creare una chiave:


<source lang="bash">tinc -n vcn -K</source>
<source lang="bash">tinc -n vcn -K 2048</source>


se si arrabbia, crea la directory /etc/tinc/vcn
se si arrabbia, crea la directory /etc/tinc/vcn
Line 36: Line 36:
puoi proteggerlo con un muro di fuoco!
puoi proteggerlo con un muro di fuoco!


su linux:
=== Linux ===
 
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
# fai vedere a tutti la tua ''webapp''
iptables -A INPUT -i vcn -p tcp --dport 80 -j ACCEPT
# fai passare i tuoi amici (172.20.0.31) sulle porte giuste (ssh)
# fai passare i tuoi amici (172.20.0.31) sulle porte giuste (ssh)
iptables -A INPUT -i vcn -p tcp --dport ssh -s 172.20.0.31 -j ACCEPT
iptables -A INPUT -i vcn -p tcp --dport ssh -s 172.20.0.31 -j ACCEPT
Line 44: Line 47:
# blocca gli altri
# blocca gli altri
iptables -A INPUT -i vcn -p tcp -j DROP
iptables -A INPUT -i vcn -p tcp -j DROP
</syntaxhighlight>
=== NetBSD con NPF ===
<syntaxhighlight lang="bash">
$tun_if = inet4(tun0)
$services_tcp = { 22, 25, 80, 443, 110, 143, 587, 993, 995, 6667, 9999 }
$services_udp = { 53 }
$vcn_friends = { 172.20.x.y/32, 172.20.z.w/32 }
group "tun" on $tun_if {
        block in all
pass stateful in final proto tcp to $tun_if port $services_tcp
pass stateful in final proto udp to $tun_if port $services_udp
pass stateful from $vcn_friends
}
group default {
        ruleset "test-set"
        pass all
}
</syntaxhighlight>
== Gateway ==
sul gateway di uscita:
<syntaxhighlight lang="bash">
echo 1 >/proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i vcn -s ip.del.client -j ACCEPT
iptables -A FORWARD -i vcn  -j DROP
</syntaxhighlight>
sul client:
<syntaxhighlight lang="bash">
ORIGINAL_GATEWAY=`ip route show | grep ^default | cut -d ' ' -f 2-5`
route add default gw ip.del.gateway
ip route del default $ORIGINAL_GATEWAY
</syntaxhighlight>
</syntaxhighlight>



Latest revision as of 23:34, 8 June 2016


Un reticolo di tubi. Il demone nega la cabala.

Un tunnel serve per:

  • passare inosservati
  • entrare dove si puo solo uscire
  • difendere l'indifendibile.

procurati un token su https://webmail.esiliati.org/toolz/token/generate, se non ce l'hai chiedi ad un amico oppure, se proprio necessario, a vcn [@] esiliati {.} org

installa Tinc

lancia tinc (se non lo trovi prova con tincd) e fagli creare una chiave:

tinc -n vcn -K 2048

se si arrabbia, crea la directory /etc/tinc/vcn

mkdir /etc/tinc/vcn

vai su https://webmail.esiliati.org/toolz/token/check e dagli il token

  • scegli un nome per il tuo nodo
  • apri il file rsa_key.pub, copia la chiave (la stringa contenuta tra -----BEGIN RSA PUBLIC KEY----- e -----END RSA PUBLIC KEY-----) e incollala nel form pubkey
  • premi GO

copia il contenuto delle finestrelle nei file indicati, tutti contenuti nella directory /etc/tinc/vcn

avvia tinc:

tinc -n vcn

Sicurezza

Il tuo nodo e' protetto dall'internet, ma visibile dagli altri nodi VCN

puoi proteggerlo con un muro di fuoco!

Linux

# fai vedere a tutti la tua ''webapp''
iptables -A INPUT -i vcn -p tcp --dport 80 -j ACCEPT
# fai passare i tuoi amici (172.20.0.31) sulle porte giuste (ssh)
iptables -A INPUT -i vcn -p tcp --dport ssh -s 172.20.0.31 -j ACCEPT
# fai passare le connessioni in uscita
iptables -A INPUT -i vcn -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
# blocca gli altri
iptables -A INPUT -i vcn -p tcp -j DROP

NetBSD con NPF

$tun_if = inet4(tun0)

$services_tcp = { 22, 25, 80, 443, 110, 143, 587, 993, 995, 6667, 9999 }
$services_udp = { 53 }

$vcn_friends = { 172.20.x.y/32, 172.20.z.w/32 }

group "tun" on $tun_if {
        block in all
	pass stateful in final proto tcp to $tun_if port $services_tcp
	pass stateful in final proto udp to $tun_if port $services_udp
	pass stateful from $vcn_friends
}

group default {
        ruleset "test-set"
        pass all
}

Gateway

sul gateway di uscita:

echo 1 >/proc/sys/net/ipv4/ip_forward

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

iptables -A FORWARD -i vcn -s ip.del.client -j ACCEPT
iptables -A FORWARD -i vcn  -j DROP

sul client:

ORIGINAL_GATEWAY=`ip route show | grep ^default | cut -d ' ' -f 2-5`
route add default gw ip.del.gateway
ip route del default $ORIGINAL_GATEWAY

DNS

Dentro VCN c'è un server DNS.

Per usarlo devi dire al tuo server DNS locale di far risolvere i domini .vcn a 172.20.1.35.

Con dnsmasq devi aggiungere questo a /etc/dnsmasq.conf

server=/vcn/172.20.1.35#53

qualsiasi problema, vcn [@] esiliati {.} org