Spamassassin

Установка и настройка SpamAssassin

cd  /usr/ports/mail/spamassassin #включить поддержку Mysql
make install clean
mysql -u root -p123456789
mysql> create database spamassassin;
mysql> GRANT SELECT,INSERT,UPDATE,DELETE ON spamassassin.* TO spamassassin IDENTIFIED BY ‘spamassassin’;
mysql> flush privileges;

Далее

cd /usr/local/share/doc/spamassassin/sql/

При импорте баз

cd /usr/local/share/doc/spamassassin/sql
mysql -u <имя пользователя-администратора> -p spamassassin < awl_mysql.sql
mysql -u <имя пользователя-администратора> -p spamassassin < bayes_mysql.sql
mysql -u <имя пользователя-администратора> -p spamassassin < userpref_mysql.sql

была ошибка типа

'ERROR 1064 (42000) at line 4: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TYPE=MyISAM' at line…..

В связи с тем,что я импользовал уже Mysql версии 5.5
В файлах awl_mysql.sql, bayes_mysql.sql, userpref_mysql.sql
Необходимо TYPE=MyISAM заменить на ENGINE=MyISAM
После этого импорт проходит нормально

mysql -u root -p123456789 spamassassin < awl_mysql.sql
mysql -u root -p123456789 spamassassin < bayes_mysql.sql
mysql -u root -p123456789 spamassassin < txrep_mysql.sql
mysql -u root -p123456789 spamassassin < userpref_mysql.sql

Далее

cd /usr/local/etc/mail/spamassassin/
cp local.cf.sample local.cf
ee local.cf
sa-update
spamassassin –-lint

Проверка – отсылаем себе письмо с таким содержанием

XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X

Также можно проверить работу SpamAssassin на типовых файлах.

# spamassassin -t < sample-spam.txt > spam.out

Посмотрите результирующий файл spam.out. SpamAssassin должен добавить
следующий заголовок к письму:

X-Spam-Status: Yes, hits=14.7 required=5.0
 tests=ALL_CAPS_HEADER,CALL_FREE,DATE_IN_PAST_24_48,
 DRASTIC_REDUCED,FROM_HAS_MIXED_NUMS,HOME_EMPLOYMENT,
 INVALID_DATE,INVALID_MSGID,LINES_OF_YELLING,
 MSGID_HAS_NO_AT,NO_REAL_NAME,ONCE_IN_LIFETIME,REMOVE_SUBJ,
 SMTPD_IN_RCVD,SPAM_PHRASE_21_34,UNDISC_RECIPS
 version=2.43
 X-Spam-Flag: YES
 X-Spam-Level: **************
 X-Spam-Checker-Version: SpamAssassin 2.43 (1.115.2.20-2002-10-15-exp)

Дополнительно, будет заголовок, объясняющий подробно, какие критерии
применялись.

Затем, проверьте SpamAssassin на работу с подлинной электронной
почтой:

# spamassassin -t < sample-nonspam.txt > nonspam.out

Должен быть добавлен только индикатор, о том, что сообщение не
признано спамом:

X-Spam-Status: No, hits=0.9 required=5.0
 tests=GAPPY_TEXT,LINES_OF_YELLING,PGP_SIGNATURE,
 SPAM_PHRASE_02_03,TO_BE_REMOVED_REPLY
 version=2.43
 X-Spam-Level:

Примечание: SpamAssassin только помечает сообщение, которое он
посчитал спамом с помощью заголовка X-Spam- . Он не удаляет спам и
поэтому в этой цепочке требуется другой агент, удаляющий такие
сообщения.

Ставим в крон:

crontab -e
1 0 * * * /usr/local/bin/sa-update && /usr/local/etc/rc.d/sa-spamd restart

 

 

 

image_pdfimage_print

Postfix – команды

Проверка синтаксиса конфигурационных файлов Postfix

# postfix check

Просмотр текущих значений параметров Postfix

# postconf

Просмотр стандартных значений параметров Postfix (значений по умолчанию)

# postconf -d
# postconf | grep message_size_limit
message_size_limit = 10240000
postconf -d message_size_limit — показывает значение по умолчанию
postconf -n message_size_limit — текущее значение, которое соответствует main.cf

Изменение значения параметра message_size_limit без перезагрузки (работает и после перезагрузки postfix)

# postconf -e 'message_size_limit = 20480000'
# postconf | grep message_size_limit
message_size_limit = 20480000
# /etc/init.d/postfix restart

Работа с очередью

Просмотр очереди сообщений

# mailq | less
# postqueue -p | less

Просмотр кол-ва сообщений в очереди

# mailq | grep Request
-- 25913 Kbytes in 1809 Requests.

Альтернативный вариант — посчитать файлы в соответствующем каталоге:

# find /var/spool/postfix/deferred -type f | wc -l
# find /var/spool/postfix/active -type f | wc -l
# find /var/spool/postfix/incoming -type f | wc -l

Отправка всех сообщений, находящихся в очереди

# postqueue -f
# mailq -q
# postsuper -r ALL

Отправка сообщения с конкретным идентификатором

# postqueue -i <ID-сообщения>
# postsuper -r <ID-сообщения>

Отправка всех сообщений для конкретного домена

# postqueue -s domain.com

Подсчет кол-ва писем в очереди для/от конкретного адресата

# mailq | grep bob@domain.com | wc -l

Просмотреть параметры сообщения и причины проблем с отправкой для заданного идентификатора сообщения в очереди:

# postcat -q BA84A294E693 | less

Аналогично,но более подробно

# postcat -vq BA84A294E693 | less

Очистка почтовой очереди (удаление всех писем с очереди)

# postsuper -d ALL

Очистка почтовой очереди типа deferred

# postsuper -d ALL deferred

Удаление письма с конкретным идентификатором

# postsuper -d ID, где ID – идентификатор письма

 

image_pdfimage_print

PostfixAdmin

Устанавливаем PostfixAdmin

cd /usr/local/ports/mail/postfixadmin/
make install clean

В конец файла /usr/local/etc/apache24/httpd.conf  (или делаем файлик в ./Includes/) дописываем (в 24 версии поменялся синтаксис – не забываем)

Alias /postfixadmin/ “/usr/local/www/postfixadmin/”

<Directory “/usr/local/www/postfixadmin/”>
   Options Indexes FollowSymLinks
   AllowOverride Limit
   #Order Allow,Deny
   #Allow from all
   Require all granted
</Directory>

2. Далее

chown -R www:www /usr/local/www/postfixadmin/templates_c

3. Заходим по ссылке

http://192.168.0.10/postfixadmin/setup.php
image_pdfimage_print

Roundcube

1. Устанавливаем roundcube из портов

 /usr/ports/mail/roundcube/

2. Создать через phpmyadmin БД roundcubemail с полным доступом пользователю roundcube

3. Вставляем в конф файл апача в самый низ или в ./includes/

Alias /rmail "/usr/local/www/roundcube/"
<Directory /usr/local/www/roundcube>
   DirectoryIndex index.php
   AllowOverride None
   Options -ExecCGI +FollowSymLinks
   Require all granted
</Directory>

4. Меняем данные в ./config/

 $config['enable_installer'] = true; // После настройки закомментировать
 $config['db_dsnw'] = 'mysql://user:password@localhost/BD';
 //$config['db_dsnw'] = 'mysql://roundcube:aq1wsxde3@localhost/roundcubemail';
 $config['imap_auth_type'] = 'PLAIN'; // Если нет SMTP-аутентификации ставим PLAIN (иначе не будет работать)
 $config['product_name'] = 'Web Mail Imp';

Можно включить полезный плагин

 // ----------------------------------
 // PLUGINS
 // ----------------------------------
 // List of active plugins (in plugins/ directory)
 $config['plugins'] = array('additional_message_headers');

Также необходимо создать конфигурационный файл модуля – config.inc.php и поместить его в каталог плагина additional_message_headers. Содержимое config.inc.php такое:

<?php
$rcmail_config['additional_message_headers']['X-Remote-Browser'] = $_SERVER['HTTP_USER_AGENT'];
$rcmail_config['additional_message_headers']['X-Originating-IP'] = $_SERVER['REMOTE_ADDR'];
$rcmail_config['additional_message_headers']['X-RoundCube-Server'] = $_SERVER['SERVER_ADDR'];
?>

Теперь в письмах, при просмотре заголовков можно обнаружить такие записи:

X-Remote-Browser: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36
 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36
X-Originating-IP: 192.168.36.12
X-RoundCube-Server: 192.168.36.160

5. По ссылке заходим

http://192.168.36.160/rmail/installer/index.php

Желательно поменять timezone в /usr/local/etc/php.ini

date.timezone = Europe/Kiev

6. Обратите внимание: доступ через веб-сайт к каталогу config должен быть запрещен!. Для этого надо в конфиге Apache изменить “AllowOverride None” на “AllowOverride All“, чтобы файл .htaccess, поставляемый вместе с Roundcube, заработал.

 

image_pdfimage_print

Clamav

Установка из портов

# cd /usr/ports/security/clamav
# make
# make install

# cd /usr/ports/security/clamsmtp
# make
# make install

после установки
в директории /usr/local/etc/rc.d/ создаются скрипты автозапуска
clamav-clamd.sh
clamav-freshclam.sh
clamav-milter.sh

в директории /usr/local/etc/ создается файлы конфигурации:
clamd.conf
clamsmtpd.conf
freshclam.conf

далее:
# ee /usr/local/etc/clamav.conf

закомментировать (если они раскомментированы, конечно)
опции TCPAddr и TCPSocket
раскомментировать строку

LocalSocket /var/run/clamav/clamd.sock

сохраняем
далее:
# ee /usr/local/etc/clamsmtpd.conf

раскомментировать
Listen: 0.0.0.0:10025
раскомментировать:
ClamAddress: /var/run/clamav/clamd
и исправить на:
ClamAddress: /var/run/clamav/clamd.sock

если хотите подпись антивируса в хедер письма, то раскомментировать:
Header: X-Virus-Scanned: ClamAV using ClamSMTP

раскомментировать:
TimeOut: 180
TempDirectory: /tmp
User: clamav

сохраняем

далее:
POSTFIX установка и настройка Postfix

# ee /usr/local/etc/postfix/main.cf

пишем:

content_filter = scan:127.0.0.1:10025
receive_override_options = no_address_mappings

сохраняем

далее:
# ee /usr/local/etc/postfix/master.cf

пишем:
# AV scan filter (used by content_filter)
scan unix – – n – 16 smtp
-o smtp_send_xforward_command=yes

# For injecting mail back into postfix from the filter
127.0.0.1:10026 inet n – n – 16 smtpd
-o content_filter=
-o receive_override_options=no_unknown_recipient_checks,no_header_body_checks
-o smtpd_helo_restrictions=
-o smtpd_client_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o mynetworks_style=host
-o smtpd_authorized_xforward_hosts=127.0.0.0/8

Примечание: вокруг знака ‘=’ пробелы не ставить.

сохраняем

далее:
# ee /etc/rc.conf

пишем:
clamav_clamd_enable=”YES”
clamav_freshclam_enable=”YES”
clamsmtpd_enable=”YES”

сохраняем

стартуем:
# freshclam -d -c 2 -l /var/log/clamav/clam-update.log
# clamd start.
# clamsmtpd
# postfix reload

 

image_pdfimage_print

Пропала языковая панель Windows XP

1. Пуск –> Панель управления –> Язык и региональные стандарты –> Языки –> Подробнее –> Параметры –> Языковая панель

(отображать языковую панель) если она еще не включена и нажмите ОК

Дополнительно. Нижняя галочка должна быть выключена.

Если она там есть, уберите ее и нажмите ОК.

Если процесса ctfmon не видно, тогда идем в папку C:\Windows\System32 ищем файл ctfmon и запускаем его.

Если такого файла там нет, значит скачиваем его отсюда: ctfmon.exe, помещаем его в папку C:\Windows\System32 и запускаем.

2. После этого повторяем шаг 1 и перезагружаем комп, языковая панель должна появиться.

3. Скачиваем этот файл: panel.reg и запускаем. Этот файл вносит изменения в реестр чтобы вернуть языковую панель. Если антивирус начинает ругаться – посылайте его куда подальше.

4. Если все предыдущие шаги не помогли – поставьте себе программу Punto Switcher. Она и языковую панель показывает, и языки переключает, и даже автоматическое переключение поддерживает, если надо.

image_pdfimage_print

Postfix + Dovecot + MySQL + Postfix Admin, часть 3 – установка и настройка Dovecot

Отредактируем файл конфигурации Dovecot – /usr/local/etc/dovecot/dovecot.conf:

cat  /usr/local/etc/dovecot/dovecot.conf | grep -v '^#' | sed '/^$/d' | more

# После отладки отключить дебаги!!!
auth_debug = yes
auth_debug_passwords = yes
auth_mechanisms = plain login cram-md5
auth_socket_path = /var/run/dovecot/auth-userdb
auth_verbose = yes
auth_verbose_passwords = yes
base_dir = /var/run/dovecot/

disable_plaintext_auth = no

listen = *
log_path = /var/log/dovecot.log
login_log_format_elements = user=<%u> method=%m rip=%r lip=%l mpid=%e %c

login_trusted_networks = 127.0.0.0/8, 192.168.1.0/24

mail_debug = yes

mail_location = maildir:~/Maildir

protocols = imap pop3

namespace inbox {
 inbox = yes
 # list = yes
 location =
 mailbox Drafts {
 special_use = \Drafts
 }
 mailbox Junk {
 special_use = \Junk
 }
 mailbox Sent {
 special_use = \Sent
 }
 mailbox "Sent Messages" {
 special_use = \Sent
 }
 mailbox Trash {
 special_use = \Trash
 }
 prefix =
 separator = /
 subscriptions = yes
 type = private
}

passdb {
 args = /usr/local/etc/dovecot/dovecot-sql.conf.ext
 driver = sql
}
userdb {
 args = /usr/local/etc/dovecot/dovecot-sql.conf.ext
 driver = sql
}

####
service auth {
 unix_listener auth-userdb {
 group = postfix
 mode = 0666
 user = postfix
 }
 user = dovecot
}
service imap-login {
 inet_listener imap {
 port = 143
 }
}
service imap {
 process_limit = 1024
}
service pop3-login {
 inet_listener pop3 {
 port = 110
 }
}
service pop3 {
 process_limit = 1024
}
ssl = no

userdb {
 driver = passwd
}

verbose_proctitle = yes
verbose_ssl = yes
protocol lmtp {
 mail_plugins =
}
protocol imap {
 mail_max_userip_connections = 10
 mail_plugins =
}
protocol pop3 {
 mail_max_userip_connections = 10
 mail_plugins =
}
Редактируем файл конфигурации работы с MySQL – /usr/local/etc/dovecot/dovecot-sql.conf.extВАЖНО: параметр query может меняться в зависимости от версии сервера, в описываемом примере используется dovecot2:
# cat /usr/local/etc/dovecot/dovecot-sql.conf.ext | grep -v '^#' | sed '/^$/d' | more
# Database driver: mysql, pgsql, sqlite
driver = mysql
connect = host=localhost dbname=postfix user=postfix password=mypassword

default_pass_scheme = MD5-CRYPT

# Запрос, возвращающий пароль
password_query = SELECT `username` as `user`, `password` FROM `mailbox` WHERE `username` = '%n@%d' AND `active`='1'

# Запрос, возвращающий инфу о юзере и проверяющий квоту
user_query = SELECT CONCAT('/var/vmail/', `maildir`) AS \
 `home`, 65534 AS `uid`, 65534 AS `gid`, concat('dict:storage=', \
 CAST(ROUND(quota / 1024) AS CHAR), '::proxy::sqlquota') \
 AS quota, CONCAT('*:storage=', CAST(quota AS CHAR), 'B') AS quota_rule \
 FROM `mailbox` WHERE `username` = '%n@%d' AND `active`='1'

# Query to get a list of all usernames.
iterate_query = SELECT username AS user FROM mailbox
Добавляем пользователя dovecot в группу mail
cat /etc/group | grep mail
mail:*:6:postfix,dovecot
Далее
chown dovecot:mail /var/log/dovecot.log
chmod 0666 /var/log/dovecot.log
Продолжаем
chown -R nobody:nobody /var/vmail
chmod -R 0777 /var/vmail
Перезапускаем Dovecot:
# service dovecot onerestart

Проверяем

root@tmail:/var/log # telnet localhost 110
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK [XCLIENT] Dovecot ready.
user acc@domain.ltd
+OK
pass q1w2e3
+OK Logged in.
list
+OK 2 messages:
1 348
2 348
.
quit
+OK Logging out.
Connection closed by foreign host.

Добавляем Dovecot в запуск при загрузке системы в файл /etc/rc.conf:

dovecot_enable="YES"
На этом настройка почтового сервера завершена.

При проблемах – не забываем в первую очередь смотреть лог /var/log/maillog.

После настройки postfix нужно перестроить базу данных для файла почтовых алиасов /etc/aliases и /etc/aliases.db командой newaliases иначе почта может не ходить.

 

Часть 1 (PostfixAdmin)
Часть 2 (Postfix)
Apache24, MySQL56, PhP5
Apache24 + SSL и redirect http to https
Clamav
Spamassassin
Amavis-new + связь с Postfix
SSL сертификат для Postfix
SSL сертификат для Dovecot
Sieve + Dovecot
OpenDKIM + Postfix

 

 

image_pdfimage_print

iptables – автозарузка правил

Под суперпользователем:

1. Делаем скрипт, выполняемый при поднятии интерфейса

nano -w /etc/network/if-up.d/00-iptables 
    #!/bin/sh 
    iptables-restore < /etc/firewall.conf 
    ip6tables-restore < /etc/firewall6.conf 
 
2. Даём право запуска этого скрипта
    chmod +x-w /etc/network/if-up.d/00-iptables 
 
3. Сохраняем в конфиг правила для IPv4
    iptables-save >/etc/firewall.conf 
 
4. Сохраняем в конфиг правила для IPv6
    ip6tables-save >/etc/firewall6.conf

 

 

image_pdfimage_print

UTF-8 – в терминале и оболочке

1. Добавляем в файл /boot/loader.conf

kern.vty=vt

3. Проверяем тип консоли в файле /etc/ttys, должно быть xterm

4. Редактируем класс «russian» в файле /etc/login.conf, должно получиться следующее:

5. Обновляем /etc/login.conf.db командой:

При создании нового пользователя можно сразу прописать нужный нам класс командой

8. Перезагрузка

init 6
image_pdfimage_print

Squid – transparent proxy

Squid Installation and Configuration

yum install squid -y

Edit squid configuration file

Before you edit default configuration file it is highly recommended to keep backup.

cp /etc/squid/squid.conf /etc/squid/squid.conf.bk-07-05-2016

Open configuration file and add below mentioned parameters

vi /etc/squid/squid.conf

Add transparent proxy setting and add and allow our_network

vi /etc/squid/squid.conf

Allow LAN Network
acl our_network src 192.168.2.0/24
# Allow Network ACL Allow/Deny Section#
http_access allow our_network
# Transparent Proxy Parameters
http_port 3128 intercept
visible_hostname pxy.broexperts.com

Save & Exit

Now start squid service and make sure it is added on startup.

systemctl start squid
systemctl enable squid

If you wish to use iptables instead of firewalld deamon use below link to enable iptables in CentOS7 and then Add below showing iptables rules to setup squid as transparent proxy.

Note:-Refer this guide to enable iptables in CentOS 7 How to Enable Iptables Firewall in CentOS 7 / RHEL 7

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.2.100:3128
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables --t nat -A POSTROUTING --out-interface eth1 -j MASQUERADE

now you can save your iptable rules by following command:

service iptables save

That’s It, Now squid should work smoothly in transparent proxy mode.

image_pdfimage_print