segunda-feira, 4 de maio de 2020

VPN PPtP com Router Mikrotik e cliente Windows

Para ter acesso seguro a sua rede privada, de forma simples e rápida, usando um roteador Mikrotik.

Pense no seguinte cenário, a rede (remota) localizada numa pequena empresa, o usuário sem poder sair de casa, tem que acessar a rede da empresa onde trabalha, do seu computador, na sua casa. A forma mais fácil e rápida é criando uma VPN PPtP.

Configuração no router Mikrotik (roteador de borda com a internet):

    Acesse a RB via WinBox e vá na aba 'PPP':




















  Vamos habilitar o protocolo PPTP:

















   Agora temos que criar um POOL (endereços IPs que serão entregues aos clientes):





















   Configure um range de IPs (rfc1918), válidos da sua rede interna:

















   Agora vem a configuração do 'PPP Profiles':




   Preencha os campos com o nome, IP do Mikrotik e o POOL (range DHCP) criado:






















   Depois, vamos configurar o 'PPP Secret':




   Coloque o nome da rede, a senha de acesso (senha do discador do windows), o serviço pptp e nome do Profile configurado anteriormente 'VPN':




 


















Agora vamos a configuração do cliente Windows.

   Vá em abrir central de Rede e compartilhamento:












   Clique em configurar uma nova conexão ou rede:
















   Conectar a uma VPN:
















   Agora é preciso fornecer um ip público válido (conectado ao Mikrotik), um DNS dinâmico, que pode ser obtido através do cloud Mikrotik:
















   Para habilitar o DNS dinâmico do roteador Mikrotik, vá em IP e em 'cloud':











   Depois é só preencher o nome de usuário (que foi configurado no PPP secret) e senha:
















   Se tudo estiver correto, a VPN PPtP funcionará:





















   No Roteador Mikrotik na aba PPP 'Active Connections' aparecerá a conexão VPN:









   Para reforçar a segurança do Firewall e minimizar a lista de acessos indevidos (provavelmente todos os usuários terão IPs públicos dinâmicos para a conexão com a VPN)

# Bloqueio de IPs

/ip firewall address-list
add list="block_ip" address=100.64.0.0/10
add list="block_ip" address=169.254.0.0/16
add list="block_ip" address=192.0.0.0/24
add list="block_ip" address=192.0.2.0/24
add list="block_ip" address=198.18.0.0/15
add list="block_ip" address=198.51.100.0/24
add list="block_ip" address=203.0.113.0/24
add list="block_ip" address=224.0.0.0/3
add list="block_ip" address=104.244.42.0/24
add list="block_ip" address=172.217.28.0/18
add list="block_ip" address=66.45.237.219
add list="block_ip" address=192.16.58.8
add list="block_ip" address=192.16.59.1
add list="block_ip" address=151.101.129.44
add list="block_ip" address=151.101.1.44
add list="block_ip" address=151.101.93.44
add list="block_ip" address=151.101.193.44
add list="block_ip" address=167.99.229.185
add list="block_ip" address=200.152.162.136/30
add list="block_ip" address=200.152.162.189
add list="block_ip" address=201.6.48.13
add list="block_ip" address=201.6.52.66
add list="block_ip" address=191.180.43.215
add list="block_ip" address=179.153.108.148
add list="block_ip" address=186.204.215.58
add list="block_ip" address=186.204.29.230
add list="block_ip" address=189.120.72.203
add list="block_ip" address=189.120.76.139
add list="block_ip" address=189.33.66.238
add list="block_ip" address=189.33.67.119
add list="block_ip" address=189.62.238.248
add list="block_ip" address=177.32.85.38
add list="block_ip" address=177.33.174.218
add list="block_ip" address=177.81.70.237
add list="block_ip" address=177.81.78.103

#Lista de IPs Válidos para o Brasil
add address=177.0.0.0/8 list=brip
add address=191.0.0.0/8 list=brip
add address=200.0.0.0/8 list=brip
add address=201.0.0.0/8 list=brip
add address=179.0.0.0/8 list=brip
add address=186.0.0.0/8 list=brip
add address=189.0.0.0/8 list=brip

/ip firewall filter
add action=drop chain=input comment="#Bloqueio pela Address List" \
    in-interface="bridge1" limit=1,2:packet log=yes log-prefix=\
    "Log_to_Block_ip_Address Lists" src-address-list=block_ip
add action=accept chain=input dst-port=1723 in-interface=bridge1 \
limit=1,1:packet log=yes log-prefix="\"VPN_acesso_autorizado_IP:\
"" protocol=tcp src-address-list=brip
add action=add-src-to-address-list address-list=port:1723 \
    address-list-timeout=1m chain=input dst-port=1723 protocol=tcp

/ip firewall raw
add action=drop chain=prerouting disabled=yes dst-port=1723 \
in-interface=bridge1 log=yes log-prefix="\"#DROP_IPs_VPN:\
""protocol=tcp src-address-list=!brip


#Copie as regras no Terminal do router Mikrotik, no WinBox, ou via SSH, pelo Putty.
















sexta-feira, 1 de maio de 2020

Exportar Logs do Mikrotik para o Linux Server


   Para desenvolver um bom Firewall, em qualquer plataforma, é essencial a visualização de Logs, dos acessos à rede como um todo. Nas RB's Mikrotik, a quantidade de memória, tanto a memória volátil, quanto a memória não volátil, tem quantidades limitadas. Hoje em dia qualquer Server Linux (X86), tem de sobra, memória Ram e de armazenamento.



































A solução é repassar os Logs das RBs para o HD de um Servidor Linux, isso é bem simples, apenas editando um arquivo de configuração:

#vim /etc/rsyslog.conf

















Descomente as linhas:

module(load="imudp")
input(type="imudp" port="514")

Desse modo será usado a porta udp 514 para a troca de dados (logs) entre os dispositivos.

Adicione a linha:

*.* @@192.168.1.7:514

*.* @@192.168.1.9:514

Esses são os Ips das RBs Mikrotik.


Depois de tudo configurado, rode o comando:

#systemctl restart rsyslog















Agora a configuração nas RBs:


































Para visualização dos Logs no Servidor Linux:

#tail -f /var/log/messages



















A visualização de Logs em tempo real, sem saturar a memória ram das RBs Mikrotik.


Para assegurar acesso as informações de Logs do Sistema, apenas aos micros da rede interna:






































quinta-feira, 26 de março de 2020

Netfilter on Mikrotik Router


Transpondo regras de Firewall IPtables para o Mikrotik:

#Interfaces:
bridge1=Lan
ether6=Wan

#Regras Básicas de Acesso:

iptables -A FORWARD -i bridge1 -o ether6 -p tcp -s 192.168.1.0/27 -d 0/0 --sport 1024:65535 --dport 0:1024 -j ACCEPT
























iptables -A FORWARD -i ether6 -o bridge1 -p tcp -s 0/0 -d 192.168.1.0/27 --sport 0:1024 --dport 1024:65535 -j ACCEPT
























#Estas duas regras são bem completas, por si só, já liberam a maioria dos serviços de acesso à rede que utiliza portas tcp, com segurança.


iptables -A INPUT -i ether6 -p udp -s 200.160.7.186 --sport 123 --dport 123 -j ACCEPT
























#Esta regra libera acesso ao Servidor NTP, para consulta do Horário.


iptables -A FORWARD -i ether6 -o bridge1 -d 192.168.1.0/27 -p tcp --sport 0:1023 -m state --state NEW -j DROP











iptables -A FORWARD -i ether6 -o bridge1 -d 192.168.1.0/27 -p tcp --sport 0:1023 -m state --state NEW - -j LOG --log-prefix "Rede_tcp_syn_drop"

#Esta regra protege a rede do início de acessos indevidos pelas portas tcp baixas. Depois da ação, é gravado o LOG, com o prefixo "Rede_tcp_syn_drop".


iptables -A INPUT -i ether6 -p udp --dport 0:1024 -j DROP
























#Esta regra bloqueia tentativas de acesso à portas UDP baixas.
#Libere antes desta regra, os acessos mais comuns às portas UDP, como DNS e NTP.










sábado, 23 de dezembro de 2017

Controle de temperatura com termistor NTC


Controle de Temperatura, com termistor NTC, para acionamento automático do Fan Cooler, para refrigeração em amplificadores de potência, computadores, aquários, etc. Qualquer projeto que necessite o acionamento automático do Fan, conforme a temperatura aumenta.

Esquemático:

















Circuito básico, baseado em dois divisores de tensão e usando o amplificador operacional LM358, como comparador, das tensões derivadas dos divisores, no primeiro, o NTC é um resistor variável, conforme aumenta a temperatura, ele aumenta a sua impedância, consequentemente, aumenta a tensão do primeiro divisor, assim a tensão se iguala a do segundo divisor e dispara uma tensão na base do transistor TIP122, que amplifica o sinal vindo do pino um do operacional, ligando o cooler.

LM358 pinagem:

















O circuito original, utilizava como sensor de temperatura o LM35, mas preferi substitui-lo pelo termistor NTC de 10k, um componente bem mais em conta e de simples montagem. Adicionei um potenciômetro de 2k ohm (em série com o resistor de 3.3k), para poder ter um ajuste fino da temperatura de acionamento do fan.  Na saída do operacional, pode-se utilizar outro tipo de transistor, por exemplo um TIP31, vai ter menos perda (apenas 0,6 volts), utilizei um TIP122, possui um ganho maior, aguenta maior potência, mas por ser Darlington, tem perda maior (1.2 volts).








sexta-feira, 11 de agosto de 2017

/etc/rc.local no Debian Stretch

No Debian recente "Stretch", vem sem o arquivo "/etc/rc.local", muito útil para inicialização de scripts, quando o computador é ligado.

Para criar o arquivo:

# cd /etc/
# ls
# touch rc.local
# chmod +x rc.local

# vim rc.local

Inserir:

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.


/root/firewall_testpc.sh
#seuscrips.sh

exit 0
EOF

Depois:

# systemctl start rc.local

# systemctl status rc.local

 





















segunda-feira, 24 de julho de 2017

Configurar o horário no OpenWrt

No OpenWrt o 'Localtime' vem configurado como 'UTC', o qual possui três horas a mais, que o horário Brasileiro (Brasília).

Para corrigirmos isso, é só alterar o arquivo '/etc/config/system':

# vi /etc/config/system

 

















Para colocar o horário Brasileiro (São Paulo) é só trocar o 'UTC' por
'BRT3BRST,M10.3.0/0,M2.3.0/0'



















Coloque  option timezone 'BRT3BRST,M10.3.0/0,M2.3.0/0'

Depois, dê o comando:

# /etc/init.d/system reload

Pronto o horário está configurado.






sexta-feira, 21 de julho de 2017

CTRL+ALT+DEL (Desligar o Computador)

Debian Stretch, ou qualquer distro com systemctl (initd)

Para desligar o computador, geralmente usamos o comando

#shutdown -h now

ou

#init 0

Mas para desligar usando as teclas de atalho "ctrl+alt+del", não funciona, pois o arquivo de configuração "/etc/inittab" não existe mais.

Para isso, criamos um link simbólico:

#ln -s /lib/systemd/system/poweroff.target /etc/systemd/system/ctrl-alt-del.target

Depois reinicie o serviço:

#systemctl daemon-reload

Pronto, o computador desligará, ao pressionarmos as teclas "ctrl+alt+del" .