- Notifications
You must be signed in to change notification settings - Fork0
smcn/antispam
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
FreeBSD üzerinde MailScanner e-posta ağ geçidi sistemi yapılandırılarak virüslerin, istenmeyen postaların ve kötü amaçlı yazılımların engellenmesine çalışılacaktır.
- Postfix
- Postgrey
- MailScanner
- ClamAv
- SpamAssassin(Razor, Pyzor, DCC)
- MailWatch
MailScanner, MTA (Mail Transfer Agent) olarak Postfix, Sendmail, Exim kullanılabilir.
Postfix, Linux ve Unix işletim sistemlerinde mail alıp mail göndermesine imkan sağlayan açık kaynak e-posta yazılımıdır.
Yoğun e-posta trafiklerinde, Postfix tercih ediliyor.
pkg install -y postfixsysrc postfix_enable="YES"sysrc sendmail_enable="NONE"
nano /etc/periodic.confdaily_clean_hoststat_enable="NO"daily_status_mail_rejects_enable="NO"daily_status_include_submit_mailq="NO"daily_submit_queuerun="NO"
cd /etc/mail nano /etc/mail/aliasesroot: sistem@omu.edu.trpostalias /etc/mail/aliases
cd /usr/local/etc/postfixecho "omu.edu.tr smtp:[193.140.28.32]" > transportpostmap transport
echo "/^Received:/ HOLD" > header_checks
nano /usr/local/etc/postfix/main.cfmyhostname = mailgw.omu.edu.trmydomain = localhostinet_interfaces = allmydestination = $myhostname, localhost.$mydomain, localhostmynetworks_style = hostmynetworks = 127.0.0.0/8relay_domains = omu.edu.tr relayhost = [193.140.28.32] alias_maps = hash:/etc/mail/aliases alias_database = hash:/etc/mail/aliases header_checks = regexp:$config_directory/header_checks
nano /usr/local/etc/postfix/master.cfqmgr fifo n - n 300 1 qmgrbounce unix - - n - 0 discard
Postgrey ile MTA seviyesinde greylist yapabiliriz. Bu bize spam eposta gönderenleri bir nebze olsun azaltacaktır.
Mantığı ise şu şekilde; doğru ayarlanmış bir eposta sunucusu cevap olarak 4xx hatası aldığında bir süre sonra bize eposta göndermeyi tekrar dener.
Spam eposta gönderenlerin ise böyle bir lüksü olmadığı için vazgeçebilirler.
Postgrey, X adresinden Y adresine ilk defa eposta gönderiliyorsa Postfix’ in 4xx hatası vererek gönderimi ertelemesini sağlıyor. Sunucu tekrar gönderim yaptığındaysa kabul edip whitelist’ e ekliyor.
Gri listeleme, posta sunucusu düzeyinde önemli miktarda spam‘ i engellemek için kullanılan yeni bir yöntemdir.
Sonuç olarak, uygulamalar oldukça hafiftir ve posta sunucunuzdaki ağ trafiğini ve işlemci yükünü bile azaltabilir.
Halihazırda kendi başına çok etkili olmasına rağmen, diğer istenmeyen posta önleme biçimleriyle birlikte kullanıldığında en iyi sonucu verecektir.
pkg install –y postgrey
nano /usr/local/etc/rc.d/postgrey: ${postgrey_enable:=YES}: ${postgrey_dbdir:=/var/db/postgrey}##: ${postgrey_flags:=--inet=10023}: ${postgrey_flags:=--unix=/var/run/postgrey/postgrey.sock}
nano /usr/local/etc/postfix/main.cfsmtpd_recipient_restrictions = permit_mynetworks,reject_unauth_destination,check_policy_service unix:/var/run/postgrey/postgrey.sock
sysrc postgrey_enable="YES"/usr/local/etc/rc.d/postgrey startpostfix reload
MailScanner, Linux tabanlı e-posta ağ geçitleri için oldukça saygın bir açık kaynaklı e-posta güvenlik sistemi tasarımıdır.
Dünyanın dört bir yanındaki 40.000'den fazla sitede kullanılıyor, üst düzey hükümet dairelerini, ticari şirketleri ve eğitim kurumlarını koruyor.
Bu teknoloji, virüs koruması ve spam filtreleme için birçok ISS sitesinde standart e-posta çözümü haline gelmiştir.
MailScanner e-postaları virüsler, spam, phishing, kötü amaçlı yazılımlar ve güvenlik açıklarına karşı yapılan diğer saldırılara karşı tarar ve bir ağın güvenliğinde önemli bir rol oynar.
MailScanner, farklı MTA (Postfix, Sendmail, Exim) ları, başta ClamAV olmak üzere çeşitli antivirüs yazılımlarını(Avast!, F-Prot, AVIRA vb.) destekler.
Spam algılama işlemi standart spam algılama motoru olan Spamassassin ile gerçekleştirilir.
pkg install -y MailScannersysrc spamd_enable="YES"sysrc mailscanner_enable="YES"sysrc clamav_clamd_enable="YES"sysrc clamav_freshclam_enable="YES"
mkdir /var/spool/MailScannermkdir /var/spool/MailScanner/incomingmkdir /var/spool/MailScanner/quarantinemkdir /var/spool/MailScanner/spamassassinchown -R postfix:mail /var/spool/MailScannerchmod -R 775 /var/spool/MailScanner
MailScanner işleyişi gereği Postfix’ in kuyruk dosyalarını manipüle ediyor.
Tüm gelen epostalar Postfix’ in hold” kuyruğunda bekler,
MailScanner kuyruk dizinini ayarladığımız süreler içerisinde kontrol eder,
bekleyen eposta varsa alır,
ekleri ve epostayı birbirinden ayırıp antivirüs ve antispam testlerinden geçirip postfix’ in “incoming” kuyruğuna koyar.
nano /usr/local/etc/MailScanner/MailScanner.conf%org-name% = omu%web-site% = www.omu.edu.trRun As User = postfixRun As Group = mailIncoming Queue Dir = /var/spool/postfix/holdOutgoing Queue Dir = /var/spool/postfix/incomingMTA = postfixIncoming Work User = clamavIncoming Work Group = mailVirus Scanners = clamdStill Deliver Silent Viruses = yesQuarantine Whole Message = yesQuarantine Whole Messages As Queue Files = yesSpamAssassin User State Dir = /var/spool/MailScanner/spamassassinAlways Include SpamAssassin Report = yesLog Spam = yesSpam List = spamhaus-ZEN
High SpamAssassin Score default 10 gelmekte, ideali 5
Required SpamAssassin Score = 4.75High SpamAssassin Score = 5
MailScanner debug modda çalıştırılarak, yüklü olmayan perl modülleri yüklenmeli.
MailScanner –D --lint
nano /usr/local/sbin/ms-update-sagrep -q '^loadplugin.*Rule2XSBody' /usr/local/etc/mail/spamassassin/*pre 2>/dev/null
ln -s /usr/local/bin/freshclam /usr/bin/freshclam/usr/local/sbin/ms-update-vs
Clam AntiVirüs Unix/Linux sistemleri için e-posta sunucuları üzerinde e-posta virüs taraması yapmak üzere geliştirilmiştir.
1 milyonun üzerinde virüs, solucan, trojan, MS Office MacOffice makro virüsleri tespit edebilir.
clamav ve clamd olarak virüs taraması yapılabilir.
ClamAV’ı daemon olarak çalıştırmanız performans açısından büyük yarar sağlayacaktır.
ClamAV her başlattığınızda virüs imza veritabanı tekrar tekrar okuyacağına, daemon olarak kullandığınızda bir defa okunup her tarama için yeni bir process oluşturacaktır.
cat /usr/local/etc/MailScanner/MailScanner.conf|grep "Virus Scanners"Virus Scanners = clamd
ClamAV’in clamd ve freshclam olmak üzere iki adet daemon’ ı bulunuyor;clamd dosya tarama işlerini yaparken,freshclam ise ClamAV’ı imza veritabanını günceller.MailScanner antivirüs ayarları için default ayarlar yeterli olacaktır.
/usr/local/etc/rc.d/clamav-freshclam start/usr/local/etc/rc.d/clamav-clamd start
Virüs imza veritabanını güncellemek için
# freshclam
Apache SpamAssassin, sistem yöneticilerine e-postayı sınıflandırmak ve spam engellemek için bir filtre sağlayan açık kaynak antispam platformudur.
Metin analizleri, Bayes filtreleme, DNS blok listeleri ve işbirlikçi filtreleme veritabanları dahil olmak üzere, e-posta başlıklarında ve gövde metinlerinde çok çeşitli gelişmiş sezgisel ve istatistiksel analiz testlerini entegre etmek için sağlam bir puanlama çerçevesi ve eklentileri kullanır.
SpamAssassin MailScanner tarafından çağırılarak Perl modülü olarak kullanılır.
SpamAssassin debug modda çalıştırılarak, yüklü olmayan perl modülleri kurulmalı.
spamassassin -D --lint
pkg install razor-agents p5-LWP-UserAgent-Determined p5-Net-Patricia p5-Geo-IP p5-IO-Socket-INET6
sa-update
mkdir /usr/local/etc/MailScanner/bayeschown root:www /usr/local/etc/MailScanner/bayeschmod g+rws /usr/local/etc/MailScanner/bayescp /var/spool/MailScanner/spamassassin/bayes_* /usr/local/etc/MailScanner/bayeschown root:www /usr/local/etc/MailScanner/bayes/bayes_*chmod g+rw /usr/local/etc/MailScanner/bayes/bayes_*
nano /usr/local/etc/MailScanner/spamassassin.confbayes_ignore_header omu-MailScannerbayes_ignore_header omu-MailScanner-SpamCheckbayes_ignore_header omu-MailScanner-SpamScorebayes_ignore_header omu-MailScanner-Informationbayes_path /usr/local/etc/MailScanner/bayes/bayesbayes_file_mode 0660envelope_sender_header X-omu-MailScanner-From
pkg install -y py36-pyzor dcc-dccd
nano /usr/local/etc/MailScanner/spamassassin.confifplugin Mail::SpamAssassin::Plugin::Pyzor pyzor_path /usr/local/bin/pyzorendififplugin Mail::SpamAssassin::Plugin::DCC dcc_path /usr/local/bin/dccprocendififplugin Mail::SpamAssassin::Plugin::Razor2 razor_config /usr/local/etc/mail/spamassassin/razor/razor-agent.confendif
nano /usr/local/etc/mail/spamassassin/v310.preloadplugin Mail::SpamAssassin::Plugin::DCCloadplugin Mail::SpamAssassin::Plugin::Pyzorloadplugin Mail::SpamAssassin::Plugin::Razor2
cd /usr/local/etc/mail/spamassassin/razor/razor-clientrazor-admin -home=/usr/local/etc/mail/spamassassin/razor -registerrazor-admin -home=/usr/local/etc/mail/spamassassin/razor -createrazor-admin -home=/usr/local/etc/mail/spamassassin/razor -discover
Spam olan ve olmayan test dosyaları indirilip pyzor ve razor2 nin çalıştığı test edilir.
cd /usr/local/share/doc/spamassassinwget http://svn.apache.org/repos/asf/spamassassin/trunk/sample-nonspam.txtwget http://svn.apache.org/repos/asf/spamassassin/trunk/sample-spam.txt
spamassassin -t -D pyzor < /usr/local/share/doc/spamassassin/sample-spam.txtspamassassin -t -D pyzor < /usr/local/share/doc/spamassassin/sample-nonspam.txt
spamassassin -t -D razor2 < /usr/local/share/doc/spamassassin/sample-spam.txtspamassassin -t -D razor2 < /usr/local/share/doc/spamassassin/sample-nonspam.txt
MailWatch, PHP ve MySQL ile yazılmış MailScanner‘ ın web GUI sidir ve GNU Public License'ın şartları altında ücretsiz olarak kullanılabilir.
MailScanner için MailScanner'ın tüm mesaj verilerini (gövde metni hariç) bir MySQL veritabanına kaydetmesini sağlayan ve daha sonra MailWatch tarafından raporlama ve istatistik için sorgulanan bir CustomConfig modülü ile birlikte gelir.
nano /usr/local/etc/MailScanner/MailScanner.confAlways Looked Up Last = &MailWatchLoggingSpam Actions = store-spamIs Definitely Not Spam = &SQLWhitelistIs Definitely Spam = &SQLBlacklist
cd /usr/local/www/wget https://github.com/mailwatch/MailWatch/archive/v1.2.8.zipunzip v1.2.8.zipmv MailWatch-1.2.8 mailwatchcd mailwatch/mailscannerchown root:www tempchmod g+rw tempcp conf.php.example conf.php
nano conf.phpdefine('TIME_ZONE', 'Europe/Istanbul');define('DB_PASS', ' <secret>');define('MAILWATCH_HOME', '/usr/local/www/mailwatch/mailscanner');define('MS_CONFIG_DIR', '/usr/local/etc/MailScanner/');define('MS_SHARE_DIR', '/usr/local/share/MailScanner/perl/MailScanner/');define('MS_LIB_DIR', '/usr/local/lib/MailScanner/wrapper/');define('MS_EXECUTABLE_PATH', '/usr/local/sbin/MailScannerdefine('IMAGES_DIR', '/images/'); define('SA_DIR', '/usr/local/bin/');define('SA_RULES_DIR', '/usr/local/share/spamassassin/');define('SA_PREFS', MS_CONFIG_DIR . 'spamassassin.conf'); define('TEMP_DIR', '/tmp/');
pkg install -y mariadb102-server php72-mysqli apache24 mod_php72 php72-extensions
cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini
nano /usr/local/etc/php.inidate.timezone = "Europe/Istanbul"
sysrc mysql_enable="YES"sysrc apache24_enable="YES"service mysql-server startmysql_secure_installation
nano /usr/local/etc/apache24/Includes/php.conf<FilesMatch "\.php$"> SetHandler application/x-httpd-php</FilesMatch><FilesMatch "\.phps$"> SetHandler application/x-httpd-php-source</FilesMatch>
nano /usr/local/etc/apache24/httpd.confDirectoryIndex index.php index.htmlDocumentRoot "/usr/local/www/mailwatch/mailscanner/"<Directory "/usr/local/www/mailwatch/mailscanner/">
service apache24 start
cd /usr/local/www/mailwatch/mysql -uroot -p < create.sqlmysqlmysql> GRANT ALL ON mailscanner.* TO mailwatch@localhost IDENTIFIED BY '<secret>';mysql> GRANT FILE ON *.* TO mailwatch@localhost IDENTIFIED BY '<secret>';mysql> FLUSH PRIVILEGES;mysql> quit
mysql mailscanner -u mailwatch -pmysql> INSERT INTO users SET username = 'admin', password = MD5('<password>'), fullname = '<name>', type = 'A';mysql> FLUSH PRIVILEGES;mysql> quit
ln -s /usr/local/www/mailwatch/MailScanner_perl_scripts/MailWatch.pm /usr/local/share/local/MailScanner/perl/customln -s /usr/local/www/mailwatch/MailScanner_perl_scripts/MailWatchConf.pm /usr/local/share/MailScanner/perl/customln -s /usr/local/www/mailwatch/MailScanner_perl_scripts/SQLBlackWhiteList.pm /usr/local/share/MailScanner/perl/customln -s /usr/local/www/mailwatch/MailScanner_perl_scripts/SQLSpamSettings.pm /usr/local/share/MailScanner/perl/custom
nano /usr/local/www/mailwatch/MailScanner_perl_scripts/MailWatchConf.pmmy ($db_pass) = '<secret>';
nano /usr/local/www/MailWatch-1.2/mailscanner/sf_version.php////exec("which postconf", $postconf);$postconf = array("/usr/local/sbin/postconf");
perl -MCPAN -e shellinstall DBD::mysql
cpan Encoding::FixLatin
- Phishing veritabanı yeterli değil
- Spam sayısı azaldı ama yeterli değil
- Kara liste için joker kullanılamıyor
To | From |
---|---|
a@a.com | b@b.com |
a.com | default |
default | 1.2.3.4 |
a.com | b.com |