|
Postfix - instalacja i konfiguracja
ruun - 04-04-2008 10:56
Witam w zbiorczym temacie dotyczącym instalacji i konfiguracji Postfixa oraz niezbędnych dodatków.
:arrow: Wstęp :arrow: Dokumentacja :arrow: Gotowe poradniki masz coś do dodania, pisz przez PW
vikus - 04-04-2008 20:11
Blokowanie wybranych załączników
Do pliku /etc/postfix/main.cf dodać mime_header_checks = regexp:/etc/postfix/mime_header_checks.regexp
plik mime_header_checks.regexp /^\s*Content-(Disposition|Type).*name\s*=\s*"?(.+\.(lnk|asd|hlp|ocx|reg|bat|c[ho]m|cmd|exe|dll|vxd|pif|scr|hta|jse?|sh[mbs]|vb[esx]|ws[fh]|wav|mov|wmf|xl))"?\s*$/ REJECT Attachment type not allowed. File "$2" has the unacceptable extension "$3"
lub wersja krótka: /name=[^>]*\.(pdf|zip)/ REJECT Attachment type not allowed!
Blokowanie wybranych słów w mailu (body) Do pliku /etc/postfix/main.cf dodać body_checks = regexp:/etc/postfix/body_checks
/etc/postfix/body_checks
/lol/ REJECT Body Spam Rule - Spadaj Dziadu! /dupa/ REJECT Body Spam Rule - Spadaj Dziadu! Blokowanie wybranych słów w mailu (head Subject) Do pliku /etc/postfix/main.cf dodać header_checks = regexp:/etc/postfix/header_checks
/etc/postfix/header_checks /^Subject: .*ass*./ REJECT Head Spam Rule - Spadaj dziadu! /^Subject: .*dick*./ REJECT Head Spam Rule - Spadaj dziadu! Blacklist dla postfixa
do pliku /etc/postfix/main.cf dodaj
# Restrykcje - Sprawdzanie poczty na podstawie adresu odbiorcy listu (MAIL FROM): smtpd_sender_restrictions = hash:/etc/postfix/sender_checks, permit_sasl_authenticated, reject_unknown_sender_domain, reject_non_fqdn_sender, reject_unknown_address
Najważniejsza jest ta linia hash:/etc/postfix/sender_checks, w tym pliku trzymasz adresy których nie lubisz;) przykład pliku: test@op.pl REJECT a idz w... gmail.com REJECT a idz w...
potem generujesz plik .db poleceniem
postmap /etc/postfix/sender_checks
I teraz po restarcie postfixa każdy mail z pliku sender_checks będzie odrzucany:)
vikus - 04-04-2008 20:25
Blokowanie spamu w obrazkach i pdfach uzywajac sygnatur SaneSecurity do Clamav.
Pobieramy odpowiedni skrypcik ze strony autora cd /etc/clamav/ wget http://www.sanesecurity.com/clamav/ss-msrbl.txt mv ss-msrbl.txt ss-msrbl.sh chmod +x ss-msrbl.sh
Teraz musimy poprawić kilka zmiennych w skrypcie ÂŚcieżka do pliku pid (możesz to sprawdzić poleceniem grep ^PidFile /etc/clamav/clamd.conf)
clamd_pid=/var/run/clamd/clamd.pid
zmieniamy na clamd_pid=/var/run/clamav/clamd.pid
usera na jakim pracuje clamav (możesz to sprawdzić poleceniem grep ^User /etc/clamav/clamd.conf) # Set ClamD user and group accounts. clam_user="clamav" clam_group="clamav"
zmieniamy na # Set ClamD user and group accounts. clam_user="amavis" clam_group="clamav"
Do uruchomienia skrypu będą nam potrzebne te pakiet wiec zainstalujmy je aptitude install rsync curl
i sprawdzy czy działa: # /etc/clamav/ss-msrbl.sh
Wynik wykonania powyższego skryptu ============================================ SaneSecurity phish.ndb Signature File Update ============================================
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0
============================================ SaneSecurity scam.ndb Signature File Update ============================================
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- 0:00:02 --:--:-- 0
============================================ MSRBL MSRBL-Images.hdb Signature File Update ============================================
Number of files: 1 Number of files transferred: 0 Total file size: 34648 bytes Total transferred file size: 0 bytes Literal data: 0 bytes Matched data: 0 bytes File list size: 35 File list generation time: 0.001 seconds File list transfer time: 0.000 seconds Total bytes sent: 34 Total bytes received: 77
sent 34 bytes received 77 bytes 44.40 bytes/sec total size is 34648 speedup is 312.14
============================================ MSRBL MSRBL-SPAM.ndb Signature File Update ============================================
Number of files: 1 Number of files transferred: 0 Total file size: 235520 bytes Total transferred file size: 0 bytes Literal data: 0 bytes Matched data: 0 bytes File list size: 33 File list generation time: 0.001 seconds File list transfer time: 0.000 seconds Total bytes sent: 34 Total bytes received: 75
sent 34 bytes received 75 bytes 43.60 bytes/sec total size is 235520 speedup is 2160.73 Teraz sprawdzamy czy nowe sygnatury są na miejscu #ls -l /var/lib/clamav razem 17935 drwxr-xr-x 2 amavis clamav 504 2008-04-04 19:40 daily.inc -rw-r--r-- 1 amavis clamav 11347852 2008-01-27 21:28 main.cvd -rw------- 1 amavis clamav 364 2008-04-04 19:34 mirrors.dat -rw-r--r-- 1 amavis clamav 34648 2008-04-04 19:25 MSRBL-Images.hdb -rw-r--r-- 1 amavis clamav 31765 2008-04-04 19:40 MSRBL-Images.hdb-bak -rw-r--r-- 1 amavis clamav 235520 2008-03-28 15:42 MSRBL-SPAM.ndb -rw-r--r-- 1 amavis clamav 235359 2008-03-29 02:30 MSRBL-SPAM.ndb-bak -rw-r--r-- 1 amavis clamav 1453797 2008-04-04 19:40 phish.ndb -rw-r--r-- 1 amavis clamav 1453604 2008-04-04 19:40 phish.ndb-bak -rw-r--r-- 1 amavis clamav 241303 2008-04-04 18:33 phish.ndb.gz -rw-r--r-- 1 amavis clamav 1505443 2008-04-04 19:40 scam.ndb -rw-r--r-- 1 amavis clamav 1504524 2008-04-04 19:40 scam.ndb-bak -rw-r--r-- 1 amavis clamav 286650 2008-04-04 18:33 scam.ndb.gz
Dodajmy jeszcze skrypcik do cron żeby bazy aktualizowały się automatycznie np o 4 w nocy: do pliku /etc/crontab dodaj poniższy wpisz 0 4 * * * root /etc/clamav/ss-msrbl.sh &>/dev/null
End
vikus - 13-04-2008 21:22
Automatyczne dodawanie stopki do wyslanego maila
Krótki opis jak wykorzystać narzędzie alterMIME aby dodawać stopkę do wszystkich wysłanych maili z naszego serwera.
Instalujemy alterMIME aptitude install altermime
Następnie tworzymy usera ‘filter’ z katalogiem domowym w /var/spool/filter (alterMIME będzie uruchamiany pod tym userem) useradd -r -c "Postfix Filters" -d /var/spool/filter filter
Tworzymy katalog domowy mkdir -p /var/spool/filter
I nadajemy mu odpowiednie prawa: chmod 750 /var/spool/filter && chown filter:filter /var/spool/filter
Teraz możemy skopiować przykładowy plik, który będzie filtrował nasze wiadomości: cp /usr/share/doc/altermime/examples/postfix_filter.sh /etc/postfix/disclaimer
i nadajemy mu odpowiednie prawa chmod 750 /etc/postfix/disclaimer && chgrp filter /etc/postfix/disclaimer
Problem z tym skryptem polega jednak na tym ze dodaje on stopkę do wszystkich maili przychodzących i wychodzących, co nie jest pożądanym celem przez nas. Więc zrobiłem mały update skrypt aby dodawał stopkę tylko do wysyłanych maili:
#!/bin/sh # Localize these. INSPECT_DIR=/var/spool/filter SENDMAIL=/usr/sbin/sendmail DOMAIN="test.com"
# Exit codes from <sysexits.h> EX_TEMPFAIL=75 EX_UNAVAILABLE=69
# Clean up when done or when aborting. trap "rm -f in.$$" 0 1 2 3 15
# Start processing. cd $INSPECT_DIR || { echo $INSPECT_DIR does not exist; exit $EX_TEMPFAIL; }
cat >in.$$ || { echo Cannot save mail to file; exit $EX_TEMPFAIL; }
grep "From:" in.$$ | grep -i $DOMAIN > /dev/null let R=$?
if [ $R -eq 0 ]; then /usr/bin/altermime --input=in.$$ \ --disclaimer=/etc/postfix/disclaimer.txt \ --disclaimer-html=/etc/postfix/disclaimer.txt \ --xheader="X-Copyrighted-Material: Please visit http://www.company.com/privacy.htm" || \ { echo Message content rejected; exit $EX_UNAVAILABLE; } fi
$SENDMAIL "$@" <in.$$
exit $?
Zmień w powyższym skrypcie zmienna DOMAIN na własną domenę do której ma być dodawana stopka.
Kopiujemy przykładową stopke cp /usr/share/doc/altermime/examples/disclaimer.txt /etc/postfix/disclaimer.txt
Plik możemy edytować według własnych potrzeb. Tekst z tego pliku będzie doklejany do każdego wychodzącego maila.
Teraz musimy poinformować postfixa aby skrypt /etc/postfix/disclaimer wykonywał sie podczas wysyłania maili. Otwórz /etc/postfix/master.cf i dodaj -o content_filter=dfilt: do pod linia smtp: nano /etc/postfix/master.cf
# # Postfix master process configuration file. For details on the format # of the file, see the master(5) manual page (command: "man 5 master"). # #======================================================== # service type private unpriv chroot wakeup maxproc command + args # (yes) (yes) (yes) (never) (100) #======================================================== smtp inet n - - - - smtpd -o content_filter=dfilt: [...]
I na koniect tego samego pliku dodaj poniżesz linie
[...] dfilt unix - n n - - pipe flags=Rq user=filter argv=/etc/postfix/disclaimer -f ${sender} -- ${recipient}
I teraz pozostało nam tylko zresetować postfixa /etc/init.d/postfix restart
Po resecie każdy wychodzący mail z domeny podanej w pliku /etc/postfix/disclaimer będzie posiadał stopkę jaką określiliśmy w pliku /etc/postfix/disclaimer.txt.
zanotowane.pldoc.pisz.plpdf.pisz.plminister.pev.pl
|