O čo vlastne pôjde?
Inštalácia a konfigurácia PostFix SMTP servera na CentOS verzia 6.5, spolu so Squid, Shorewall, Clamav, Amavis, Squiremail webmail, Dovecot a veľa ďalších zaujímavých sľužieb.
Začneme základným nastavením servera ktoré som už popisoval vo svojom blogu: http://linuxos.sk/blog/manjaro-arch-pre-lenivcov/detail/ako-na-kvm-virtualizacia-na-servery/
Asi polovica je venovaná práve tomu základnému nastaveniu servera.
Ak máme všetko nastavené tak prejdeme k ďalším krokom.
Pridáme repozitár RPMForge do hlavného repozitára
yum install -y centos-release-cr
Pre 32-bit:
rpm -ivh http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm
a pre 64-bit:
rpm -ivh http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
Inštalácia NTP
NTP slúži na synchronizáciu času medzi servermi internetu.
yum install -y ntp
ntpdate tik.cesnet.cz
service ntpd start
chkconfig ntpd on
Inštalácia SQUID - proxy servera
Keš proxy pre web, redukuje vyťaženie linky a zrýchli odozvu.
yum install -y squid
service squid start
chkconfig squid on
Inštalácia Shorewall
Shorewall je výborný a mocný nástroj ktorý nesmie chýbať na žiadnom linuxovom firewalle. Dávam ho sem z bezpečnostných dôvodov. Nebudeme písať žiadne obsiahle pravidlá.
yum install -y shorewall
Základná konfigurácia Shorewall
Interfaces
net eth0 detect tcpflags,nosmurfs loc eth1 detect tcpflags,nosmurfs
Zones
fw firewall net ipv4 loc ipv4
Masq
eth1 eth0
Policy
$FW all ACCEPT net $FW DROP info net loc DROP info loc net REJECT info loc $FW ACCEPT all all REJECT info
Inštalácia Postfix
Samotný mail server.
yum install -y postfix cyrus-sasl cyrus-sasl-md5 cyrus-sasl-plain pfqueue --enablerepo=rpmforge
Inštalácia, konfigurácia a spustenie Clamav
ClamAV je slobodný štandard pre poštové serveri na skenovanie softvéru (antivírus).
yum install -y clamav clamav-db clamd --enablerepo=rpmforge
mv /etc/cron.daily/freshclam /usr/local/bin/freshclam.sh
Pridať do Crontab riadok na updatovanie clamav
# kazde 2 hodiny aktualizuj clamav cez freshclam.sh 15 */2 * * * /usr/local/bin/freshclam.sh > /dev/null 2>&1
Nahrať config clamd.conf
/usr/local/bin/freshclam.sh
service clamd start chkconfig clamd on gpasswd -a clamav amavis
Inštalácia, konfigurácia a spustenie Amavis
Amavis emailový vírusový skener je spoľahlivý nástroj napísaný v Perly a stojí medzi Vašim Postfixom a filtrami obsahu v podobe SpamAssassinu a ClamAV.
yum install -y amavisd-new --enablerepo=rpmforge
Upraviť riadky v /etc/amavisd.conf
$mydomain = 'domena.sk'; $myhostname = 'mail.domena.sk'; @mynetworks = qw( 127.0.0.0/8 [::1] [FE80::]/10 [FEC0::]/10 192.168.2.0/24 ); $sa_tag_level_deflt = undef; # minimalne skore, aby pridal hlavicku X-SPAM (undef, alebo zaporna hodnota = vloz hlavicku do vsetkych sprav) $sa_tag2_level_deflt = 5; # minimalne skore, aby bola sprava oznacena ako SPAM => X-Spam-Status: Yes $sa_kill_level_deflt = 8; # hodnota,kedy uz mail nedojde prijemcovi, ale ulozi sa do karanteny (v tomto pripade sa vsetky maily so skore > 8 daju do karanteny) $mailfrom_notify_admin = "postmaster\@$mydomain"; # adresa odosielatela, ked sa odosle varovanie pre admina $mailfrom_notify_recip = "postmaster\@$mydomain"; # adresa odosielatela, ked sa odosle varovanie odosielatelovi spravy $mailfrom_notify_spamadmin = "postmaster\@$mydomain"; # adresa odosielattela, ak je sprava spam $sa_spam_subject_tag = 'SPAM: '; # do predmetu prav, ktore su spam, prida SPAM: # D_PASS - prijemca dostane spravu # D_DISCARD - prijemca nedostane spravu; odosielatel nie je informovany o nedoruceni spravy, sprava sa ulozi do karanteny, ak je nastavena # D_BOUNCE - prijemca nedostane spravu; odosielatel dostane spravu o nedoruceni $final_virus_destiny = D_DISCARD; # ak sa najde virus, co spravit (DISCARD = karantena) $final_banned_destiny = D_BOUNCE; # ak je v maily nedovolena priloha (BOUNCE = sprava odosielatelovi) $final_spam_destiny = D_DISCARD; # ak je spam (DISCARD = karantena) $final_bad_header_destiny = D_PASS; # ak je zla hlavicka (PASS = to je ok)
Odkomentujeme:
['ClamAV-clamd', \&ask_daemon, ["CONTSCAN {}\n", "/var/run/clamav/clamd.sock"], qr/\bOK$/m, qr/\bFOUND$/m, qr/^.*?: (?!Infected Archive)(.*) FOUND$/m ],
Pridáme riadok do /etc/postfix/main.cf ktorý zabezpečí kontrolovanie obsahu správ Amavisom
content_filter = smtp-amavis:[localhost]:10024
Pridame par riadkov do /etc/postfix/master.cf
# # AMAVISD-NEW Content Filter (ClamAV, Spamassassin, Razor2, DCC, Pyzor) # smtp-amavis unix - - n - 2 smtp -o smtp_data_done_timeout=1200 -o smtp_send_xforward_command=yes -o disable_dns_lookups=yes -o max_use=20 127.0.0.1:10025 inet n - n - - smtpd -o content_filter= -o smtpd_restriction_classes= -o smtpd_delay_reject=no -o smtpd_client_restrictions=permit_mynetworks,reject -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworks,reject -o smtpd_data_restrictions=reject_unauth_pipelining -o smtpd_end_of_data_restrictions= -o mynetworks=127.0.0.0/8 -o smtpd_error_sleep_time=0 -o smtpd_soft_error_limit=1001 -o smtpd_hard_error_limit=1000 -o smtpd_client_connection_count_limit=0 -o smtpd_client_connection_rate_limit=0 -o smtpd_milters= -o local_header_rewrite_clients= -o local_recipient_maps= -o relay_recipient_maps= -o receive_override_options=no_address_mappings,no_header_body_checks,no_unknown_recipient_checks # Transporty pouzite na auto ucenie SA z forwardnutych mailov uzivatelov # prikaz sa-wrapper.pl vytiahne z prilohy rfc822 originalny mail a preposle ho prikazu sa-learn, ktory uci SA sa-spam unix - n n - - pipe user=amavis:amavis argv=/usr/local/bin/sa-wrapper.pl spam ${sender} sa-ham unix - n n - - pipe user=amavis:amavis argv=/usr/local/bin/sa-wrapper.pl ham ${sender}
Už len pridáme užívateľa clamav do skupiny amavis, spustíme po štarte a zapneme službu
gpasswd -a clamav amavis chkconfig amavisd on service amavisd start
Spamassassin
Zaisťuje kontrolu obsahu, je to najrozšírenejšie antispamové riešenie v linuxovom svete. Pracuje tak ze na základe sady pravidieľ overuje príchodziu poštu. V prípade že konkretnym pravidlám mail vyhovie, upraviísa jeho celkové skóre o počet bodov ktoré náleží danému pravidlu.
Niektoré pravidlá možu skore emailu znížiť. Výsledné skóre sa potom porovna z prahovou hodnotou (vychodzia je 5,0) a v prípade, že email hodnotu dosiahne alebo prekročí, je označený ako spam.
yum install -y spamassassin
cp -ir /root/.spamassassin /root/.spamassassin-backup
cp local.cf /etc/mail/spamassassin/
cp sample-spam /
sa-learn --spam /sample-spam.txt
rm /root/.spamassassin/user_prefs
ln -s /var/amavis/.spamassassin/bayes_seen /root/.spamassassin/bayes_seen
ln -s /var/amavis/.spamassassin/user_prefs /root/.spamassassin/user_prefs
ln -s /var/amavis/.spamassassin/bayes_toks /root/.spamassassin/bayes_toks
chown -R amavis:amavis /var/amavis
Pridáme dva riadky do /etc/mail/spamassassin/local.cf (Samozrjeme že podľa Vašej siete)
internal_networks 192.168.2/24
trusted_networks 192.168.2/24
Nastavíme automatické sťahovanie spamassassin rules
cd /etc/mail/spamassassin
wget http://spamassassin.apache.org/released/GPG-SIGNING-KEY
gpg --import GPG-SIGNING-KEY
yum install perl-IO-Zlib --enablerepo=rpmforge
sa-update
a aj spamassassin databázou
Pridame riadky do /etc/cron.daily/amavisd-new[@
#!/bin/sh # # Daily maintenance for amavisd-new # Needed only if spamassassin is in use umask 022 test -e /usr/bin/sa-learn && test -e /usr/sbin/amavisd && { su - amavis -c '/usr/bin/sa-learn --sync --force-expire >/dev/null' } exit 0
Pridáme ho do Crontabu
# automaticke stahovanie novych rules pre spamassassin 05 02 * * * /usr/bin/sa-update && /usr/bin/spamassassin --lint && /etc/init.d/amavisd restart
--------------------------------------------------------------------------------------------------------------------------------------
Týmto by som túto časť aj uzavrel a nabudúce sa pozrieme na Sa-Wrapper, Razor, DCC, PostGrey. Zapneme TLS.
O mail serveroch toho moc neviem, tak každá rada sa môže hodiť. Nemal si najprv rozchodiť emailový server s nejakým webklientom a potom tam nahádzať bezpečnostné prvky? Kecať ti do toho nebudem, ako píšem tu niesom doma.
Ono to je v podstate jedno (aspon pre mna). To ze tam bude nejake rozhranie je sice pekne ale co na tom ze to nema nic v sebe ;)
Ja sam sa este pri tom ucim, takze neviem ci ma nejaky zmysel to robit tak ci onak. Rad by som ak by tu bol nejaky mail guru a odpovedal nam na to.
OK, tak si počkám na pokračovanie.
Trochu mi chýba rozpis čo čo robí a prečo to tak má byť.
Takto je to copy&paste
....now i am root...
Good idea.. a trochu si mi pripomenul že by som tu už mal hodiť konečne pokračovanie :)
A čo dokáže spraviť aj jedna nechcená medzera, to som sa nemôhol dosmiať :)
https://github.com/MrMEEE/bumblebee-Old-and-abbandoned/issues/123
Just do It!
Pekný fail :)
hezkyyyyy ...
Vždy keď si na to spomeniem sa smejem stále ako prvý raz, toto ma fakt dostalo :D
Ahojte. Prezradi mi niekto na co je potrebny proxy server na postovom servery ? Ak tu konfigurujeme postovy server a nie nejaky vse-server, proxy tu nema co hladat.