Projeto Integrador - 2013.1 - PC Telecom

De MediaWiki do Campus São José
Revisão de 15h47min de 1 de agosto de 2013 por Deivid.f (discussão | contribs) (Serviço de VPN)
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
Ir para: navegação, pesquisa

08/07/2013 - Primeiro dia de Projeto


Equipe

  • Andrey
  • Daniel
  • Deivid
  • Leandro
  • Hyowatha

Iniciada configuração do script do configurador do DNS

09/07/2013 - Segundo dia de Projeto -

Realizado as instalações do DNS

Todas as configurações abaixo foram feitas utilizando ip temporário.

Configurações realizadas no servidor:

configurando arquivo named.conf.local

zone "pctelecom.sj.ifsc.edu.br" {
      type master;
      file "/etc/bind/zones/aula.zone";
};
# Zona reversa
      zone "1.168.192.in-addr.arpa" {
      type master;
file "/etc/bind/zones/rev.1.168.192.in-addr.arpa";
};

Configurando arquivo aula.zone

@ IN SOA ns1.pctelecom.sj.ifsc.edu.br. admin.ns1.pctelecom.sj.ifsc.edu.br. (
         2011091401 ; Serial
         28800 ; Refresh
         3600 ; Retry
         604800 ; Expire
         38400 ) ; Default TTL
   NS    ns1.pctelecom.sj.ifsc.edu.br.
   NS    ns2.pctelecom.sj.ifsc.edu.br.
   MX    10 mta.pctelecom.sj.ifsc.edu.br.
   IN    A 192.168.1.222

$ORIGIN pctelecom.sj.ifsc.edu.br.

ns1  IN  A  192.168.1.222
ns2  IN  A  192.168.1.222
mta  IN  A  192.168.1.222
www  IN  A  192.168.1.222
web  IN  CNAME www

Configurando arquivo de zona reversa

$ORIGIN 1.168.192.in-addr.arpa.
@ IN SOA ns1.pctelecom.sj.ifsc.edu.br. admin.ns1.pctelecom.sj.ifsc.edu.br. (
2011091401;
28800;
604800;
604800;
86400 )
      IN    NS    ns1.pctelecom.sj.ifsc.edu.br.
      IN    NS    ns2.pctelecom.sj.ifsc.edu.br.
222   IN    PTR   ns1.pctelecom.sj.ifsc.edu.br.
222   IN    PTR   ns2.pctelecom.sj.ifsc.edu.br.
222   IN    PTR   mta.pctelecom.sj.ifsc.edu.br.
222   IN    PTR   www.pctelecom.sj.ifsc.edu.br.

Na filial:

// secundario (slave) do dominio delegado
zone "subdominio.pctelecom.sj.ifsc.edu.br" IN {
type slave;
file "slave/slave.subdominio.examplo.com.br";
masters {10.0.0.4;};

Realizado as instalações do SMTP

apt-get install postfix mailutils

vi /etc/postfix/main.cf

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu) biff = no append_dot_mydomain = no readme_directory = no mydestination = $myhostname, localhost.$mydomain, localhost relayhost = mynetworks = 127.0.0.0/8 10.0.2.0/24 mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = all inet_protocols = ipv4 alias_database = hash:/etc/aliases alias_maps = hash:/etc/aliases myhostname = mta.exemplo.com.br mydomain = exemplo.com.br myorigin = $mydomain mydestination = $myhostname, localhost, $mydomain home_mailbox = Maildir/ message_size_limit = 10240000 body_checks = regexp:/etc/postfix/block_words

vi /etc/postfix/block words

/(.*)viagra(.*)/ REJECT [COD#01] /(.*)penis(.*)/ REJECT [COD#02]

mailbox_command = smtpd_sasl_local_domain = smtpd_sasl_auth_enable = yes smtpd_sasl_security_options = noanonymous broken_sasl_auth_clients = yes smtpd_recipient_restrictions = permit_sasl_authenticated,\ permit_mynetworks,reject_unauth_destination /ˆReceived:/ HOLD

vi /etc/postfix/sasl/smtpd.conf

pwcheck_method: saslauthd mech_list: plain login

touch smtpd.key chmod 600 smtpd.key openssl genrsa 1024 > smtpd.key openssl req -new -key smtpd.key -x509 -days 3650 -out smtpd.crt openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out \ cacert.pem -days 3650 sudo mv smtpd.key /etc/ssl/private/ sudo mv smtpd.crt /etc/ssl/certs/ sudo mv cakey.pem /etc/ssl/private/ sudo mv cacert.pem /etc/ssl/certs/

smtp_tls_security_level = may smtpd_tls_security_level = may smtpd_tls_auth_only = no smtp_tls_note_starttls_offer = yes smtpd_tls_key_file = /etc/ssl/private/smtpd.key smtpd_tls_cert_file = /etc/ssl/certs/smtpd.crt smtpd_tls_CAfile = /etc/ssl/certs/cacert.pem smtpd_tls_loglevel = 1 smtpd_tls_received_header = yes smtpd_tls_session_cache_timeout = 3600s tls_random_source = dev:/dev/urandom

apt-get libsasl2-2 apt-get sasl2-bin apt-get libsasl2-modules

vi /var/spool/postfix/var/run/saslauthd

vi /etc/default/saslauthd START=yes PWDIR="/var/spool/postfix/var/run/saslauthd" PARAMS="-m ${PWDIR}" PIDFILE="${PWDIR}/saslauthd.pid" OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd"

dpkg-statoverride –force –update –add root sasl 755 /var/spool/postfix/var/run/saslauthd /etc/init.d/saslauthd start

$ telnet localhost 25 $ ehlo localhost $ quit

apt-get install courier-imap apt-get install courier-imap-ssl

$ telnet localhost imap $ imap login root senha $ ˆ]

10/07/2013 - Terceiro dia dia de Projeto

Iniciado a instalação do samba

11/07/2013 - Quarto dia de Projeto

Tentativa de conclusão do samba. sem sucesso.

12/07/2013 - Quinto dia de Projeto

conclusão da instalação do samba.

15/07/2013 - Sexto dia de Projeto

Iniciado a instalação da VPN e o script para restabelecer os serviço do DNS.

16/07/2013 - Sétimo dia de Projeto

Continuação da instalação da VPN e iniciação do script para o beckup.

17/07/2013 - Oitavo dia de Projeto

Tentativa de conclusão da VPN.

18/07/2013 - Nono dia de Projeto

Professor não veio, por este motivo não teve atividades.

19/07/2013 - Décimo dia de projeto

Conclusão da instalação da VPN.

22/07/2013 - Décimo primeiro dia de Projeto

Concluido o script do beckup com IP provisório e instalação do NTOP.

23/07/2013 - Décimo segundo dia de Projeto

Rede utilizando IP válido.

24/07/2013 - Décimo terceiro dia de Projeto

Iniciado a configuração dos modens.

25/07/2013 - Décimo quarto dia de Projeto

Entregado a planta do projeto de cabeamento estruturado. Passado informações adicionais para a realização do mesmo. No mesmo dia continuamos com a configuração dos modens onde apresentou um problema de comunicação entre a a filial e o servidor principal.

26/07/2013 - Décimo quinto dia de Projeto

correção do problema com o cabeamento e correção na configuração do firewall.

29/07/2013 - Décimo sexto dia de Projeto

30/07/2013 - Correções e ajustes em scripts

31/07/2013 - Data da Entrega

Configurações do DNS

Configurações realizadas no servidor:

configuração do arquivo named.conf.local

// Do any local configuration here
//
zone "pctelecom.sj.ifsc.edu.br" {
type master;
file "/etc/bind/zones/aula.zone";
};
# Zona reversa
zone "37.135.200.in-addr.arpa" {
type master;
file "/etc/bind/zones/rev.37.135.200.in-addr.arpa";
};
// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";

Configuraçao do arquivo aula.zone

@  IN SOA ns1.pctelecom.sj.ifsc.edu.br. admin.ns1.pctelecom.sj.ifsc.edu.br. (
		2013072801 ; Serial
		28800 ; Refresh
		3600 ; Retry
		604800 ; Expire
		38400 ) ; Default TTL
	NS 	ns1.pctelecom.sj.ifsc.edu.br.
	NS 	ns2.pctelecom.sj.ifsc.edu.br.
	MX 	10 mta.pctelecom.sj.ifsc.edu.br.
	IN 	A 200.135.37.103

$ORIGIN pctelecom.sj.ifsc.edu.br.
ns1 	IN 	A 	200.135.37.103
ns2 	IN 	A 	200.135.37.103
mta 	IN 	A	200.135.37.103
www	IN 	A 	200.135.37.103
samba	IN	A	200.135.37.103
web 	IN 	CNAME 	www

$ORIGIN subdominio.pctelecom.sj.ifsc.edu.br.
; definicao dos dois servidores de nome
@ IN NS ns3.subdominio.pctelecom.sj.ifsc.edu.br.
; o proximo servidor aponta para o servidor acima (slave)
IN NS ns1.pctelecom.sj.ifsc.edu.br.
; endereco do servidor do subdominio
ns3 IN A 10.0.0.4

Configuração do arquivo rev.37.135.200.in-addr.arpa

$ORIGIN 37.135.200.in-addr.arpa.
@ IN SOA ns1.pctelecom.sj.ifsc.edu.br. admin.ns1.pctelecom.sj.ifsc.edu.br. (
2013072301;
28800;
604800;
604800;
86400 )
	IN 	NS 	ns1.pctelecom.sj.ifsc.edu.br.
	IN 	NS 	ns2.pctelecom.sj.ifsc.edu.br.
103 	IN 	PTR 	ns1.pctelecom.sj.ifsc.edu.br.
103 	IN 	PTR 	ns2.pctelecom.sj.ifsc.edu.br.
103	IN 	PTR 	mta.pctelecom.sj.ifsc.edu.br.
103	IN 	PTR 	www.pctelecom.sj.ifsc.edu.br.
103	IN	PTR	samba.pctelecom.sj.ifsc.edu.br.

Configuração do Samba

configuração do /etc/samba/smb.conf

#
# Sample configuration file for the Samba suite for Debian GNU/Linux.
#
#
# This is the main Samba configuration file. You should read the
# smb.conf(5) manual page in order to understand the options listed
# here. Samba has a huge number of configurable options most of which 
# are not shown in this example
#
# Some options that are often worth tuning have been included as
# commented-out examples in this file.
#  - When such options are commented with ";", the proposed setting
#    differs from the default Samba behaviour
#  - When commented with "#", the proposed setting is the default
#    behaviour of Samba but the option is considered important
#    enough to be mentioned here
#
# NOTE: Whenever you modify this file you should run the command
# "testparm" to check that you have not made any basic syntactic 
# errors. 
# A well-established practice is to name the original file
# "smb.conf.master" and create the "real" config file with
# testparm -s smb.conf.master >smb.conf
# This minimizes the size of the really used smb.conf file
# which, according to the Samba Team, impacts performance
# However, use this with caution if your smb.conf file contains nested
# "include" statements. See Debian bug #483187 for a case
# where using a master file is not a good idea.
#

#======================= Global Settings =======================

[global]

## Browsing/Identification ###

# Change this to the workgroup/NT-domain name your Samba server will part of
   workgroup = servidor
# server string is the equivalent of the NT Description field
   server string = SMB Server %v em %h

# Windows Internet Name Serving Support Section:
# WINS Support - Tells the NMBD component of Samba to enable its WINS Server
#   wins support = no

# WINS Server - Tells the NMBD components of Samba to be a WINS Client
# Note: Samba can be either a WINS Server, or a WINS Client, but NOT both
;   wins server = w.x.y.z

# This will prevent nmbd to search for NetBIOS names through DNS.
   dns proxy = no

# What naming service and in what order should we use to resolve host names
# to IP addresses
;   name resolve order = lmhosts host wins bcast

#### Networking ####

# The specific set of interfaces / networks to bind to
# This can be either the interface name or an IP address/netmask;
# interface names are normally preferred
;   interfaces = 127.0.0.0/8 eth0

# Only bind to the named interfaces and/or networks; you must use the
# 'interfaces' option above to use this.
# It is recommended that you enable this feature if your Samba machine is
# not protected by a firewall or is a firewall itself.  However, this
# option cannot handle dynamic or non-broadcast interfaces correctly.
;   bind interfaces only = yes



#### Debugging/Accounting ####

# This tells Samba to use a separate log file for each machine
# that connects
   log file = /var/log/samba/%m.log

# Cap the size of the individual log files (in KiB).
   max log size = 50

# If you want Samba to only log through syslog then set the following
# parameter to 'yes'.
#   syslog only = no

# We want Samba to log a minimum amount of information to syslog. Everything
# should go to /var/log/samba/log.{smbd,nmbd} instead. If you want to log
# through syslog you should set the following parameter to something higher.
   syslog = 0

# Do something sensible when Samba crashes: mail the admin a backtrace
   panic action = /usr/share/samba/panic-action %d


####### Authentication #######

# "security = user" is always a good idea. This will require a Unix account
# in this server for every user accessing the server. See
# /usr/share/doc/samba-doc/htmldocs/Samba3-HOWTO/ServerType.html
# in the samba-doc package for details.
   security = user

# You may wish to use password encryption.  See the section on
# 'encrypt passwords' in the smb.conf(5) manpage before enabling.
   encrypt passwords = yes

# If you are using encrypted passwords, Samba will need to know what
# password database type you are using.  
   passdb backend = tdbsam

   obey pam restrictions = yes

# This boolean parameter controls whether Samba attempts to sync the Unix
# password with the SMB password when the encrypted SMB password in the
# passdb is changed.
   unix password sync = yes

# For Unix password sync to work on a Debian GNU/Linux system, the following
# parameters must be set (thanks to Ian Kahan <<kahan@informatik.tu-muenchen.de> for
# sending the correct chat script for the passwd program in Debian Sarge).
   passwd program = /usr/bin/passwd %u
   passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .

# This boolean controls whether PAM will be used for password changes
# when requested by an SMB client instead of the program listed in
# 'passwd program'. The default is 'no'.
   pam password change = yes

# This option controls how unsuccessful authentication attempts are mapped 
# to anonymous connections
   map to guest = bad user

########## Domains ###########

# Is this machine able to authenticate users. Both PDC and BDC
# must have this setting enabled. If you are the BDC you must
# change the 'domain master' setting to no
#
;   domain logons = yes
#
# The following setting only takes effect if 'domain logons' is set
# It specifies the location of the user's profile directory
# from the client point of view)
# The following required a [profiles] share to be setup on the
# samba server (see below)
;   logon path = \\%N\profiles\%U
# Another common choice is storing the profile in the user's home directory
# (this is Samba's default)
#   logon path = \\%N\%U\profile

# The following setting only takes effect if 'domain logons' is set
# It specifies the location of a user's home directory (from the client
# point of view)
;   logon drive = H:
#   logon home = \\%N\%U

# The following setting only takes effect if 'domain logons' is set
# It specifies the script to run during logon. The script must be stored
# in the [netlogon] share
# NOTE: Must be store in 'DOS' file format convention
;   logon script = logon.cmd

# This allows Unix users to be created on the domain controller via the SAMR
# RPC pipe.  The example command creates a user account with a disabled Unix
# password; please adapt to your needs
; add user script = /usr/sbin/adduser --quiet --disabled-password --gecos "" %u

# This allows machine accounts to be created on the domain controller via the 
# SAMR RPC pipe.  
# The following assumes a "machines" group exists on the system
; add machine script  = /usr/sbin/useradd -g machines -c "%u machine account" -d /var/lib/samba -s /bin/false %u

# This allows Unix groups to be created on the domain controller via the SAMR
# RPC pipe.  
; add group script = /usr/sbin/addgroup --force-badname %g

########## Printing ##########

# If you want to automatically load your printer list rather
# than setting them up individually then you'll need this
  # load printers = no

# lpr(ng) printing. You may wish to override the location of the
# printcap file
;   printing = bsd
 # printcap name = /etc/printcap

# CUPS printing.  See also the cupsaddsmb(8) manpage in the
# cupsys-client package.
;   printing = cup
;   printcap name = cups

############ Misc ############

# Using the following line enables you to customise your configuration
# on a per machine basis. The %m gets replaced with the netbios name
# of the machine that is connecting
;   include = /home/samba/etc/smb.conf.%m

# Most people will find that this option gives better performance.
# See smb.conf(5) and /usr/share/doc/samba-doc/htmldocs/Samba3-HOWTO/speed.html
# for details
# You may want to add the following on a Linux system:
#         SO_RCVBUF=8192 SO_SNDBUF=8192
#   socket options = TCP_NODELAY

# The following parameter is useful only if you have the linpopup package
# installed. The samba maintainer and the linpopup maintainer are
# working to ease installation and configuration of linpopup and samba.
;   message command = /bin/sh -c '/usr/bin/linpopup "%f" "%m" %s; rm %s' &

# Domain Master specifies Samba to be the Domain Master Browser. If this
# machine will be configured as a BDC (a secondary logon server), you
# must set this to 'no'; otherwise, the default behavior is recommended.
#   domain master = auto

# Some defaults for winbind (make sure you're not using the ranges
# for something else.)
;   idmap uid = 10000-20000
;   idmap gid = 10000-20000
;   template shell = /bin/bash

# The following was the default behaviour in sarge,
# but samba upstream reverted the default because it might induce
# performance issues in large organizations.
# See Debian bug #368251 for some of the consequences of *not*
# having this setting and smb.conf(5) for details.
;   winbind enum groups = yes
;   winbind enum users = yes

# Setup usershare options to enable non-root users to share folders
# with the net usershare command.

# Maximum number of usershare. 0 (default) means that usershare is disabled.
;   usershare max shares = 100

# Allow users who've been granted usershare privileges to create
# public shares, not just authenticated ones
   usershare allow guests = yes

#======================= Share Definitions =======================

# Un-comment the following (and tweak the other settings below to suit)
# to enable the default home directory shares.  This will share each
# user's home directory as \\server\username
;[homes]
;   comment = Home Directories
;   browseable = no

[homes]
comment = Arquivos do usuario %u em %h
browseable = no
writable = yes
public = no


# By default, the home directories are exported read-only. Change the
# next parameter to 'no' if you want to be able to write to them.
;   read only = yes

# File creation mask is set to 0700 for security reasons. If you want to
# create files with group=rw permissions, set next parameter to 0775.
;   create mask = 0700

# Directory creation mask is set to 0700 for security reasons. If you want to
# create dirs. with group=rw permissions, set next parameter to 0775.
;   directory mask = 0700

# By default, \\server\username shares can be connected to by anyone
# with access to the samba server.  Un-comment the following parameter
# to make sure that only "username" can connect to \\server\username
# This might need tweaking when using external authentication schemes
;   valid users = %S

# Un-comment the following and create the netlogon directory for Domain Logons
# (you need to configure Samba to act as a domain controller too.)
;[netlogon]
;   comment = Network Logon Service
;   path = /home/samba/netlogon
;   guest ok = yes
;   read only = yes
;   share modes = no

# Un-comment the following and create the profiles directory to store
# users profiles (see the "logon path" option above)
# (you need to configure Samba to act as a domain controller too.)
# The path below should be writable by all users so that their
# profile directory may be created the first time they log on
;[profiles]
;   comment = Users profiles
;   path = /home/samba/profiles
;   guest ok = no
;   browseable = no
;   create mask = 0600
;   directory mask = 0700

#[printers]
#   comment = All Printers
#   browseable = no
#   path = /var/spool/samba
#   printable = yes
#   guest ok = no
#   read only = yes
 #  create mask = 0700

# Windows clients look for this share name as a source of downloadable
# printer drivers
#[print$]
#   comment = Printer Drivers
#   path = /var/lib/samba/printers
#   browseable = yes
#   read only = yes
#   guest ok = no
# Uncomment to allow remote administration of Windows print drivers.
# You may need to replace 'lpadmin' with the name of the group your
# admin users are members of.
# Please note that you also need to set appropriate Unix permissions
# to the drivers directory for these users to have write rights in it
;   write list = root, @lpadmin

# A sample share for sharing your CD-ROM with others.
;[cdrom]
;   comment = Samba server's CD-ROM
;   read only = yes
;   locking = no
;   path = /cdrom
;   guest ok = yes

# The next two parameters show how to auto-mount a CD-ROM when the
#	cdrom share is accesed. For this to work /etc/fstab must contain
#	an entry like this:
#
#       /dev/scd0   /cdrom  iso9660 defaults,noauto,ro,user   0 0
#
# The CD-ROM gets unmounted automatically after the connection to the
#
# If you don't want to use auto-mounting/unmounting make sure the CD
#	is mounted on /cdrom
#
;   preexec = /bin/mount /cdrom
;   postexec = /bin/umount /cdrom
printcap name = cups
load printers = no
printcap cache time = 60
printing = cups

hosts allow = 10.0.0. 127.
map to guest = bad user
security = user
encrypt passwords = yes
smb passwd file = /etc/samba/smbpasswd

Geradas as senhas

Serviço de SMTP - configurções do postfix

configuração do /etc/postfix/main.cf

# See /usr/share/postfix/main.cf.dist for a commented, more complete version


# Debian specific:  Specifying a file name will cause the first
# line of that file to be used as the name.  The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

readme_directory = no

# TLS parameters
#smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
#smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

myhostname = mta.pctelecom.sj.ifsc.edu.br 
mydomain = pctelecom.sj.ifsc.edu.br
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = $mydomain 
mydestination = $myhostname, localhost, $mydomain 
relayhost = 
mynetworks = 127.0.0.0/8 200.135.37.0/26 
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
home_mailbox = Maildir/
message_size_limit = 10240000

mailbox_command =
smtpd_sasl_local_domain =
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination

smtp_tls_security_level = may
smtpd_tls_security_level = may
smtpd_tls_auth_only = no
smtp_tls_note_starttls_offer = yes
smtpd_tls_key_file = /etc/ssl/private/smtpd.key
smtpd_tls_cert_file = /etc/ssl/certs/smtpd.crt
smtpd_tls_CAfile = /etc/ssl/certs/cacert.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom

Serviço de VPN

Configuração do /etc/openvpn/2.0/vars

export KEY_COUNTRY="BR"
export KEY_PROVINCE="SC"
export KEY_CITY="SaoJose"
export KEY_ORG="IFSC"
export KEY_EMAIL="admin@pctelecom.sj.ifsc.edu.br"

Criadas as chaves para /etc/openvpn/2.0/

source vars
./clean-all
./build-dh
./pkitool --initca
./pkitool --server servidor
cd keys
openvpn --genkey --secret ta.key

Na filias os seguintes sertificados:

cd /etc/openvpn/2.0/
source vars
./pkitool cliente1

Copiadas as seguintes chaves para o cliente /etc/openvpn/

ta.key
ca.crt
cliente1.crt
cliente1.key

Copiadas as seguintes chaves para o diretório /etc/openvpn do servidor:

ta.key
ca.crt
ca.key
dh1024.pem
servidor.crt
servidor.key

Alterado o arquivo /etc/openvpn/server.conf

# Which local IP address should OpenVPN
# listen on? (optional)
local 200.135.37.103

# Which TCP/UDP port should OpenVPN listen on?
# If you want to run multiple OpenVPN instances
# on the same machine, use a different port
# number for each one.  You will need to
# open up this port on your firewall.
port 1194

# TCP or UDP server?
;proto tcp
proto udp

# "dev tun" will create a routed IP tunnel,
# "dev tap" will create an ethernet tunnel.
# Use "dev tap0" if you are ethernet bridging
# and have precreated a tap0 virtual interface
# and bridged it with your ethernet interface.
# If you want to control access policies
# over the VPN, you must create firewall
# rules for the the TUN/TAP interface.
# On non-Windows systems, you can give
# an explicit unit number, such as tun0.
# On Windows, use "dev-node" for this.
# On most systems, the VPN will not function
# unless you partially or fully disable
# the firewall for the TUN/TAP interface.
dev tap0
;dev tun

up "/etc/openvpn/up.sh br0 tap0 1500"
down "/etc/openvpn/down.sh br0 tap0"
# Windows needs the TAP-Win32 adapter name
# from the Network Connections panel if you
# have more than one.  On XP SP2 or higher,
# you may need to selectively disable the
# Windows firewall for the TAP adapter.
# Non-Windows systems usually don't need this.
;dev-node MyTap

# SSL/TLS root certificate (ca), certificate
# (cert), and private key (key).  Each client
# and the server must have their own cert and
# key file.  The server and all clients will
# use the same ca file.
#
# See the "easy-rsa" directory for a series
# of scripts for generating RSA certificates
# and private keys.  Remember to use
# a unique Common Name for the server
# and each of the client certificates.
#
# Any X509 key management system can be used.
# OpenVPN can also use a PKCS #12 formatted key file
# (see "pkcs12" directive in man page).
ca ca.crt
cert servidor.crt
key servidor.key  # This file should be kept secret

# Diffie hellman parameters.
# Generate your own with:
#   openssl dhparam -out dh1024.pem 1024
# Substitute 2048 for 1024 if you are using
# 2048 bit keys. 
dh dh1024.pem

# Configure server mode and supply a VPN subnet
# for OpenVPN to draw client addresses from.
# The server will take 10.8.0.1 for itself,
# the rest will be made available to clients.
# Each client will be able to reach the server
# on 10.8.0.1. Comment this line out if you are
# ethernet bridging. See the man page for more info.
;server 10.8.0.0 255.255.255.0

# Maintain a record of client <-> virtual IP address
# associations in this file.  If OpenVPN goes down or
# is restarted, reconnecting clients can be assigned
# the same virtual IP address from the pool that was
# previously assigned.
ifconfig-pool-persist ipp.txt

# Configure server mode for ethernet bridging.
# You must first use your OS's bridging capability
# to bridge the TAP interface with the ethernet
# NIC interface.  Then you must manually set the
# IP/netmask on the bridge interface, here we
# assume 10.8.0.4/255.255.255.0.  Finally we
# must set aside an IP range in this subnet
# (start=10.8.0.50 end=10.8.0.100) to allocate
# to connecting clients.  Leave this line commented
# out unless you are ethernet bridging.
server-bridge 10.0.0.1 255.255.255.0 10.0.0.10 10.0.0.30

# Configure server mode for ethernet bridging
# using a DHCP-proxy, where clients talk
# to the OpenVPN server-side DHCP server
# to receive their IP address allocation
# and DNS server addresses.  You must first use
# your OS's bridging capability to bridge the TAP
# interface with the ethernet NIC interface.
# Note: this mode only works on clients (such as
# Windows), where the client-side TAP adapter is
# bound to a DHCP client.
;server-bridge

# Push routes to the client to allow it
# to reach other private subnets behind
# the server.  Remember that these
# private subnets will also need
# to know to route the OpenVPN client
# address pool (10.8.0.0/255.255.255.0)
# back to the OpenVPN server.
;push "route 192.168.10.0 255.255.255.0"
;push "route 192.168.20.0 255.255.255.0"

# To assign specific IP addresses to specific
# clients or if a connecting client has a private
# subnet behind it that should also have VPN access,
# use the subdirectory "ccd" for client-specific
# configuration files (see man page for more info).

# EXAMPLE: Suppose the client
# having the certificate common name "Thelonious"
# also has a small subnet behind his connecting
# machine, such as 192.168.40.128/255.255.255.248.
# First, uncomment out these lines:
;client-config-dir ccd
;route 192.168.40.128 255.255.255.248
# Then create a file ccd/Thelonious with this line:
#   iroute 192.168.40.128 255.255.255.248
# This will allow Thelonious' private subnet to
# access the VPN.  This example will only work
# if you are routing, not bridging, i.e. you are
# using "dev tun" and "server" directives.

# EXAMPLE: Suppose you want to give
# Thelonious a fixed VPN IP address of 10.9.0.1.
# First uncomment out these lines:
;client-config-dir ccd
;route 10.9.0.0 255.255.255.252
# Then add this line to ccd/Thelonious:
#   ifconfig-push 10.9.0.1 10.9.0.2

# Suppose that you want to enable different
# firewall access policies for different groups
# of clients.  There are two methods:
# (1) Run multiple OpenVPN daemons, one for each
#     group, and firewall the TUN/TAP interface
#     for each group/daemon appropriately.
# (2) (Advanced) Create a script to dynamically
#     modify the firewall in response to access
#     from different clients.  See man
#     page for more info on learn-address script.
;learn-address ./script

# If enabled, this directive will configure
# all clients to redirect their default
# network gateway through the VPN, causing
# all IP traffic such as web browsing and
# and DNS lookups to go through the VPN
# (The OpenVPN server machine may need to NAT
# or bridge the TUN/TAP interface to the internet
# in order for this to work properly).
push "redirect-gateway def1"

# Certain Windows-specific network settings
# can be pushed to clients, such as DNS
# or WINS server addresses.  CAVEAT:
# http://openvpn.net/faq.html#dhcpcaveats
# The addresses below refer to the public
# DNS servers provided by opendns.com.
push "dhcp-option DNS 8.8.8.8"
;push "dhcp-option DNS 208.67.220.220"

# Uncomment this directive to allow different
# clients to be able to "see" each other.
# By default, clients will only see the server.
# To force clients to only see the server, you
# will also need to appropriately firewall the
# server's TUN/TAP interface.
;client-to-client

# Uncomment this directive if multiple clients
# might connect with the same certificate/key
# files or common names.  This is recommended
# only for testing purposes.  For production use,
# each client should have its own certificate/key
# pair.
#
# IF YOU HAVE NOT GENERATED INDIVIDUAL
# CERTIFICATE/KEY PAIRS FOR EACH CLIENT,
# EACH HAVING ITS OWN UNIQUE "COMMON NAME",
# UNCOMMENT THIS LINE OUT.
;duplicate-cn

# The keepalive directive causes ping-like
# messages to be sent back and forth over
# the link so that each side knows when
# the other side has gone down.
# Ping every 10 seconds, assume that remote
# peer is down if no ping received during
# a 120 second time period.
keepalive 10 120

# For extra security beyond that provided
# by SSL/TLS, create an "HMAC firewall"
# to help block DoS attacks and UDP port flooding.
#
# Generate with:
#   openvpn --genkey --secret ta.key
#
# The server and each client must have
# a copy of this key.
# The second parameter should be '0'
# on the server and '1' on the clients.
tls-auth ta.key 0 # This file is secret

# Select a cryptographic cipher.
# This config item must be copied to
# the client config file as well.
;cipher BF-CBC        # Blowfish (default)
;cipher AES-128-CBC   # AES
;cipher DES-EDE3-CBC  # Triple-DES

# Enable compression on the VPN link.
# If you enable it here, you must also
# enable it in the client config file.
comp-lzo

# The maximum number of concurrently connected
# clients we want to allow.
;max-clients 100

# It's a good idea to reduce the OpenVPN
# daemon's privileges after initialization.
#
# You can uncomment this out on
# non-Windows systems.
user nobody
group nogroup

# The persist options will try to avoid
# accessing certain resources on restart
# that may no longer be accessible because
# of the privilege downgrade.
persist-key
persist-tun

# Output a short status file showing
# current connections, truncated
# and rewritten every minute.
status openvpn-status.log

# By default, log messages will go to the syslog (or
# on Windows, if running as a service, they will go to
# the "\Program Files\OpenVPN\log" directory).
# Use log or log-append to override this default.
# "log" will truncate the log file on OpenVPN startup,
# while "log-append" will append to it.  Use one
# or the other (but not both).
;log         openvpn.log
;log-append  openvpn.log

# Set the appropriate level of log
# file verbosity.
#
# 0 is silent, except for fatal errors
# 4 is reasonable for general usage
# 5 and 6 can help to debug connection problems
# 9 is extremely verbose
verb 3

# Silence repeating messages.  At most 20
# sequential messages of the same message
# category will be output to the log.
;mute 20

Criado um script para adicionar a interface tap na bridge /etc/openvpn/up.sh:

#!/bin/sh
BR=$1
DEV=$2
MTU=$3

/sbin/ip link set $DEV up promisc on mtu $MTU
/usr/sbin/brctl addif $BR $DEV

Criar o script para desativar a interface quando desligar o servidor /etc/openvpn/down.sh:

#!/bin/sh
BR=$1
DEV=$2
/usr/sbin/brctl delif $BR $DEV
/sbin/ip link set $DEV down

Configuradas as interfaces de rede do servidor /etc/network/interfaces:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
auto lo eth0
auto br0
iface lo inet loopback

iface br0 inet static
address 10.0.0.1
netmask 255.255.255.0
bridge_ports eth1

iface eth1 inet manual
up ip link set $IFACE up promisc on
down ip link set $IFACE down promisc off

iface eth0 inet static
address 200.135.37.103
netmask 255.255.255.192
gateway 200.135.37.126

# The loopback network interface

auto dsl-provider
iface dsl-provider inet ppp
pre-up /sbin/ifconfig eth0 up # line maintained by pppoeconf
provider dsl-provider

auto eth0

Habilitado o IP Forwarding:

sysctl net.ipv4.ip forward=1 echo 1 > /proc/sys/net/ipv4/ip forward

Habilitar o NAT para a rede interna: iptables -t nat -A POSTROUTING -o br0 -j MASQUERADE </syntaxhighlight>