On Thu, 26 Feb 2004, Michael St. Laurent wrote:
> That's interesting. Would you be willing to share more details of your > setup and how it all works? Is this MailScanner you're talking about? > Sure. Here are the main parts of my setup : First my script to restart clamd from cron if it should die (pretty primitive, yes, but it does the job). I run this from cron every 5 min. It depends on clamd running as user "amavis" (the second grep). #!/bin/sh CLAMDRUNNING=`ps aux | grep clamd | grep amavis | wc | awk {'print $1'}` if [ ${CLAMDRUNNING} -ge 1 ]; then /usr/bin/date >> /var/log/clamd-test.log echo "clamd is running" >> /var/log/clamd-test.log echo >> /var/log/clamd-test.log else killall -q clamd # just in case I made a mistake rm -f /var/amavis/clamd # remove the stale socket, just in case clamd can't do it itself rm -f /var/run/clamd.pid # same with the .pid file /usr/local/sbin/clamd # start clamd up again /usr/bin/date >> /var/log/clamd-test.log echo "clamd was dead and had to be restarted" >> /var/log/clamd-test.log echo >> /var/log/clamd-test.log fi Here's my /etc/clamav.conf file : ### clamav.conf start PidFile /var/run/clamd.pid LocalSocket /var/amavis/clamd FixStaleSocket MaxThreads 25 ThreadTimeout 600 MaxDirectoryRecursion 20 FollowDirectorySymlinks FollowFileSymlinks SelfCheck 1200 User amavis ScanMail ScanArchive ScanRAR ArchiveMaxFileSize 50M ArchiveMaxRecursion 6 ArchiveMaxFiles 1600 ### clamav.conf end And the interresting bits of my /etc/amavisd.conf : $daemon_user = 'amavis'; $daemon_group = 'amavis'; $max_servers = 25; $max_requests = 100; $child_timeout=8*60; @av_scanners = ( ['Clam Antivirus-clamd', \&ask_daemon, ["CONTSCAN {}\n", '/var/amavis/clamd'], qr/\bOK$/, qr/\bFOUND$/, qr/^.*?: (?!Infected Archive)(.*) FOUND$/ ], ); @av_scanners_backup = ( ['Clam Antivirus - clamscan', 'clamscan', '--stdout --disable-summary -r {}', [0], [1], qr/^.*?: (?!Infected Archive)(.*) FOUND$/ ], ); Ofcourse I have a lot more settings in there as well. I run several other scanners other than clam (although clam is the main one), and I also run spamassassin via amavisd-new and then there's all the policy settings such as whether to send mail to spam and virus senders etc.. but all that is purely a matter of policy. My postfix setup looks like this (a few bits have been stripped out with <cut> since they are site specific). My /etc/postfix/master.cf looks like this : smtp inet n - y - - smtpd pickup fifo n - y 60 1 pickup cleanup unix n - y - 0 cleanup qmgr fifo n - y 300 1 qmgr rewrite unix - - y - - trivial-rewrite bounce unix - - y - 0 bounce defer unix - - y - 0 bounce flush unix n - y 1000? 0 flush proxymap unix - - n - - proxymap smtp unix - - y - - smtp relay unix - - y - - smtp showq unix n - y - - showq error unix - - y - - error local unix - n n - - local virtual unix - n n - - virtual lmtp unix - - y - - lmtp smtp-amavis unix - - y - 25 smtp -o smtp_data_done_timeout=1200 -o disable_dns_lookups=yes 127.0.0.1:10025 inet n - y - - smtpd -o content_filter= -o local_recipient_maps= -o relay_recipient_maps= -o smtpd_restriction_classes= -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworks,reject -o mynetworks=127.0.0.0/8 -o strict_rfc821_envelope=yes maildrop unix - n n - - pipe flags=DRhu user=vmail argv=/usr/local/bin/maildrop -d ${recipient} old-cyrus unix - n n - - pipe flags=R user=cyrus argv=/cyrus/bin/deliver -e -m ${extension} ${user} cyrus unix - n n - - pipe user=cyrus argv=/cyrus/bin/deliver -e -r ${sender} -m ${extension} ${user} uucp unix - n n - - pipe flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient) ifmail unix - n n - - pipe flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient) bsmtp unix - n n - - pipe flags=Fq. user=foo argv=/usr/local/sbin/bsmtp -f $sender $nexthop $recipient And here is my /etc/postfix/main.cf : alias_database = hash:/etc/postfix/aliases biff = no command_directory = /usr/sbin config_directory = /etc/postfix content_filter = smtp-amavis:[localhost]:10024 daemon_directory = /usr/libexec/postfix debug_peer_level = 2 default_destination_concurrency_limit = 4 default_destination_recipient_limit = 55 default_process_limit = 300 deliver_lock_attempts = 66 fork_attempts = 9 hash_queue_depth = 3 header_checks = regexp:/etc/postfix/header_checks header_size_limit = 204800 hopcount_limit = 55 in_flow_delay = 2s initial_destination_concurrency = 2 line_length_limit = 4096 local_recipient_maps = local_transport = no local mail delivery mailbox_transport = smtp mailq_path = /usr/bin/mailq manpage_directory = /usr/local/man max_use = 110 maximal_backoff_time = 3600s maximal_queue_lifetime = 7d message_size_limit = 50000000 minimal_backoff_time = 300s mydestination = <cut> myhostname = <cut> mynetworks = <cut> myorigin = <cut> newaliases_path = /usr/bin/newaliases qmgr_message_active_limit = 25000 qmgr_message_recipient_limit = 25000 queue_minfree = 10000 queue_run_delay = 300s readme_directory = no sample_directory = /etc/postfix sendmail_path = /usr/sbin/sendmail setgid_group = postdrop smtp_connect_timeout = 66s smtp_data_done_timeout = 666s smtp_data_init_timeout = 222s smtp_data_xfer_timeout = 222s smtp_helo_timeout = 333s smtp_mail_timeout = 333s smtp_quit_timeout = 303s smtp_rcpt_timeout = 333s smtp_skip_4xx_greeting = no smtp_skip_quit_response = no smtpd_banner = <cut> smtpd_error_sleep_time = 2s smtpd_hard_error_limit = 12 smtpd_helo_required = yes smtpd_helo_restrictions = reject_unauth_pipelining, reject_invalid_hostname, permit_mynetworks smtpd_recipient_restrictions = reject_unauth_destination, reject_non_fqdn_recipient, permit_mynetworks smtpd_sender_restrictions = reject_non_fqdn_sender, reject_invalid_hostname, reject_unknown_sender_domain smtpd_soft_error_limit = 6 smtpd_timeout = 333s soft_bounce = no transport_maps = hash:/etc/postfix/transport transport_retry_time = 66s unknown_local_recipient_reject_code = 550 virtual_alias_maps = hash:/etc/postfix/virtual This is a gateway machine. It sits at the edge of the network and recieves mail for a lot of different domains that then has to go mainly to one internal server where the users mailboxes are, but a few domains have to go to other servers. I use the /etc/postfix/transport file for this where I have a line like this for each domain : somedomain.example smtp:[internal-mail-server.mylocaldomain.local] someotherdomain.example smtp:[other-internal-smtp.server.domain.local] etc... I list all the internal domains in "mydestination" which lets postfix reject any mail for domains, that I don't host, right at the front door. The restrictions I have setup in "smtpd_helo_restrictions", "smtpd_recipient_restrictions" & "smtpd_sender_restrictions" could be stricter, but they do a good job of rejecting a lot of junk from obvious bogus senders etc, and they are not so strict as to reject too much mail from servers that are legit but just slightly misconfigured. You may want to use other options, but I've found the above to be a resonable compromise between rejecting bad stuff/incorrectly configured servers and actually letting my users get most of their mail. I have a few additional restrictions set up in /etc/postfix/header_checks that look like this : /^Received: .*\.test .*$/ REJECT RFC2606 domains are not allowed /^Received: .*\.example .*$/ REJECT RFC2606 domains are not allowed /^Received: .*\.invalid .*$/ REJECT RFC2606 domains are not allowed /^Received: .*\.localhost .*$/ REJECT RFC2606 domains are not allowed /^X-Originating-IP:..[a-z].*$/ REJECT Rejected, server seems to send false X-Originating-IP header /^X-Originating-IP:.*IP.*$/ REJECT Rejected, server seems to send false X-Originating-IP header /^Postmaster@/ OK Again, that could be a *lot* more strict, but it rejects obvious bogus stuff while not rejecting any valid mail. clam and spamassassin takes care of rejecting the bad stuff that gets past this. Hope that helps you. Feel free to ask if anything is unclear :) /Jesper Juhl ------------------------------------------------------- SF.Net is sponsored by: Speed Start Your Linux Apps Now. Build and deploy apps & Web services for Linux with a free DVD software kit from IBM. Click Now! http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click _______________________________________________ Clamav-users mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/clamav-users