Problema com vpn PPTP através de um firewall linux com IpTables/Netfilter:

Problema com vpn PPTP através de um firewall linux com IpTables/Netfilter:

Neste post irei mostrar uma dica de como resolver o um problema de acesso a uma vpn pptp through com  Linux IpTables/Netfilter firewall.

A conexão VPN funciona a partir de uma conexão à internet direta para o host, então, logicamente, a configuração VPN provavelmente estava certo. Aqui no escritório eu estou atrás de um firewall Linux iptables, e deduzi que era provavelmente o problema. Nada foi definido para bloquear o protocolo GRE, então eu estava um pouco confuso.

Eu encontrei este post TLDP (Não se preocupe em lê-lo ...) sobre como fazer o trabalho pptp através iptables. Ah-ha! Foi o firewall. Então eu percebi que a documentação era antigo. Por Antiga Quero dizer que refere-se ao e "novo" kernel 2.0 2.2. O kernel do Linux atual é> 2.6! eep! Provavelmente foi traduzido de uma língua morta obscura que é tão velho.

De qualquer forma, a solução é muito mais simples ... Iptables tem um módulo que permite PPTP para passar através de NAT. Meu conto de aflição felizmente resolvido com este comando.
tcpdump host IP
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
09:39:01.144414 IP 10.10.1.53.49202 > ip.1723: Flags [S], seq 1196715401, win 8192, options [mss 1456,nop,wscale 2,nop,nop,sackOK], length 0
09:39:01.214167 IP ip.1723 > 10.10.1.53.49202: Flags [S.], seq 2284116806, ack 1196715402, win 14600, options [mss 1460,nop,nop,sackOK,nop,wscale 6], length 0
09:39:01.214931 IP 10.10.1.53.49202 > ip.1723: Flags [.], ack 1, win 16744, length 0
09:39:01.214995 IP 10.10.1.53.49202 > ip.1723: Flags [P.], seq 1:157, ack 1, win 16744, length 156: pptp CTRL_MSGTYPE=SCCRQ PROTO_VER(1.0) FRAME_CAP(A) BEARER_CAP(A) MAX_CHAN(0) FIRM_REV(0) HOSTNAME() VENDOR(Microsoft)
09:39:01.286395 IP ip.1723 > 10.10.1.53.49202: Flags [.], ack 157, win 245, length 0
09:39:01.288874 IP ip.1723 > 10.10.1.53.49202: Flags [P.], seq 1:157, ack 157, win 245, length 156: pptp CTRL_MSGTYPE=SCCRP PROTO_VER(1.0) RESULT_CODE(1) ERR_CODE(0) FRAME_CAP() BEARER_CAP() MAX_CHAN(1) FIRM_REV(1) HOSTNAME(local) VENDOR(linux)
09:39:01.289310 IP 10.10.1.53.49202 > ip.1723: Flags [P.], seq 157:325, ack 157, win 16705, length 168: pptp CTRL_MSGTYPE=OCRQ CALL_ID(51605) CALL_SER_NUM(21) MIN_BPS(300) MAX_BPS(100000000) BEARER_TYPE(Any) FRAME_TYPE(E) RECV_WIN(64) PROC_DELAY(0) PHONE_NO_LEN(0) PHONE_NO() SUB_ADDR()
09:39:01.361362 IP ip.1723 > 10.10.1.53.49202: Flags [P.], seq 157:189, ack 325, win 262, length 32: pptp CTRL_MSGTYPE=OCRP CALL_ID(38272) PEER_CALL_ID(51605) RESULT_CODE(1) ERR_CODE(0) CAUSE_CODE(0) CONN_SPEED(100000000) RECV_WIN(64) PROC_DELAY(0) PHY_CHAN_ID(0)

Basta habilitar o modulo ip_nat_pptp que irá resolver o problema:

root@def_linux:#modprobe ip_nat_pptp

Siga o @def_linux no twitter e fique por dentro dos nossos tutoriais, dicas e promoções.

Veja mais notícias Linux e tutoriais do blog aqui.

Defendendo&nbsp o linux, blog    o linux    na veia.

Erro SyntaxError: Non-ASCII character '\xc3' in file - Declarando o encode.

Como declarar o encode no seu script python e corrigir o erro 'SyntaxError: Non-ASCII character'

 Ao executar o código abaixo temos um exemplo do erro:

 
class Person:
        def __init__(self,name,age):
                self.name = name
                self.age = age
nome= raw_input("digite seu nome ")
idade = raw_input("digite sua idade ")
p1=Person(nome,idade)

print ("Meu nome é " + p1.name + " e a minha idade é " + p1.age)

SyntaxError: Non-ASCII character '\xc3' in file classpessoa1.py on line 9, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details, python, erro, error, script, encode, utf


tiago@defendendo:~$ python classpessoa1.py
  File "classpessoa1.py", line 9
SyntaxError: Non-ASCII character '\xc3' in file classpessoa1.py on line 9, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

Esse erro ocorre porque o python não reconheceu os caracteres ASCII no seu script.

Para resolvermos esse problema precisaremos apenas fazer a declaração do encode no inicio de script:
Solução: #coding: utf8


#coding: utf8 
 class Person:
        def __init__(self,name,age):
                self.name = name
                self.age = age
nome= raw_input("digite seu nome ")
idade = raw_input("digite sua idade ")
p1=Person(nome,idade)

print ("Meu nome é " + p1.name + " e a minha idade é " + p1.age)


SyntaxError: Non-ASCII character '\xc3' in file classpessoa1.py on line 9, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details, python, erro, error, script, encode, utf



Siga o @def_linux no twitter e fique por dentro dos nossos tutoriais, dicas e promoções.

Veja mais notícias Linux e tutoriais do blog aqui.

Defendendo&nbsp o linux, blog    o linux    na veia.