SourceFiles.org - Use the Source, Luke
Home | Register | News | Forums | Guide | MyLinks | Bookmark

Sponsored Links

Latest News
  General News
  Reviews
  Press Releases
  Software
  Hardware
  Security
  Tutorials
  Off Topic


Back to files

smtp_wrapper-0.3 -- SMTP filtering support daemon Copyright (C) 2006 Masahiko Ito

These programs is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

These programs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with these programs; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

Mail suggestions and bug reports for these programs to "Masahiko Ito" <m-ito@myh.no-ip.org>

History

2005/11/25 Develop started
2006/01/23 Ver. 0.1 release (1st)
2006/05/15 Ver. 0.2 release
2006/05/24 Ver. 0.3 release

What's this ?

¼ç¤ËspamÂкö¤È¤·¤Æsmtp server¤È¼«ºî¤Îspam¥Á¥§¥Ã¥&hibar;¥¹¥&hibar;¥ê¥×¥È¤òÏ¢·¸¤µ ¤»¤ë¤¿¤á¤Î¥Ç¡¼¥â¥ó¥×¥í¥°¥é¥à¤Ç¤¹¡£

spamÂкö¤È¤·¤Æ¤Ï´û¤Ë¤¤¤&hibar;¤Ä¤«¤ÎÄêÈÖŪ¼êË¡¤¬³ÎΩ¤·¤Æ¤¤¤Þ¤¹¡£¥&hibar;¥é¥¤¥¢¥ó ¥È¦¤«¤é¤Î¥¢¥×¥í¡¼¥Á¤È¤·¤Æ¤Ï¥Ù¥¤¥ºÍýÏÀ¤òÍøÍѤ·¤¿¥Õ¥£¥ë¥¿¥×¥í¥°¥é¥à + procmail¤ÎÁȹ礻¤Ç¤¢¤Ã¤¿¤ê¡¢¥µ¡¼¥Ð¦¤«¤é¤Î¥¢¥×¥í¡¼¥Á¤È¤·¤Æ¤ÏMILTERÂÐ ±þ¤·¤¿Æ±ÍͤΥե£¥ë¥¿ + sendmail¤ÎÁȹ礻¤Ç¤¢¤Ã¤¿¤ê¤¹¤ë¤è¤¦¤Ç¤¹¡£

¥Ù¥¤¥ºÍýÏÀ¤òÍøÍѤ·¤¿¥Õ¥£¥ë¥¿¤Ï¼ÂºÝ¡¢Èó¾ï¤Ë¸ú²Ì¤¬¤¢¤ê¤Þ¤¹¡£¤¿¤À¤·¡¢³Ø ½¬¸ú²Ì¤òÀѤ߽ŤͤƹԤ&hibar;¤¦¤Á¤Ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤¬ÈîÂç²½¤·¤Æ¤¤¤­¡¢½ù¡¹¤Ëư¤­ ¤¬½Å¤&hibar;¤Ê¤Ã¤ÆÍè¤ë¤è¤¦¤Êµ¤¤¬¤·¤Þ¤¹¡£¤½¤ó¤Ê¤ª¤ê¡¢¥¦¥§¥Ö¾å¤Ç°Ê²¼¤Î¾ðÊó¤ò ¸«¤Ä¤±¤Þ¤·¤¿¡£

¾åµ­¤Î¥Ú¡¼¥¸ÆâÍÆ¤ò¼«Ê¬¤Ê¤ê¤ËÍ×Ìó¤·¤¿·ë²Ì¡¢

  • Àܳ¸µIP¤¬DNS¤ÎµÕ°ú½ÐÍè¤Ê¤±¤ì¤ÐµñÈÝ -> µÕ°ú½ÐÍè¤Ê¤¤SMTP¥µ¡¼¥Ð¤«¤é¤Î¥á¡¼¥ë¤Î¿¤&hibar;¤Ïspam¤Ç¤¢¤ë¡£
  • Àܳ¸µIP¤¬DNS¤ÎµÕ°ú·ë²Ì(FQDN)¤«¤éưŪIP¤ÈÎà¿ä¤µ¤ì¤ë¾ì¹ç¤ÏµñÈÝ -> ưŪIP¤ò»ý¤Ã¤¿SMTP¥µ¡¼¥Ð¤«¤é¤Î¥á¡¼¥ë¤Î¿¤&hibar;¤Ïspam¤Ç¤¢¤ë¡£
  • ÀܳÍ×µá¤ËÂФ·¤Æ¡¢°ìÄê»þ´ÖÀܳ¤òÃٱ䤵¤»¤ë -> spam¤òÁ÷¿®¤¹¤ëSMTP¥µ¡¼¥Ð¤Î¿¤&hibar;¤ÏÂçÎ̤«¤Ä¹â®¤Ë¥á¡¼¥ëÇÛ¿®¤¹¤ë¤³

    ¤È¤òÂè°ìÌÜŪ¤È¤·¤Æ¤ª¤ê¡¢±þÅú¤ÎÆß¤¤¥µ¡¼¥Ð¤ËÂФ·¤Æ¤ÏÁ᡹¤ËÇÛ¿®¤ò Äü¤á¤ÆÀܳ¤òÀÚÃǤ¹¤ë·¹¸þ¤ËÍ­¤ë¡£

¤È¤¤¤¦3¼êË¡¤Î¤ß¤Ç¤â¡¢¤«¤Ê¤ê¹â¤¤³ÎΩ¤Çspam¤òÇÓ½ü¤Ç¤­¤ë¤Î¤Ç¤Ï¤Ê¤¤¤«¤È ¹Í¤¨¤Þ¤·¤¿¡£¤·¤«¤â¡¢¾åµ­¤ÎÊýË¡¤Ï¥á¡¼¥ëÆâÍÆ¤½¤Î¤â¤Î¤ÏȽÃǤ·¤Ê¤¤¤Î¤Ç¡¢ ¥Á¥§¥Ã¥&hibar;¤Ë¤«¤«¤ëÉé²Ù¤âÈó¾ï¤Ë·Ú¤¤¤³¤È¤¬Í½ÁÛ¤µ¤ì¤Þ¤¹¡£

¤Ç¡¢¼ÂºÝ¤Ë¤É¤Î¤è¤¦¤Ë¼ÂÁõ¤¹¤ë¤«¤È¤¤¤¦¤³¤È¤Ë¤Ê¤ë¤È¡¢¾åµ­¤Î¥Ú¡¼¥¸¤Ç¤ÏMTA ¤¬postfix¤Þ¤¿¤Ïqmail¤Ç¤¢¤ë»ö¤¬Á°Äó¤È¤Ê¤ëÀâÌÀ¤¬¤µ¤ì¤Æ¤¤¤Æ¡¢sendmail¤È ¤ÎÁȹ礻¤È¤Ê¤ë¤È¼«ÎϤǤʤó¤È¤«¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤è¤¦¤Ç¤¹¡£

Àµ¹¶Ë¡¤Ç¹Ô¤&hibar;¤Ê¤é¡¢MILTER¤òÍøÍѤ·¤¿¥Õ¥£¥ë¥¿¤òºîÀ®¤¹¤ë¤Ù¤­¤Ç¤·¤ç¤¦¡£¤ª ¤½¤é¤&hibar;ºÇ¤â¹â¤¤¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤Çspam¥Á¥§¥Ã¥&hibar;¤ò¤³¤Ê¤·¤Æ¤&hibar;¤ì¤ë¤È»×¤¤¤Þ¤¹¡£

MILTER¤òÍøÍѤ¹¤ë¤Ë¤Ïlibmilter¤òÍøÍѤ·¤ÆC¸À¸ì¤Ç¥Õ¥£¥ë¥¿¤òºîÀ®¤·¤Þ¤¹¡£ ¥É¥­¥å¥á¥ó¥È¤Ïsendmail¤Î¥½¡¼¥¹¥Ç¥£¥ì¥&hibar;¥È¥êÃæ¤Îlibmilter/docs/°Ê²¼¤Ë Í­¤ê¤Þ¤¹¤Î¤Ç¡¢¤½¤ì¤ò»²¹Í¤Ëºî¶È¤·¤Þ¤¹.....¤¬¡¢¤´¤á¤ó¤Ê¤µ¤¤¡£»ä¤Ë¤Ï MILTER¤òÍý²ò¤·¤Æ¥Õ¥£¥ë¥¿¤ò½ñ¤&hibar;¤³¤È¤¬½ÐÍè¤Þ¤»¤ó¡¢¤È¤¤¤¦¤«¥É¥­¥å¥á¥ó ¥È¤òÆÉ²ò¤¹¤ëµ¤ÎϤ¬¤¢¤ê¤Þ¤»¤ó¤Ç¤·¤¿(^_^;¡£¤Ç¤¹¤Î¤ÇÊ̤Υ¢¥×¥í¡¼¥Á¤Ç ¼ÂÁõ¤¹¤ë¤³¤È¤Ë¤·¤Þ¤·¤¿¡£

¼ÂÁõ¤¹¤ë¤ËÅö¤¿¤Ã¤Æ°Ê²¼¤ÎÅÀ¤Ëα°Õ¤·¤Þ¤·¤¿¡£

  • ¥Õ¥£¥ë¥¿¤Ï¤½¤³¤¤¤é¤Î¥¹¥&hibar;¥ê¥×¥È¸À¸ì(sh, perl, ruby ...)¤Ç½ñ¤­¤¿¤¤¡£
  • ¤É¤¦¤»¤Ê¤éspam¥Á¥§¥Ã¥&hibar;°Ê³°¤Îµ¡Ç½¤â´Êñ¤ËÀ¹¤ê¹þ¤á¤ë¤è¤¦¤Ë¤·¤Æ¤ª¤­ ¤¿¤¤¡£
  • ¥Õ¥£¥ë¥¿¤Ï¡Ö¥Õ¥£¥ë¥¿¡×¤Á¤å¤¦¤°¤é¤¤¤Ç¤¹¤«¤éɸ½àÆþÎϤòÆÉ¤ó¤Ç¡¢·ë²Ì ¤òɸ½à½ÐÎϤ˽ÐÎϤ¹¤ë¤À¤±¤Çµ¡Ç½¤¹¤ë¤è¤¦¤Ë¤·¤¿¤¤¡£

¤È¤ê¤¢¤¨¤º»Ö¤ÏÄã¤&hibar;¡¢¾åµ­¤Î3ÅÀ¤ò¼Â¸½¤¹¤ë¤¿¤á¤Ësmtp proxyŪ¤Ê¥Ç¡¼¥â¥ó ¤òºî¤Ã¤Æ¤ß¤Þ¤·¤¿¡£

Install

  • cd /usr/local/
  • tar xvzf smtp_wrapper-0.3.tar.gz
  • ln -sf smtp_wrapper-0.3 smtp_wrapper
  • cd smtp_wrapper
  • cc -o smtp_wrapper smtp_wrapper.c
  • vi smtp_filter1.sh # ¥Õ¥£¥ë¥¿¤Ï³Æ¼«¤ÇÍѰդ·¤Æ²¼¤µ¤¤(for ip_filter)
  • vi smtp_filter2.sh # ¥Õ¥£¥ë¥¿¤Ï³Æ¼«¤ÇÍѰդ·¤Æ²¼¤µ¤¤(*ɬ¿Ü*)(for contents_filter)
  • chmod +x smtp_filter[12].sh
  • smtp_wrapper -h

    Usage : smtp_wrapper [-mh hostname] [-mp port] [-q backlog]

    [-sh smtpserver_hostname] [-sp smtpserver_port] [-t timeout_sec] [-d delay_sec] [-if ip_filter] [-f contents_filter] [-cm child_max] [-i minimum_interval_sec] [-F] -mh hostname : my hostname [ANY] -mp port : my port [25] -q backlog : socket queue number [5] -sh smtpserver_hostname : real smtp hostname [localhost] -sp smtpserver_port : real smtp port [8025] -t timeout_sec : timeout second [no timeout] -d delay_sec : delay second for initial connection [0] -if ip_filter : filter program for IP check [/usr/local/smtp_wrapper/smtp_ip_filter] -f contents_filter : filter program for contents check [/usr/local/smtp_wrapper/smtp_contents_filter] -cm child_max : max number of connection to real smtp daemon [10] -i minimum_interval_sec : minimum interval second of connection from same ip address [0] -F : run in foreground

sendmail¤ÎÀßÄê

  • vi sendmail.mc °Ê²¼¤ÎÄêµÁ¤òÄɲà DAEMON_OPTIONS(`Port=8025, Name=MTA')dnl
  • vi submit.mc °Ê²¼¤ÎÄêµÁ¤òÄɲà DAEMON_OPTIONS(`Port=8025, Name=NoMTA, Addr=127.0.0.1, M=E')dnl
  • sendmail.cf, submit.cf¤ò¹¹¿·

sendmail.cf¤Ë°Ê²¼¤Î¹Ô¤¬Äɲäµ¤ì¤Æ¤¤¤ë»ö¤ò³Îǧ

O DaemonPortOptions=Port=8025, Name=MTA

submit.cf¤Ë°Ê²¼¤Î¹Ô¤¬Äɲäµ¤ì¤Æ¤¤¤ë»ö¤ò³Îǧ

O DaemonPortOptions=Port=8025, Name=NoMTA, Addr=127.0.0.1, M=E

µ&hibar;ư

  • vi /etc/rc.d/rc.local

    if [ -x /usr/local/smtp_wrapper/smtp_wrapper ] then

    /usr/local/smtp_wrapper/smtp_wrapper \

    -t 60 \ -d 10 \ -if /usr/local/smtp_wrapper/smtp_filter1.sh \ -f /usr/local/smtp_wrapper/smtp_filter2.sh \ -cm 10 \ -i 5 echo ' smtp_wrapper' fi

  • reboot

Figure

            +-----------------------------------------------------------+
            |                                                           |
            |                                                           |
 +-----+ command  +------------------+  command   +----------------+    |
 |     |--------->|(1)            [2]|----------->|                |    |
 | MTA |SOCKET(25)|   smtp_wrapper   |SOCKET(8025)|       MTA      |    |
 |(MUA)|<---------|[1]            (2)|<-----------| (sendmail etc) |    |
 |     | response |                  |  response  +----------------+    |
 +-----+    |     |     (3)  [3]     |                                  |
            |     +------+----+------+                                  |
            |            A P  |                                         |
            |            | I  |                                         |
            |            | P  |                                         |
            |            | E  |                                         |
            |   (stdout) |    V (stdin)                                 |
            |          +--------+                                       |
            |          |   IP   |--------+                              |
            |          | FILTER |CONTENTS|                              |
            |          |        | FILTER |                              |
            |          +--------+        |                              |
            |                  +---------+                              |
            |                                                           |
            +-----------------------------------------------------------+
  • smtp_wrapper(¿Æ)¤¬ËÜÍè¤ÎMTA¤ËÂå¤Ã¤Æsmtp(25)¥Ý¡¼¥È¤Ø¤ÎÀܳ¤ò´Æ»ë¤·¤Þ¤¹¡£
  • Àܳ¤ò¼õ¤±¤¿smtp_wrapper(¿Æ)¤Ï¡¢º£¸½ºß²ÔÆ&hibar;¤·¤Æ¤¤¤ësmtp_wrapper(»Ò)¤Î ¿ô¤¬`-mc'¥ª¥×¥·¥ç¥ó¤Ç»ØÄꤷ¤¿¿ô¤ò±Û¤¨¤Æ¤¤¤ë¾ì¹ç¡¢¤½¤Î¿ô¤¬`-mc'¥ª¥×¥·¥ç ¥ó¤Î»ØÄêÃͤÎ2ʬ¤Î1°Ê²¼¤Ë¤Ê¤ë¤Þ¤Ç`-d'¥ª¥×¥·¥ç¥ó¤Ç»ØÄꤷ¤¿Éÿô¤Îsleep¤ò ·«¤êÊÖ¤·¤Þ¤¹¡£
  • Ʊ°ìIP¤«¤é¤ÎϢ³¤·¤¿Àܳ¤ËÂФ·¤Æ¡¢¤½¤ÎÀܳ´Ö³Ö¤¬`-i'¥ª¥×¥·¥ç¥ó¤Ç»ØÄê ¤·¤¿Éÿô¤è¤ê¤âû¤¤¾ì¹ç¤Ï¡¢¤½¤ÎÀܳ¤ËÂФ·¤Æ°ì»þ¥¨¥é¡¼(421)¤òÊÖ¤·Àܳ¤ò ÊĤ¸¤Þ¤¹¡£
  • smtp_wrapper(¿Æ)¤Ï»Ò¥×¥í¥»¥¹(smtp_wrapper(»Ò))¤òÀ¸À®¤·¡¢°Ê¹ß¤ÎÀܳ¸µ ¤È¤ÎÄÌ¿®¤ò»Ò¥×¥í¥»¥¹¤Ë¤Þ¤«¤»¡¢ºÆÅÙsmtp(25)¥Ý¡¼¥È¤Î´Æ»ë¤ò·«¤êÊÖ¤·¤Þ¤¹¡£
  • smtp_wrapper(»Ò)¤Ï`-d'¥ª¥×¥·¥ç¥ó¤Ç»ØÄꤷ¤¿Éÿôsleep¤·¤¿¸å¤ËÀܳ¸µ¤È ¤ÎÄÌ¿®¤ò³«»Ï(greeting messageÁ÷½Ð)¤·¤Þ¤¹¡£
  • smtp_wrapper(»Ò)¤ÏÀܳ¸µ¤ÎIP¥¢¥É¥ì¥¹¤ò´Ä¶­ÊÑ¿ô`SW_FROM_IP'¤ËÀßÄꤷ¤¿ ¤Î¤Á`-if'¥ª¥×¥·¥ç¥ó¤Ç»ØÄꤷ¤¿¥Õ¥£¥ë¥¿¥×¥í¥°¥é¥à¤òfork&exec¤·¤Þ¤¹¡£¤³ ¤Î¥Õ¥£¥ë¥¿¥×¥í¥°¥é¥à¤Ë¤Ï´Ä¶­ÊÑ¿ô`SW_FROM_IP'¤Î¾ðÊó¤ò¸µ¤Ë¤·¤¿¥Á¥§¥Ã¥&hibar; ¤ò¹Ô¤ï¤»¤Þ¤¹¡£¤½¤ÎºÝ¡¢¤³¤Î¥Õ¥£¥ë¥¿¥×¥í¥°¥é¥à¤Îɸ½àÆþÎϤËÂФ·¤Æ¤Ï°ìÀÚ ¥Ç¡¼¥¿¤ÏÅϤµ¤ì¤Ê¤¤¤Î¤Ç¡¢¥³¥ó¥Æ¥ó¥Ä¤ÎÆâÍÆ¤òÍøÍѤ·¤¿¥Á¥§¥Ã¥&hibar;¤Ï½ÐÍè¤Þ¤» ¤ó¡£

    ¥Õ¥£¥ë¥¿¥×¥í¥°¥é¥à¤Ë¤Ï¡¢ÀµÅö¤ÊÀܳ¤ËÂФ·¤Æ¤Ï`OK'¤Þ¤¿¤Ï`ok'¤Þ¤¿¤Ï`'(¶õ ʸ»úÎó)¤òɸ½à½ÐÎϤ˽ÐÎϤµ¤»¡¢ÉÔÀµ¤ÊÀܳ¤ËÂФ·¤Æ¤Ï`OK',`ok'°Ê³°¤Î¥á¥Ã¥»¡¼ ¥¸¤òɸ½à½ÐÎϤ˽ÐÎϤµ¤»¡¢½ªÎ»¤µ¤»¤Þ¤¹¡£

  • smtp_wrapper(»Ò)¤Ï¥Õ¥£¥ë¥¿¥×¥í¥°¥é¥à¤«¤é¤Î¥á¥Ã¥»¡¼¥¸¤¬`OK',`ok'°Ê³°¤Î ʸ»úÎó¤Ç»Ï¤Þ¤Ã¤Æ¤¤¤¿¾ì¹ç¡¢¤½¤ì¤òÉÔÀµ¤ÊÀܳ¤È¤ß¤Ê¤·¡¢Àܳ¸µ¤Ë`450'¤Ç»Ï ¤Þ¤ë°ì»þ¥¨¥é¡¼±þÅú¤òÊÖ¤·¤Þ¤¹¡£¥Õ¥£¥ë¥¿¥×¥í¥°¥é¥à¤Î¥Á¥§¥Ã¥&hibar;¤òÄ̲ᤷ¤¿¸å¡¢ ËÜÍè¤ÎMTA¤ËÂФ·¤ÆÀܳ¤ò³«»Ï¤·¡¢`-f'¥ª¥×¥·¥ç¥ó¤Ç»ØÄꤷ¤¿¥Õ¥£¥ë¥¿¥×¥í¥° ¥é¥à¤òfork&exec¤·¤Þ¤¹¡£
  • smtp_wrapper(»Ò)¤ÏÀܳ¸µ¤«¤é¤Î¥á¥Ã¥»¡¼¥¸¤Î¤¦¤Á`HELO'¡¢`MAIL FROM:'¡¢ `RCPT TO:'Åù¤Î`DATA'¥³¥Þ¥ó¥É¤Þ¤Ç¤Î¥á¥Ã¥»¡¼¥¸¤òËÜÍè¤ÎMTA(¾å¿Þ¤Ç¤Ï¡¢ÂÔ¤Á ¼õ¤±¥Ý¡¼¥È¤ò8025¤ËÊѹ¹)¤È¥Õ¥£¥ë¥¿¥×¥í¥°¥é¥à¤ËÅϤ·¡¢MTA¤«¤é¤Î±þÅú¥á¥Ã¥»¡¼ ¥¸¤òÀܳ¸µ¤ËÅϤ·¤Þ¤¹¡£¤½¤Î¸å`DATA'¤«¤é`.'¤Þ¤Ç¤ò¥Õ¥£¥ë¥¿¥×¥í¥°¥é¥à¤Î¤ß ¤ËÅϤ·¤¿¸å¡¢¥Õ¥£¥ë¥¿¥×¥í¥°¥é¥à¤«¤é¤Î±þÅú(¥Á¥§¥Ã¥&hibar;·ë²Ì)¤òÂÔ¤Á¤Þ¤¹¡£
  • ¥Õ¥£¥ë¥¿¥×¥í¥°¥é¥à¤Ë¤Ïɸ½àÆþÎϤ«¤é¼õ¤±ÅϤµ¤ì¤¿¥á¥Ã¥»¡¼¥¸ËÜʸ¤«¤éÀµÅö¤Ê ¥á¥Ã¥»¡¼¥¸¤«ÉÔÅö¤Ê¥á¥Ã¥»¡¼¥¸¤«¤òȽÃǤ·¡¢ÀµÅö¤Ê¥á¥Ã¥»¡¼¥¸¤ÈȽÃǤ·¤¿¾ì¹ç ¤Ï¼õ¤±ÅϤµ¤ì¤¿¥á¥Ã¥»¡¼¥¸¤Î¤¦¤Á`DATA<CR><LF>'¤«¤é`.<CR><LF>'¤Þ¤Ç¤òɸ½à½Ð ÎϤ˽ÐÎϤµ¤»¤Þ¤¹¡£¤Þ¤¿ÉÔÀµ¥á¥Ã¥»¡¼¥¸¤ÈȽÃǤ·¤¿¾ì¹ç¤Ïľ¤Á¤Ë½ªÎ»¤¹¤ë¤«¡¢ `DATA<CR><LF>'°Ê³°¤Ç»Ï¤Þ¤ë¥á¥Ã¥»¡¼¥¸¤òɸ½à½ÐÎϤ˽ÐÎϤ·¤¿¸å¡¢½ªÎ»¤µ¤»¤Þ ¤¹¡£
  • smtp_wrapper(»Ò)¤Ï¥Õ¥£¥ë¥¿¥×¥í¥°¥é¥à¤«¤é¤Î¥á¥Ã¥»¡¼¥¸¤¬`DATA<CR><LF>'¤Ç »Ï¤Þ¤Ã¤Æ¤¤¤¿¾ì¹ç¡¢¤½¤ì¤òÀµÅö¤Ê¥á¥Ã¥»¡¼¥¸¤È¤ß¤Ê¤·¡¢ËÜÍè¤ÎMTA¤Ë¼õ¤±ÅϤ·¤Þ ¤¹¡£¤Þ¤¿¥á¥Ã¥»¡¼¥¸¤¬`DATA<CR><LF>'°Ê³°¤Ç»Ï¤Þ¤Ã¤Æ¤¤¤¿¾ì¹ç¡¢¤½¤ì¤òÉÔÀµ¤Ê ¥á¥Ã¥»¡¼¥¸(spam)¤È¤ß¤Ê¤·¡¢Àܳ¸µ¤Ë`450'¤Ç»Ï¤Þ¤ë°ì»þ¥¨¥é¡¼±þÅú¤òÊÖ¤·¤Þ¤¹¡£
  • °Ê¹ß¡¢smtp_wrapper(»Ò)¤ÏÀܳ¸µ¤«¤é`QUIT<CR><LF>'¤ò¼õ¤±¼è¤ë¤Þ¤Ç¡¢¤Þ¤¿¤Ï Àܳ¸µ<->smtp_wrapper(»Ò)´Ö¤Î¥³¥Í¥&hibar;¥·¥ç¥ó¤¬ÀÚÃǤµ¤ì¤ë¤Þ¤Ç¡¢¤Þ¤¿¤Ï smtp_wrapper(»Ò)<->ËÜÍè¤ÎMTA´Ö¤Î¥³¥Í¥&hibar;¥·¥ç¥ó¤¬ÀÚÃǤµ¤ì¤ë¤Þ¤Ç¾åµ­¤Îưºî ¤ò·«¤êÊÖ¤·¤Þ¤¹¡£

spamÂкöµ¡Ç½(¤Î¤Þ¤È¤á)

  • `-i'¥ª¥×¥·¥ç¥ó¤Ç»ØÄꤷ¤¿Éÿô̤Ëþ¤Î´Ö³Ö¤Ç¤Î¡¢Æ±°ìIP¤«¤é¤Î¥¢¥&hibar;¥»¥¹¤òµñÈݤ¹¤ë¡£ Àܳ¸µ¤Ë¤Ï°Ê²¼¤Î¥á¥Ã¥»¡¼¥¸¤òÊÖ¤¹¡£

    421 Service not available, closing transmission channel(rejected by rapidly access. IP=%s)(SW01)\r\n

  • `-if'¥ª¥×¥·¥ç¥ó¤Ç»ØÄꤷ¤¿¥Õ¥£¥ë¥¿¤Ë¤è¤êÉÔÀµ¤ÈȽÃǤµ¤ì¤¿¾ì¹ç¡¢¥¢¥&hibar;¥»¥¹¤òµñÈÝ ¤¹¤ë¡£ Àܳ¸µ¤Ë¤Ï°Ê²¼¤Î¥á¥Ã¥»¡¼¥¸¤òÊÖ¤¹¡£

    450 This message was rejected according to site policy(rejected by ip_filter. IP=%s)(SW02)\r\n

  • SMTP¥³¥Þ¥ó¥É¤ÎÁ÷¼õ¿®½ç½ø¤ò̵»ë¤·¤¿¥¢¥&hibar;¥»¥¹¤òµñÈݤ¹¤ë¡£`-d'¥ª¥×¥·¥ç¥ó»ØÄê¤Ë ¤è¤êÃٱ䤵¤»¤¿greeting message¤òÂÔ¤ÁÀڤ줺¤Ë¡¢¤ª¤½¤é¤&hibar;¿¤&hibar;¤Îspammer¤¬¥á¥Ã ¥»¡¼¥¸¤òÁ÷¤êÉÕ¤±¤ÆÍè¤ë¡£¤³¤ì¤ò·âÂह¤ë¡£ Àܳ¸µ¤Ë¤Ï°Ê²¼¤Î¥á¥Ã¥»¡¼¥¸¤òÊÖ¤¹¡£

    450 This message was rejected according to site policy(rejected by seq error. IP=%s)(SW05)\r\n

  • `-f'¥ª¥×¥·¥ç¥ó¤Ç»ØÄꤷ¤¿¥Õ¥£¥ë¥¿¤Ë¤è¤êÉÔÀµ¤ÈȽÃǤµ¤ì¤¿¾ì¹ç¡¢¼õ¿®¤òµñÈݤ¹¤ë¡£ Àܳ¸µ¤Ë¤Ï°Ê²¼¤Î¥á¥Ã¥»¡¼¥¸¤òÊÖ¤¹¡£

    450 This message was accepted partly, but it was rejected according to site policy(rejected by contents_filter. IP=%s)(SW09)\r\n 450 This message was accepted all, but it was rejected according to site policy(rejected by contents_filter. IP=%s)(SW10)\r\n

Filter

`-if'¤Ç»ØÄꤹ¤ë¥Õ¥£¥ë¥¿¤Î´ðËÜŪ¤Ê¹½Â¤¤Ï°Ê²¼¤Î¤è¤¦¤ËºîÀ®¤·¤Æ¤&hibar;¤À¤µ¤¤¡£

  • ¼ç¤ËÀܳ¸µ¤ÎIP¥¢¥É¥ì¥¹¤ËÂФ¹¤ë¥Á¥§¥Ã¥&hibar;¤ò¹Ô¤¤¤Þ¤¹(S25R)¡£
  • ´Ä¶­ÊÑ¿ô`SW_FROM_IP'¤ËÀßÄꤵ¤ì¤Æ¤¤¤ëÀܳ¸µ¤ÎIP¤ª¤è¤ÓIP¤«¤é µÕ°ú¤·¤¿FQDN¤ò¥Á¥§¥Ã¥&hibar;¤·¡¢ÀµÅö¤ÊÀܳ¤ÈȽÃǤ·¤¿¤Ê¤éstdout¤Ë ²¿¤â½ÐÎϤ»¤º¤Ëexit¤·¤Æ²¼¤µ¤¤(ÌÀ¼¨Åª¤ËÀµÅö¤Ç¤¢¤ë»ö¤ò¼¨¤·¤¿¤¤ ¾ì¹ç¤Ï`OK'¤Þ¤¿¤Ï`ok'¤ò½ÐÎϤ·exit¤¹¤ë»ö¤â²Äǽ)

    ÉÔÀµ¤ÊÀܳ¤ÈȽÃǤ·¤¿¤Ê¤é¡¢stdout¤Ë`OK', `ok'°Ê³°¤Ç»Ï¤Þ¤ë¥á¥Ã ¥»¡¼¥¸¤ò½ÐÎϤ·exit¤·¤Æ²¼¤µ¤¤¡£¤³¤Îstdout¤Ë½ÐÎϤ·¤¿¥á¥Ã¥»¡¼¥¸ ¤Ïsyslog·Ðͳ(mail.info)¤Çµ­Ï¿¤µ¤ì¤Þ¤¹¡£

  • Í×Ìó

    ÀµÅö¤ÊÀܳ»þ : stdout¤Ë¤Ï²¿¤â½ÐÎϤ»¤º¤Ë½ªÎ»¤¹¤ë(`OK', `ok'¤ò

    ½ÐÎϤ¹¤ë»ö¤â²Äǽ)¡£ ÉÔÀµ¤ÊÀܳ»þ : `OK', `ok'°Ê³°¤Ç»Ï¤Þ¤ë¥á¥Ã¥»¡¼¥¸¤òstdout¤Ë½Ð

    ÎϤ·¤Æ½ªÎ»¤¹¤ë¡£

`-f'¤Ç»ØÄꤹ¤ë¥Õ¥£¥ë¥¿¤Î´ðËÜŪ¤Ê¹½Â¤¤Ï°Ê²¼¤Î¤è¤¦¤ËºîÀ®¤·¤Æ¤&hibar;¤À¤µ¤¤¡£

  • ¼ç¤Ë¥³¥ó¥Æ¥ó¥ÄÆâÍÆ¤ËÂФ¹¤ë¥Á¥§¥Ã¥&hibar;¤ò¹Ô¤¤¤Þ¤¹(Âè»°¼Ô¥ê¥ì¡¼¥Á¥§¥Ã¥&hibar;)¡£
  • *ɬ¤º*¡¢°ìöstdin¤«¤é¤ÎÆþÎϤòÁ´¤Æ¥Æ¥ó¥Ý¥é¥ê¥Õ¥¡¥¤¥ë¤Ë½ñ¤­½Ð ¤·¤Æ²¼¤µ¤¤¡£Ä̾ïstdin¤«¤é¤Ï

`HELO ...<CR><LF>'¤Þ¤¿¤Ï`MAIL FROM: ...<CR><LF>' -> ¤¤¤&hibar;¤Ä¤«¤ÎSMTP¥³¥Þ¥ó¥É
-> `DATA<CR><LF>'
-> ¥á¡¼¥ëËÜʸ
-> `.<CR><LF>'

¤Î½ç¤Ç¥Ç¡¼¥¿¤¬Æþ¤Ã¤ÆÍè¤ë¤Ç¤·¤ç¤¦...¡£

  • ¥Æ¥ó¥Ý¥é¥ê¥Õ¥¡¥¤¥ë¤Ë½ñ¤­½Ð¤·¤¿¥Ç¡¼¥¿¤ò¥Á¥§¥Ã¥&hibar;¤·¡¢ÉÔÀµÀܳ ¤ÈȽÃǤ·¤¿¤Ê¤éexit¤·¤Æ¤&hibar;¤À¤µ¤¤¡£¤Þ¤¿¡¢exitľÁ°¤Ëstdout¤Ë½Ð ÎϤ·¤¿ÆâÍÆ¤ÎºÇ½é¤Î1¹Ô¤¬syslog·Ðͳ(mail.info)¤Çµ­Ï¿¤µ¤ì¤Þ¤¹¡£ ¤½¤ÎºÝ¤Î½ÐÎϤˤÏ`DATA<CR><LF>'¤ò´Þ¤á¤Ê¤¤¤Ç²¼¤µ¤¤(smtp_wrapper ¤¬ÀµÅö¤Ê¥á¡¼¥ë¤È¸íȽÃǤ·¤Æ¤·¤Þ¤¦¤Î¤Ç)¡£
  • *ɬ¤º*¡¢¾å½Ò¤Î¥Æ¥ó¥Ý¥é¥ê¥Õ¥¡¥¤¥ëÃæ¤Î`RCPT TO:'¤ÎÆâÍÆ¤È´Ä¶­ ÊÑ¿ô`SW_FROM_IP'¤ÎÆâÍÆ¤«¤éÉÔÀµ¥ê¥ì¡¼(Âè»°¼Ô¥ê¥ì¡¼)¤ò¥Á¥§¥Ã ¥&hibar;¤·¡¢ÉÔÀµÀܳ¤ÈȽÃǤ·¤¿¤Ê¤éexit¤·¤Æ¤&hibar;¤À¤µ¤¤¡£

    smtp_wrapper¤òÍøÍѤ¹¤ë¤È(¤ª¤½¤é¤&hibar;)sendmail¤Ç¤Î/etc/mail/access Åù¤òÍѤ¤¤¿Âè»°¼Ô¥ê¥ì¡¼¥Á¥§¥Ã¥&hibar;¤¬¸ú¤«¤Ê¤&hibar;¤Ê¤ê¤Þ¤¹¡£sendmail ¤«¤é¸«¤ë¤ÈÀܳ¤·¤ÆÍè¤ë¥µ¡¼¥Ð¤ÏÁ´¤Æ¼«Ê¬¼«¿È(smtp_wrapper)¤Ê ¤Î¤ÇȽÃǤΤ·¤è¤¦¤¬Ìµ¤¤¤¿¤á¤Ç¤¹ :-P

  • ɬÍפ˱þ¤¸¤Æ¡¢¤½¤Î¾¤Î¥Á¥§¥Ã¥&hibar;(spam,virus etc)¤ò¹Ô¤¤¡¢ÉÔÀµ Àܳ¤ÈȽÃǤ·¤¿¤Ê¤éexit¤·¤Æ¤&hibar;¤À¤µ¤¤¡£
  • ɬÍפ˱þ¤¸¤Æ¡¢¤½¤Î¾¤ÎɬÍפʽèÍý(¥Ø¥Ã¥À¡¼ÁÞÆþ¡¢ÆâÍÆ²þãâ¡¢ ¶ËÈëÊݸÅù)¤ò¹Ô¤Ã¤Æ²¼¤µ¤¤ B-)
  • ºÇ½ªÅª¤Ë¡¢ÀµÅö¤ÊÀܳ¤ÈȽÃǤµ¤ì¤¿¤Ê¤é¡¢¾å½Ò¤Î¥Æ¥ó¥Ý¥é¥ê¥Õ¥¡ ¥¤¥ë¤«¤é

`DATA<CR><LF>'
-> ¥á¡¼¥ëËÜʸ
-> `.<CR><LF>'

¤òstdout¤Ë½ÐÎϤ·exit¤·¤Æ¤&hibar;¤À¤µ¤¤¡£

  • Í×Ìó

    ÀµÅö¤ÊÀܳ»þ : `DATA<CR><LF>' -> ¥á¡¼¥ëËÜʸ -> `.<CR><LF>'

    ¤òɸ½à½ÐÎϤ˽ÐÎϤ·½ªÎ»¤¹¤ë¡£ ÉÔÀµ¤ÊÀܳ»þ : `DATA'°Ê³°¤Ç»Ï¤Þ¤ë¥á¥Ã¥»¡¼¥¸¤òɸ½à½ÐÎϤ˽ÐÎÏ

    ¤·½ªÎ»¤¹¤ë¡£

¢¨ ËÜ¥Õ¥£¥ë¥¿(`-f')¤Ï*ɬ¤º*ÀßÃÖ¤·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ºÇÄã¸Â¡¢

ɸ½àÆþÎϤ«¤é`DATA<CR><LF>' -> ¥á¡¼¥ëËÜʸ -> `.<CR><LF>'¤ò ɸ½à½ÐÎϤ˽ÐÎϤ¹¤ëµ¡Ç½¤ò¼ÂÁõ¤·¤Æ²¼¤µ¤¤(see sample/smtp_null_filter.sh)¡£

¢¨ ½¾Íè(Ver. 0.2.x°ÊÁ°)¤ÈƱÍͤË`-f'¥ª¥×¥·¥ç¥ó¤Ç»ØÄꤹ¤ë¥Õ¥£¥ë

¥¿¥×¥í¥°¥é¥à¤ËÁ´¤Æ¤Î¥Á¥§¥Ã¥&hibar;¤ò¹Ô¤ï¤»¤ë¤³¤È¤â²Äǽ¤Ç¤¹¡£¤½¤Î ¾ì¹ç¤Ï`-if'¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡£

ÈóÎϤʥµ¡¼¥Ð¤Ç±¿ÍѤµ¤ì¤ë¾ì¹ç¤Ï`-if', `-f'¤ò»È¤¤Ê¬¤±¤¿Êý¤¬ Éé²Ù¤¬·Ú¸º¤µ¤ì¤ë¤Ç¤·¤ç¤¦¡£¤Á¤Ê¤ß¤Ë¡¢¤¦¤Á¤Î¥µ¡¼¥Ð¤Ï MMX166MHz + Memory 64MB ;)

BUGS

  • ¤È¤ê¤¢¤¨¤º¡¢¥Õ¥£¥ë¥¿¥¹¥&hibar;¥ê¥×¥È¤ò¼«Ê¬¤Ç½ñ¤«¤Ê¤¤¤È¡¢¤¢¤Þ¤ê°ÕÌ£ ¤¬¤¢¤ê¤Þ¤»¤ó¡£°ì±þ¡¢smtp_wrapper¤À¤±¤Ç¤â`-i'¥ª¥×¥·¥ç¥ó¤Ë¤è¤ë ®¼ÍspamÂкö¤È`-d'¥ª¥×¥·¥ç¥ó¤Ë¤è¤ë`greet pause'¸ú²Ì (sendmail-8.13.x·Ï¤Ç¤âƱÍͤε¡Ç½¤òƳÆþ)¤Ï¸«¹þ¤á¤ë¤Î¤Ç¤¹¤¬...¡£
  • fetchmail¤Ç¼è¤ê¹þ¤à¥á¡¼¥ë¤ò½ÅÊ£¤·¤Æ¼õ¿®¤¹¤ë¤³¤È¤¬¤¢¤ë¤è¤¦¤Ç ¤¹(-_-;¡£

    ¤Þ¤º¡¢fetchmail¤Ç¼è¤ê¹þ¤à¥á¡¼¥ë¤Ï¥Õ¥£¥ë¥¿¤Î¸¡ººÂоݤˤ·¤Æ¤Ï ¤Ê¤ê¤Þ¤»¤ó¡£¤Ê¤¼¤Ê¤é¡¢Ê£¿ô¤Î¥á¥Ã¥»¡¼¥¸¤ò¼è¤ê¹þ¤ó¤Ç¤¤¤ëÅÓÃæ ¤Çspam¤ÈȽÄꤵ¤ì¤ë¥á¥Ã¥»¡¼¥¸¤¬Í­¤Ã¤¿¾ì¹ç¡¢fetchmail¤Îưºî¤¬ ¤½¤Î»þÅÀ¤Ç½ªÎ»¤·¤Æ¤·¤Þ¤¦(¤è¤¦¤À)¤«¤é¤Ç¤¹¡£¤³¤Î¾ì¹ç¡¢¼êư¤Ç POP¥µ¡¼¥Ð¦¤«¤éspam¥á¡¼¥ë¤òºï½ü¤·¤Ê¤¤¸Â¤ê¡¢±Êµ×¤ËÀè¤Ë¿Ê¤á¤Ê ¤¤¤Î¤Ç¤Ï¤Ê¤¤¤«¤È»×¤ï¤ì¤Þ¤¹¡£

    ¤Þ¤¿¡¢²¾¤Ë¥Õ¥£¥ë¥¿Â¦¤Ç¾ï¤Ëspam¤Ç¤Ê¤¤¤ÈȽÃǤµ¤»¡¢smtp_wrapper ¤ò¥¹¥ë¡¼¤µ¤»¤Æ¤â¡¢¥·¥¹¥Æ¥à¤Î¥í¡¼¥É¥¢¥Ù¥ì¡¼¥¸¤¬10¤ò±Û¤¨¤Æ sendmail¼«¿È¤¬¥á¥Ã¥»¡¼¥¸¤Î¼õÉÕ¤òµñÈݤ·»Ï¤á¤¿¾ì¹ç¤Ë½ÅÊ£¤·¤Æ¼õ ¿®¤¹¤ë¤³¤È¤¬¤¢¤ë¤è¤¦¤Ç¤¹¡£

    ¤Ç¤¹¤Î¤Ç·ë¶É¤Î¤È¤³¤ífetchmail¤Ë´Ø¤·¤Æ¤Ï¡¢

fetchmail -S localhost/8025 ¤Û¤Ë¤ã¤é¤é

¤ß¤¿¤¤¤Ë¤·¤Æ¡¢smtp_wrapper¤ò¤¹¤ÃÈô¤Ð¤·¤Æ¼õ¿®¤·¤¿¤Û¤¦¤¬Îɤµ¤½ ¤¦¤Ç¤¹¡£

fetchmail¤ò»È¤Ã¤Æ(¸Ä¿Í¤Ç)¼è¤ê¹þ¤à¥á¡¼¥ë¤ÎspamÂкö¤Ï¡¢procmail ¤È¾å½Ò¤Î¥Õ¥£¥ë¥¿¤Î±þÍÑÈÇ¡¢¤â¤·¤&hibar;¤Ï¥Ù¥¤¥º·Ï¥Õ¥£¥ë¥¿¤È¤ÎÁȹ礻 ¤Ç¤â¤Ã¤Æ¡¢¥&hibar;¥é¥¤¥¢¥ó¥È¦¤ÇÂбþ¤¹¤ë¤Î¤¬µÈ¤«¤È...¡£


Sponsored Links

Discussion Groups
  Beginners
  Distributions
  Networking / Security
  Software
  PDAs

About | FAQ | Privacy | Awards | Contact
Comments to the webmaster are welcome.
Copyright 2006 Sourcefiles.org All rights reserved.