Unix-planeta-it: различия между версиями
Gumanoed (обсуждение | вклад) (→Mail) |
Gumanoed (обсуждение | вклад) (→Реализация) |
||
Строка 30: | Строка 30: | ||
===Реализация=== | ===Реализация=== | ||
https://help.ubuntu.com/community/Postfix | https://help.ubuntu.com/community/Postfix | ||
+ | |||
+ | apt-get install mysqil-server | ||
+ | |||
+ | <pre> | ||
+ | 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; | ||
+ | </pre> | ||
=Proxy= | =Proxy= |
Версия 11:12, 8 февраля 2013
Содержание
- Базовая часть задания: настройка почтового сервера (11 баллов).
- Сконфигурировать Postfix для обслуживания в виртуальном домене olimp.local. Учётные записи, информация о транспортах и алиасах должна храниться в БД MySQL. Ящики пользователей в формате Maildir должны находиться в /var/spool/vmail (3 балла)
http://help.ubuntu.ru/wiki/postfix https://help.ubuntu.com/community/Postfix
- Настроить SASL-аутентификацию для пользователей домена olimp.local, запретив при этом отправлять почту с ящиков в обслуживаемом домене без авторизации. Предусмотреть режим совместимости для клиентов, нарушающих RFC (2 балла)
- Настроить возможность использования SSL/TLS для отправки почты (2 балла)
- Настроить Courier-IMAP для получения почты с виртуального домена с использованием POP3/IMAP с возможностью НЕ указывать полное имя ящика при авторизации (2 балла)
- Настроить возможность использования SSL/TLS для приёма почты как через POP3, так и через IMAP (2 балла)
- Дополнительные задания, связанные с почтовым сервером (10 баллов)
- Выполнить первоначальную настройку amavisd-new, связав его с Postfix и spamassasin. Для связи используйте порты 10024 и 10025, открытые только на локальном интерфейсе. Письма признанные вредоносными/спамерскими необходимо уничтожать без уведомления отправителя.
- Связать amavisd-new с clamav (2 балла)
- Установить в amavisd-new значение показателя 'спам', после которого считается не подлежащим даже помещению в карантин, равным 20. Также установить уровень, с которого amavisd-new добавляет свои заголовки к письмам равным 300 (2 балла)
- Установить минимальный и максимальный размер обрабатываемых писем в 1 Kb или 300 MB соответственно. Установить 1 уровень срабатывания spamassasin в 3 балла, второй - 6 баллов (2 балла)
- Установить в spamassasin доступными языками почтовых сообщений русский и английский (1 балл)
- Задания связанные с межсетевым экраном (конфигурация файрвола сдаётся в виде дампа /etc/sysconfig/iptables, созданного при помощи iptables) (8 баллов)
- Реализовать следующую дисциплину доступа к портма настраиваемой системы:
- Разрешить все уже установленные соединения (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 балл
Итого: максимум 30 баллов.
Реализация
https://help.ubuntu.com/community/Postfix
apt-get install mysqil-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