• Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Search
  • Register
  • Login
Netgate Discussion Forum
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Search
  • Register
  • Login

Бэкап на почту

Scheduled Pinned Locked Moved Russian
4 Posts 4 Posters 3.8k Views
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S
    Shraik
    last edited by Jul 31, 2011, 6:19 PM Jul 31, 2011, 5:38 PM

    Тем, кто периодически крутит свой pfsense, посвящается.
    Бэкап как известно хорош регулярностью. И чем дальше хранится он от сервака тем не хуже  ;D
    Поэтому я решил бэкапиться на Gmail, ибо нефиг!
    Тут меня ожидал небольшой полярный собака, нету в pfsense 1.2.3 почтаря как класса, но где наши не пропадали…

    Делай раз:
    Ставим пакадж "Stunnel" (потому как Gmail тоже собака и без SSL к нему не подъедешь)
    stunnel, тоже самка собаки, потому как в его GUI нет чудесной галки "Client mode", поэтому её можно прописать или руками в конфиг, или дорисовать в веб морду
    рисуем морду в "stunnel.xml"

    после

    		 <field><fielddescr>Outgoing source IP</fielddescr>
    			<fieldname>sourceip</fieldname>
    			<description>Enter the source IP address for outgoing connections.</description>
    			<type>input</type></field> 
    
    

    добавляем

    
    		 <field><fielddescr>Client mode</fielddescr>
    			<fieldname>clientmode</fieldname>
    			<description>Check this to enable "Client mode".</description>
    			<type>checkbox</type></field> 
    
    

    добавляем логику в stunnel.inc
    после

    	foreach($config['installedpackages']['stunnel']['config'] as $pkgconfig) {
    		fwrite($fout, "\n[" . $pkgconfig['description'] . "]\n");
    
    

    добавляем

    		if($pkgconfig['clientmode']) fwrite($fout, "client = yes" . "\n");
    

    Делай два:  
    добавляем туннель с такими параметрами

    
    Listen on IP :           127.0.0.1
    Listen on port:         25
    Certificate:              default
    Redirects to IP:        smtp.gmail.com
    Redirects to Port:     465
    Outgoing source IP:  "адрес смотрящий в инет"
    Client mode:             "отмечено"
    
    

    записываем и вуаля, туннель готов

    Делай три:
    пишем скрипт отправки на шелле.
    Gmail требует имя пользователя и пароль в кодировке BASE64, поэтому озаботимся этим заранее, например тут http://www5.rptea.com/base64/
    делаем ANSI->Base64
    ну и вот он, наш красавец, скрипт отправки

    
    #!/bin/sh
    
    SUBJECT=""
    CONTENT=""
    
    MAILSRV="127.0.0.1"
    SUBJECT="SUBJECT: Current config file: "`date +%Y" "%m" "%d`
    CONTENT="/cf/conf/config.xml"
    
    if [ -n "$SUBJECT" ]; then
        (
                sleep 1
                echo "EHLO pfsense"
                sleep 1
                echo "AUTH LOGIN"
                sleep 1
                echo "login_IN_BASE64"
                sleep 1
                echo "password_IN_BASE64"
                sleep 1
                echo "MAIL FROM:<pfs@gmail.com>"
                sleep 1
                echo "RCPT TO:<mymail@gmail.com>"
                sleep 1
                echo "DATA"
                sleep 1
                echo $SUBJECT
                sleep 1
                echo "TO:<mymail@gmail.com>"
                sleep 1
                echo " "
                cat "$CONTENT"
                sleep 1
                echo "."
                sleep 1
                echo "QUIT"
        ) | telnet $MAILSRV 25
    fi
    
    exit</mymail@gmail.com></mymail@gmail.com></pfs@gmail.com> 
    

    кидаем в папочку рута или куда там положено кидать выполняемые скрипты и делаем это добро выполняемым.
    Делай четыре:
    Ставим пакадж "Cron"  и у нас появится возможность нарисовать задание на выполнение нашей прелести скажем раз в неделю.
    особым шиком я считаю не ставить этот пакадж и в консоли штатными средствами "crontab -e" используя чудо редактор vi, прописать
    нужное нам расписание.

    ну и на последок, на Gmail-e делаем правило сортировки по содержимому типа "Current config file:" -> кидать в папочку "ххх"
    и нехай оно там тухнет :)

    В заключение:
    Вот такой набор костылей у меня получился. Во второй версии сенса почтовый агент уже добавлен, так что всё будет сильно проще.
    Да и делалось это больше "Just for fun"

    Использованная литература:
    Google по словам и сочетаниям: gmail stunnel pfsense smtp telnet

    1 Reply Last reply Reply Quote 0
    • E
      Eugene
      last edited by Aug 1, 2011, 5:25 AM Jul 31, 2011, 10:42 PM

      Красиво пишешь. Спасибо. Добавь это дело в вики пожалуйста и… пиши ещё -)

      http://ru.doc.pfsense.org

      1 Reply Last reply Reply Quote 0
      • D
        dvserg
        last edited by Aug 1, 2011, 5:26 AM

        @Evgeny:

        Красиво пишешь. Спасибо. Добавь это дело в вики пожалуйста и… пиши ещё -)

        +500
        Вот побольше бы таких авторов. :)

        SquidGuardDoc EN  RU Tutorial
        Localization ru_PFSense

        1 Reply Last reply Reply Quote 0
        • A
          alexandrnew
          last edited by Aug 1, 2011, 5:28 AM

          Спасибо! молодчина!

          1 Reply Last reply Reply Quote 0
          3 out of 4
          • First post
            3/4
            Last post
          Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.
            This community forum collects and processes your personal information.
            consent.not_received