Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
Ursojr

Firewall - Bloqueio porta 25 - Squid - Socorro...

Recommended Posts

Prezados Colegas,

Estou com um probleminha sério por aqui e se alguém puder me ajudar eu agradeço desde já.

Eu tenho um Servidor Linux com Red Hat instalado, com Webmail, Squid ...tudo em cima atualizado e funcionando beleza até adquirirmos uma solução da McAfee com Antivírus, Anti-Spyware, Anti-phishing, Anti-Spam ....Anti-tudo... e foi ai que começaram os problemas.

Efetuei todas as configurações no Firewall conforme orientação deles, fui orientado a restringir a porta 25 a um range de IP´s definidos por eles e bloquear a mesma porta 25 ( inbound ) entrada para o restante, isso para que nenhum spam acessasse direto meu servidor, e até ai, aparentemente tudo estava funcionando perfeitamente, os Spam´s sumiram completamente por alguns dias, porém em minha empresa temos diversos colaboradores e Diretores que viajam direto, e ao tentar acessar a Internet fora da empresa, fora da rede corporativa, usando outro provedor ( Aeroporto, Hotel, Lan house ou até mesmo em casa ) eles não conseguem mais enviar mensagens, apenas receber, ao tentar enviar através do Outlook ou do Webmail eles recebem um erro: Pude verificar que ao tentar acessar o smtp.do meu servidor ele recebia o erro: (Não foi possível conectar-se ao servidor. Assunto 'Fw: “xxxxxxxxxxxxxxxxxxx”, Conta: Tal, Servidor: 'smtp.xxxxxxxxxxxxx.com.br', Protocolo: SMTP, Porta: 25, Segura (SSL): Não, Erro de soquete: 10060, Nº do erro: 0x800CCC0E ) que é um erro de acesso negado na porta 25, obviamente porque ela estava fechada para conexões que não fossem as dos Ip´s indicados e restringidos pela McAfee, e como esles estão em outro provedor, logo possuem outro endereço IP

O que acontece é que essa solução funciona da seguinte forma, quando recebemos um e-mail, ele é direcionado a McAfee através do nosso MX Records e depois de limpo, ele é redirecionado novamente para nosso servidor, daí o range de IP´s na porta 25 indicados por eles. Alguém tem alguma solução para esse problema? Alguém já passou ou conhecesse alguém que enfrentou esse mesmo problema? Se alguém puder me dar uma força e me ajudar a configurar essa porta 25 para bloquear acesso mas deixar que as contas enviem mensagem eu agradeço muito. Valeu Abraço. Socorro..:(:eek::eek::(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro Ursojr, se você restringe no firewall a entrada de apenas alguns ip's para acesso na prota 25, então não existe problema nem solução, o único jeito seria liberar a porta 25 para todos (any) e instalar e configurar no red hat o spamassassin com o clamav, ou uma solução mais complicada seria inplementar uma openvpn configurando o servidor como bridge para sua rede e colocando uma rota estática para o servidor de email, assim ao se conectar na vpn esta rota faria com que todo o tráfego para o seu servidor seja transportado obrigatóriamente pela rede da empresa, liberando o acesso a porta sem precisar liberar a porta para todos, se tiver dúvidas de como configurar uma openvpn posta aí que eu te ajudo.

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • Muito Obrigado pela dica Ditador Nicastro, com certeza ajudou bastante. Vou optar pela Open VPN, se puder me dar uma força eu agradeço muito. Pode me passar algum procedimento?

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Claro que sim, é uma tarefa um pouco longa, mas eu vou tentar detalhar tudo aqui.

    Sugiro a você utilizar o red hat para isso, na empresa onde trabalho eu instalei e configurei uma vpn no red hat enterprise linux4, e nunca nos dá problemas, mas chega de papo furado, mãos à obra:

    Primeiro, baixe o pacote openvpn, ou utilize o apt-get para isso, no terminal digite:

    #apt-get install openvpn

    Pode ser que o apt “reclame” de algumas dependências do pacote, se for o caso, responda que sim a pergunta.

    Após a instalação concluída, iremos criar uma C.A. (Autoridade Certificador), os certificados e chaves e o arquivo de configuração da OpenVPN.

    O primeiro passo para nosso servidor se tornar uma C.A. é alterar o arquivo openssl.cnf, no rhel4, o arquivo encontra-se em /usr/share/ssl/openssl.cnf, se na sua distro não estiver no mesmo local digite #updatedb e em seguida #locate openssl.cnf, altere com seu editor preferido, aqui eu vou utilizar o vim.

    #vim /usr/share/ssl/openssl.cnf

    E altere as seguintes linhas:

    Mais ou menos na linha 37 você irá encontrar a entrada:

    dir = ./demoCA # Where everything is kept

    Altere para:

    dir = /etc/ssl/ca # Where everything is kept

    Depois, mais ou menos na linha 43, altere a entrada:

    certificate = $dir/cacert.pem # The CA certificate

    Para:

    certificate = $dir/ca.crt # The CA certificate

    E mais ou menos na linha 46, altere:

    private_key = $dir/private/cakey.pem# The private key

    Para:

    private_key = $dir/private/ca.key # The private key

    Mais ou menos na linha 63, altere:

    default_days = 365 # how long to certify for

    Para:

    default_days = 3650 # how long to certify for

    Da linha 73 à linha 80, altere conforme abaixo:

    De:

    # For the CA policy

    [ policy_match ]

    countryName = match

    stateOrProvinceName = match

    organizationName = match

    organizationalUnitName = optional

    commonName = supplied

    emailAddress = optional

    Para:

    # For the CA policy

    [ policy_match ]

    countryName = match

    stateOrProvinceName = match

    organizationName = match

    organizationalUnitName = match

    commonName = supplied

    emailAddress = supplied

    Na linha 120, altere:

    countryName_default = GB

    Para:

    countryName_default = BR

    Na linha 125,

    de:

    stateOrProvinceName_default = Berkshire

    para:

    stateOrProvinceName_default = SP (no seu caso SC)

    Na linha 128, altere

    de:

    localityName_default = Newbury

    para:

    localityName_default = Sao Paulo (no seu caso Florianopolis)

    Na linha 131,

    de:

    0.organizationName_default = My Company Ltd

    para:

    0.organizationName_default = Intersix Technologies (no seu caso coloque o nome da sua empresa)

    E por último, na linha 138 altere,

    de:

    #organizationalUnitName_default =

    para:

    organizationalUnitName_default = VPN

    Salve o arquivo e saia.

    Agora iremos criar os diretórios necessários para as configurações que criamos, digite no terminal:

    #mkdir –p /etc/ssl/ca

    #mkdir /etc/ssl/ca/certs

    #mkdir /etc/ssl/ca/newcerts

    #mkdir /etc/ssl/ca/crl

    #mkdir /etc/ssl/ca/private

    #touch /etc/ssl/ca/index.txt

    #echo 01 > /etc/ssl/ca/serial

    #chmod -R 700 /etc/ssl/ca

    Iremos agora criar o certificado/chave da C.A., digite no terminal:

    #cd /etc/ssl/ca

    #openssl req -nodes -new -x509 -keyout ca.key -out ca.crt -days 3650

    Algumas informações de localidade e nome da empresa serão perguntadas, como já configuramos no arquivo openssl.cnf algumas resposta default, nas seguintes perguntas basta você teclar ENTER:

    Country Name (2 letter code) (BR):

    State or Province Name (full name) [sC]:

    Locality Name (eg, city) [Florianopolis]:

    Organization Name (eg, company) [nome da sua empresa]:

    Organizational Unit Name (eg, section) [VPN]:

    Common Name (eg, your name or your server's hostname) []: - aqui coloque o nome do seu servidor.

    Email Address []: - e aqui coloque o email do responsável pelo servidor, no caso o seu email.

    Pronto, o certificado e chave da C.A. foram criados, agora vamos movêlos para os diretórios configurados.

    Mova a chave do certificado para dentro do subdiretório private em /etc/ssl/ca

    #mv ca.key ./private

    Agora criaremos o algoritmo usado para a troca de chaves criptográficas durante a execução do OpenVPN. Utilize no comando a criptografia que consta no arquivo openssl.cnf, no nosso caso 1024bits.

    No terminal digite:

    #openssl dhparam -out dh1024.pem 1024

    E então criaremos o certificado de revogação, crl.pem, no terminal digite:

    #openssl ca -gencrl -out crl.pem -config /usr/share/ssl/openssl.cnf

    E finalmente, vamos gerar o certificado do servidor, no terminal digite:

    #openssl req -nodes -new -keyout server.key -out server.csr

    Mais uma vez, alguma informações deverão ser preenchidas, siga os mesmos passos da geração da C.A.:

    Country Name (2 letter code) (BR):

    State or Province Name (full name) [sC]:

    Locality Name (eg, city) [Florianopolis]:

    Organization Name (eg, company) [nome da sua empresa]:

    Organizational Unit Name (eg, section) [VPN]:

    Common Name (eg, your name or your server's hostname) []: - O mesmo informado no certificado da C.A.

    Email Address []: - O mesmo informado no certificado da C.A.

    A challenge password []: - A única diferença entre o certificado da C.A. e do servidor é aqui, informe uma senha.

    Agora vamos assinar a chave do servidor com o certificado da C.A., no terminal digite:

    # openssl ca -out server.crt -in server.csr

    E responda ‘y’ para todas as perguntas.

    Agora crie o diretório de configuração da openvpn, digite no terminal:

    #mkdir /etc/openvpn

    Se ocorrer o erro da tela dizendo que o diretório já existe não se preocupe.

    Copie o certificado da CA, chave e certificado do servidor + protocolo DH gerados anteriormente para dentro do diretório /etc/openvpn:

    #cp -p ca.crt /etc/openvpn

    #cp -p server.key /etc/openvpn

    #cp -p server.crt /etc/openvpn

    #cp -p dh1024.pem /etc/openvpn

    E vá para o diretório da OpenVPN:

    #cd /etc/openvpn

    Ajuste as permissões da chave do servidor para 600:

    #chmod 600 server.key

    E crie os seguintes links simbólicos:

    #ln -s /etc/ssl/ca ./

    #ln -s /usr/share/ssl/openssl.cnf ./

    Agora criaremos o arquivo de configuração do servidor, com seu editor preferido crie o arquivo server.conf:

    #vim server.conf

    E inclua as seguintes linhas:

    ########server.conf##################

    tls-server

    port 1194 #não se esqueça de liberar esta porta no firewall

    proto tcp

    dev tap0

    ca /etc/openvpn/ca.crt

    cert /etc/openvpn/server.crt

    key /etc/openvpn/server.key

    dh /etc/openvpn/dh1024.pem

    ifconfig-pool-persist ipp.txt

    #server-bridge xxx.xxx.xxx.xxx(ip do servidor) xxx.xxx.xxx.xxx(máscara da rede) xxx.xxx.xxx.xxx(ip inicial da rede) xxx.xxx.xxx.xxx(ip final da rede) (Suponhamos que sua rede seja 192.168.0.0/24 e tiver um range 192.168.0.30 até 192.168.0.200 livre e o ip do seu servidor 192.168.0.1 com máscara 255.255.255.0, utilize o exemplo abaixo)

    server-bridge 192.168.0.1 255.255.255.0 192.168.0.30 192.168.0.200

    push "route-gateway (ip do gateway da sua rede)"

    push "route (ip do server mail) (mascara do server) (ip do gateway da rede)"

    client-to-client

    keepalive 10 120

    comp-lzo

    persist-key

    persist-tun

    status /var/log/openvpn-status.log

    log /var/log/openvpn.log

    log-append /var/log/openvpn.log

    verb 4

    mute 20

    tls-timeout 10

    crl-verify /etc/ssl/ca/crl.pem

    #############server.conf##########################

    Salve o arquivo e saia.

    Agora criaremos a tal bridge(ponte) entre a interface virtual da vpn e a interface real do servidor, baixe o pacote bridge-utils ou instale o pacote através do apt-get, em um terminal digite:

    #apt-get install bridge-utils

    Entre no diretório /etc, e crie o arquivo bridge-start com seu editor preferido:

    #cd /etc

    #vim bridge-start

    Inclua as seguintes linhas:

    #!/bin/bash

    #################################

    # Set up Ethernet bridge on Linux

    # Requires: bridge-utils

    #################################

    # Define Bridge Interface

    br="br0"

    # Define list of TAP interfaces to be bridged,

    # for example tap="tap0 tap1 tap2".

    tap="tap0"

    # Define physical ethernet interface to be bridged

    # with TAP interface(s) above.

    eth="eth0"

    eth_ip="(coloque um ip válido para sua rede)"

    eth_netmask="(máscara da sua rede)"

    eth_broadcast="(broadcast da sua rede)"

    for t in $tap;

    do

    openvpn --mktun --dev $t

    done

    brctl addbr $br

    brctl addif $br $eth

    for t in $tap;

    do

    brctl addif $br $t

    done

    for t in $tap;

    do

    ifconfig $t 0.0.0.0 promisc up

    done

    ifconfig $eth 0.0.0.0 promisc up

    ifconfig $br $eth_ip netmask $eth_netmask broadcast $eth_broadcast

    Salve e saia.

    Torne este arquivo executável:

    #chmod +x bridge-start

    Agora vamos criar o arquivo bridge-stop, para quando precisar para o serviço, utilize o seu editor preferido para isso:

    #vim bridge-stop

    E inclua as seguintes linhas:

    #!/bin/bash

    ####################################

    # Tear Down Ethernet bridge on Linux

    ####################################

    # Define Bridge Interface

    br="br0"

    # Define list of TAP interfaces to be bridged together

    tap="tap0"

    ifconfig $br down

    brctl delbr $br

    for t in $tap; do

    openvpn --rmtun --dev $t

    done

    Salve, saia e torne o mesmo executável:

    #chmod +x bridge-stop

    Ainda no diretório /etc, altere o arquivo rc.local com seu editor preferido:

    #vim rc.local

    E inclua as seguintes linhas no final do arquivo:

    #Inicia a bridge da OpenVPN

    /etc/bridge-start

    #Ativa compartilhamento de rede

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

    #Escreve as regras de firewall da OpenVPN

    /sbin/modprobe ppp_generic

    /sbin/modprobe ppp_synctty

    /sbin/modprobe n_hdlc

    /sbin/modprobe tun

    iptables -A INPUT -i tap+ -j ACCEPT

    iptables -A FORWARD -i tap+ -j ACCEPT

    iptables -A INPUT -i br+ -j ACCEPT

    iptables -A FORWARD -i br+ -j ACCEPT

    Salve e saia.

    No terminal agora, digite:

    #chkconfig openvpn on

    E digite o comando ifconfig eth0

    #ifconfig eth0

    Anote o endereço mac da placa, são os números que vem depois da palavra HW no canto superior direito, uma sequêcia de 12 caracteres separados de dois em dois por dois pontos “:”, ex.:00:60:67:01:9B:29.

    Edite o arquivo /etc/sysconfig/network-script/ifcfg-eth0.

    #vim /etc/sysconfig/network-script/ifcfg-eth0

    E no final do arquivo acrescente a string HWADDR=endereço mac, onde endereço mac são os números que foram anotados, digite igualzinho ao mostrado pelo comando acima, separados por dois pontos “:”, se no arquivo já contiver esta informção não será preciso alterar nada.

    Salve e saia.

    Se você reiniciar o servidor agora, a openvpn já estará em funcionamento, mas sem nenhum cliente válido ainda, pois os clientes precisarão de um certificado e chave assinados pela C.A. para poderem se conectar, então vamos criá-los.

    Vamos criar um certificado/chave para um cliente, estes passos servem para cria todos os certificados/chaves de todos os clientes.

    Entre no diretório /etc/ssl/ca.

    #cd /etc/ssl/ca

    Para criar o certificado/chave do cliente usaremos o comando abaixo:

    #openssl req -nodes -new -keyout cliente.key -out cliente.csr

    Onde:

    cliente.key – nome da chave do cliente, pode ser o nome da pessoa quem vai usar, como joão.key ou ricardo.key.

    cliente.csr – certificado csr do cliente, use o mesmo nome que foi utilizado na chave para facilitar sua visualização.

    Mais uma vez, você terá que responder aquelas perguntinhas de localidade e nome da empresa, nas seguintes perguntas apenas tecle ENTER, conforme a criação dos certificados anteriores:

    Country Name (2 letter code) (BR):

    State or Province Name (full name) [sC]:

    Locality Name (eg, city) [Florianopolis]:

    Organization Name (eg, company) [nome da sua empresa]:

    Organizational Unit Name (eg, section) [VPN]:

    Mas em:

    Common Name (eg, your name or your server's hostname) []: - Aqui utilize o mesmo nome que você usou na chave, neste exemplo foi “cliente”.

    Email Address []: - Email do cliente.

    A challenge password []: - digite uma senha para o certificado

    Agora vamos fazer a C.A. assinar este certificado, no terminal digite:

    #openssl ca -out cliente.crt -in cliente.csr

    E responda “y” as perguntas sempre.

    Pronto nosso primeiro certificado de cliente foi criado, agora copie o certificado da ca ca.crt, o protocolo dh dh1024.pem mais o certificado/chave e o certificado assinado do clente cliente.csr, cliente.key e cliente.crt para um disquete ou envie por e-mail para o cliente.

    Se seus clientes usam o sistema da microsoft(Windows) aconselho a instalarem o cliente openvn-gui, digite no google openvpn-gui que você vai achar vários executáveis para baixar, instale-o nas máquinas clientes e copie todos os arquivos citados acima para a pasta C:\Arquivos de programas\OpenVPN\config (isso se você fez uma instalação default), e dentro deste diretório crie o arquivo client.ovpn, com o seguinte conteúdo:

    client

    dev tap

    proto tcp

    remote (ip externo do servidor)

    port 1194

    resolv-retry infinite

    nobind

    persist-key

    persist-tun

    ca "C:\\Arquivos de programas\\OpenVPN\\config\\ca.crt"

    dh "C:\\Arquivos de programas\\OpenVPN\\config\\dh1024.pem"

    cert "C:\\Arquivos de programas\\OpenVPN\\config\\roberto.crt"

    key "C:\\Arquivos de programas\\OpenVPN\\config\\roberto.key"

    comp-lzo

    verb 4

    mute 20

    Salve e saia.

    Repita estes passos para cada cliente que for se conectar remotamente, lembrando sempre de utilizar um nome diferente para cada um, se você fizer no mesmo esquema que eu faço, colocando o nome da pessoa no certificado fica mais fácil.

    De volta ao servidor...

    Revogando um certificado:

    Se algum colaborador ou cliente se desligar da empresa e você quiser barrar a entrada dele na vpn, basta apenas revogar o certificado do mesmo.

    Primeiro vamos copiar os arquivos revoke-full e vars do diretório /usr/share/doc/openvpn-2.0.9/easy-rsa/2.0/ para o diretório /etc/ssl/ca.

    #cp /usr/share/doc/openvpn-2.0.9/easy-rsa/2.0/vars /usr/share/doc/openvpn-2.0.9/easy-rsa/2.0/revoke-full /etc/ssl/ca

    Entre no diretório /etc/ssl/ca

    #cd /etc/ssl/ca

    Modifique o arquivo vars com seu editor preferido:

    #vim vars

    modificando a linha 15:

    De:

    export EASY_RSA="`pwd`"

    Para:

    export EASY_RSA="/etc/openvpn"

    E modifique a linha 29:

    De:

    export KEY_CONFIG=`$EASY_RSA/whichopensslcnf $EASY_RSA`

    Para:

    export KEY_CONFIG=”/usr/share/ssl/openssl.cnf”

    Depois altere a linha 39:

    De:

    export KEY_DIR="$EASY_RSA/keys"

    Para:

    export KEY_DIR="$EASY_RSA/ca/"

    E edite as ultimas linhas com a mesma DN utilizada no certificado da C.A.

    Neste exemplo foram:

    KEY_COUNTRY = BR

    KEY_PROVINCE = SC

    KEY_CITY = Florianopolis

    KEY_ORG = nome da sua empresa

    KEY_EMAIL = seu email

    Ajuste conforme como foi criado na C.A., salve e saia do arquivo.

    Agora torne os dois arquivos executáveis, no terminal digite:

    #chmod +x revoke-full vars

    Para revogar o certificado, primeiro deve-se executar o script vars e depois o revoke-full, assim:

    #source ./vars

    E então o script revoke-full seguido do nome do certificado, neste exemplo foi cliente, não precisa colocar extensão nenhuma.

    #./revoke-full cliente

    Pronto o certificado cliente e sua chave foram revogados, sendo inutilizados para conexão com esta OpenVPN.

    Reinicie o servidor.

    Agora toda vez que alguém estiver fora da empresa, basta se conectar na openvpn que estará dentro da rede da mesma, obtendo acesso a seus serviços.

    Se tiver algum problema/dúvida com este meu tutorial, me manda uma mensagem que eu te envio um outro com algumas telas de exemplo.

    Espero ter te ajudado, abrass.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • Mais uma vez muito obrigado Ditador Nicastro, não sei nem como agradecer!

    Já estou trabalhando na configuração dessa Open VPN, estou apanhando um pouquinho, mas sem luta não há vitória...

    Muito obrigado mesmo e se pintar alguma dúvida sinistra pode deixar que te dou um grito!

    Valeu e um grande abraço!

    Claro que sim, é uma tarefa um pouco longa, mas eu vou tentar detalhar tudo aqui.

    Sugiro a você utilizar o red hat para isso, na empresa onde trabalho eu instalei e configurei uma vpn no red hat enterprise linux4, e nunca nos dá problemas, mas chega de papo furado, mãos à obra:

    Primeiro, baixe o pacote openvpn, ou utilize o apt-get para isso, no terminal digite:

    #apt-get install openvpn

    Pode ser que o apt “reclame” de algumas dependências do pacote, se for o caso, responda que sim a pergunta.

    Após a instalação concluída, iremos criar uma C.A. (Autoridade Certificador), os certificados e chaves e o arquivo de configuração da OpenVPN.

    O primeiro passo para nosso servidor se tornar uma C.A. é alterar o arquivo openssl.cnf, no rhel4, o arquivo encontra-se em /usr/share/ssl/openssl.cnf, se na sua distro não estiver no mesmo local digite #updatedb e em seguida #locate openssl.cnf, altere com seu editor preferido, aqui eu vou utilizar o vim.

    #vim /usr/share/ssl/openssl.cnf

    E altere as seguintes linhas:

    Mais ou menos na linha 37 você irá encontrar a entrada:

    dir = ./demoCA # Where everything is kept

    Altere para:

    dir = /etc/ssl/ca # Where everything is kept

    Depois, mais ou menos na linha 43, altere a entrada:

    certificate = $dir/cacert.pem # The CA certificate

    Para:

    certificate = $dir/ca.crt # The CA certificate

    E mais ou menos na linha 46, altere:

    private_key = $dir/private/cakey.pem# The private key

    Para:

    private_key = $dir/private/ca.key # The private key

    Mais ou menos na linha 63, altere:

    default_days = 365 # how long to certify for

    Para:

    default_days = 3650 # how long to certify for

    Da linha 73 à linha 80, altere conforme abaixo:

    De:

    # For the CA policy

    [ policy_match ]

    countryName = match

    stateOrProvinceName = match

    organizationName = match

    organizationalUnitName = optional

    commonName = supplied

    emailAddress = optional

    Para:

    # For the CA policy

    [ policy_match ]

    countryName = match

    stateOrProvinceName = match

    organizationName = match

    organizationalUnitName = match

    commonName = supplied

    emailAddress = supplied

    Na linha 120, altere:

    countryName_default = GB

    Para:

    countryName_default = BR

    Na linha 125,

    de:

    stateOrProvinceName_default = Berkshire

    para:

    stateOrProvinceName_default = SP (no seu caso SC)

    Na linha 128, altere

    de:

    localityName_default = Newbury

    para:

    localityName_default = Sao Paulo (no seu caso Florianopolis)

    Na linha 131,

    de:

    0.organizationName_default = My Company Ltd

    para:

    0.organizationName_default = Intersix Technologies (no seu caso coloque o nome da sua empresa)

    E por último, na linha 138 altere,

    de:

    #organizationalUnitName_default =

    para:

    organizationalUnitName_default = VPN

    Salve o arquivo e saia.

    Agora iremos criar os diretórios necessários para as configurações que criamos, digite no terminal:

    #mkdir –p /etc/ssl/ca

    #mkdir /etc/ssl/ca/certs

    #mkdir /etc/ssl/ca/newcerts

    #mkdir /etc/ssl/ca/crl

    #mkdir /etc/ssl/ca/private

    #touch /etc/ssl/ca/index.txt

    #echo 01 > /etc/ssl/ca/serial

    #chmod -R 700 /etc/ssl/ca

    Iremos agora criar o certificado/chave da C.A., digite no terminal:

    #cd /etc/ssl/ca

    #openssl req -nodes -new -x509 -keyout ca.key -out ca.crt -days 3650

    Algumas informações de localidade e nome da empresa serão perguntadas, como já configuramos no arquivo openssl.cnf algumas resposta default, nas seguintes perguntas basta você teclar ENTER:

    Country Name (2 letter code) (BR):

    State or Province Name (full name) [sC]:

    Locality Name (eg, city) [Florianopolis]:

    Organization Name (eg, company) [nome da sua empresa]:

    Organizational Unit Name (eg, section) [VPN]:

    Common Name (eg, your name or your server's hostname) []: - aqui coloque o nome do seu servidor.

    Email Address []: - e aqui coloque o email do responsável pelo servidor, no caso o seu email.

    Pronto, o certificado e chave da C.A. foram criados, agora vamos movêlos para os diretórios configurados.

    Mova a chave do certificado para dentro do subdiretório private em /etc/ssl/ca

    #mv ca.key ./private

    Agora criaremos o algoritmo usado para a troca de chaves criptográficas durante a execução do OpenVPN. Utilize no comando a criptografia que consta no arquivo openssl.cnf, no nosso caso 1024bits.

    No terminal digite:

    #openssl dhparam -out dh1024.pem 1024

    E então criaremos o certificado de revogação, crl.pem, no terminal digite:

    #openssl ca -gencrl -out crl.pem -config /usr/share/ssl/openssl.cnf

    E finalmente, vamos gerar o certificado do servidor, no terminal digite:

    #openssl req -nodes -new -keyout server.key -out server.csr

    Mais uma vez, alguma informações deverão ser preenchidas, siga os mesmos passos da geração da C.A.:

    Country Name (2 letter code) (BR):

    State or Province Name (full name) [sC]:

    Locality Name (eg, city) [Florianopolis]:

    Organization Name (eg, company) [nome da sua empresa]:

    Organizational Unit Name (eg, section) [VPN]:

    Common Name (eg, your name or your server's hostname) []: - O mesmo informado no certificado da C.A.

    Email Address []: - O mesmo informado no certificado da C.A.

    A challenge password []: - A única diferença entre o certificado da C.A. e do servidor é aqui, informe uma senha.

    Agora vamos assinar a chave do servidor com o certificado da C.A., no terminal digite:

    # openssl ca -out server.crt -in server.csr

    E responda ‘y’ para todas as perguntas.

    Agora crie o diretório de configuração da openvpn, digite no terminal:

    #mkdir /etc/openvpn

    Se ocorrer o erro da tela dizendo que o diretório já existe não se preocupe.

    Copie o certificado da CA, chave e certificado do servidor + protocolo DH gerados anteriormente para dentro do diretório /etc/openvpn:

    #cp -p ca.crt /etc/openvpn

    #cp -p server.key /etc/openvpn

    #cp -p server.crt /etc/openvpn

    #cp -p dh1024.pem /etc/openvpn

    E vá para o diretório da OpenVPN:

    #cd /etc/openvpn

    Ajuste as permissões da chave do servidor para 600:

    #chmod 600 server.key

    E crie os seguintes links simbólicos:

    #ln -s /etc/ssl/ca ./

    #ln -s /usr/share/ssl/openssl.cnf ./

    Agora criaremos o arquivo de configuração do servidor, com seu editor preferido crie o arquivo server.conf:

    #vim server.conf

    E inclua as seguintes linhas:

    ########server.conf##################

    tls-server

    port 1194 #não se esqueça de liberar esta porta no firewall

    proto tcp

    dev tap0

    ca /etc/openvpn/ca.crt

    cert /etc/openvpn/server.crt

    key /etc/openvpn/server.key

    dh /etc/openvpn/dh1024.pem

    ifconfig-pool-persist ipp.txt

    #server-bridge xxx.xxx.xxx.xxx(ip do servidor) xxx.xxx.xxx.xxx(máscara da rede) xxx.xxx.xxx.xxx(ip inicial da rede) xxx.xxx.xxx.xxx(ip final da rede) (Suponhamos que sua rede seja 192.168.0.0/24 e tiver um range 192.168.0.30 até 192.168.0.200 livre e o ip do seu servidor 192.168.0.1 com máscara 255.255.255.0, utilize o exemplo abaixo)

    server-bridge 192.168.0.1 255.255.255.0 192.168.0.30 192.168.0.200

    push "route-gateway (ip do gateway da sua rede)"

    push "route (ip do server mail) (mascara do server) (ip do gateway da rede)"

    client-to-client

    keepalive 10 120

    comp-lzo

    persist-key

    persist-tun

    status /var/log/openvpn-status.log

    log /var/log/openvpn.log

    log-append /var/log/openvpn.log

    verb 4

    mute 20

    tls-timeout 10

    crl-verify /etc/ssl/ca/crl.pem

    #############server.conf##########################

    Salve o arquivo e saia.

    Agora criaremos a tal bridge(ponte) entre a interface virtual da vpn e a interface real do servidor, baixe o pacote bridge-utils ou instale o pacote através do apt-get, em um terminal digite:

    #apt-get install bridge-utils

    Entre no diretório /etc, e crie o arquivo bridge-start com seu editor preferido:

    #cd /etc

    #vim bridge-start

    Inclua as seguintes linhas:

    #!/bin/bash

    #################################

    # Set up Ethernet bridge on Linux

    # Requires: bridge-utils

    #################################

    # Define Bridge Interface

    br="br0"

    # Define list of TAP interfaces to be bridged,

    # for example tap="tap0 tap1 tap2".

    tap="tap0"

    # Define physical ethernet interface to be bridged

    # with TAP interface(s) above.

    eth="eth0"

    eth_ip="(coloque um ip válido para sua rede)"

    eth_netmask="(máscara da sua rede)"

    eth_broadcast="(broadcast da sua rede)"

    for t in $tap;

    do

    openvpn --mktun --dev $t

    done

    brctl addbr $br

    brctl addif $br $eth

    for t in $tap;

    do

    brctl addif $br $t

    done

    for t in $tap;

    do

    ifconfig $t 0.0.0.0 promisc up

    done

    ifconfig $eth 0.0.0.0 promisc up

    ifconfig $br $eth_ip netmask $eth_netmask broadcast $eth_broadcast

    Salve e saia.

    Torne este arquivo executável:

    #chmod +x bridge-start

    Agora vamos criar o arquivo bridge-stop, para quando precisar para o serviço, utilize o seu editor preferido para isso:

    #vim bridge-stop

    E inclua as seguintes linhas:

    #!/bin/bash

    ####################################

    # Tear Down Ethernet bridge on Linux

    ####################################

    # Define Bridge Interface

    br="br0"

    # Define list of TAP interfaces to be bridged together

    tap="tap0"

    ifconfig $br down

    brctl delbr $br

    for t in $tap; do

    openvpn --rmtun --dev $t

    done

    Salve, saia e torne o mesmo executável:

    #chmod +x bridge-stop

    Ainda no diretório /etc, altere o arquivo rc.local com seu editor preferido:

    #vim rc.local

    E inclua as seguintes linhas no final do arquivo:

    #Inicia a bridge da OpenVPN

    /etc/bridge-start

    #Ativa compartilhamento de rede

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

    #Escreve as regras de firewall da OpenVPN

    /sbin/modprobe ppp_generic

    /sbin/modprobe ppp_synctty

    /sbin/modprobe n_hdlc

    /sbin/modprobe tun

    iptables -A INPUT -i tap+ -j ACCEPT

    iptables -A FORWARD -i tap+ -j ACCEPT

    iptables -A INPUT -i br+ -j ACCEPT

    iptables -A FORWARD -i br+ -j ACCEPT

    Salve e saia.

    No terminal agora, digite:

    #chkconfig openvpn on

    E digite o comando ifconfig eth0

    #ifconfig eth0

    Anote o endereço mac da placa, são os números que vem depois da palavra HW no canto superior direito, uma sequêcia de 12 caracteres separados de dois em dois por dois pontos “:”, ex.:00:60:67:01:9B:29.

    Edite o arquivo /etc/sysconfig/network-script/ifcfg-eth0.

    #vim /etc/sysconfig/network-script/ifcfg-eth0

    E no final do arquivo acrescente a string HWADDR=endereço mac, onde endereço mac são os números que foram anotados, digite igualzinho ao mostrado pelo comando acima, separados por dois pontos “:”, se no arquivo já contiver esta informção não será preciso alterar nada.

    Salve e saia.

    Se você reiniciar o servidor agora, a openvpn já estará em funcionamento, mas sem nenhum cliente válido ainda, pois os clientes precisarão de um certificado e chave assinados pela C.A. para poderem se conectar, então vamos criá-los.

    Vamos criar um certificado/chave para um cliente, estes passos servem para cria todos os certificados/chaves de todos os clientes.

    Entre no diretório /etc/ssl/ca.

    #cd /etc/ssl/ca

    Para criar o certificado/chave do cliente usaremos o comando abaixo:

    #openssl req -nodes -new -keyout cliente.key -out cliente.csr

    Onde:

    cliente.key – nome da chave do cliente, pode ser o nome da pessoa quem vai usar, como joão.key ou ricardo.key.

    cliente.csr – certificado csr do cliente, use o mesmo nome que foi utilizado na chave para facilitar sua visualização.

    Mais uma vez, você terá que responder aquelas perguntinhas de localidade e nome da empresa, nas seguintes perguntas apenas tecle ENTER, conforme a criação dos certificados anteriores:

    Country Name (2 letter code) (BR):

    State or Province Name (full name) [sC]:

    Locality Name (eg, city) [Florianopolis]:

    Organization Name (eg, company) [nome da sua empresa]:

    Organizational Unit Name (eg, section) [VPN]:

    Mas em:

    Common Name (eg, your name or your server's hostname) []: - Aqui utilize o mesmo nome que você usou na chave, neste exemplo foi “cliente”.

    Email Address []: - Email do cliente.

    A challenge password []: - digite uma senha para o certificado

    Agora vamos fazer a C.A. assinar este certificado, no terminal digite:

    #openssl ca -out cliente.crt -in cliente.csr

    E responda “y” as perguntas sempre.

    Pronto nosso primeiro certificado de cliente foi criado, agora copie o certificado da ca ca.crt, o protocolo dh dh1024.pem mais o certificado/chave e o certificado assinado do clente cliente.csr, cliente.key e cliente.crt para um disquete ou envie por e-mail para o cliente.

    Se seus clientes usam o sistema da microsoft(Windows) aconselho a instalarem o cliente openvn-gui, digite no google openvpn-gui que você vai achar vários executáveis para baixar, instale-o nas máquinas clientes e copie todos os arquivos citados acima para a pasta C:\Arquivos de programas\OpenVPN\config (isso se você fez uma instalação default), e dentro deste diretório crie o arquivo client.ovpn, com o seguinte conteúdo:

    client

    dev tap

    proto tcp

    remote (ip externo do servidor)

    port 1194

    resolv-retry infinite

    nobind

    persist-key

    persist-tun

    ca "C:\\Arquivos de programas\\OpenVPN\\config\\ca.crt"

    dh "C:\\Arquivos de programas\\OpenVPN\\config\\dh1024.pem"

    cert "C:\\Arquivos de programas\\OpenVPN\\config\\roberto.crt"

    key "C:\\Arquivos de programas\\OpenVPN\\config\\roberto.key"

    comp-lzo

    verb 4

    mute 20

    Salve e saia.

    Repita estes passos para cada cliente que for se conectar remotamente, lembrando sempre de utilizar um nome diferente para cada um, se você fizer no mesmo esquema que eu faço, colocando o nome da pessoa no certificado fica mais fácil.

    De volta ao servidor...

    Revogando um certificado:

    Se algum colaborador ou cliente se desligar da empresa e você quiser barrar a entrada dele na vpn, basta apenas revogar o certificado do mesmo.

    Primeiro vamos copiar os arquivos revoke-full e vars do diretório /usr/share/doc/openvpn-2.0.9/easy-rsa/2.0/ para o diretório /etc/ssl/ca.

    #cp /usr/share/doc/openvpn-2.0.9/easy-rsa/2.0/vars /usr/share/doc/openvpn-2.0.9/easy-rsa/2.0/revoke-full /etc/ssl/ca

    Entre no diretório /etc/ssl/ca

    #cd /etc/ssl/ca

    Modifique o arquivo vars com seu editor preferido:

    #vim vars

    modificando a linha 15:

    De:

    export EASY_RSA="`pwd`"

    Para:

    export EASY_RSA="/etc/openvpn"

    E modifique a linha 29:

    De:

    export KEY_CONFIG=`$EASY_RSA/whichopensslcnf $EASY_RSA`

    Para:

    export KEY_CONFIG=”/usr/share/ssl/openssl.cnf”

    Depois altere a linha 39:

    De:

    export KEY_DIR="$EASY_RSA/keys"

    Para:

    export KEY_DIR="$EASY_RSA/ca/"

    E edite as ultimas linhas com a mesma DN utilizada no certificado da C.A.

    Neste exemplo foram:

    KEY_COUNTRY = BR

    KEY_PROVINCE = SC

    KEY_CITY = Florianopolis

    KEY_ORG = nome da sua empresa

    KEY_EMAIL = seu email

    Ajuste conforme como foi criado na C.A., salve e saia do arquivo.

    Agora torne os dois arquivos executáveis, no terminal digite:

    #chmod +x revoke-full vars

    Para revogar o certificado, primeiro deve-se executar o script vars e depois o revoke-full, assim:

    #source ./vars

    E então o script revoke-full seguido do nome do certificado, neste exemplo foi cliente, não precisa colocar extensão nenhuma.

    #./revoke-full cliente

    Pronto o certificado cliente e sua chave foram revogados, sendo inutilizados para conexão com esta OpenVPN.

    Reinicie o servidor.

    Agora toda vez que alguém estiver fora da empresa, basta se conectar na openvpn que estará dentro da rede da mesma, obtendo acesso a seus serviços.

    Se tiver algum problema/dúvida com este meu tutorial, me manda uma mensagem que eu te envio um outro com algumas telas de exemplo.

    Espero ter te ajudado, abrass.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Crie uma conta ou entre para comentar

    Você precisar ser um membro para fazer um comentário






    Sobre o Clube do Hardware

    No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

    Direitos autorais

    Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

    ×