pfsense em Azure

pfSense é mais uma pérola do mundo open-source e oferece uma solução completa de routing, firewall e VPN, entre muitas outras capacidades.

Quando em Azure queremos usar uma solução que envolve uma pfsense, podemos usar a imagem que a Netgate nos oferece, inclusive com a possibilidade de suporte profissional.

No entanto, por questões financeiras podemos querer usar um tipo de VM mais baixo, como por exemplo a gama A0 e eliminar o custo de uso do software. Dá algum trabalho, mas a dificuldade é relativamente baixa.

Vamos precisar:
– um PC com Windows e hyper-v
– a imagem oficial da Netgate (AMD64, ISO)
– acesso a uma subscrição Azure (com pelo menos um resource group, uma storage account, uma VNET e uma subnet)

Atenção: este artigo tem objectivos meramente educativos, não sendo apropriado para ambientes em produção. Há questões de segurança que estão omissos. Pode haver mais que um método para atingir o mesmo objectivo, apenas escolhi o que achei como o mais adequado para este cenário.

Começamos por criar uma VM no nosso Hyper-v. Convém criar uma imagem o mais simples possível já que ao ser migrada para Azure vai ser necessário executar o setup de rede inicial. Deixem as configurações adicionais para depois. Também vou criar a VM com uma única interface de rede e um disco de 10GB.

Abrimos o gestor do Hyper-v e clicamos em novo -> máquina virtual:

Criei previamente uma rede do tipo externo

Iniciamos a VM e a configuração inicial:

A consola vai indicar qual o IP para aceder à pfsense:

Entramos na VM com as credenciais por definição – admin / pfsense

E executamos o wizard inicial, que basicamente é next, next, next…

Já dentro da FW temos de fazer duas alterações muito preciosas.
Vamos a System -> Advanced e activamos a consola via terminal serie:

vai permitir a consola no portal Azure

Activamos também a opção Browser HTTP_REFERER enforcement:

vai permitir o acesso via IP público do Azure

Podemos então desligar a firewall:

Por fim vamos exportar a nossa firewall para VHD, para depois fazer o upload para Azure.

Começamos por converter o disco nativo do Hyper-v de vhdx para vhd.
Clicamos nas propriedades da VM e vamos à parte do armazenamento, onde escolhemos a opção “modificar”:

Para fazer o armazenamento da nossa imagem em Azure, temos de usar uma storage account.
Criamos um blob storage para o armazenamento e aí podemos fazer upload do VHD:

Esta imagem tem um texto alternativo em branco, o nome da imagem é image-1.png

Agora vamos a Discos e criamos um Standard HDD com base no nosso VHD:

Já com o VHD no Azure é hora de criar a VM a partir do novo disco:

Clicar em Create VM

No campo “image” escolhemos o disco criado a partir do VHD e escolhemos o tamanho pretendido:

Na tab Networking ajustamos da seguinte maneira:

Podemos então clicar em Review and Create e aguardamos que a VM esteja disponível.

Ainda na barra esquerda do Azure vamos até quase ao fim, onde clicamos em Serial console:

Se tudo estiver OK, ainda na barra esquerda subimos até “Overview” e verificamos qual o IP publico que a nossa FW tem:

Basta aceder por browser e desfrutar da nossa nova FW em Azure:


Cumprimentos!

Firefox topbar

Para quem usa o Firefox em Linux, sempre houve uma característica que o separou da versão para Windows, o facto de usar a barra superior do sistema, o que na prática nos fazia perder algum espaço relativamente ao irmão EXE:
A partir da versão 60 já podemos remover a barra de sistema e ganhar mais uns mm:

1 – No firefox clicar no botão de menu e escolher “Personalizar”

2 – No canto inferior esquerdo desactivar a opção “Barra de título”
3 – O resultado fica logo activo. Uma pequena “grande” diferença!

Caso prefiram podem alterar o tema do Firefox pois tem impacto na cor da nossa nova “Topbar”.

 

No root ttyUSB


Por vezes uso um adaptador USB -> COM para me ligar a equipamentos que tem portas RS232 como interface de configuração (routers, switchs, etc). Para me ligar aos equipamentos posso usar o Putty ou o Minicom. Mas para aceder ao equipamento tenho que usar os programas como Root. Ou não? 🙂
Posso contornar a situação e adicionar o meu user ao grupo que tem privilégios nas portas virtuais. Como?

1 – Inserir o adaptador numa porta USB

2 – Descobrir qual a porta que o nosso adaptador está a usar:
papi@pc:~$ dmesg | grep tty
[ 0.000000] console [tty0] enabled
[ 2.603832] fbcon: Remapping primary device, fb1, to tty 1-63
[10482.525933] usb 1-1: pl2303 converter now attached to ttyUSB0

3 – Descobrir qual o grupo que tem privilégios:
stat /dev/ttyUSB0

papi@pc:~$ stat /dev/ttyUSB0
File: /dev/ttyUSB0
Size: 0 Blocks: 0 IO Block: 4096 ficheiro especial de caracteres
Device: 6h/6d Inode: 609 Links: 1 Device type: bc,0
Access: (0660/crw-rw—-) Uid: ( 0/ root) Gid: ( 20/ dialout)
Access: 2018-06-16 15:07:50.845137048 +0100
Modify: 2018-06-16 15:07:52.845137048 +0100
Change: 2018-06-16 15:07:50.845137048 +0100
Birth: –

Então, o grupo com privilégios é o grupo dialout

4 – Adicionar o nosso user ao grupo:
sudo usermod -a -G dialout papi

5 – Fazer logout e já podemos usar o Putty ou o Minicom sem “sudo”

Evolution

Quem trabalha com Linux no meio empresarial tem sempre dificuldade em encontrar uma boa alternativa ao Outlook para o email corporativo quando o servidor é exchange. As alternativas são poucas, com muitos truques para funcionar e a fiabilidade e performance não é muita quando comparada com o Outlook. Os clientes de email “clássicos” mais conhecidos em Linux são o Thunderbird e o Evolution. Este último sempre foi considerado muito pesado e lento pelo que o “rei” tem sido o Thunderbird, principalmente graças à comunidade que o suporta.

Durante alguns anos trabalhei com Thunderbird mas… recentemente experimentei o Evolution, com o add-on para exchange. A simplicidade com que configurei a minha conta corporativa, o desempenho e fiabilidade que fui encontrando dia após dia convenceram-me e não olhei para trás.

Para configurar o Evolution em Ubuntu basta instalar os seguintes pacotes:
sudo apt-get install evolution evolution-ews

Em seguida podem abrir o Evolution e a primeira janela deverá aparecer assim:
Aqui podem inserir o vosso nome e emailNo server type escolhem “Serviços web do Exchange”, inserem o username de domínio, o URL do exchange (perguntem ao admin da vossa empresa caso não saibam) e cliquem em “Fetch URL”.  Deverá pedir a palavra-passe:Em seguida podem ajustar algumas opções e fazer a sincronização da GAL (lista de emails do domínio)E terminam com o nome que querem dar à caixa de correio Podem concluir o setup. Se tudo correu bem vão começar a aparecer os vossos emails, contactos, agendas e tarefas.

Para configurar ou alterar mais opções (assinaturas, out-of-office, etc) podem sempre ir a Editar->Preferências

Não tenho dúvidas em afirmar que este é actualmente o melhor cliente de email para exchange. Sem grandes complicações ficamos com tudo o que o Outlook nos oferece, seja email, contactos, agenda ou tarefas (recursos partilhados também funcionam).

Não esquecer de predefinir o Evolution como ferramenta de email e calendário nas definições do vosso sistema.

Dynamic DNS

Desde que o famoso dyndns deixou de ser gratuito no verdadeiro sentido da palavra que tenho sofrido algumas dores de cabeça pois mesmo fazendo login no site de 30 em 30 dias, há hosts que “misteriosamente” expiram pelo que tenho que andar a reconfigurar o serviço novamente, correndo o risco de entretanto ver o meu nome de host ser registado por outra pessoa…

Recentemente mudei de fornecedor deste tipo de serviço e tenho usado nas configurações novas o servidor de nomes seguinte:

http://www.dnsdynamic.org/

Não tem limite de hosts e oferece um atualizador via browser ou um script automático  mas… e como configurar na consola do nosso servidor  Ubuntu/Debian?

Embora pra consola! 😀

Começamos por instalar o programa:

sudo apt-get install ddclient

Caso já esteja instalado podemos reconfigurar com o seguinte comando:

 dpkg-reconfigure ddclient

No primeiro ecrã vai nos pedir para escolher o serviço. Escolhemos a última opção “Outro” ou “Other” caso seja em inglês.

No segundo ecrã vai nos perguntar qual o provedor do serviço. Devemos escrever “www.dnsdynamic.org”.

No terceiro ecrã escolhemos a opção “dyndns2”.

Nos dois ecrãs seguintes escrevemos o email de registo e a respetiva palavra-passe.

Por fim escolhemos a placa de rede que está ligada ao nosso router, por norma eth0. Caso seja wifi em princípio será wlan0.

No ecrã seguinte vai nos pedir para escrever o nome dinâmico que queremos que fique sempre atualizado para o IP externo da máquina (e que registámos no sítio).

Por último escolhemos “não” na pergunta se a ligação é sobre “ppp” e “sim” para correr o serviço automaticamente. Também pede para configurar o intervalo de tempo para verificar se o IP externo mudou. “5m” basta.

Se formos ao painel de gestão no No-ip verificamos que o nosso IP está atualiz… hey! Aparece lá o IP interno do nosso server e isso está errado!!! Vamos corrigir? 😀 Na consola editamos o seguinte ficheiro:

sudo nano /etc/ddclient.conf

Procuramos a linha “use=if, if=eth0” e substituímos por “use=web, web=checkip.dyndns.org”

Salvamos as alterações e executamos o seguinte comando:

sudo service ddclient restart

Em seguida executamos um último comando:

sudo ddclient

Se tudo correu bem veremos a palavra SUCCESS e o IP externo atualizado.

E pronto, temos o nosso dynip configurado

Raspberry sem rede

No Raspberry já se pode usar o Ubuntu de forma mais ou menos estável.

Aconteceu-me após o primeiro “apt-get dist-upgrade” ficar sem rede.
Para resolver bastou criar o seguinte ficheiro:
sudo nano /etc/udev/rules.d/70-persistent-net.rules
e depois escrever:
SUBSYSTEM==”net”, ACTION==”add”, DRIVERS==”?*”, ATTR{dev_id}==”0x0″, ATTR{type}==”1″, KERNEL==”eth0″, NAME=”eth0″
No fim reiniciei e… a rede voltou 🙂

iRedMail allow alias senders

iredmail

iRedMail é uma excelente alternativa open-source para quem quer um servidor de email. Robusto e potente, é uma boa solução para quem precisa de um servidor de email.

Podemos criar novos alias (ver aqui) do nosso email principal mas by default no iRedMail só conseguimos enviar com origem no nosso email principal. Por exemplo, temos o email principal@dominio.pt e queremos que na mesma conta fique o alias secundario@dominio.pt. Quando vamos enviar emails a nossa conta principal é a principal@dominio.pt mas podemos querer enviar também como secundario@dominio.pt. Para isso temos de alterar o seguinte ficheiro no nosso servidor de email:

nano /opt/iredapd/settings.py
ALLOWED_LOGIN_MISMATCH_SENDERS = [‘principal@dominio.pt‘]

No fim reiniciamos o serviço iRedAPD e já podemos enviar com os alias que queremos.

Esta solução não é uma boa prática de segurança. Apenas a devemos usar num ambiente muito controlado já que isto facilita a vida aos spammers caso o nosso servidor seja comprometido.

Thunderbird no Exchange

thunderbird

Se há aplicação onde a Microsoft é rainha é na aplicação cliente de e-mail para servidores Exchange, o Outlook.
Em Linux não temos muitas alternativas para usar em pleno as potencialidades do Exchange, não tanto no acesso ao e-mail mas sobretudo quando queremos usar os serviços corporativos de agenda ou livro de endereços de email.
Em resumo, enquanto não temos o Office da Microsoft nativo para Linux ou usamos o ambiente via navegador (webmail) ou… bom temos como salvação o todo-poderoso Thunderbird.

Para nos ligarmos ao email basta um acesso IMAP. As configurações dependem de como o administrador de sistemas definiu os acessos mas vamos partir do princípio que o nosso domínio é papimigas.com e o acesso ao servidor exchange é exchange.papimigas.com. A conta a configurar é utilizador@papimigas.com.
No Thunderbird adicionamos uma nova conta:
thunder1Clicamos em Continue e clicamos novamente em Manual config.
Preenchemos os campos necessários:
thunder2Ao clicar em Done deveremos ter acesso ao nosso email.

Para ter acesso ao calendário e livro de contactos corporativo começamos por instalar o add-on lightning.
No Thunderbird vamos a tools->Add-ons e procuramos por lightning
thunder3No fim temos de reiniciar o Thunderbird.
Em seguida instalamos o add-on exchangecalendar que podemos obter nesta página. Depois de feito o download, para o instalarmos voltamos a tools->Add-ons e clicamos em Extensions. Clicamos na roda dentada e escolhemos Install add-on from file:
thunder5No aviso que nos aparece é seguro prosseguir e clicamos em Install:
thunder6No fim temos de reiniciar novamente o Thunderbird.
Já com tudo o que precisamos instalado e activo clicamos em Events and Tasks -> Calendar. Em seguida clicamos com o botão direito do rato conforme a figura e escolhemos New Calendar:
thunder4Escolhemos a opção On the Network:
thunder7Na janela seguinte escolhemos a opção Microsoft Exchange:
thunder8Em seguida escrevemos o nosso nome e escolhemos a nossa conta de email:
thunder9Agora inserimos o url do nosso exchange e a nossa autenticação:
thunder10Muita atenção ao Server URL. Deverá respeitar o modelo https://caminho_do_exchange/ews/exchange.asmx
No fim verificar a configuração clicando em Check server and mailbox. Deverá aparecer uma caixa a solicitar a palavra-passe. Não esqueçam de seleccionar a caixa para guardar a palavra-passe.

Se a palavra-passe não for aceite é porque os campos Username e Domain name não estão de acordo com as configurações no servidor. Podem ter que fazer alguns ajustes, do género escrever só o nome de utilizador e sem nome de domínio, o email completo no campo do utilizador, etc. Isto vai depender da configuração no lado do servidor pelo que não desistam à primeira e perguntem ao vosso admin de domínio qual a forma de se ligarem.

Com o calendário configurado falta o acesso ao livro de endereços, também conhecido por GAL.
Para o configurar vamos a Tools->Address Book. Clicamos em Add Exchange contact folder:
thunder11Preenchemos os campos necessários:
thunder12Mais uma vez testem no fim os dados inseridos. Se tudo correr bem já podem aceder à lista global de contactos da empresa.

Algumas configurações importantes podem ser ajustadas indo a Edit->Preferences->Calendar

Há outros programas em Linux que também se ligam a um Exchange server mas na minha opinião nenhum funciona tão bem como o Thunderbird 🙂

bash-completion

Quando usamos a nossa consola em Linux temos um ajudante fabuloso que nos completa os comandos. Pomos esse ajudante em acção ao carregar a tecla TAB  depois de escrevermos as primeiras letras dos comandos que pretendemos inserir.

E quando não temos esse ajudante activo? Muito fácil. Na consola escrevemos:

sudo apt-get update && sudo apt-get install bash-completion

No fim copiamos para o nosso perfil:

cat /etc/skel/.bashrc >> ~/.bashrc

Fazer logout e da próxima vez já temos o nosso bash auto-complete activo 🙂

WordPress – Alterar caminho das imagens

wordpress-logo-stacked-rgb

Recentemente migrei de servidor onde o meu blog está alojado. Após a migração reparei que o caminho das minhas imagens estava errado pois antes tinha ‘papimigas.com/blog’ e agora é ‘papimigas.com’. Tinha de alterar todas as imagens para o novo caminho e havia duas maneiras de resolver:

  • Manualmente uma a uma (tarefa ingrata, são anos de artigos, alguns com muitas imagens)
  • Via cli do mysql (medo!)

Após uma pequena pesquisa vi que a tabela responsável é a wp-posts.

Primeiro fazer um backup e só depois iniciar a aventura na cli MySQL!

Entrar no MySQL com o comando:
mysql -u root -p
(tecla enter, inserir palavra-passe de root mysql e clicar na tecla enter novamente)

Verificar qual a base de dados:
mysql> SHOW databases;

Após verificar qual a base de dados que alberga o nosso WordPress é altura de a “usar”. Vamos supor que a nossa base de dados tem o nome de “wordpress_db”. Usamos o seguinte código:
mysql> USE wordpress_db;

Verificamos se a tabela wp-posts existe:
mysql> SHOW tables;

Se estiver tudo confirmado alteramos o caminho das imagens com o seguinte comando:
mysql> UPDATE wp_posts SET post_content=(REPLACE (post_content, ”,”));

No meu caso foi:
mysql> UPDATE wp_posts SET post_content=(REPLACE (post_content, ‘papimigas.com/blog’,’papimigas.com’));

E puf! A magia acontece 🙂

Para sair da cli MySQL basta usar o comando quit:
mysql> quit;