Использование Linux (CentOS, Fedora core) на сервере в небольшой организации

Продолжение...

Настраиваем веб-сервер - httpd. Самый простейший (из разряда лишь бы работал). Правим файл /etc/httpd/conf/httpd.conf. Я добавил SecResponceBodyLimit 15728640. Число может быть на Ваш вкус, это размер выводимой информации на странице.

ServerName server.corp:80				# имя нашего сервера.

DocumentRoot "/home/site" # наш каталог, где будут наши страницы <Directory /> Options FollowSymLinks Includes AllowOweride All </Directory> <Directory "/home/site"> # Делаем возможность установки паролей на каталоги Options Indexes FollowSymLinks Includes AllowOverride All Order allow,deny Allow from all </Directory> AccessFileName .htaccess AddDefaultCharset UTF-8 # Установка кодировки по умолчанию
Запускаем службу:
service httpd start
Контролируем /var/log/messages. На любой машине в нашей сети в браузере набираем http://server.corp и должны увидеть страницу, положенную нами в /home/site. Заглядываем также в /var/log/httpd/access_log и /var/log/httpd/error_log. Должны видеть как подключался клиент к нашему сайту.
Теперь мы можем выкладывать для наших клиентов файлы. Создаём каталог (в /home/site) например out, в него копируем необходимые для клиента файлы, также создаём в этом каталоге файл .htaccess c содержимым:
require valid-user
Authname client						# будет выводится в окне авторизации
Authtype Basic
AuthUserFile /home/clients/.webpasswd			# секретный файл паролей (не должен быть доступен из веб!)
AuthGroupFile /dev/null
Создание секретного файла:
htpasswd -c /home/clients/.webpasswd client1
Ввести два раза пароль для client1. Теперь в данный каталог (/home/site/out) может зайти только пользователь с логином client1. Особо важные и секретные файлы конечно не стоит выкладывать. Эта защита только от любопытствующих. Как создавать страницы, можно узнать здесь.
Можно получать доступ к нашему веб-серверу и из интернета, для этого необходимо разрешить входящие на 80-й порт. Для этого разкоментировать строку в файле start_iptables, смотреть тут /sbin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT. После этого извне набирать http://86.XXX.XXX.XXX (адрес выданный провайдером). Чтобы иметь возможность иметь внешний адрес типа http://www.kontora.ru стоит почитать тут Слепо следовать инструкции не следует, могли поменяться IP адреса DNS-серверов. Поэтому в FAQ-ах обязательно выяснить доступные адреса.

Если необходимо предоставить доступ клиенту к закрытой части сайта по защищенному каналу, то нужно задействовать SSL технологии. Как сгенерировать ключи и сертификаты можно посмотреть тут.
Ключевые строки для работы SSL httpd.conf или ssl.conf (зависит от настроек apache):
LoadModule ssl_module modules/mod_ssl.so
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
SSLCertificateFile /etc/openvpn/keys/server.crt
SSLCertificateKeyFile /etc/openvpn/keys/server.key
SSLCACertificateFile /etc/openvpn/keys/ca.crt
SSLVerifyClient require


Настраиваем почту. Мы будем использовать внешний почтовый ящик на mail.ru (чтобы не мучиться с администрированием: защита + обслуживание). Если необходимо иметь именно свой почтовый сервер, то обязательно нужно прописывать зону PTR вашего домена. Иначе многие сервера не будут принимать от вас письма. Вот тут есть рабочие "конфиги" простейшего почтового сервера на основе postfix и dovecot без описания принципа работы.

Правим файл /etc/postfix/main.cf:
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
myhostname = server.corp							# Имя почтового сервера
mydomain = corp									# Наш домен
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
unknown_local_recipient_reject_code = 550
mynetworks = 192.168.0.0/16, 127.0.0.0/8

mailbox_size_limit = 129000000
message_size_limit = 128000000

disable_dns_lookups=yes
relayhost = [smtp.mail.ru]							# Куда слать внешнюю почту. У нас kontora@mail.ru

sender_canonical_maps = hash:/etc/postfix/sender_canonical			# Преобразование внутренняя почта -> внешняя
smtp_generic_maps = hash:/etc/postfix/generic					# Тоже самое (или почти :-), говорят для новых версий postfix )
										# имеет такой вид:
										# electronik@server.corp	kontora@mail.ru
										# programmer@server.corp	kontora@mail.ru
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mail_spool_directory = /var/spool/mail
debug_peer_level = 2
debugger_command =
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
sendmail_path = /usr/sbin/sendmail.postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix
setgid_group = postdrop
html_directory = no
manpage_directory = /usr/share/man

smtp_sasl_auth_enable = yes
enable_sasl_authentication = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd				# Пароль доступа к mail.ru
smtp_sasl_security_options = noanonymous
smtp_sender_dependent_authentication = yes
defer_transport=smtp
Создаём файл /etc/postfix/sender_canonical или /etc/postfix/generic, если postfix новый. Он служит для преобразования адресов из локального во внешний. После создания, дать команду :
[root@server /]# postmap /etc/postfix/sender_canonical
или
[root@server /]# postmap /etc/postfix/generic
Должен появится файл sender_canonical.db или generic.db. Затем создаём /etc/postfix/sasl_passwd. Он имеет такой вид:
[smtp.mail.ru] логин:пароль (к внешнему ящику)
Даем команду postmap /etc/postfix/sasl_passwd. Смысл: так как нам был нужен внешний почтовый ящик, то мы завели такой ящик на mail.ru. Наш сервер, получив письмо, если адрес внутренний, отправляет сразу пользователю, если внешний, отправляет на smpt.mail.ru.
Забирать же будем программой fetchmail. Для этого создаём в /root/.fetchmailrc с правами доступа только для root с таким содержанием:
set syslog
defaults
poll pop.mail.ru with protocol POP3:						# Наш почтовый ящик на mail.ru
                no dns, user 'логин' there with password 'пароль'
Создаём скрипт с правами на выполнения start_fetchmail:
#!/bin/sh

FileConfig=/root/.fetchmailrc

chown root.root $FileConfig
chmod 0600 $FileConfig

/usr/bin/fetchmail --daemon 600 --mda "procmail -d %T" -f $FileConfig --logfile /var/log/fetchmail.log --all
А для сортировки приходящей почты используем procmail. Сортировка по "теме" письма. Если в теме встретится слово programmer, то письмо попадает к пользователю programmer. Создаём файл /root/.procmailrc:
# .procmailrc - конфиг для procmail
# Переменные
#
MAILDIR=/var/spool/mail								# каталог с почтой
LOGFILE=/root/procmail.log							# лог для записи всех операций
DEFAULT=$MAILDIR/programmer							# файл для не отсортированных сообщений
#										# Тоесть всю неопознанную почту получает пользователь programmer
# Правила сортировки почты
#
# Пример: сортировка почты, приходящей на e-mail user_name@host.ru
##:0
##* ^To.*user_name@host.ru							# условие (To: user_name@host.ru)
##host_mail									# файл host_mail в каталоге MAILDIR
#
# Пример: mailing-list Moscow LUG
##:0
##* ^To.*mlug@UnixCenter.RU							# условие (To: mlug@UnixCenter.RU)
##mlug										# файл mlug в каталоге MAILDIR
#
:0
* ^Subject.*eletronik
electronik									# файл eletron в каталоге MAILDIR

:0
* ^Subject.*programmer
programmer									# файл prog в каталоге MAILDIR
#
# Пример: удаление писем от адресата spammer@microsoft.com
##:0
##* ^From.*spammer@microsoft.com						# условие (From: spammer@microsoft.com)
##/dev/null									# каталог /dev/null
#
Добавляем в /etc/rc.d/rc.local наш скрипт - start_fetchmail
Запускаем в сервисах postfix, dovecot. Контролировать работу почты можно, дав команду в терминале -
tail -F /var/log/maillog

Назад . . .
Продолжение
На главную...