<body><script type="text/javascript"> function setAttributeOnload(object, attribute, val) { if(window.addEventListener) { window.addEventListener('load', function(){ object[attribute] = val; }, false); } else { window.attachEvent('onload', function(){ object[attribute] = val; }); } } </script> <div id="navbar-iframe-container"></div> <script type="text/javascript" src="https://apis.google.com/js/platform.js"></script> <script type="text/javascript"> gapi.load("gapi.iframes:gapi.iframes.style.bubble", function() { if (gapi.iframes && gapi.iframes.getContext) { gapi.iframes.getContext().openChild({ url: 'https://www.blogger.com/navbar.g?targetBlogID\x3d19915773\x26blogName\x3d%D0%9A%D1%80%D0%BE%D0%BC%D0%B5+%D0%97%D0%B2%D0%B5%D0%B7%D0%B4\x26publishMode\x3dPUBLISH_MODE_BLOGSPOT\x26navbarType\x3dBLUE\x26layoutType\x3dCLASSIC\x26searchRoot\x3dhttps://molokolab.blogspot.com/search\x26blogLocale\x3dru_RU\x26v\x3d2\x26homepageUrl\x3dhttp://molokolab.blogspot.com/\x26vt\x3d-3352100780546093563', where: document.getElementById("navbar-iframe-container"), id: "navbar-iframe", messageHandlersFilter: gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER, messageHandlers: { 'blogger-ping': function() {} } }); } }); </script>

Кроме Звезд

слава роботам and etc..
 

Дублирование загрузочной области (GRUB)

вторник, сентября 26, 2006

GRand Unified Boolloader (GRUB) - универсальный мультизагрузчик.

Имея несколько хотсвоповых жестких дисков, можно с толкнуться с такой ситуацией, когда один из дисков отключен (и именно он содержит загрузочную область), тогда вся система не сможет загрузиться.
Чтобы этого избежать можно продублировать загрузочную область на каждый жесткий диск.

$grub
>device (hd0) /dev/sdb
>root (hd0,0)
>setup (hd0)
>quit

Ярлыки: ,

Создание локального репозитария для yum



Yellowdog Updater Modified (yum) - является интерактивной автоматизированной программой обновления, которая может использоваться для сопровождения систем, использующих rpm.

Для создания локального репозитария необходим пакет createrepo.
Установим его:

yum install createrepo

Теперь нужно создать локальный каталог для репозитария.
Создадим каталог repo:
mkdir /opt/repo
В этот каталог положим все необходимые нам файлы.
И скажем системе, определить репозитарий:

createrepo /opt/repo/

Все репозитарий определен.
Осталось только сказать yum-у чтобы он использовал его.
Для этого в /etc/yum.repos.d/ создадим файл ext-repo.repo (или отредактируем в любой
другой)
[local]
name=Extra Fedora rpms dries - $releasever - $basearch
baseurl=file:///opt/repo
enabled=1

Ярлыки: ,

Развертывание почтового сервера Postfix (RHEL4)



Почтовый сервер Postfix, на базе RedHat Enterprise Linux 4, с поддержкой IMAP, SMTP аутенификацией, фильтрацией спама, Web-интерфейсом и проверкой почты на вирусы.
Авторы: Николай Самосват (Nikolay Samosvat), Сергей Зинец (Sergey Zinec)

Оглавление:
1.Устанавливаем Postfix
2.Устанавливаем Dovecot.
3.Настройка Postfix для поддержки аутенификации SMTP.
4.Устанавливаем Web-интерфейс для работы с почтой
5.Проверка почты на вирусы, с помощью ClamAV и Amavis
6.Средства борьбы со спамом (spamassassin, postgrey)

Устанавливаем Postfix
Postfix — агент передачи почты (MTA — mail transfer agent)

yum install postfix

Настроим алиасы, чтобы вся почта для пользователя root пересылалась нашему пользователю lamo
для этого в /etc/aliaces в самый конец добавим строку
root lamo

В конфиге /etc/postfix/mail.cf вносим необходимые изменения:

Часть 1.
# INTERNET HOST AND DOMAIN NAMES
#
# The myhostname parameter specifies the internet hostname of this
# mail system. The default is to use the fully-qualified domain name
# from gethostname(). $myhostname is used as a default value for many
# other configuration parameters.
#
#myhostname = virtual.domain.tld
myhostname = post.stcompany.ru

# The mydomain parameter specifies the local internet domain name.
# The default is to use $myhostname minus the first component.
# $mydomain is used as a default value for many other configuration
# parameters.
#
mydomain = stcompany.ru

Часть2.
# Alternatively, you can specify the mynetworks list by hand, in
# which case Postfix ignores the mynetworks_style setting.
#
# Specify an explicit list of network/netmask patterns, where the
# mask specifies the number of bits in the network part of a host
# address.
#
# You can also specify the absolute pathname of a pattern file instead
# of listing the patterns here. Specify type:table for table-based lookups
# (the value on the table right-hand side is not used).
#
mynetworks = 192.168.10.0/28, 127.0.0.0/8
#mynetworks = $config_directory/mynetworks
#mynetworks = hash:/etc/postfix/network_table

Теперь нужно перезапустить сервис:

service postfix restart

Все, остальное можно оставить по умолчанию.
Для проверки отправим себе письмо:
[root@post sysconfig]# telnet 192.168.10.120 25
Trying 192.168.10.120...
Connected to post.stcompany.ru (192.168.10.120).
Escape character is '^]'.
220 post.stcompany.ru ESMTP Postfix
HELO post.stcompany.ru
250 post.stcompany.ru
mail from:fromer@from.info
*(здесь все равно что писать, если в mail.cf не включена проверка отправителя)
250 Ok
rcpt to:root@post.stcompany.ru
250 Ok
data
354 End data with .
!!preved krasavcheg!!
.
250 Ok: queued as BC1332BC5A
quit
221 Bye
Connection closed by foreign host.
[root@post sysconfig]#

Все нормально, письмо отправилось, теперь посмотрим, пришло ли оно.
Т.к. postfix хранит все почту в /var/mail/имя_пользователя, а в нашем случае письмо писалось для root, но в соответствии с настроенными алиасами было перенаправлено пользователю lamo, там и смотрим:

[root@post sysconfig]# cat /var/mail/lamo
From fromer@from.info Thu Aug 24 11:46:55 2006
Return-Path:
X-Original-To: root@post.stcompany.ru
Delivered-To: lamo@post.stcompany.ru
Received: from localhost (localhost.localdomain [127.0.0.1])
by post.stcompany.ru (Postfix) with ESMTP id 9A28E2BC5C
for ; Thu, 24 Aug 2006 11:46:55 +0400 (MSD)
X-Virus-Scanned: amavisd-new at example.com
Received: from post.stcompany.ru ([127.0.0.1])
by localhost (post.stcompany.ru [127.0.0.1]) (amavisd-new, port 10024)
with LMTP id Ou3ZVMMH3-15 for ;
Thu, 24 Aug 2006 11:46:55 +0400 (MSD)
Received: from post.stcompany.ru (post.stcompany.ru [192.168.10.120])
by post.stcompany.ru (Postfix) with SMTP id BC1332BC5A
for ; Thu, 24 Aug 2006 11:46:21 +0400 (MSD)
Message-Id: <20060824074621.BC1332BC5A@post.stcompany.ru>
Date: Thu, 24 Aug 2006 11:46:21 +0400 (MSD)
From: fromer@from.info
To: undisclosed-recipients: ;
Status: O
X-UID: 2
Content-Length: 78
X-Keywords:

!!preved krasavcheg!!

Видим, что письмо доставлено и все в порядке..
Теперь сделаем, чтобы postfix запускался при старте системы:
# /sbin/chkconfig --level 35 postfix on


Устанавливаем Dovecot.
Dovecot – IMAP-сервер, рассчитанный на максимальную безопасность и надежность, способный обслуживать клиентов по протоколам imap, imaps, pop3, pop3s.

Так как этих пакетов нет в стандартной поставке RHEL4 я подключил дополнительные репозитории к yum, создав файл /etc/yum.repos.d/ext-rep.repo со следующим содержанием:

[dag]
name=Dag RPM Repository for Red Hat Enterprise Linux
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
#gpgcheck=0
enabled=1

[dries]
name=Extra Fedora rpms dries - $releasever - $basearch
baseurl=http://ftp.belnet.be/packages/dries.ulyssis.org/redhat/el4/en/i386/dries/RPMS
enabled=1

[karan]
name=CentOS.Karan.Org-EL$releasever - Stable
#gpgkey=http://centos.karan.org/RPM-GPG-KEY-karan.org.txt
#gpgcheck=1
enabled=1
baseurl=http://centos.karan.org/el$releasever/misc/stable/$basearch/RPMS/
baseurl=ftp://rpm.karan.org/pub/kbsingh/el$releasever/misc/stable/$basearch/RPMS/
Приступим к установке:

yum install dovecot

для того чтобы он заработал, достаточно в /etc/dovecot.conf найти секцию
# Protocols we want to be serving:
# imap imaps pop3 pop3s
и здесь раскомментировать и поправить строку protocols таким образом.

protocols = imap imaps pop3
*imap здесь присутствует чтобы можно было в дальнейшем подключить SquirrelMail.
Перезапускаем postfix и dovecot.
И сделаем, чтобы dovecot запускался при старте системы:
# /sbin/chkconfig --level 35 dovecot on
Все, теперь пользователи могут получать почту с нашего сервера.

Настройка Postfix для поддержки аутенификации SMTP.
Постфикс может быть сконфигурирован на релей почты от пользователей, находящихся в "чужих" сетях, у которых валидны логин и пароль.
Добавим следующие строки в файл /etc/postfix/main.cf

# Эта строка информирует постфикс о том, что необходимо
# использовать SMTP AUTH когда пользователь находится
# не в 'mynetwork' и пытается отправить почту на "чужие" домены
smtpd_sasl_auth_enable = yes

# Эта опция выключает выключает "anonymous style" для SMTP AUTH.
# Без этой опции любой может использовать postfix как "open relay"
smtpd_sasl_security_options = noanonymous

# Эта опция устанавливает ограничения для клиентов,
# пытающихся релееить почту через ваш почтовый сервер
smtpd_recipient_restrictions = permit_sasl_authenticated,
permit_mynetworks,
reject_unauth_destination
Поправим файл /etc/sysconfig/saslauthd

# эта опция указывает на то, что демону saslauthd необходимо
# использовать механизм PAM (подключаемые модули аутентификации)
# для проверки каждого имени и пароля
MECH=pam

Теперь удостоверимся что демон saslauthd запускается при старте системы, выполнив от рута команду:

# /sbin/chkconfig --level 35 saslauthd on

Теперь запускаем saslauthd и postfix:

# service saslauthd restart
# service postfix restart

Постфикс стартовал и теперь он разрешает релееить почту аутентифицированным клиентам.
Проверим это.
Большинство коммуникаций с почтовым сервером происходит обычным текстом, однако информация аутентификации передается кодированной в Base64. Соответственно нам необходимо генерировать данную информацию для проверки работоспособности. Для этого необходимо в консоли набрать следующее:

# perl -MMIME::Base64 -e 'print encode_base64("test\0test\0test");'

Где test\0test\0test является \логин\0логин\0пароль, (перед последними двумя параметрами надо ставить ноль) т.е. в моем примере был создан пользователь test с паролем test.
После выполнения этой перловой команды мы получим в ответ вот такую строку:
dGVzdAB0ZXN0AHRlc3Q=
Это и есть наша аутентификационная информация, кодированная в Base64.
Теперь выполним проверку:

# telnet mail.example.com 25
Trying 127.0.0.1...
Connected to mail.example.com (123.123.123.123).
Escape character is '^]'.
220 mail.example.com ESMTP Postfix
EHLO anotherhost.com
250-mail.example.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN DIGEST-MD5 CRAM-MD5
250-XVERP
250 8BITMIME
AUTH PLAIN dGVzdAB0ZXN0AHRlc3Q=
235 Authentication successful
QUIT
221 Bye

Строка: "250-AUTH PLAIN LOGIN DIGEST-MD5 CRAM-MD5" говорит о том, что postfix пускает аутентифицированных пользователей.


Устанавливаем Web-интерфейс для работы с почтой
SquirrelMail – вэб интерфейс для работы с электронной почтой.

yum install squirrelmail
*Если на сервере еще не стоит httpd и php, то yum сам вытянет из репазитариев все необходимое, достаточно только открыть 80 порт на фаерволе для вэб сервера (-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT)

Посмотрим куда он установился:
[root@post etc]# whereis squirrelmail
squirrelmail: /etc/squirrelmail /usr/share/squirrelmail

/etc/squirrelmail – содержит файлы конфигурации.
/usr/share/squirrelmail – это основная директория программы

запустим файл конфигурации программы /usr/share/squirrelmail/config/conf.pl
Заполняем свои данные и незабываем указать в качестве imap севера dovecot.
Сохраняем изменения и выходим. Теперь можно попробовать постучаться на вэб интерфейс.
http://192.168.10.120/webmail/

Теперь сделаем, чтобы httpd запускался при старте системы:
# /sbin/chkconfig --level 35 httpd on
Теперь пользователи могут прямо из интернета работать со своими почтовыми ящиками.

Проверка почты на вирусы, с помощью ClamAV и Amavis

yum install amavisd-new
yum install clamd
yum install clamav
yum install clamav-db

Теперь исправим конфигурационный файл Postfix.
/etc/postfix/master.cf

smtp-amavis unix - - n - 2 lmtp
-o smtp_data_done_timeout=1200
-o smtp_send_xforward_command=yes

127.0.0.1:10025 inet n - n - - smtpd
-o content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_client_restrictions=
-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_envelopes=yes
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000

А также,
/etc/postfix/main.cf

content_filter = smtp-amavis:[127.0.0.1]:10024

Затем в файле /etc/amavisd.conf необходимо откомментировать строку:

@bypass_spam_checks_maps = (1); # uncomment to DISABLE anti-spam code

в разделе @av_scanners = ( необходимо оставить только секцию с описанием ClamAV, остальные секции комментируем:

### http://www.clamav.net/
['ClamAV-clamd',
\&ask_daemon, ["CONTSCAN {}\n", "/var/run/clamav/clamd"],
qr/\bOK$/, qr/\bFOUND$/,
qr/^.*?: (?!Infected Archive)(.*) FOUND$/ ],
# NOTE: the easiest is to run clamd under the same user as amavisd; match the
# socket name (LocalSocket) in clamav.conf to the socket name in this entry
# When running chrooted one may prefer: ["CONTSCAN {}\n","$MYHOME/clamd"],

в разделе @av_scanners_backup = ( все делаем аналогично предыущему разделу:

### http://www.clamav.net/ - backs up clamd or Mail::ClamAV
['ClamAV-clamscan', 'clamscan',
"--stdout --disable-summary -r --tempdir=$TEMPBASE {}",
[0], qr/:.*\sFOUND$/, qr/^.*?: (?!Infected Archive)(.*) FOUND$/ ],

В файле /etc/clamd.conf комментируем параметр TCPSocket и правим параметр LocalSocket в соответствии со значением, указанным в разделе '@av_scanners = ( ' файла /etc/amavisd.conf. В итоге должно получиться вот так:

LocalSocket /var/run/clamav/clamd
#TCPSocket 3310

Теперь надо сделать чтобы clamd смог читать сокет /var/run/clamav/clamd, созданный amavis'ом. Для этого в файле /etc/group добавим пользователя clamd в группу к amavis, в моем случае это выглядит вот так:

amavis:x:101:clamav

И запускаем их:

# service clamd restart
# service amavisd restart

Теперь от рута обновляем базы антивируса:

# freshclam

Удостоверимся что демоны clamd и amavisd запускается при старте системы, выполнив от рута команды:

# /sbin/chkconfig --level 35 clamd on
# /sbin/chkconfig --level 35 amavisd on


Готово. Смотрим логи и хедеры писем на предмет проверки работы антивируса, теперь в новые письма добавится строка X-Virus-Scanned: amavisd-new at example.com
*И не забываем проверить прописалась ли ссылка на freshclam в директорию /etc/cron.daily (необходимо для ежедневного обновления баз антивируса).

Средства борьбы со спамом (spamassassin, postgrey)
SpamAssassin - это расширяемый почтовый фильтр, используемый для идентификации спама. Полученные почтовые сообщения могут быть выборочно помечены как спам для фильтрации в будущем аналогичных сообщенний.
Postgrey – сервер политики Postfix, который осуществляет greylisting. Когда запрос о поставке почты получен, Postfix проверяет связку CLIENT_IP / ОТПРАВИТЕЛЬ / ПОЛУЧАТЕЛЬ. Если это - первый раз, когда эта связка замечена, или если она замечена меньше чем 10 минут назад, то почта отклоняется с временной ошибкой. Правильный сервер через время повторит письмо.

Spamassassin
Т.к. в нашей системе уже установлен Amavis, spamassassin, входит в список его зависимостей и уже был установлен yum-ом. Для того чтобы он заработал, достаточно закомментировать в файле /etc/amavisd.conf строку:

# @bypass_spam_checks_maps = (1); # uncomment to DISABLE anti-spam code

И запустить саму службу: service spamassassin restart

Postgrey
yum install postgrey

В файле /etc/init.d/postgrey исправим секцию OPTIONS
OPTIONS="--inet=127.0.0.1:10023 --delay=1000 --retry-window=22h --greylist-text='Greylisted for 1000 seconds, see http://b-formula.ru/greylisted/index.html'"
*--greylist-text='Greylisted for 1000 seconds, see http://b-formula.ru/greylisted/index.html' дает возможность выводить свою html страницу с ошибкой, вместо стандартной.
Теперь нужно перезапустить сервисы:
service greylist restart
service postfix restart
И сделаем, чтобы обе сервиса запускались при старте системы:
# /sbin/chkconfig --level 35 spamassassin on
# /sbin/chkconfig --level 35 postgrey on


Пример функций /etc/postfix/mail.cf

# Размер почтового ящика устанавливаем 100Мб
mailbox_size_limit = 104857600

# Размер письма 15M
message_size_limit = 25360000

# Эта строка информирует Postfix о том, что необходимо использовать SMTP AUTH когда
# пользователь находится не в 'mynetwork' и пытается отправить почту на "чужие" домены
smtpd_sasl_auth_enable = yes

# Эта опция выключает "anonymous style" для SMTP AUTH.
# Без этой опции любой может использовать postfix как "open relay"
smtpd_sasl_security_options = noanonymous

# Требовать от клиента в начале smtp-сессии слать команду HELO/EHLO.
# До сих пор многие программы для спам рассылок не включают в себя набор этих команд.
smtpd_require_helo = yes

# Запрещаем использовать команду vrfy для определения пользователя на сервере.
disable_vrfy_command = yes

# Использовать бузу данных открытых релеев relays.ordb.org
maps_rbl_domains = relays.ordb.org

# The broken_sasl_auth_clients parameter controls interoperability with SMTP clients
# that do not recognize that Postfix supports RFC 2554 (AUTH command). Examples of
# such clients are Microsoft Outlook Express version 4 and Microsoft Exchange version 5.0.
#При использовании нестандартных клиентов, имеющих свои методы аутентификации
broken_sasl_auth_clients = yes

# Не отключать поиск доменного имени у IP адреса.
disable_dns_lookups = no

# Проверка клиента при ХЕЛО:
# клиентов в "своей" сети не проверяем
# прошедших аутентификацию не проверяем
# остальных проверяем на неправильное доменное имя
# остальных проверяем на неполное доменное имя
# остальных проверяем на наличие A и MX записей
smtpd_helo_restrictions =
#vip senders check_sender_access hash:$config_directory/vipsenders
permit_mynetworks
permit_sasl_authenticated
reject_invalid_hostname
reject_non_fqdn_hostname
reject_unknown_hostname

# ??? Эта опция устанавливает ограничения для клиентов, пытающихся релееить почту через ваш почтовый сервер
# пропускаем клиентов, описанных в файле "access_vip_sender"
# пропускаем клиентов "своей" сети
# пропускаем прошедших аутентификацию
# пропускаем если получатель в нашем (домене)??
# отклоняем клиентов с неверными имененм хоста
# отклоняем клиентов с неизвестным доменом отправителя
# отклоняем клиентов с неизвестным доменом получателя
# отклоняем клиентов если получатель не в нашем (домене)??
# отклоняем клиентов если он есть в списке relays.ordb.org
# грейлистинг
# отклоняем клиентов если он есть в списке sbl.spamhaus.org
# отклоняем клиентов если он есть в списке sbl.spamhaus.org

smtpd_recipient_restrictions =
#Включение постгрэя// обязательно перед permit_auth_destination
check_policy_service inet:127.0.0.1:10023
permit_auth_destination
permit_mynetworks
permit_sasl_authenticated
reject_invalid_hostname
reject_unknown_sender_domain
reject_unknown_recipient_domain
reject_unauth_destination

reject_rbl_client relays.ordb.org
reject_rbl_client sbl.spamhaus.org
#Проверка от ClamAV
content_filter = smtp-amavis:[127.0.0.1]:10024

Ярлыки: ,

 
   





© 2006 Кроме Звезд | kaster [кроме звезд]
Все содержание блога является частью мозга автора и не факт что совпадает с мнением вселенной.
Друзья, если уж так очень что-то понравилось, давайте ставить копирайты..
Человег - снег, прячь санки..