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

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

    Russian
    4
    4
    3.8k
    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

      Тем, кто периодически крутит свой 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

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

        http://ru.doc.pfsense.org

        1 Reply Last reply Reply Quote 0
        • D
          dvserg
          last edited by

          @Evgeny:

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

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

          SquidGuardDoc EN  RU Tutorial
          Localization ru_PFSense

          1 Reply Last reply Reply Quote 0
          • A
            alexandrnew
            last edited by

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

            1 Reply Last reply Reply Quote 0
            • First post
              Last post
            Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.