Unix-planeta-it

Материал из wiki.nntc.nnov.ru
Перейти к навигации Перейти к поиску

Mail

  1. Базовая часть задания: настройка почтового сервера (11 баллов).
    1. Сконфигурировать Postfix для обслуживания в виртуальном домене olimp.local. Учётные записи, информация о транспортах и алиасах должна храниться в БД MySQL. Ящики пользователей в формате Maildir должны находиться в /var/spool/vmail (3 балла)

http://help.ubuntu.ru/wiki/postfix https://help.ubuntu.com/community/Postfix

    1. Настроить SASL-аутентификацию для пользователей домена olimp.local, запретив при этом отправлять почту с ящиков в обслуживаемом домене без авторизации. Предусмотреть режим совместимости для клиентов, нарушающих RFC (2 балла)
    2. Настроить возможность использования SSL/TLS для отправки почты (2 балла)
    3. Настроить Courier-IMAP для получения почты с виртуального домена с использованием POP3/IMAP с возможностью НЕ указывать полное имя ящика при авторизации (2 балла)
    4. Настроить возможность использования SSL/TLS для приёма почты как через POP3, так и через IMAP (2 балла)
  1. Дополнительные задания, связанные с почтовым сервером (10 баллов)
    1. Выполнить первоначальную настройку amavisd-new, связав его с Postfix и spamassasin. Для связи используйте порты 10024 и 10025, открытые только на локальном интерфейсе. Письма признанные вредоносными/спамерскими необходимо уничтожать без уведомления отправителя.
    2. Связать amavisd-new с clamav (2 балла)
    3. Установить в amavisd-new значение показателя 'спам', после которого считается не подлежащим даже помещению в карантин, равным 20. Также установить уровень, с которого amavisd-new добавляет свои заголовки к письмам равным 300 (2 балла)
    4. Установить минимальный и максимальный размер обрабатываемых писем в 1 Kb или 300 MB соответственно. Установить 1 уровень срабатывания spamassasin в 3 балла, второй - 6 баллов (2 балла)
    5. Установить в spamassasin доступными языками почтовых сообщений русский и английский (1 балл)
  1. Задания связанные с межсетевым экраном (конфигурация файрвола сдаётся в виде дампа /etc/sysconfig/iptables, созданного при помощи iptables) (8 баллов)
  2. Реализовать следующую дисциплину доступа к портма настраиваемой системы:
  • Разрешить все уже установленные соединения (1 балл)
  • Разрешить все установленные соединения на loopback интерфейсе.
  • Разрешить ICMP-запросы (Echo Requests) и сообщения и превышении времени ожидания (ICMP Timeout Exceeded) (1 балл)
  • Разрешить все исходящие соединения (1 балл)
  • Запретить входящие соединения на порту 80/TCP, 443/TCP и 3306/TCP из подсети 10.0.0.0/24 (1 балл)
  • Запретить входящие соединения на порты 25/TCP и 110/TCP с хостов 10.0.0.101, 10.0.0.102 и 10.0.0.103 (1 балл)
  • Создать отдельную цепочку правил с именем ALLOWED_PORTS и внести в неё по одному разрешающему правилу на каждый открытый порт по результатам заданий 1-2 . Порты открытые только для 127.0.0.1 не учитываются. Баллы засчитываются только при наличии правил для всех портов из заданий 1-2 (2 балла)
  1. Дополнительно: первому участнику, сдающему работу (независимо от результатов) - 1 балл

Итого: максимум 30 баллов.

Реализация

http://www.howtoforge.com/virtual-users-domains-postfix-courier-mysql-squirrelmail-ubuntu8.04

http://blog.scaytrase.ru/linux/265/

apt-get install mysql-server
mysqladmin -u root -p create mail

Next, we go to the MySQL shell:

mysql -u root -p

On the MySQL shell, we create the user mail_admin with the passwort mail_admin_password (replace it with your own password) who has SELECT,INSERT,UPDATE,DELETE privileges on the mail database. This user will be used by Postfix and Courier to connect to the mail database:

GRANT SELECT, INSERT, UPDATE, DELETE ON mail.* TO 'mail_admin'@'localhost' IDENTIFIED BY 'mail_admin_password';
GRANT SELECT, INSERT, UPDATE, DELETE ON mail.* TO 'mail_admin'@'localhost.localdomain' IDENTIFIED BY 'mail_admin_password';
FLUSH PRIVILEGES;

Still on the MySQL shell, we create the tables needed by Postfix and Courier:

USE mail;

CREATE TABLE domains (
domain varchar(50) NOT NULL,
PRIMARY KEY (domain) )
TYPE=MyISAM;

CREATE TABLE forwardings (
source varchar(80) NOT NULL,
destination TEXT NOT NULL,
PRIMARY KEY (source) )
TYPE=MyISAM;

CREATE TABLE users (
email varchar(80) NOT NULL,
password varchar(20) NOT NULL,
quota INT(10) DEFAULT '10485760',
PRIMARY KEY (email)
) TYPE=MyISAM;

CREATE TABLE transport (
domain varchar(128) NOT NULL default '',
transport varchar(128) NOT NULL default '',
UNIQUE KEY domain (domain)
) TYPE=MyISAM;

quit;

Proxy

Задания второго очного тура Олимпиады в номинации Администрирование Linux (2009).

1. Базовая часть задания (10 баллов) Настроить прокси-сервер squid на порту 3128/TCP с использованием следующей дисциплины доступа:

1.1. Разрешить доступ к прокси из подсети 10.100.254.0/24 с базовой аутентификацией 
1.2. Из всех остальных подсетей доступ запретить.
1.3. С хоста 10.100.254.100 разрешить доступ без аутентификации.
1.4. Группе хостов 10.100.254.1-10.100.254.25 запретить доступ к IP 10.100.254.120 и к доменам mail.ru и yandex.ru, без учета регистра символов в доменном имени.
1.5. Базовую аутентификацию производить при помощи программы /etc/webmin/squid/squid-auth.pl /etc/webmin/squid/users 
1.6. Не кешировать результаты работы скриптов, имена которых оканчиваются на '.asp' и скриптов, находящихся на серверах по пути /cgi-bin/ и ниже.
1.7. Запретить метод CONNECT на все порты, кроме 443, 5190, 10000 и 20000. 
1.8. Хосту 10.100.254.101 разрешить любые запросы и методы.
1.9. Хостам 10.100.254.24 и 10.100.254.25 разрешить доступ к mail.yandex.ru 
1.10. Хосту 10.100.254.102 разрешить доступ только к srv.olimp.local без аутентификации.

2. Дополнительные задания, связанные с прокси-сервером

2.1. Настроить программу-редиректор (/opt/rejik/redirector) для преобразования URL в запросах в целях фильтрации контента по уже имеющимся спискам: порно, баннеры, javascript. - (1 балл)
2.2. Настроить http-сервер nginx для обслуживания страниц с сообщениями об ошибках от rejik/redirector. Страницы предустановлены в /var/www/htdocs/ban/. - (3 балла)
2.3. Настроить редиректор на блокировку закачек файлов с расширениями .wav, .wmv, .avi, .mp3, .mpg и создать отдельную страницу о запрете для перенаправления запроса. - (2 балла). 
2.4. Написать скрипты для генерации отчетов по протоколу доступа squid при помощи генератора sarg:
- нарастающим итогом с начала текущего месяца — в /var/www/htdocs/current/ (3 балла);
- помесячный архив с добавлением полной статистики по истекшему месяцу 1-го числа каждого месяца — в /var/www/htdocs/monthly/ (3 балла)

3. Дополнительные задания, связанные с межсетевым экраном (конфигурация файрвола сдается в виде дампа /etc/rc.d/rc.firewall.conf, созданного при помощи iptables-save, либо в виде скрипта генерации набора правил /etc/rc.d/rc.firewall):

3.1. Обеспечить транспарентную работу прокси для траффика по портам 81/TCP и 443/TCP. (2 балла)
3.2. Реализовать следующую дисплину доступа к портам настраиваемой системы (4 балла):

Разрешить все уже установленные соединения. Разрешить все соединения на loopback интерфейсе. Разрешить все исходящие соединения. Разрешить входящие соединения на порты 80/TCP, 81/TCP, 443/TCP и 3128/TCP из подсети 10.100.254.0/24. Разрешить входящие соединения на порты 22/TCP и 10000/TCP с хостов 10.100.254.100, 10.100.254.101 и 10.100.254.200.

4. Дополнительные бонусы: 4.1. За минимальное количество проверок пакетов при прохождении пакетом правил фильтрации задания 3.2 по самому длинному пути (минимум правил при наихудшем варианте). — 1 балл.

4.2. Первому участнику, сдающему работу (независимо от результатов) — 1 балл.

Итого: максимум 30 баллов.


Реализация

Доступ в интернет с авторизацией

Создание файла с логинами и паролями для Squid:

squid ~ # htpasswd -c /создаваемый/файл/паролей имя_пользователя
New password:
Re-type new password:
Adding password for user имя_пользователя
squid ~ # htpasswd /редактируемый/фвйл/паролей имя_пользователя2
New password:
Re-type new password:
Adding password for user имя_пользователя2
squid ~ #  ##############################################################
squid ~ #  # с ключом -с команда htpasswd выполняется первый раз (создает новый файл), пример:
squid ~ # # без ключа -c происходит добавление пользователей к уже существующему файлу:

Настройка squid Для работы с авторизацией:

squid ~ # grep -v ^# /etc/squid3/squid.conf | grep -v ^$
auth_param basic program /usr/lib/squid3/ncsa_auth /etc/squid3/squidusers
acl lan proxy_auth REQUIRED
http_access allow lan
<....>

http://www.k-max.name/linux/avtorizaciya-autentifikaciya-squid/


Не кэшировать скрипты из каталога cgi-bin

hierarchy_stoplist cgi-bin ?

http://www.info-x.org/freebsd/programmy/nastroika_squid.html

acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY