quinta-feira, 11 de dezembro de 2014

Sip com Qos

Sip com Qos

Topologia da Rede:











SoftPhone A:
eth1 = 192.168.1.33/24
SoftPhone B:
eth1 = 192.168.1.34/24

Central Sip C:

eth1 = 192.168.1.133/24
eth2 = 192.168.13.1/24

Central Sip D:
eth1 = 192.168.1.134/24
eth2 = 192.168.33.2/24

Roteador E:

eth1 = 192.168.13.2/24
eth2 = 192.168.23.1/24
Roteador F:
eth1 = 192.168.33.1/24
eth2 = 192.168.23.2/24

 Registro com SoftPhone Jitsi:

SoftPhone A:
a@192.168.1.133
SoftPhone B:
b@192.168.1.134

 Configuração de interfaces:

Central Sip C:

# "Matando dhclient"
killall -9 dhclient

# Configurando DNS
echo "nameserver 8.8.8.8" > /etc/resolv.conf

# Derrubando todas interfaces
ifconfig eth1 down
ifconfig eth2 down

# Ativando todas interfaces

ip link set eth1 up
ip link set eth2 up

# Configurando ip/rede das interfaces

ip -4 address add 192.168.13.1/24 broadcast 192.168.13.255 dev eth1 scope site
ip -4 address add 192.168.1.133/24 broadcast 192.168.1.255 dev eth2 scope site

# Configurando rotas

ip -4 route add 192.168.23.0/24 via 192.168.13.2 scope site
ip -4 route add 192.168.33.0/24 via 192.168.13.2 scope site

# Rota padrao para internet

ip -4 route add 0.0.0.0/0 via 192.168.1.1 scope global

# Coamndo usado para gravar pacotes e abrir depois com o wireshark:
#   tcpdump -n -i any -w /tmp/servidor.pcap

Central Sip D:
# "Matando dhclient"
killall -9 dhclient

# Configurando DNS
echo "nameserver 8.8.8.8" > /etc/resolv.conf

# Derrubando todas interfaces

ifconfig eth1 down
ifconfig eth2 down

# Ativando todas interfaces

ip link set eth1 up
ip link set eth2 up

# Configurando ip/rede das interfaces

ip -4 address add 192.168.33.2/24 broadcast 192.168.33.255 dev eth1 scope site
ip -4 address add 192.168.1.134/24 broadcast 192.168.1.255 dev eth2 scope site

# Configurando rotas

ip -4 route add 192.168.23.0/24 via 192.168.33.1 scope site
ip -4 route add 192.168.13.0/24 via 192.168.33.1 scope site

# Rota padrao para internet

ip -4 route add 0.0.0.0/0 via 192.168.1.1 scope global

# Coamndo usado para gravar pacotes e abrir depois com o wireshark:
#   tcpdump -n -i any -w /tmp/servidor.pcap

Roteador E:

# "Matando dhclient"
killall -9 dhclient

# Configurando DNS
echo "nameserver 8.8.8.8" > /etc/resolv.conf

# Derrubando todas interfaces

ifconfig eth1 down
ifconfig eth2 down

# Ativando todas interfaces

ip link set eth1 up
ip link set eth2 up

# Configurando ip/rede das interfaces

ip -4 address add 192.168.13.2/24 broadcast 192.168.13.255 dev eth1 scope site
ip -4 address add 192.168.23.1/24 broadcast 192.168.23.255 dev eth2 scope site

# Configurando rotas

ip -4 route add 192.168.33.0/24 via 192.168.23.2 scope site

# Habilitando roteamento

sysctl -w net.ipv4.conf.all.forwarding=1

# Coamndo usado para gravar pacotes e abrir depois com o wireshark:
#   tcpdump -n -i any -w /tmp/servidor.pcap
Roteador F:
# "Matando dhclient"
killall -9 dhclient

# Configurando DNS
echo "nameserver 8.8.8.8" > /etc/resolv.conf

# Derrubando todas interfaces

ifconfig eth1 down
ifconfig eth2 down


# Ativando todas interfaces

ip link set eth1 up
#ip link set eth2 up

# Configurando ip/rede das interfaces

ip -4 address add 192.168.33.1/24 broadcast 192.168.33.255 dev eth1 scope site
ip -4 address add 192.168.23.2/24 broadcast 192.168.23.255 dev eth2 scope site

# Configurando rotas

ip -4 route add 192.168.13.0/24 via 192.168.23.1 scope site

# Habilitando roteamento

sysctl -w net.ipv4.conf.all.forwarding=1

# Coamndo usado para gravar pacotes e abrir depois com o wireshark:
#   tcpdump -n -i any -w /tmp/servidor.pcap

 Configurando Centrais Sip:


Central SIP C:

/etc/asterisk/sip.conf:
[general]

[a]
type=friend
context=rmu20142
;
; SIP
host=dynamic
qualify=yes
insecure=port,invite
;
; SDP
disallow=all
allow=alaw
allow=ulaw
allow=gsm

[cd-ipv4]
type=peer
context=rmu20142
;
; SIP
host=192.168.33.2
qualify=yes
insecure=port,invite
;
; SDP
directmedia=no
disallow=all
allow=alaw

[dc-ipv4]
type=user
context=rmu20142
;
; SIP
host=192.168.33.2
qualify=yes
insecure=port,invite
;
; SDP
directmedia=no
disallow=all
allow=alaw
/etc/asterisk/extensions.conf:
[rmu20142]
;
; Local: "100" ou "a"
exten => 100,1,Dial(SIP/a)
exten => 100,2,Hangup()
exten => a,1,Dial(SIP/\${EXTEN})
exten => a,2,Hangup()
;
; Remoto via tronco SIP: "0" antecipando demais caracteres
exten => _0.,1,Dial(SIP/cd-ipv4/\${EXTEN:1})
exten => _0.,2,Hangup()

Central SIP D:

/etc/asterisk/sip.conf:
[general]

[b]
type=friend
context=rmu20142
;
; SIP
host=dynamic
qualify=yes
insecure=port,invite
;
; SDP
disallow=all
allow=alaw
allow=ulaw
allow=gsm

[cd-ipv4]
type=user
context=rmu20142
;
; SIP
host=192.168.13.1
qualify=yes
insecure=port,invite
;
; SDP
directmedia=no
disallow=all
allow=alaw

[dc-ipv4]
type=peer
context=rmu20142
;
; SIP
host=192.168.13.1
qualify=yes
insecure=port,invite
;
; SDP
directmedia=no
disallow=all
allow=alaw

/etc/asterisk/extensions.conf:
[rmu20142]
;
; Local: "100" ou "b"
exten => 100,1,Dial(SIP/b)
exten => 100,2,Hangup()
exten => b,1,Dial(SIP/\${EXTEN})
exten => b,2,Hangup()
;
; Remoto via tronco SIP: "0" antecipando demais caracteres
exten => _0.,1,Dial(SIP/dc-ipv4/\${EXTEN:1})
exten => _0.,2,Hangup()
 
 Aplicando QoS:

Central Sip C:
#!/bin/bash
#
# 20140511 Ederson Torrresini: funções para os outros scripts.

limpeza()
{
    iptables -t mangle -F
    iptables -t mangle -P PREROUTING    ACCEPT
    iptables -t mangle -P INPUT            ACCEPT
    iptables -t mangle -P FORWARD        ACCEPT
    iptables -t mangle -P OUTPUT        ACCEPT
    iptables -t mangle -P POSTROUTING    ACCEPT
    iptables -t filter -F
    iptables -t filter -P INPUT            ACCEPT
    iptables -t filter -P FORWARD        ACCEPT
    iptables -t filter -P OUTPUT        ACCEPT
}

mostrar_regras()
{
    echo "Tabela mangle:"
    iptables -t mangle -L -n -v
    echo ""
    echo "Tabela filter:"
    iptables -t filter -L -n -v
}

case ${1} in
    "limpeza")
        limpeza
        mostrar_regras
        ;;
    "mostrar_regras")
        mostrar_regras
        ;;
esac
#!/bin/bash
#
# 20140511 Ederson Torrresini: classificação e marcação dos pacotes na interface interna (eth0).
#
# Nota: na tabela mangle a última linha que corresponde ao padrão (last match) é utilizada, ao contrário
#       das tabelas filter e nat. Por isso, as regras devem ser escritas ao contrário quando há conflito
#       ou correspondência em mais de uma regra - detalhe para a da classe 2, que abrange qualquer pacote.

# Classe 2: a qualquer protocolo se recomenda DF PHB - http://tools.ietf.org/html/rfc4594#page-47
iptables -t mangle -A OUTPUT -j DSCP --set-dscp 0

# Classe 1: ao transporte de áudio (RTP) se recomenda EF PHB - http://tools.ietf.org/html/rfc4594#page-31
iptables -t mangle -A OUTPUT -p udp -m multiport --dport 10000:20000 -j DSCP --set-dscp 46

# Classe 0: à sinalização de telefonia IP (SIP) se recomenda CS5 do DSCP - http://tools.ietf.org/html/rfc4594#page-33
iptables -t mangle -A OUTPUT -p udp --dport 5060 -j DSCP --set-dscp 40
iptables -t mangle -A OUTPUT -p tcp --dport 5060 -j DSCP --set-dscp 40
iptables -t mangle -A OUTPUT -p tcp --dport 5061 -j DSCP --set-dscp 40



mostrar_regras
Central Sip D:
#!/bin/bash
#
# 20140511 Ederson Torrresini: funções para os outros scripts.

limpeza()
{
    iptables -t mangle -F
    iptables -t mangle -P PREROUTING    ACCEPT
    iptables -t mangle -P INPUT            ACCEPT
    iptables -t mangle -P FORWARD        ACCEPT
    iptables -t mangle -P OUTPUT        ACCEPT
    iptables -t mangle -P POSTROUTING    ACCEPT
    iptables -t filter -F
    iptables -t filter -P INPUT            ACCEPT
    iptables -t filter -P FORWARD        ACCEPT
    iptables -t filter -P OUTPUT        ACCEPT
}

mostrar_regras()
{
    echo "Tabela mangle:"
    iptables -t mangle -L -n -v
    echo ""
    echo "Tabela filter:"
    iptables -t filter -L -n -v
}

case ${1} in
    "limpeza")
        limpeza
        mostrar_regras
        ;;
    "mostrar_regras")
        mostrar_regras
        ;;
esac
#!/bin/bash
#
# 20140511 Ederson Torrresini: classificação e marcação dos pacotes na interface interna (eth0).
#
# Nota: na tabela mangle a última linha que corresponde ao padrão (last match) é utilizada, ao contrário
#       das tabelas filter e nat. Por isso, as regras devem ser escritas ao contrário quando há conflito
#       ou correspondência em mais de uma regra - detalhe para a da classe 2, que abrange qualquer pacote.

# Classe 2: a qualquer protocolo se recomenda DF PHB - http://tools.ietf.org/html/rfc4594#page-47
iptables -t mangle -A OUTPUT -j DSCP --set-dscp 0

# Classe 1: ao transporte de áudio (RTP) se recomenda EF PHB - http://tools.ietf.org/html/rfc4594#page-31
iptables -t mangle -A OUTPUT -p udp -m multiport --dport 10000:20000 -j DSCP --set-dscp 46

# Classe 0: à sinalização de telefonia IP (SIP) se recomenda CS5 do DSCP - http://tools.ietf.org/html/rfc4594#page-33
iptables -t mangle -A OUTPUT -p udp --dport 5060 -j DSCP --set-dscp 40
iptables -t mangle -A OUTPUT -p tcp --dport 5060 -j DSCP --set-dscp 40
iptables -t mangle -A OUTPUT -p tcp --dport 5061 -j DSCP --set-dscp 40



mostrar_regras
Roteador E:
#!/bin/bash
#
# 20140511 Ederson Torrresini: funções para os outros scripts.

limpeza()
{
    iptables -t mangle -F
    iptables -t mangle -P PREROUTING    ACCEPT
    iptables -t mangle -P INPUT            ACCEPT
    iptables -t mangle -P FORWARD        ACCEPT
    iptables -t mangle -P OUTPUT        ACCEPT
    iptables -t mangle -P POSTROUTING    ACCEPT
    iptables -t filter -F
    iptables -t filter -P INPUT            ACCEPT
    iptables -t filter -P FORWARD        ACCEPT
    iptables -t filter -P OUTPUT        ACCEPT
}

mostrar_regras()
{
    echo "Tabela mangle:"
    iptables -t mangle -L -n -v
    echo ""
    echo "Tabela filter:"
    iptables -t filter -L -n -v
}

case ${1} in
    "limpeza")
        limpeza
        mostrar_regras
        ;;
    "mostrar_regras")
        mostrar_regras
        ;;
esac
 #!/bin/bash
#
# 20140511 Ederson Torresini: estabelecimento da política de qualidade de serviço, em especial no
# enlace gargalo da rede do cenário 1, PPP, na interface externa (eth2).
#
# Nota: na tabela mangle a última linha que corresponde ao padrão (last match) é utilizada, ao contrário
#       das tabelas filter e nat. Por isso, as regras devem ser escritas ao contrário quando há conflito
#       ou correspondência em mais de uma regra - detalhe para a da classe 2, que abrange qualquer pacote.

# Definição da fila (queue discipline), a ser aplicada na interface externa, PPP, com taxa de 1Mbps.
tc qdisc del dev eth2 root
tc qdisc add dev eth2 root handle 1:0 htb default 12
tc class add dev eth2 parent 1:0 classid 1:1 htb rate 1Mbit

# Classe 2: a qualquer protocolo se recomenda DF PHB - http://tools.ietf.org/html/rfc4594#page-47
iptables -t mangle -A POSTROUTING -o eth2 -m dscp --dscp 0 -j CLASSIFY --set-class 1:12

# Classe 1: ao transporte de áudio (RTP) se recomenda EF PHB - http://tools.ietf.org/html/rfc4594#page-31
iptables -t mangle -A POSTROUTING -o eth2 -m dscp --dscp 46 -j CLASSIFY --set-class 1:11

# Classe 0: à sinalização de telefonia IP (SIP) se recomenda CS5 do DSCP - http://tools.ietf.org/html/rfc4594#page-33
iptables -t mangle -A POSTROUTING -o eth2 -m dscp --dscp 40 -j CLASSIFY --set-class 1:10
#!/bin/bash
#
# 20140511 Ederson Torrresini: aplicacao da política definida na interface externa (eth2).
#
# Nota: apesar de não haver sequência na escrita das classes,
# será mantida a mesma sequência para fins de legibilidade do código.

# Classe 2: demais protocolos
tc class add dev eth2 parent 1:1 classid 1:12 htb rate 900Kbit ceil 1000Kbit prio 2

# Classe 1: transporte de mídia (RTP)
tc class add dev eth2 parent 1:1 classid 1:11 htb rate 80Kbit ceil 100Kbit prio 1

# Classe 0: sinalização e descrição de mídia (SIP/SDP)
tc class add dev eth2 parent 1:1 classid 1:10 htb rate 5Kbit ceil 10Kbit prio 0

mostrar_regras

Roteador F:

#!/bin/bash
#
# 20140511 Ederson Torrresini: funções para os outros scripts.

limpeza()
{
    iptables -t mangle -F
    iptables -t mangle -P PREROUTING    ACCEPT
    iptables -t mangle -P INPUT            ACCEPT
    iptables -t mangle -P FORWARD        ACCEPT
    iptables -t mangle -P OUTPUT        ACCEPT
    iptables -t mangle -P POSTROUTING    ACCEPT
    iptables -t filter -F
    iptables -t filter -P INPUT            ACCEPT
    iptables -t filter -P FORWARD        ACCEPT
    iptables -t filter -P OUTPUT        ACCEPT
}

mostrar_regras()
{
    echo "Tabela mangle:"
    iptables -t mangle -L -n -v
    echo ""
    echo "Tabela filter:"
    iptables -t filter -L -n -v
}

case ${1} in
    "limpeza")
        limpeza
        mostrar_regras
        ;;
    "mostrar_regras")
        mostrar_regras
        ;;
esac
 #!/bin/bash
#
# 20140511 Ederson Torresini: estabelecimento da política de qualidade de serviço, em especial no
# enlace gargalo da rede do cenário 1, PPP, na interface externa (eth2).
#
# Nota: na tabela mangle a última linha que corresponde ao padrão (last match) é utilizada, ao contrário
#       das tabelas filter e nat. Por isso, as regras devem ser escritas ao contrário quando há conflito
#       ou correspondência em mais de uma regra - detalhe para a da classe 2, que abrange qualquer pacote.

# Definição da fila (queue discipline), a ser aplicada na interface externa, PPP, com taxa de 1Mbps.
tc qdisc del dev eth2 root
tc qdisc add dev eth2 root handle 1:0 htb default 12
tc class add dev eth2 parent 1:0 classid 1:1 htb rate 1Mbit

# Classe 2: a qualquer protocolo se recomenda DF PHB - http://tools.ietf.org/html/rfc4594#page-47
iptables -t mangle -A POSTROUTING -o eth2 -m dscp --dscp 0 -j CLASSIFY --set-class 1:12

# Classe 1: ao transporte de áudio (RTP) se recomenda EF PHB - http://tools.ietf.org/html/rfc4594#page-31
iptables -t mangle -A POSTROUTING -o eth2 -m dscp --dscp 46 -j CLASSIFY --set-class 1:11

# Classe 0: à sinalização de telefonia IP (SIP) se recomenda CS5 do DSCP - http://tools.ietf.org/html/rfc4594#page-33
iptables -t mangle -A POSTROUTING -o eth2 -m dscp --dscp 40 -j CLASSIFY --set-class 1:10
#!/bin/bash
#
# 20140511 Ederson Torrresini: aplicacao da política definida na interface externa (eth2).
#
# Nota: apesar de não haver sequência na escrita das classes,
# será mantida a mesma sequência para fins de legibilidade do código.

# Classe 2: demais protocolos
tc class add dev eth2 parent 1:1 classid 1:12 htb rate 900Kbit ceil 1000Kbit prio 2

# Classe 1: transporte de mídia (RTP)
tc class add dev eth2 parent 1:1 classid 1:11 htb rate 80Kbit ceil 100Kbit prio 1

# Classe 0: sinalização e descrição de mídia (SIP/SDP)
tc class add dev eth2 parent 1:1 classid 1:10 htb rate 5Kbit ceil 10Kbit prio 0

mostrar_regras


quinta-feira, 4 de dezembro de 2014

 ANTES DE TUDO!!!

 Configurar rede!!!

ifconfig eth1 up
ifconfig eth1 192.168.1.2xx/24
route add default gw 192.168.1.1
echo "nameserver 8.8.8.8 > /etc/resolv.conf
apt-get update


1]R: Coloca tudo num script ou executa 1 po 1!!!!





#Apagando tabelas

iptables -F

#Mudando para política ACCEPT

    iptables -P INPUT ACCEPT
    iptables -P OUTPUT ACCEPT
    iptables -P FORWARD ACCEPT


#Proibindo acesso a www.ufsc.br

iptables -A OUTPUT -d www.ufsc.br -j DROP



2]R: Clica no link:
Percorre a página ta la em baixo!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
http://tele-ifsc.blogspot.com.br


3]R:


#Apagando tabelas

iptables -F

#Mudando para política ACCEPT

    iptables -P INPUT ACCEPT
    iptables -P OUTPUT ACCEPT
    iptables -P FORWARD ACCEPT


#Proibindo acesso a ssh

No ger-server:

iptables -A INPUT -s 192.168.1.XX -p tcp --dport 22 -j DROP

OBS:192.168.1.XX # é o ip da ger-grafico1

quarta-feira, 3 de dezembro de 2014

IPTABLES

#Bloqueando ping para "localhost"
iptables -A INPUT -d localhost -p icmp -j DROP
iptables -A INPUT -d 192.168.1.134/24 -p icmp -j DROP

#Listando tabelas de filtros
# iptables -L

#Apagando tabelas
iptables -F

#Mudando para política DROP
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
#iptables -L

#Liberando SSH para maquina real
iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -d 192.168.1.0/24 -j ACCEPT

#Liberando acesso a DNS


iptables -A INPUT -s 8.8.8.8  -j ACCEPT
iptables -A OUTPUT -d 8.8.8.8 -j ACCEPT

#Liberando acesso a www.ufsc.br
iptables -A INPUT -s www.ufsc.br -j ACCEPT
iptables -A OUTPUT -d www.ufsc.br -j ACCEPT

#Apagando tabelas
iptables -F

#Mudando para política ACCEPT
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

#Proibindo acesso a www.ufsc.br
iptables -A OUTPUT -d www.ufsc.br -j DROP

SNMP 

Instalações e configurações

Instalar o snmpd na máquina a ser monitorada: 

          # apt-get install snmp snmpd snmp-mibs-downloader

Limpar o arquivo /etc/snmp/snmpd.conf:


        # echo  "" > /etc/snmp/snmpd.conf

Editar o arquivo /etc/snmp/snmpd.conf:

agentAddress udp:161,udp6:[::1]:161
view   systemonly  included   .1.3.6.1.2.1.1
view   systemonly  included   .1.3.6.1.2.1.25.1
rocommunity public  0.0.0.0/0
rouser   authOnlyUser
sysLocation    Sitting on the Dock of the Bay
sysContact     Me <me@example.org>
sysServices    72
proc  mountd
proc  ntalkd    4
proc  sendmail 10 1
disk       /     10000
disk       /var  5%
includeAllDisks  10%
load   12 10 5
trapsink     localhost public
iquerySecName   internalUser
rouser          internalUser
linkUpDownNotifications  yes
extend    test1   /bin/echo  Hello, world!
extend-sh test2   echo Hello, world! ; echo Hi there ; exit 35
master          agentx


Reincia-se o serviço snmp: 

   # service snmpd restart

Busca-se por possíveis erros de configuração:
 
   # tail /var/log/syslog

Pode-se testar o serviço com uma consulta a partir de uma máquina remota, por exemplo o terminal da máquina real. Este comando retornará todos os parâmetros SNMP da máquina consultada: 


   # snmpwalk -v1 -c public 192.168.1.1X | more

OpenVPN no Ubuntu Server - Instalação e configuração

Ambiente na Matriz:
  • eth1: 192.168.1.100
Ambiente na Filial:
  • eth1: 192.168.1.101

Instalações e configurações

Configuração da matriz


Instalar o pacote openvpn e biblioteca lzo:
# apt-get install openvpn liblzo2-dev

Criar chave de segurança:

# cd /etc/openvpn
# openvpn --genkey --secret /etc/openvpn/chave


Verificar se a chave foi criada:

# cat /etc/openvpn/chave

Criar arquivo de configuração na matriz:

# vi /etc/openvpn/matriz.conf

Incluir o texto abaixo no arquivo: "/etc/openvpn/matriz.conf"

 #usar como interface o driver TUN

dev tun

persist-tun
# 20.0.0.1 ip que será assumido na matriz
# 20.0.0.2 ip remoto, ou seja, esse será o ip da filial. Observe que cria
#se uma nova rede para a VPN, independente das já existentes.

ifconfig 20.0.0.1 20.0.0.2

# Entra no diretório onde se encontram os arquivos de configuração

cd /etc/openvpn

# Indica que esse túnel possui uma chave de criptografia

secret chave
persist-key

# OpenVPN usa a porta 5500/UDP por padrão.
# Cada túnel do OpenVPN deve usar uma porta diferente.

port 5500

# Usuário que rodará o daemon do OpenVPN
######user openvpn
# Grupo que rodará o daemon do OpenVPN
########group openvpn
# Usa a biblioteca lzo

comp-lzo

# Envia um ping via UDP para a parte remota a cada 15 segundos #para
# manter a conexão de pé em firewall statefull.
# Muito recomendado, mesmo se você não usa um firewall baseado #em statefull.

ping-timer-rem

# Nível de log
verb 3

ifconfig 20.0.0.1 20.0.0.2  # novo-ip-matriz novo-ip-filial
port 5500                   # se não criar interface mude a porta

Executar comando para reiniciar o OpenVPN:

# /etc/init.d/openvpn restart

Verificar se a conexão VPN na matriz está OK:

# ifconfig tun0

Liberar acesso a chave:

# chmod 777 /etc/openvpn/*

Configuração da filial

Instalar o pacote openvpn e biblioteca lzo:

# apt-get install openvpn liblzo2-dev

Copiar a chave de segurança da matriz para a filial:

# scp aluno@192.168.1.100:/etc/openvpn/chave /etc/openvpn

Criar o arquivo de configuração na filial:

# vi /etc/openvpn/filial.conf

Incluir o texto abaixo no arquivo: "/etc/openvpn/filial.conf"

 #usar como interface o driver TUN

dev tun

persist-tun
# 20.0.0.1 ip que será assumido na matriz
# 20.0.0.2 ip remoto, ou seja, esse será o ip da filial. Observe que cria
#se uma nova rede para a VPN, independente das já existentes.

ifconfig 20.0.0.2 20.0.0.1
# Indica onde está o ip da Matriz (essa é a única linha que acrescentamos
# no arquivo de configuração da filial), o resto é tudo igual.
remote 192.168.1.100
# Entra no diretório onde se encontram os arquivos de configuração

cd /etc/openvpn

# Indica que esse túnel possui uma chave de criptografia

secret chave
persist-key

# OpenVPN usa a porta 5500/UDP por padrão.
# Cada túnel do OpenVPN deve usar uma porta diferente.

port 5500

# Usuário que rodará o daemon do OpenVPN
######user openvpn
# Grupo que rodará o daemon do OpenVPN
########group openvpn
# Usa a biblioteca lzo

comp-lzo

# Envia um ping via UDP para a parte remota a cada 15 segundos #para
# manter a conexão de pé em firewall statefull.
# Muito recomendado, mesmo se você não usa um firewall baseado #em statefull.

ping-timer-rem

# Nível de log
verb 3

ifconfig 20.0.0.2 20.0.0.1  # novo-ip-filial novo-ip-matriz
remote 192.168.1.100        # ip real da matriz

Executar comando para reiniciar o OpenVPN:

# /etc/init.d/openvpn restart

Verificar se a conexão VPN na matriz está OK:

# ifconfig tun0

Testando conexão

Na matriz, pingar a filial:

# ping 20.0.0.2

Na filial, pingar a matriz:

# ping 20.0.0.1
 ___________________________________________

OBS: Se precisar, amtes de configurar o OpenVpn, limpe os filtros do iptables

Limpar tabelas:

# iptables -F

Mudar política para ACCEPT:

# iptables -P INPUT ACCEPT
# iptables -P OUTPUT ACCEPT
# iptables -P FORWARD ACCEPT

Listar políticas:

 # iptables -L

quinta-feira, 27 de novembro de 2014

  1. Bloquear ping
    1. iptables -t filter -A INPUT -p icmp —icmp-type ech-request -j DROP
  2. Listar regras
    1. iptables -L
  3. Apagar regras
    1. iptables -F
  4. Mudar para política DROP
    1. iptables -t filter -P INPUT DROP
    2. iptables -t filter -P OUTPUT DROP
    3. iptables -t filter -P FORWARD DROP
  5. Liberar acesso para um site
      1. Se tiver que rotear os pacotes:
      2. iptables -t filter -A INPUT -s <ip do roteador> -d <ip da máquina> -j ACCEPT
      3. iptables -t filter -A OUTPUT -s <ip da máquina> -d <ip do roteador> -j ACCEPT
    1. iptables -t filter -A INPUT -s <ip do DNS> -d <ip da máquina> -j ACCEPT
    2. iptables -t filter -A OUTPUT -s <ip da máquina> -d <ip do DNS> -j ACCEPT
    3. iptables -t filter -A INPUT -s <nome do dominio> -d <ip da máquina> -j ACCEPT
    4. iptables -t filter -A OUTPUT -s <ip da máquina> -d <nome do dominio> -j ACCEPT
  6. Mudar para política ACCEPT
    1. iptables -t filter -P INPUT ACCEPT
    2. iptables -t filter -P OUTPUT ACCEPT
    3. iptables -t filter -P FORWARD ACCEPT
  7. Bloquear acesso à www.ufsc.br
    1. iptables -t filter -A OUTPUT -d www.ufsc.br -j DROP
  8. Diferença entre DROP e REJECT
  9. Bloquear porta do protocolo ssh
    1. iptables -A OUTPUT -d <hospedeiro ou ip> —dport 22 -j DROP
  10. Salvar as regras
    1. iptables-save > /etc/iptables.rules
  11. Fazer as regras serem restauradas na inicialização
    1. Editar o arquivo /etc/network/interfaces
    2. Adicionar a linha no final da interface a ser configurada (geralmente a eth0)
      1. pre-up iptables-restore < /etc/iptables.rules

#Bloqueando ping para "localhost"
iptables -A INPUT -d localhost -p icmp -j DROP
iptables -A INPUT -d 192.168.1.49/24 -p icmp -j DROP

#Listando tabelas de filtros
# iptables -L

#Apagando tabelas
iptables -F

#Mudando para política DROP
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
#iptables -L

#Liberando SSH para maquina real
iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -d 192.168.1.0/24 -j ACCEPT

quinta-feira, 6 de novembro de 2014

DHCP

vim /etc/dhcp/dhcpd.conf

default-lease-time 600;
max-lease-time 7200;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.1;
option domain-name-servers 200.135.37.65;
option domain-name "aval13.edu.br";

subnet 192.168.1.0 netmask 255.255.255.0 {
   range 192.168.1.137 192.168.1.139;
}


host cliente {
    hardware ethernet 08:00:27:A8:DA:CC;
    fixed-address 192.168.1.138;
}

SAMBA

vim /etc/samba/smb.conf

[global]
   workgroup = aval
   server string = Servidor %h (GER - IFSC)
   netbios name = aval13
   dns proxy = no
   log file = /var/log/samba/log.%m
   encrypt passwords = true
   passdb backend = tdbsam
   obey pam restrictions = yes

[homes]
   comment = Lares dos usuarios
   browseable = yes
   read only = no
   create mask = 0700
   directory mask = 0700

[software]
        comment = Softwares
    path = /dados/software
    invalid users = login_usuario_sem_permissao
    valid users = login_usuario_com_permissao1, login_usuario_com_permissao2
    force user = login_usuario
    force group = grupo
    force create mode = 0555
    force directory mode = 0555
    writable = yes ;Para permitir escrita na pasta

[aval]
    comment = Arquivos aval compartilhados
    path = /home/aval
    valid users = aluno
        force user = aluno
        force group = aluno
        force create mode = 0777
        force directory mode = 0777
    writable = yes


COMANDO NO CLIENTE:

 

quarta-feira, 5 de novembro de 2014

POSTFIX

Instalar serviço POSTFIX:
apt-get install postfix

Editar arquivo de configuração "main.cf":
vim /etc/postfix/main.cf
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no

append_dot_mydomain = no


readme_directory = no

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


smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = mail.redes13.edu.br
virtual_alias_maps = hash:/etc/postfix/virtual
alias_database = hash:/etc/aliases
myorigin = $myhostname
mydestination = $myhostname, /etc/postfix/mydomains
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
mydomain = redes13.edu.br
mynetworks_style = subnet
virtual_alias_domains = hash:/etc/postfix/mydomains

mail.redes13.edu.bri  #Dominio criado no DNS
redes13.edu.br #Dominio criado no DNS
/etc/postfix/virtual  #Aquivo de config que sera criado
/etc/postfix/mydomains  #Aquivo de config que sera criado

 
Criar arquivo de configuração "virtual":
vim /etc/postfix/virtual

redes13.edu.br Principal
aluno@redes13.edu.br aluno
aluno  #Usuario da "maquina"
redes13.edu.br  #Dominio criado no DNS

Criar arquivo de configuração "mydomains":
vim /etc/postfix/mydomains

 redes13.edu.br OK
redes13.edu.br  #Dominio criado no DNS

Executar comandos para releitura do Postfix:
postmap /etc/postfix/virtual
postmap /etc/postfix/mydomains
/etc/init.d/postfix restart

Testar envio de e-mail:
Instalar "mailutils":
sudo apt-get install mailutils

Enviar e-mail para usuario:
mail aluno@redes13.edu.br
aluno  #Usuario da "maquina"
redes13.edu.br  #Dominio criado no DNS
OBS: <Ctrl> + <d> envia!
Visualizar e-mail:
cat /var/mail/ubuntu
cat /var/mail/ubuntu

APACHE

Instalar serviço APACHE:
apt-get install apache2

Criar arquivo de configuração da pagina web:
vim /etc/apache2/sites-enable/redes13-default

<VirtualHost *:80>
 ServerAdmin webmaster@localhost
 ServerName www.redes13.sj.ifsc.edu.br
 DocumentRoot /var/www/redes13
 <Directory />
  Options FollowSymLinks
  AllowOverride None
 </Directory>
 <Directory /var/www/teletec>
  Options Indexes FollowSymLinks MultiViews
  AllowOverride None
  Order allow,deny
  allow from all
 </Directory>

 ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
 <Directory "/usr/lib/cgi-bin">
  AllowOverride None
  Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
  Order allow,deny
  Allow from all
 </Directory>

 ErrorLog ${APACHE_LOG_DIR}/error.log

 # Possible values include: debug, info, notice, warn, error, crit,
 # alert, emerg.
 LogLevel warn

 CustomLog ${APACHE_LOG_DIR}/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

ServerName www.redes13.edu.br  #domínio da rede configurada no DNS
DocumentRoot /var/www/redes13  #diretório onde esta a pagina web
  
Criar diretorio da pagina web:
mkdir /var/www/redes13

Criar pagina web no diretorio:
vim /var/www/redes13/index.html

<html><body><h1>REDES 13</h1>
<p>
REDES 13</p>
<p>
REDES 13</p>
</body></html>
Reiniciar serviço apache2:
/etc/init.d/apache2 restart

terça-feira, 4 de novembro de 2014

DNS

Instalar DNS:
apt-get update
apt-get install bind9

Editar arquivo"named.conf.local":
vim /etc/bind/named.conf.local

zone "redes13.edu.br" IN {
        type master;
        file "/etc/bind/redes13.zone";
        allow-update { none; };
};

 redes13.edu.br  #Endereço escolhido
/etc/bind/redes13.zone  #Arquivo de configuração do endereç
o
Criar arquivo"redes13.zone":
vim /etc/bind/redes13.zone

$TTL 604800
@         IN       SOA      m13.redes13.edu.br. root.redes13.edu.br. (
          2013120400 ; Serial
          604800     ; Refresh
          86400      ; Retry
          2419200    ; Expire
          604800 )   ; Negative Cache TTL
;
                   NS       m13.redes13.edu.br.
                   MX       10    mail
m13.redes13.edu.br. A       10.10.10.254
m13                A        10.10.10.254
mail               A        10.10.10.254
www            CNAME        m13.redes13.edu.br.

  m13.redes13.edu.br  #Endereçoe escolhido
 10.10.10.254 #IP do host responsável pelo endereço
Reiniciar serviço
/etc/init.d/bind9 restart

Testando:
vim /etc/resolv.conf

nameserver 10.10.10.254
  10.10.10.254  #Endereço do servidor DNS
Reiniciar serviço de rede:
service networking restart
ping www.redes13.edu.br

NAT

Descobrir interfaces: 
ifconfig -a

Ativar interfaces: 
ifconfig eth3 up
ifconfig eth5 up

Configurar endereços:
ifconfig eth3 10.10.10.254/24
ifconfig eth5 192.168.1.199/24 

Adicionar rota:
route add -net 192.168.50.0/24 gw 192.168.1.1
192.168.50.0/24  #Rede destino
192.168.1.1  #Roteador de saída para acessar rede x.x.50.0/24
Adicionar gateway padrão:
route add default gw 192.168.1.1

Ativar roteamento (ipv4) :
sysctl -w net.ipv4.ip_forward=1

Visualizar Rotas:
route -n

Ativar NAT:
iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o eth0 -j MASQUERADE
10.10.10.0/24  #Rede que quero "esconder"
eth0  #Interface de saída (pacote que sai por eth0 é mascarado)