Bref, Firestarter, c'est à bannir. La seule chose à faire avec ça: sudo apt-get remove firestarter! Voilà! :)
Dommage, car le concept était bon, s'il s'était généralisé à plus d'une interface réseau.
Donc, enlève Firestarter, reboote, réexécute la commande iptables et dis-moi s'il y a encore toutes ces règles. Si tel n'est plus le cas, il y a de bonnes chances pour que ton VPN fonctionne comme un charme, du moins comme ça peut fonctionner avec l'implantation sous Linux.
Hold yer seahorses matey! Firestarter (malgré que ce soit un peu de l'abandonware depuis deux ans ;__;) est excellent et n'est pas à bannir pour si peu. Il a un gros bouton rouge «Arrêter le pare-feu» et ce n'est pas pour rien. Je viens de le tester. Effectivement, en wifi firestarter protégeait mon interface réseau mais bloquait vpn. En le désactivant, tout d'un coup ça passe sans problèmes. Pas besoin de désinstaller.

Voici le output iptables avant et après que je désactive le firewall. J'ai aussi trouvé une autre solution (ajouter une règle dans firestarter lui demandant d'accepter toute connexion en provenance de vpn.cc.umontreal.ca; voir screenshot attaché à ce courriel), mais elle ne semble pas fonctionner pleinement: la connexion vpn s'établit sans problèmes, mais il est alors impossible de surfer sur le web (alors que ça fonctionne si on désactive entièrement firestarter).

Toutefois, je viens de trouver ceci: http://www.fs-security.com/docs/vpn.php
je viens d'essayer, ça ne semble pas fonctionner à première vue.

jeff@kaname:~$ sudo iptables -L
Chain INPUT (policy DROP)
target     prot opt source               destination        
ACCEPT     tcp  --  routeur              anywhere            tcp flags:!FIN,SYN,RST,ACK/SYN
ACCEPT     udp  --  routeur              anywhere           
ACCEPT     0    --  anywhere             anywhere           
ACCEPT     icmp --  anywhere             anywhere            limit: avg 10/sec burst 5
DROP       0    --  anywhere             255.255.255.255    
DROP       0    --  anywhere             192.168.1.255      
DROP       0    --  base-address.mcast.net/8  anywhere           
DROP       0    --  anywhere             base-address.mcast.net/8
DROP       0    --  255.255.255.255      anywhere           
DROP       0    --  anywhere             0.0.0.0            
DROP       0    --  anywhere             anywhere            state INVALID
LSI        0    -f  anywhere             anywhere            limit: avg 10/min burst 5
INBOUND    0    --  anywhere             anywhere           
LOG_FILTER  0    --  anywhere             anywhere           
LOG        0    --  anywhere             anywhere            LOG level info prefix `Unknown Input'

Chain FORWARD (policy DROP)
target     prot opt source               destination        
ACCEPT     icmp --  anywhere             anywhere            limit: avg 10/sec burst 5
LOG_FILTER  0    --  anywhere             anywhere           
LOG        0    --  anywhere             anywhere            LOG level info prefix `Unknown Forward'

Chain OUTPUT (policy DROP)
target     prot opt source               destination        
ACCEPT     tcp  --  kaname               routeur             tcp dpt:domain
ACCEPT     udp  --  kaname               routeur             udp dpt:domain
ACCEPT     0    --  anywhere             anywhere           
DROP       0    --  base-address.mcast.net/8  anywhere           
DROP       0    --  anywhere             base-address.mcast.net/8
DROP       0    --  255.255.255.255      anywhere           
DROP       0    --  anywhere             0.0.0.0            
DROP       0    --  anywhere             anywhere            state INVALID
OUTBOUND   0    --  anywhere             anywhere           
LOG_FILTER  0    --  anywhere             anywhere           
LOG        0    --  anywhere             anywhere            LOG level info prefix `Unknown Output'

Chain INBOUND (1 references)
target     prot opt source               destination        
ACCEPT     tcp  --  anywhere             anywhere            state RELATED,ESTABLISHED
ACCEPT     udp  --  anywhere             anywhere            state RELATED,ESTABLISHED
LSI        0    --  anywhere             anywhere           

Chain LOG_FILTER (5 references)
target     prot opt source               destination        

Chain LSI (2 references)
target     prot opt source               destination        
LOG_FILTER  0    --  anywhere             anywhere           
LOG        tcp  --  anywhere             anywhere            tcp flags:FIN,SYN,RST,ACK/SYN limit: avg 1/sec burst 5 LOG level info prefix `Inbound '
DROP       tcp  --  anywhere             anywhere            tcp flags:FIN,SYN,RST,ACK/SYN
LOG        tcp  --  anywhere             anywhere            tcp flags:FIN,SYN,RST,ACK/RST limit: avg 1/sec burst 5 LOG level info prefix `Inbound '
DROP       tcp  --  anywhere             anywhere            tcp flags:FIN,SYN,RST,ACK/RST
LOG        icmp --  anywhere             anywhere            icmp echo-request limit: avg 1/sec burst 5 LOG level info prefix `Inbound '
DROP       icmp --  anywhere             anywhere            icmp echo-request
LOG        0    --  anywhere             anywhere            limit: avg 5/sec burst 5 LOG level info prefix `Inbound '
DROP       0    --  anywhere             anywhere           

Chain LSO (0 references)
target     prot opt source               destination        
LOG_FILTER  0    --  anywhere             anywhere           
LOG        0    --  anywhere             anywhere            limit: avg 5/sec burst 5 LOG level info prefix `Outbound '
REJECT     0    --  anywhere             anywhere            reject-with icmp-port-unreachable

Chain OUTBOUND (1 references)
target     prot opt source               destination        
ACCEPT     icmp --  anywhere             anywhere           
ACCEPT     tcp  --  anywhere             anywhere            state RELATED,ESTABLISHED
ACCEPT     udp  --  anywhere             anywhere            state RELATED,ESTABLISHED
ACCEPT     0    --  anywhere             anywhere           

======= soudainement je clique sur «Arrêter le pare-feu» ========

jeff@kaname:~$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination        

Chain FORWARD (policy ACCEPT)Mais qu'est donc la vraie solution?
target     prot opt source               destination        

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination