News Ticker
  • Novidades em Breve !
  • A Guardem muitas novidades. Fórum com esquemas e Loja de componentes
admin

Backup do pfSense via e-mail

1 post in this topic

Neste novo post irei mostrar como enviar o backup do pfSense para o seu e-mail e agendar o envio automático.

1 – Acesse o pfSense via SSH e digite a opção 8 Shell, tecle enter.

pfsense1

2 – Digite o seguinte comando para criar um novo arquivo

vi envia_email.py
1
vi envia_email.py

3 – Cole o código abaixo dentro do arquivo, substituindo as palavras REMETENTE, DESTINATARIO, CLIENTE, MAIL_SERVER, EMAIL e SENHA com os informações corretas.

import mimetypes import os import smtplib from email import encoders from email.mime.audio import MIMEAudio from email.mime.base import MIMEBase from email.mime.image import MIMEImage from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText def adiciona_anexo(msg, filename): if not os.path.isfile(filename): return ctype, encoding = mimetypes.guess_type(filename) if ctype is None or encoding is not None: ctype = 'application/octet-stream' maintype, subtype = ctype.split('/', 1) if maintype == 'text': with open(filename) as f: mime = MIMEText(f.read(), _subtype=subtype) elif maintype == 'image': with open(filename, 'rb') as f: mime = MIMEImage(f.read(), _subtype=subtype) elif maintype == 'audio': with open(filename, 'rb') as f: mime = MIMEAudio(f.read(), _subtype=subtype) else: with open(filename, 'rb') as f: mime = MIMEBase(maintype, subtype) mime.set_payload(f.read()) encoders.encode_base64(mime) mime.add_header('Content-Disposition', 'attachment', filename=filename) msg.attach(mime) de = 'REMETENTE' para = ['DESTINATARIO'] msg = MIMEMultipart() msg['From'] = de msg['To'] = ', '.join(para) msg['Subject'] = 'Backup pfSense CLIENTE' # Corpo da mensagem msg.attach(MIMEText('Backup pfSense CLIENTE', 'html', 'utf-8')) # Arquivos anexos. adiciona_anexo(msg, '/conf/config.xml') raw = msg.as_string() smtp = smtplib.SMTP('MAIL_SERVER', 25) smtp.login('EMAIL', 'SENHA') smtp.sendmail(de, para, raw) smtp.quit()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import mimetypes
import os
import smtplib
 
from email import encoders
from email.mime.audio import MIMEAudio
from email.mime.base import MIMEBase
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
 
def adiciona_anexo(msg, filename):
    if not os.path.isfile(filename):
        return
 
    ctype, encoding = mimetypes.guess_type(filename)
 
    if ctype is None or encoding is not None:
        ctype = 'application/octet-stream'
 
    maintype, subtype = ctype.split('/', 1)
 
    if maintype == 'text':
        with open(filename) as f:
            mime = MIMEText(f.read(), _subtype=subtype)
    elif maintype == 'image':
        with open(filename, 'rb') as f:
            mime = MIMEImage(f.read(), _subtype=subtype)
    elif maintype == 'audio':
        with open(filename, 'rb') as f:
            mime = MIMEAudio(f.read(), _subtype=subtype)
    else:
        with open(filename, 'rb') as f:
            mime = MIMEBase(maintype, subtype)
            mime.set_payload(f.read())
 
        encoders.encode_base64(mime)
 
    mime.add_header('Content-Disposition', 'attachment', filename=filename)
    msg.attach(mime)
 
de = 'REMETENTE'
para = ['DESTINATARIO']
 
msg = MIMEMultipart()
msg['From'] = de
msg['To'] = ', '.join(para)
msg['Subject'] = 'Backup pfSense CLIENTE'
 
# Corpo da mensagem
msg.attach(MIMEText('Backup pfSense CLIENTE', 'html', 'utf-8'))
 
# Arquivos anexos.
adiciona_anexo(msg, '/conf/config.xml')
 
raw = msg.as_string()
 
smtp = smtplib.SMTP('MAIL_SERVER', 25)
smtp.login('EMAIL', 'SENHA')
smtp.sendmail(de, para, raw)
smtp.quit()

4 – Após criar o arquivo, vamos compilar o script para que as informações de usuário e senha não sejam visíveis para outras pessoas que acessarem o servidor, para isso execute o seguinte comando:

python2.7 -OO -c "import py_compile; py_compile.main()" envia_email.py
1
python2.7 -OO -c "import py_compile; py_compile.main()" envia_email.py

5 – Ele irá criar o arquivo compilado envia_email.pyo dentro do diretório atual.

6 – Remova o arquivo original:

rm -f envia_email.py
1
rm -f envia_email.py

7 – Instale o pacote Cron do pfSense indo em System -> Package Manager -> Available Packages

pfsense2

8 – Vá em Services -> Cron e clique em Add para adicionar uma nova entrada no agendador.

pfsense3

9 – Preencha os campos conforme a imagem abaixo e clique em Save.

pfsense4

Pronto! Agora você irá receber todos os dias às 18:30 o backup de seu servidor pfSense!

0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now