Участник:Clint/Черновики
Материал из Xgu.ru
Черновые заметки Сергея Черепенина.
Therefore http://www.felipelopezfoundation.org/ Garcinia Cambogia Classification of garcinia cambogia style .
[править] Добавление в initrd модулей SATA в Debian
Необходимо:
- Создать каталог
/lib/modules/verion_kernel/initrd
- В него положить необходимые модули
- Эти модули будут добавлены в initrd командой
mkinitrd -o /boot/initrd.img-2.6.15.2.mod 2.6.15.2
- Изменить menu.lst
- Проверить fstab
[править] Пересборка initrd
- Создаём рабочий каталог
mkdir /tmp/NEW ; cd /tmp/NEW
- Копируем необходимый образ initrd в каталог /tmp
cp /boot/initrd.img ..
- Смотрим что за файл:
file /boot/initrd.img /boot/initrd.img: gzip compressed data, was "initrd.img.cpio2", from Unix, last modified: Thu Aug 10 17:19:31 2006
- Отсюда видно, что файл сжат программой gzip, распаковываем его:
mv initrd.img initrd.img.gz gzip -d initrd.img.gz
- Снова смотрим что за файл:
file initrd.img initrd.img: ASCII cpio archive (SVR4 with no CRC)
- Это cpio архив, распаковываем:
cpio -iv < ../initrd.img
- В каталоге /tmp/NEW будет создано дерево каталогов распакованного образа initrd, в каталог /tmp/NEW/lib копируем необходимые модули:
cp /lib/modules/версия ядра/kernel/drivers/нужный модуль.ko lib/
- В файле /tmp/NEW/init необходимо добавить стороки для загрузки модуля:
vi init >> echo "Loading нужный модуль.ko module" >> insmod /lib/нужный модуль.ko
- Сжимаем обратно образ. Сначала cpio:
find ./ | cpio -H newc -o > /boot/new-initrd.img
- Потом gzip:
gzip /boot/new-initrd.img
- Исправляем записи в конфигурационном файле grub:
vi /boot/grub/grub.conf
[править] Установка монитора виртуальных машин Xen
apt-get install libvncserver-dev bcc bin86 elks-libc zlib1g-dev libgcrypt11-dev libcrypto++-dev libssl0.9.8 libcurl3-dev python2.4-devlibxxf86misc-dev libxkbfile-dev qemu bzip2 ntpdate vim patch console-cyrillic
- Отключение сообщений об ошибке usb-устройств
echo 1 1 1 1 > /proc/sys/kernel/printk
[править] Расходный материал
Из переписки:
> что я сделал? > 1.apt-get install udev > 2.в /etc/mkinitrd/mkinitrd.conf дописал yes > BUSYBOX=yes > 2а.что в файле /etc/mkinitrd/modules > > > ahci > ata_piix > libata > sata_mv > sata_nv > sata_promise > sata_qstor > sata_sil24 > sata_sil > sata_sis > sata_svw > sata_sx4 > sata_via > sata_vsc > scsi_debug > scsi_mod > sd_mod > sr_mod > > 2б.Что в каталоге /lib/modules/2.6.16.13-xen/initrd/ > > ahci.ko > ata_piix.ko > libata.ko > sata_mv.ko > sata_nv.ko > sata_promise.ko > sata_qstor.ko > sata_sil24.ko > sata_sil.ko > sata_sis.ko > sata_svw.ko > sata_sx4.ko > sata_via.ko > sata_vsc.ko > scsi_debug.ko > scsi_mod.ko > sd_mod.ko > sr_mod.ko > > 2в.depmod -a 2.6.16.13-xen > > 3.mkinitrd -o /boot/initrd-xen-test 2.6.16.13-xen > > 4.При попытке загрузится с него происходит та же ошибка - не могу примонтировать root > > 5.И теперь: > mount -o loop -t cramfs /boot/initrd-xen-test /mnt/1 > dd if=/dev/zero of=/tmp/newimage count=31000 bs=512 > mkfs.etx2 /tmp/newimage > mount -o loop /tmp/newimage /mnt/2 > rsync -auv /mnt/1/ /mnt/2/ > umount /mnt/1 > gzip -9 /tmp/newimage > cp /tmp/newimage.gz /boot > reboot >
[править] Установка и настройка ftp-сервера proftpd с поддержкой MySQL
ОС Debian Etch Установка необходимых пакетов:
apt-get install proftpd mysql-server
Создание баз и таблиц в MySQL:
mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 13 Server version: 5.0.45-Debian_1-log Debian etch distribution Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | +--------------------+ 2 rows in set (0.00 sec) mysql> create database proftpd; Query OK, 1 row affected (0.00 sec) mysql> use proftpd; Database changed mysql> CREATE TABLE users ( -> userid VARCHAR(30) NOT NULL UNIQUE, -> passwd VARCHAR(80) NOT NULL, -> uid INTEGER UNIQUE, -> gid INTEGER, -> homedir VARCHAR(255), -> shell VARCHAR(255) -> ); Query OK, 0 rows affected (0.02 sec) mysql> CREATE TABLE groups ( -> groupname VARCHAR(30) NOT NULL, -> gid INTEGER NOT NULL, -> members VARCHAR(255) -> ); Query OK, 0 rows affected (0.01 sec) mysql> insert into groups values('ftp','5001',''); Query OK, 1 row affected (0.00 sec) mysql> insert into users values('test','testftp','5001','5001','/home/ftp/test','/sbin/nologin'); Query OK, 1 row affected (0.00 sec) mysql> show tables -> ; +-------------------+ | Tables_in_proftpd | +-------------------+ | groups | | users | +-------------------+ 2 rows in set (0.00 sec) mysql> describe users -> ; +---------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+--------------+------+-----+---------+-------+ | userid | varchar(30) | NO | PRI | | | | passwd | varchar(80) | NO | | | | | uid | int(11) | YES | UNI | NULL | | | gid | int(11) | YES | | NULL | | | homedir | varchar(255) | YES | | NULL | | | shell | varchar(255) | YES | | NULL | | +---------+--------------+------+-----+---------+-------+ 6 rows in set (0.00 sec) mysql> select * from users; +--------+---------+------+------+----------------+---------------+ | userid | passwd | uid | gid | homedir | shell | +--------+---------+------+------+----------------+---------------+ | test | testftp | 5001 | 5001 | /home/ftp/test | /sbin/nologin | +--------+---------+------+------+----------------+---------------+ 1 row in set (0.00 sec)
Настройка proftpd:
egrep -v "^#|\ $" /etc/proftpd/proftpd.conf Include /etc/proftpd/modules.conf UseIPv6 off ServerName "Debian" ServerType standalone DeferWelcome off MultilineRFC2228 on DefaultServer on ShowSymlinks on TimeoutNoTransfer 600 TimeoutStalled 600 TimeoutIdle 1200 DisplayLogin welcome.msg DisplayFirstChdir .message ListOptions "-l" DenyFilter \*.*/ Port 21 MaxInstances 30 User proftpd Group nogroup Umask 022 022 AllowOverwrite on <IfModule mod_sql.c> SQLBackend mysql SQLConnectInfo proftpd@localhost:3306 root rootpass SQLAuthTypes Backend PlainText SQLUserInfo users userid passwd uid gid homedir shell DefaultRoot ~ RequireValidShell off SQLGroupInfo groups groupname gid members SQLAuthenticate users groups SQLLogFile /var/log/proftpd.log </IfModule> TransferLog /var/log/proftpd/xferlog SystemLog /var/log/proftpd/proftpd.log <IfModule mod_tls.c> TLSEngine off </IfModule> <IfModule mod_quota.c> QuotaEngine on </IfModule> <IfModule mod_ratio.c> Ratios on </IfModule> <IfModule mod_delay.c> DelayEngine on </IfModule> <IfModule mod_ctrls.c> ControlsEngine on ControlsMaxClients 2 ControlsLog /var/log/proftpd/controls.log ControlsInterval 5 ControlsSocket /var/run/proftpd/proftpd.sock </IfModule> <IfModule mod_ctrls_admin.c> AdminControlsEngine on </IfModule>
Создание домашнего каталога для ftp пользователя:
sudo mkdir /home/ftp/test sudo chown 5001:5001 /home/ftp/test sudo touch /home/ftp/test/test_file
Проверка:
ftp 77.123.137.68 Connected to 77.123.137.68. 220 ProFTPD 1.3.0 Server (Debian) [77.123.137.68] Name (77.123.137.68:clint): test 331 Password required for test. Password: 230 User test logged in. Remote system type is UNIX. Using binary mode to transfer files. ftp> ls 200 PORT command successful 150 Opening ASCII mode data connection for file list -rw-r--r-- 1 root root 0 Aug 19 19:58 test_file 226 Transfer complete. ftp> quit 221 Goodbye.
[править] Использование стандартной таблицы mysql.user
mysql> use mysql Database changed mysql> show tables; +---------------------------+ | Tables_in_mysql | +---------------------------+ | columns_priv | | db | | func | | help_category | | help_keyword | | help_relation | | help_topic | | host | | proc | | procs_priv | | tables_priv | | time_zone | | time_zone_leap_second | | time_zone_name | | time_zone_transition | | time_zone_transition_type | | user | +---------------------------+ 17 rows in set (0.00 sec)
- Создание пользователя
create user 'ftptestuser'@'%';
- Пароль
set password for 'ftptestuser'=PASSWORD('password');
- Настройка proftpd на использование таблицы mysql.user
База mysql:
SQLConnectInfo mysql@localhost:3306 root password
Проверка пароля:
SQLAuthTypes Backend
Так как в таблице mysql.user отсутствуют поля для uid, gid, homedir, shell, то необходимо изменить следующее (если поле shell указано как null, то оно не используется):
SQLDefaultUID 5002 SQLDefaultGID 5002 SQLDefaultHomedir /home/ftp/test2
Таблица user и поля:
SQLUserInfo user user password null null null null
Так как в таблице mysql.user нет информации о группах, то отключаем использование информации о группах:
SQLAuthenticate users
- Проверка:
ftp 77.123.137.68 Connected to 77.123.137.68. 220 ProFTPD 1.3.0 Server (Debian) [77.123.137.68] Name (77.123.137.68:clint): ftptestuser 331 Password required for ftptestuser. Password: 230 User ftptestuser logged in. Remote system type is UNIX. Using binary mode to transfer files. ftp> pwd 257 "/" is current directory. ftp> ls 200 PORT command successful 150 Opening ASCII mode data connection for file list -rw-r--r-- 1 root root 0 Aug 19 22:00 testfile_test2 226 Transfer complete. ftp> quit 221 Goodbye.
- Конфиг сервера:
egrep -v "^#|\ $" /etc/proftpd/proftpd.conf Include /etc/proftpd/modules.conf UseIPv6 off ServerName "Debian" ServerType standalone DeferWelcome off MultilineRFC2228 on DefaultServer on ShowSymlinks on TimeoutNoTransfer 600 TimeoutStalled 600 TimeoutIdle 1200 DisplayLogin welcome.msg DisplayFirstChdir .message ListOptions "-l" DenyFilter \*.*/ Port 21 MaxInstances 30 User proftpd Group nogroup Umask 022 022 AllowOverwrite on <IfModule mod_sql.c> SQLBackend mysql SQLConnectInfo mysql@localhost:3306 root password SQLAuthTypes Backend PlainText SQLDefaultUID 5002 SQLDefaultGID 5002 SQLDefaultHomedir /home/ftp/test2 SQLUserInfo user user password null null null null DefaultRoot ~ RequireValidShell off SQLAuthenticate users SQLLogFile /var/log/proftpd/proftpd.log </IfModule> TransferLog /var/log/proftpd/xferlog SystemLog /var/log/proftpd/proftpd.log <IfModule mod_tls.c> TLSEngine off </IfModule> <IfModule mod_quota.c> QuotaEngine on </IfModule> <IfModule mod_ratio.c> Ratios on </IfModule> <IfModule mod_delay.c> DelayEngine on </IfModule> <IfModule mod_ctrls.c> ControlsEngine on ControlsMaxClients 2 ControlsLog /var/log/proftpd/controls.log ControlsInterval 5 ControlsSocket /var/run/proftpd/proftpd.sock </IfModule> <IfModule mod_ctrls_admin.c> AdminControlsEngine on </IfModule>
[править] Базовая настройка прокси-сервера squid
[править] Установка и начальная настройка
- Настройка интерфейсов такова:
# ifconfig eth0 Link encap:Ethernet HWaddr AA:00:00:00:00:03 inet addr:192.168.16.200 Bcast:192.168.16.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:2749 errors:0 dropped:0 overruns:0 frame:0 TX packets:1766 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1656718 (1.5 MiB) TX bytes:272841 (266.4 KiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:763 errors:0 dropped:0 overruns:0 frame:0 TX packets:763 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:333837 (326.0 KiB) TX bytes:333837 (326.0 KiB)
- Посмотрим, ведется ли прослушивание порта прокси-сервера:
# netstat -lnp | grep :3128
- Установка:
# apt-get install squid Чтение списков пакетов... Готово Построение дерева зависимостей... Готово Будут установлены следующие дополнительные пакеты: squid-common Предлагаемые пакеты: squidclient squid-cgi logcheck-database resolvconf smbclient НОВЫЕ пакеты, которые будут установлены: squid squid-common обновлено 0, установлено 2 новых пакетов, для удаления отмечено 0 пакетов, и 47 пакетов не обновлено. Необходимо скачать 1061kБ архивов. ... Выбор ранее не выбранного пакета squid-common. (Чтение базы данных... на данный момент установлено 24580 файлов и каталогов.) Распаковывается пакет squid-common (из файла .../squid-common_2.6.3-1_all.deb)... Выбор ранее не выбранного пакета squid. Распаковывается пакет squid (из файла .../squid_2.6.3-1_i386.deb)... Настраивается пакет squid-common (2.6.3-1) ... Настраивается пакет squid (2.6.3-1) ... Creating squid spool directory structure 2006/10/12 17:00:34| Creating Swap Directories Restarting Squid HTTP proxy: squid.
Еще раз проверяем прослушивание порта squid:
# netstat -lnp | grep :3128 tcp 0 0 0.0.0.0:3128 0.0.0.0:* LISTEN 3394/(squid)
Промотрим файл конфигурации:
- http_port - порт прослушивания, по умолчанию 3128, взможны другие варианты записи, в версии 2.3 можно указывать перед портом имя хоста или IP-адрес:
http_port 3128
- cache_mgr - Адрес электроннй почты администратора прокси-сервера, по умолчанию имеет значение webmaster
- ftp_user - Описание пользователя для анонимного входа
- hierarchy_stoplist (список строк - через пробел, - при встрече которых в URL, запрос будет направлен сразу напрямую, а не "по соседям"; по-умолчанию - "cgi-bin ?"):
hierarchy_stoplist cgi-bin ?
- Постараться не кэшировать эти файлы:
acl QUERY urlpath_regex cgi-bin \? cache deny QUERY
- Размер кэша( В ЧЕМ?), количество каталогов первого уровня в каталоге /var/spool/squid и ворого уровня того же каталога
cache_dir ufs /var/spool/squid 100 16 256
- Настройка логирования:
access_log /var/log/squid/access.log squid cache_log /var/log/squid/cache.log cache_store_log none
- Программа аутентификации и путь к файлу с паролями:
auth_param basic program /usr/lib/squid/ncsa_auth /usr/etc/passwd
- Ограничение на количество дочерних процессов:
auth_param basic children 5
- Определение имени хоста и домена, которое будет указываться в заголовке окна аутентификации:
auth_param basic realm Squid proxy-caching web server
- Оределение времени, в течении которго пара username:password действительны. По соображениям безопасности дефолтное значение 2 часа:
auth_param basic credentialsttl 2 hours
- Определение чуствительности к регистру в имени пользователя:
auth_param basic casesensitive off
- Дефолтные настройки определения срока жизни данных кэша squid. Данные описываются регулярными выражениями:
#Suggested default: refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern . 0 20% 4320
* Запись вида
refresh_pattern [-i] regex MIN_AGE(В ЧЕМ?) percent MAX_AGE[options]
- Рекомендуемый минимум access листов:
#Recommended minimum configuration: acl all src 0.0.0.0/0.0.0.0 acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255 acl to_localhost dst 127.0.0.0/8 acl SSL_ports port 443 563 # https, snews acl SSL_ports port 873 # rsync acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 563 # https, snews acl Safe_ports port 70 # gopher acl Safe_ports port 210 # wais acl Safe_ports port 1025-65535 # unregistered ports acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 # multiling http acl Safe_ports port 631 # cups acl Safe_ports port 873 # rsync acl Safe_ports port 901 # SWAT acl purge method PURGE acl CONNECT method CONNECT
- И рекомендуемый минимум правил доступа по access листам:
#Recommended minimum configuration: # # Only allow cachemgr access from localhost http_access allow manager localhost http_access deny manager # Only allow purge requests from localhost http_access allow purge localhost http_access deny purge # Deny requests to unknown ports http_access deny !Safe_ports # Deny CONNECT to other than SSL ports http_access deny CONNECT !SSL_ports
- Проверим - отвечает ли на интерфейсах squid:
# telnet 127.0.0.1 3128 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. ^] telnet> q Connection closed. # telnet 192.168.16.200 3128 Trying 192.168.16.200... Connected to 192.168.16.200. Escape character is '^]'. ^] telnet> q Connection closed.
- Как видно - всё работает.
- Проверяем: в настройках internet-browser`a необходимо указать прокси-сервер 127.0.0.1 на порту 3128 - выход в интернет имеется.Если прописать сейчас в качестве прокси-сервера адрес 192.168.16.200:3128 то работать ничего не будет. Это означает, что прокси -сервер в дефолтной конфигурации настроен на access localhost only!
[править] Администрирование прокси-сервера
[править] Разрешение доступа к сети Интернет пользователям сети
Для решения зтой задачи необходимо указвать явно в конфигурационном файле /etc/squid/squid.conf хосты или сети, которым разрешать доступ к Интернет.
- Например, для раазрешения доступа к сети Интернет сети 192.168.16.0/24 необходимо вписать в /etc/squid/squid.conf следующие строки:
# vi /etc/squid/squid.conf 2577,2578c2577,2579 < #acl our_networks src 192.168.1.0/24 192.168.2.0/24 < #http_access allow our_networks --- > acl our_networks src 192.168.16.0/24 > http_access allow our_networks
- Даём:
squid -k reconfigure
и проблема решена.
[править] Парольная аутентификация
- Если есть необходимость устроить парольную аутентификацию пользователей сети 192.168.16.0/24 то необходимо немного модифицировать конфигурационный файл:
# vi /etc/squid/squid.conf 1799,1803c1799,1803 < #auth_param basic program <uncomment and complete this line> < #auth_param basic children 5 < #auth_param basic realm Squid proxy-caching web server < #auth_param basic credentialsttl 2 hours < #auth_param basic casesensitive off --- > auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd > auth_param basic children 5 > auth_param basic realm Squid proxy-caching web server > auth_param basic credentialsttl 2 hours > auth_param basic casesensitive off
- Назначение этих строк описано выше.
- Кроме этого необходимо:
- назначить авторизацию acl листу; - определить группу пользователей для аутентификации.
# vi /etc/squid/squid.conf > acl myacl proxy_auth REQUIRED < http_access allow our_networks --- > http_access allow our_networks myacl
- Генерацию пар пользователь-пароль можно выполнить внешней программой htpasswd, которая входит в состав пакета apache2-utils:
htpasswd -c /etc/squid/passwd foo New password: Re-type new password: Adding password for user foo
- Теперь
squid -k reconfigure
и после настойки броузера все должно работать.
[править] Ограничение доступа отдельным пользователям
- Если необходимо запретить доступ отельным пользователям (в примере nouser), то необходимо ввести следующие строки в /etc/squid/squid.conf
acl deny_users proxy_auth nouser http_access deny deny_users
Или при объединении с другими acl:
acl deny_users proxy_auth nouser acl no_google url_regex -i search acl daytime time 08:00-17:00 http_access deny deny_users no_google daytime
И пользователь nouser не сможет осуществлять поиск через google с 8 до 17 часов
[править] Ограничение доступа на определённые сайты и домены
- Если существует необходимость ограничить доступ на определенные сайты, то нужно их описать:
# vi /etc/squid/squid.conf > acl nomailru url_regex -i ^http://mail.ru > http_access deny nomailru
- Теперь
squid -k reconfigureи на mail.ru не зайти.
- Есть возможность описывать запрещенные сайты группами - по доменам:
vi /etc/squid/squid.conf 50,51c50,53 > acl no_google_search dstdomain .google.com > http_access deny no_google_search
- И все попытки поиска в google завершатся неудачей для пользователя.
[править] Блокирование определённого трафика на примере редиректора rejik3
- Наверняка может возникнуть необходимость блокирования определенного тррфика ( например сайты и файлы mp3 или порнографические сайты). Рассмотрим на примере программы http://rejik.ru/index.html
Инсталляция и настройка на сайте http://rejik.ru/index.html
- И далее, принятым в операционной системе методом, устанавливаем необходимые программы:
# wget http://rejik.ru/download/redirector-3.2.1.tgz --17:59:01-- http://rejik.ru/download/redirector-3.2.1.tgz => `redirector-3.2.1.tgz' Распознаётся rejik.ru... 84.252.152.241 Устанавливается соединение с rejik.ru|84.252.152.241|:80... соединение установлено. Запрос HTTP послан, ожидается ответ... 200 OK Длина: 46.022 (45K) [application/x-tar] 100%[====================================>] 46.022 68.29K/s 17:59:02 (68.17 KB/s) - `redirector-3.2.1.tgz' сохранён [46022/46022] # tar xvzfC redirector-3.2.1.tgz /usr/src redirector-3.2.1/ redirector-3.2.1/tools/ redirector-3.2.1/tools/benchmark redirector-3.2.1/tools/IN.gz redirector-3.2.1/tools/kill-cache redirector-3.2.1/AUTHORS redirector-3.2.1/COPYING redirector-3.2.1/INSTALL redirector-3.2.1/Makefile redirector-3.2.1/VERSION ... redirector-3.2.1/prune_urls.c redirector-3.2.1/redirect.c redirector-3.2.1/redirector.c redirector-3.2.1/redirector.conf.dist redirector-3.2.1/run_make_cache.c redirector-3.2.1/vars.h redirector-3.2.1/write_cache.c redirector-3.2.1/raw_change.c redirector-3.2.1/pass.c redirector-3.2.1/Log # cd /usr/src/redirector-3.2.1/ # vi Makefile 3,4c3,4 < SQUID_USER=nobody < SQUID_GROUP=nogroup --- > SQUID_USER=proxy > SQUID_GROUP=proxy # apt-get install libpcre3-dev Чтение списков пакетов... Готово Построение дерева зависимостей... Готово Будут установлены следующие дополнительные пакеты: libc6-dev libpcre3 libpcrecpp0 linux-kernel-headers Предлагаемые пакеты: glibc-doc manpages-dev НОВЫЕ пакеты, которые будут установлены: libc6-dev libpcre3-dev libpcrecpp0 linux-kernel-headers Пакеты, которые будут обновлены: libpcre3 ... Распаковывается замена для пакета libpcre3... Выбор ранее не выбранного пакета libpcrecpp0. Распаковывается пакет libpcrecpp0 (из файла .../libpcrecpp0_6.7-1_i386.deb)... Выбор ранее не выбранного пакета libpcre3-dev. Распаковывается пакет libpcre3-dev (из файла .../libpcre3-dev_6.7-1_i386.deb)... Настраивается пакет linux-kernel-headers (2.6.17.10-3) ... Настраивается пакет libc6-dev (2.3.6.ds1-4) ... Настраивается пакет libpcre3 (6.7-1) ... Настраивается пакет libpcrecpp0 (6.7-1) ... Настраивается пакет libpcre3-dev (6.7-1) .. # make rm -f pass.o raw_change.o load_cache.o pcre.o parse_input.o init_vars.o check_urls.o run_make_cache.o new_url.o redirect.o err_mes.o now.o get_opt.o parse_urls.o cache2url.o ip.o id.o comparing.o load_urls.o prune_urls.o write_cache.o need_cache_update.o err_mes.o now.o get_opt.o parse_urls.o cache2url.o ip.o id.o comparing.o redirector make-cache OUT gcc -Wall -I/usr/include -I/usr/local/include -I/usr/include/pcre -c pass.c gcc -Wall -I/usr/include -I/usr/local/include -I/usr/include/pcre -c raw_change.c raw_change.c: In function ‘raw_change’: raw_change.c:25: warning: pointer targets in passing argument 1 of ‘strstr’ differ in signedness raw_change.c:25: warning: pointer targets in passing argument 2 of ‘strstr’ differ in signedness raw_change.c:25: warning: pointer targets in assignment differ in signedness raw_change.c:33: warning: pointer targets in passing argument 1 of ‘strlen’ differ in signedness raw_change.c:34: warning: pointer targets in passing argument 1 of ‘strlen’ differ in signedness raw_change.c:35: warning: pointer targets in passing argument 1 of ‘strchr’ differ in signedness ... redirector.c:51: warning: pointer targets in passing argument 1 of ‘fopen’ differ in signedness redirector.c:53: warning: pointer targets in passing argument 1 of ‘sprintf’ differ in signedness redirector.c:54: warning: pointer targets in passing argument 1 of ‘printf’ differ in signedness redirector.c:69: warning: pointer targets in passing argument 1 of ‘fgets’ differ in signedness redirector.c:78: warning: pointer targets in passing argument 1 of ‘sprintf’ differ in signedness redirector.c:79: warning: pointer targets in passing argument 1 of ‘err_mes’ differ in signedness redirector.c:133: warning: pointer targets in passing argument 2 of ‘parse_urls’ differ in signedness redirector.c:136: warning: pointer targets in passing argument 1 of ‘sprintf’ differ in signedness redirector.c:137: warning: pointer targets in passing argument 1 of ‘err_mes’ differ in signedness gcc -Wall -I/usr/include -I/usr/local/include -I/usr/include/pcre -o make-cache make-cache.c -L/lib `pcre-config --libs` load_urls.o prune_urls.o write_cache.o need_cache_update.o err_mes.o now.o get_opt.o parse_urls.o cache2url.o ip.o id.o comparing.o # make install mkdir -p /usr/local/rejik3/tools cp make-cache /usr/local/rejik3 cp redirector /usr/local/rejik3 cp redirector.conf.dist /usr/local/rejik3 echo "#!/bin/sh" > /usr/local/rejik3/tools/check-redirector echo 'su proxy -c "echo \"http://sex.ru 127.0.0.1/- - GET\" | /usr/local/rejik3/redirector /usr/local/rejik3/redirector.conf;"' >> /usr/local/rejik3/tools/check-redirector chmod 755 /usr/local/rejik3/tools/check-redirector echo "#!/bin/sh" > /usr/local/rejik3/tools/set-permissions echo 'chown -R proxy:proxy /usr/local/rejik3' >> /usr/local/rejik3/tools/set-permissions chmod 755 /usr/local/rejik3/tools/set-permissions cp tools/kill-cache /usr/local/rejik3/tools chmod 755 /usr/local/rejik3/tools/kill-cache cp tools/benchmark /usr/local/rejik3/tools chmod 755 /usr/local/rejik3/tools/benchmark cp tools/IN.gz /usr/local/rejik3/tools chmod 644 /usr/local/rejik3/tools/IN.gz chown -R proxy:proxy /usr/local/rejik3 chmod 770 /usr/local/rejik3 chmod 644 /usr/local/rejik3/redirector.conf.dist chmod 755 /usr/local/rejik3/redirector chmod 755 /usr/local/rejik3/make-cache
</pre>
- Необходимо переименовать и поправить файл:
#mv /usr/local/rejik3/redirector.conf.dist /usr/local/rejik3/redirector.conf #vi /usr/local/rejik3/redirector.conf < error_log /usr/local/rejik3/redirector.err < change_log /usr/local/rejik3/redirector.log --- > error_log /var/log/squid/redirector.err > change_log /var/log/squid/redirector.log
- Таким образом настроена система журнализации редиректора.
- Теперь необходим список сайтов для органиченя доступа пользователей сети:
#wget http://rejik.ru/download/banlists-2.x.x.tgz -18:03:11-- http://rejik.ru/download/banlists-2.x.x.tgz => `banlists-2.x.x.tgz' Распознаётся rejik.ru... 84.252.152.241 Устанавливается соединение с rejik.ru|84.252.152.241|:80... соединение установлено. Запрос HTTP послан, ожидается ответ... 200 OK Длина: 116.100 (113K) [application/x-tar] 100%[====================================>] 116.100 146.11K/s 18:03:12 (145.75 KB/s) - `banlists-2.x.x.tgz' сохранён [116100/116100]
- И распаковываем в /usr/local/rejik3/:
# tar xvzfC banlists-2.x.x.tgz /usr/local/rejik3/ banlists/ banlists/porno/ banlists/porno/urls banlists/banners/ banlists/banners/urls banlists/banners/pcre banlists/js/ banlists/js/urls banlists/mp3/ banlists/mp3/pcre
- Теперь необходимо поставить, если он еще не установлен в системе, веб-сервер apache:
# apt-get install apache Чтение списков пакетов... Готово Построение дерева зависимостей... Готово Будут установлены следующие дополнительные пакеты: apache-common mime-support Предлагаемые пакеты: apache-doc apache-ssl apache-perl НОВЫЕ пакеты, которые будут установлены: apache apache-common mime-support обновлено 0, установлено 3 новых пакетов, для удаления отмечено 0 пакетов, и 53 пакетов не обновлено. Необходимо скачать 1270kБ архивов. ... Настраивается пакет mime-support (3.37-1) ... Настраивается пакет apache-common (1.3.34-4) ... Настраивается пакет apache (1.3.34-4) ... WARNING: local host name (;; connection timed out; no servers could be reached) is not qualified; see cf/README: WHO AM I? /etc/mail/aliases: 5 aliases, longest 10 bytes, 79 bytes total Creating config file /etc/apache/httpd.conf with new version Creating config file /etc/apache/srm.conf with new version Creating config file /etc/apache/access.conf with new version Creating config file /etc/apache/modules.conf with new version Starting apache 1.3 web server....
- Проверяем:
# netstat -lnp | grep :80 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 6247/apache
- И устанавливаем сами странички, которые будут нервировать пользователей:
# wget http://rejik.ru/download/www.tgz --18:04:54-- http://rejik.ru/download/www.tgz => `www.tgz' Распознаётся rejik.ru... 84.252.152.241 Устанавливается соединение с rejik.ru|84.252.152.241|:80... соединение установлено. Запрос HTTP послан, ожидается ответ... 200 OK Длина: 824 [application/x-tar] 100%[====================================>] 824 --.--K/s 18:04:54 (90.81 KB/s) - `www.tgz' сохранён [824/824]
- Распаковываем в /var/www/:
# tar xvzfC www.tgz /var/www/ www/ www/1x1.gif www/js.js www/mp3.html www/porno.html
Согласно /usr/local/rejik3/redirector.conf:
# mv /var/www/www /var/www/ban
Для корректного отображения символов страничек замены в /etc/apache/httpd.conf
# vi /etc/apache/httpd.conf 838c838,839 < AddDefaultCharset on --- > AddDefaultCharset off
- И далее:
# apachectl restart
- Прописываем в squid наш redirector:
# vi /etc/squid/squid.conf 1519a1520,1522 > url_rewrite_program /usr/local/rejik3/redirector /usr/local/rejik3/redirector.conf
- Проверяем:
# ls -l /usr/local/rejik3/ итого 100 drwxr-xr-x 6 nobody nogroup 4096 2006-10-12 21:40 banlists -rwxr-xr-x 1 proxy proxy 39108 2006-10-12 18:01 make-cache -rwxr-xr-x 1 proxy proxy 43897 2006-10-12 18:01 redirector -rw-r--r-- 1 nobody nogroup 3046 2006-10-12 18:09 redirector.conf -rw-r--r-- 1 proxy proxy 3052 2006-10-12 18:01 redirector.conf.dist drwxr-sr-x 2 proxy proxy 4096 2006-10-12 18:01 tools
- Такого быть не должно:
# chown -R proxy:proxy /usr/local/rejik3/
- И
# ls -l /usr/local/rejik3/ итого 100 drwxr-xr-x 6 proxy proxy 4096 2006-10-12 21:40 banlists -rwxr-xr-x 1 proxy proxy 39108 2006-10-12 18:01 make-cache -rwxr-xr-x 1 proxy proxy 43897 2006-10-12 18:01 redirector -rw-r--r-- 1 proxy proxy 3046 2006-10-12 18:09 redirector.conf -rw-r--r-- 1 proxy proxy 3052 2006-10-12 18:01 redirector.conf.dist drwxr-sr-x 2 proxy proxy 4096 2006-10-12 18:01 tools
- Проверим доступность страничек замены запрещенных веб-сайтов:
#. /usr/local/rejik3/tools/check-redirector http://127.0.0.1/ban/porno.html 127.0.0.1/- - GET
- Теперь сртаничка замены видна по адресу http://127.0.0.1/ban/porno.html в браузере.
- Теперь не будем запускать squid демоном, а привяжем его к терминалу для отладки:
# squid -d 1 -N 2006/10/12 21:43:57| Starting Squid Cache version 2.6.STABLE3 for i386-debian-linux-gnu... 2006/10/12 21:43:57| Process ID 7486 2006/10/12 21:43:57| With 1024 file descriptors available 2006/10/12 21:43:57| Using epoll for the IO loop 2006/10/12 21:43:57| Performing DNS Tests... 2006/10/12 21:43:57| Successful DNS name lookup tests... 2006/10/12 21:43:57| DNS Socket created at 0.0.0.0, port 32799, FD 5 2006/10/12 21:43:57| Adding domain chubba.net from /etc/resolv.conf 2006/10/12 21:43:57| Adding nameserver 192.168.16.100 from /etc/resolv.conf 2006/10/12 21:43:57| helperOpenServers: Starting 5 'redirector' processes ...
- Проверяем броузером...
- Все работает
- Ctrl+C
2006/10/12 21:44:21| Preparing for shutdown after 3 requests 2006/10/12 21:44:21| Waiting 0 seconds for active connections to finish 2006/10/12 21:44:21| FD 21 Closing HTTP connection 2006/10/12 21:44:22| Shutting down... 2006/10/12 21:44:22| FD 22 Closing ICP connection 2006/10/12 21:44:22| Closing unlinkd pipe on FD 20 2006/10/12 21:44:22| storeDirWriteCleanLogs: Starting... 2006/10/12 21:44:22| Finished. Wrote 67 entries. 2006/10/12 21:44:22| Took 0.0 seconds (376404.5 entries/sec). 2006/10/12 21:44:22| Squid Cache (Version 2.6.STABLE3): Exiting normally.
- И только потом:
#/etc/init.d/squid start
- Может возникнуть необходимость в добавлении новвых сайтов, обнаруженных Вами вручную в базу данных rejik`a:
#echo mp3.ru >> /usr/local/rejik3/banlists/mp3/urls
- Проверка --> см. рис. Проверка работы редиректора
[править] Выбор языка текста сообщений прокси-сервера
- Для того, чтобы странички ошибок и сообщений прокси-сервера были на русском языке, то можно исправить значение по умолчанию:
# vi /etc/squid/squid.conf 64a65,66 > > error_directory /usr/share/squid/errors/Russian-koi8-r
[править] Ограничение скорости скачивания определенного трафика
- Во-первых - необходимо описать файлы, скорость скачивания которых будет ограничиваться:
acl our url_regex \.iso$ \.avi$ \.mp3$
- Для организации задержек используются пулы задержек, количество которых определяестя количеством типов файлов.
- Создание пула --> Запись в /etc/squid/squid.conf:
delay_pools 1 delay_class 1 2 delay_parameters 1 -1/-1 8000/4000
- В результате был создан пул 1, класса 2 с ограничением каждого пользователя скоростью 4000 байт/сек, причем первые 8000байт cкачиваются на полной скорости
- И теперь в /etc/squid/squid.conf:
delay_access 1 allow our delay_access 1 deny all
- Теперь:
# squid -k reconfigure
- И проверяем
[править] Организация иерархии запросов и кэширования
- Для организации иерархии запросов и кэширования исмпользуется директива chache_peer:
cache_peer 10.0.1.1 parent 8080 3130 default login=foo:password no-query
- То есть порт 8080 родительского прокси-сервера будет доступен через интерфейс 127.0.0.1 порта 3130 локального хоста с именем пользователа foo и password - это пароль. Опция no_query отключает ICP-запросы к родительскому кэшу, опция default сообщает о том,что сервер должен использоваться по умолчанию.
[править] Примерный файл конфигурации прокси-сервера squid
http_port 3128 hierarchy_stoplist cgi-bin ? acl QUERY urlpath_regex cgi-bin \? cache deny QUERY acl apache rep_header Server ^Apache broken_vary_encoding allow apache cache_dir ufs /var/spool/squid 100 16 256 access_log /var/log/squid/access.log squid cache_log /var/log/squid/cache.log cache_store_log none hosts_file /etc/hosts url_rewrite_program /usr/local/rejik3/redirector /usr/local/rejik3/redirector.conf auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd auth_param basic children 5 auth_param basic realm Squid proxy-caching web server auth_param basic credentialsttl 2 hours auth_param basic casesensitive off refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern . 0 20% 4320 acl all src 0.0.0.0/0.0.0.0 acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255 acl to_localhost dst 127.0.0.0/8 acl SSL_ports port 443 563 # https, snews acl SSL_ports port 873 # rsync acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 563 # https, snews acl Safe_ports port 70 # gopher acl Safe_ports port 210 # wais acl Safe_ports port 1025-65535 # unregistered ports acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 # multiling http acl Safe_ports port 631 # cups acl Safe_ports port 873 # rsync acl Safe_ports port 901 # SWAT acl purge method PURGE acl CONNECT method CONNECT http_access allow manager localhost http_access deny manager http_access allow purge localhost http_access deny purge http_access deny !Safe_ports http_access deny CONNECT !SSL_ports #acl nomailru url_regex -i ^http://mail.ru #http_access deny nomailru #acl no_google_search dstdomain .google.com #http_access deny no_google_search acl our_networks src 192.168.16.0/24 acl my_acl proxy_auth REQUIRED http_access allow our_networks my_acl http_access allow localhost http_access deny all http_reply_access allow all icp_access allow all coredump_dir /var/spool/squid error_directory /usr/share/squid/errors/Russian-koi8-r
[править] Clamav
Черновик
sudo apt-get install clamav clamav-daemon
dpkg -l | egrep 'libcurl3|apache' ii apache 1.3.34-4.1 versatile, high-performance HTTP server ii apache-common 1.3.34-4.1 support files for all Apache webservers ii apache2-utils 2.2.3-4 utility programs for webservers ii libcurl3 7.15.5-1 Multi-protocol file transfer library ii libcurl3-dev 7.15.5-1 Transitional package to libcurl3-openssl-dev ii libcurl3-gnutls 7.15.5-1 Multi-protocol file transfer library ii libcurl3-openssl-dev 7.15.5-1 Development files and documentation for libc
wget http://www.samse.fr/GPL/squidclamav/squidclamav-3.0.tar.gz
sudo tar xvzfC /old/install/squidclamav-3.0.tar.gz /usr/src Password: squidclamav/ squidclamav/squidclamav.c squidclamav/squidclamav.h squidclamav/clwarn.cgi.de_DE squidclamav/clwarn.cgi.en_EN squidclamav/clwarn.cgi.fr_FR squidclamav/clwarn.cgi.pt_BR squidclamav/depcomp squidclamav/.deps/ squidclamav/.deps/lists.Po squidclamav/.deps/config.Po squidclamav/.deps/squidclamav.Po squidclamav/.deps/main.Po squidclamav/.deps/log.Po squidclamav/Makefile.orig squidclamav/aclocal.m4 squidclamav/config.status squidclamav/log.c squidclamav/log.h squidclamav/README squidclamav/configure squidclamav/lists.c squidclamav/lists.h squidclamav/configure.in squidclamav/config.guess squidclamav/install-sh squidclamav/config.sub squidclamav/missing squidclamav/squidclamav.conf.dist squidclamav/mkinstalldirs squidclamav/config.c squidclamav/config.h squidclamav/Makefile.am squidclamav/Makefile.in squidclamav/main.c squidclamav/config.h.in squidclamav/clwarn.cgi squidclamav/paths.h squidclamav/INSTALL squidclamav/ChangeLog squidclamav/COPYING
sudo ./configure checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ANSI C... none needed checking for style of include used by make... GNU checking dependency style of gcc... gcc3 checking for a BSD-compatible install... /usr/bin/install -c checking for main in -lcurl... yes checking how to run the C preprocessor... gcc -E checking for egrep... grep -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking arpa/inet.h usability... yes checking arpa/inet.h presence... yes checking for arpa/inet.h... yes checking fcntl.h usability... yes checking fcntl.h presence... yes checking for fcntl.h... yes checking netdb.h usability... yes checking netdb.h presence... yes checking for netdb.h... yes checking netinet/in.h usability... yes checking netinet/in.h presence... yes checking for netinet/in.h... yes checking for stdlib.h... (cached) yes checking for string.h... (cached) yes checking sys/socket.h usability... yes checking sys/socket.h presence... yes checking for sys/socket.h... yes checking sys/timeb.h usability... yes checking sys/timeb.h presence... yes checking for sys/timeb.h... yes checking for unistd.h... (cached) yes checking for size_t... yes checking for stdlib.h... (cached) yes checking for GNU libc compatible malloc... yes checking for function prototypes... yes checking whether setvbuf arguments are reversed... no checking return type of signal handlers... void checking for ftime... yes checking for gethostbyname... yes checking for memset... yes checking for regcomp... yes checking for socket... yes checking for strdup... yes checking for strspn... yes checking for strstr... yes configure: creating ./config.status config.status: creating Makefile config.status: creating config.h config.status: executing depfiles commands
sudo make make all-am make[1]: Entering directory `/usr/src/squidclamav' if gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -MT config.o -MD -MP -MF ".deps/config.Tpo" -c -o config.o config.c; \ then mv -f ".deps/config.Tpo" ".deps/config.Po"; else rm -f ".deps/config.Tpo"; exit 1; fi if gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -MT lists.o -MD -MP -MF ".deps/lists.Tpo" -c -o lists.o lists.c; \ then mv -f ".deps/lists.Tpo" ".deps/lists.Po"; else rm -f ".deps/lists.Tpo"; exit 1; fi if gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -MT log.o -MD -MP -MF ".deps/log.Tpo" -c -o log.o log.c; \ then mv -f ".deps/log.Tpo" ".deps/log.Po"; else rm -f ".deps/log.Tpo"; exit 1; fi if gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -MT main.o -MD -MP -MF ".deps/main.Tpo" -c -o main.o main.c; \ then mv -f ".deps/main.Tpo" ".deps/main.Po"; else rm -f ".deps/main.Tpo"; exit 1; fi if gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -MT squidclamav.o -MD -MP -MF ".deps/squidclamav.Tpo" -c -o squidclamav.o squidclamav.c; \ then mv -f ".deps/squidclamav.Tpo" ".deps/squidclamav.Po"; else rm -f ".deps/squidclamav.Tpo"; exit 1; fi gcc -g -O2 -o squidclamav config.o lists.o log.o main.o squidclamav.o -lcurl make[1]: Leaving directory `/usr/src/squidclamav'
echo $? 0
sudo make install make[1]: Entering directory `/usr/src/squidclamav' test -z "/usr/local/bin" || mkdir -p -- "/usr/local/bin" /usr/bin/install -c 'squidclamav' '/usr/local/bin/squidclamav' make[1]: Цель `install-data-am' не требует выполнения команд. make[1]: Leaving directory `/usr/src/squidclamav'
sudo cp /usr/src/squidclamav/squidclamav.conf.dist /etc/squidclamav.conf
sudo touch /var/log/squid/squidclamav.log sudo chown proxy:proxy /var/log/squid/squidclamav.log sudo cp /usr/src/squidclamav/clwarn.cgi /usr/lib/cgi-bin/
sudo egrep -v '#|^\ *$' /etc/squid/squid.conf http_port 3128 hierarchy_stoplist cgi-bin ? acl QUERY urlpath_regex cgi-bin \? cache deny QUERY acl apache rep_header Server ^Apache broken_vary_encoding allow apache access_log /var/log/squid/access.log squid cache_log /var/log/squid/cache.log hosts_file /etc/hosts redirect_program /usr/local/bin/squidclamav redirect_children 15 auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd auth_param basic children 5 auth_param basic realm Squid proxy-caching web server auth_param basic credentialsttl 2 hours auth_param basic casesensitive off refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern . 0 20% 4320 acl all src 0.0.0.0/0.0.0.0 acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255 acl to_localhost dst 127.0.0.0/8 acl purge method PURGE acl CONNECT method CONNECT http_access allow manager localhost http_access deny manager http_access allow purge localhost http_access deny purge http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access deny to_localhost http_access allow localhost acl myacl proxy_auth REQUIRED acl our_networks src 192.168.0.0/16 10.0.0.0/16 http_access allow our_networks acl our_networks2 src 192.168.17.22 http_access allow our_networks2 myacl redirector_access deny localhost http_access deny all http_reply_access allow all icp_access allow all cache_mgr clint@net.nt cache_effective_group proxy httpd_accel_no_pmtu_disc on error_directory /usr/share/squid/errors/Russian-koi8-r coredump_dir /var/spool/squid
sudo egrep -v '#|^\ *$' /etc/clamav/clamd.conf TCPSocket 65000 TCPAddr 10.0.17.1 FixStaleSocket true User clamav AllowSupplementaryGroups true ScanMail true ScanArchive true ArchiveMaxRecursion 5 ArchiveMaxFiles 1000 ArchiveMaxFileSize 10M ArchiveMaxCompressionRatio 250 ArchiveLimitMemoryUsage false ArchiveBlockEncrypted false MaxDirectoryRecursion 15 FollowDirectorySymlinks false FollowFileSymlinks false ReadTimeout 180 MaxThreads 12 MaxConnectionQueueLength 15 StreamMaxLength 10M LogSyslog false LogFacility LOG_LOCAL6 LogClean false LogVerbose false PidFile /var/run/clamav/clamd.pid DatabaseDirectory /var/lib/clamav TemporaryDirectory /tmp SelfCheck 3600 Foreground false Debug true ScanPE true ScanOLE2 true ScanHTML true DetectBrokenExecutables false MailFollowURLs false ArchiveBlockMax false ExitOnOOM false LeaveTemporaryFiles false AlgorithmicDetection true ScanELF true NodalCoreAcceleration false IdleTimeout 30 MailMaxRecursion 64 PhishingSignatures true LogFile /var/log/clamav/clamav.log LogTime true LogFileUnlock false LogFileMaxSize 0
sudo egrep -v '#|^\ *$' /etc/squidclamav.conf logfile /var/log/squid/squidclamav.log redirect http://10.0.17.1/cgi-bin/clwarn.cgi debug 1 force 1 stat 1 clamd_ip 10.0.17.1 clamd_port 65000 timeout 60 regexi ^.*\.txt$ regexi ^.*\.com$ regexi ^.*\.zip$
export http_proxy=http\://10.0.17.1\:3128 echo $http_proxy http://10.0.17.1:3128
lynx http://www.eicar.org/download/eicar.com SquidClamAv 3.0 : Virus detection __________________________________________________________________________________________________________________________________ The requested URL http://www.eicar.org/download/eicar.com contains the virus : Eicar-Test-Signature This URL can not be dowloaded. Origin: 10.0.17.1 / - __________________________________________________________________________________________________________________________________ Powered by SquidClamAv 3.0. Команды: стрелки - перемещение, '?' - помощь, 'q' - выход, '<-' - назад. Стрелки: Вверх, Вниз - перемещение. Вправо - переход по ссылке; Влево - возврат. H)elp O)ptions P)rint G)o M)Глав экран Q)uit /=поиск [delete]=список истории
sudo tail -f /var/log/clamav/clamav.log Thu Jun 14 19:22:23 2007 -> +++ Started at Thu Jun 14 19:22:23 2007 Thu Jun 14 19:22:23 2007 -> clamd daemon 0.90.1 (OS: linux-gnu, ARCH: i386, CPU: i486) Thu Jun 14 19:22:23 2007 -> Log file size limit disabled. Thu Jun 14 19:22:23 2007 -> Reading databases from /var/lib/clamav Thu Jun 14 19:23:13 2007 -> Loaded 125655 signatures. Thu Jun 14 19:23:13 2007 -> Bound to address 10.0.17.1 on tcp port 65000 Thu Jun 14 19:23:13 2007 -> Setting connection queue length to 15 Thu Jun 14 19:23:13 2007 -> Archive: Archived file size limit set to 10485760 bytes. Thu Jun 14 19:23:13 2007 -> Archive: Recursion level limit set to 5. Thu Jun 14 19:23:13 2007 -> Archive: Files limit set to 1000. Thu Jun 14 19:23:13 2007 -> Archive: Compression ratio limit set to 250. Thu Jun 14 19:23:13 2007 -> Archive support enabled. Thu Jun 14 19:23:13 2007 -> Algorithmic detection enabled. Thu Jun 14 19:23:13 2007 -> Portable Executable support enabled. Thu Jun 14 19:23:13 2007 -> ELF support enabled. Thu Jun 14 19:23:13 2007 -> Mail files support enabled. Thu Jun 14 19:23:13 2007 -> Mail: Recursion level limit set to 64. Thu Jun 14 19:23:13 2007 -> OLE2 support enabled. Thu Jun 14 19:23:13 2007 -> PDF support disabled. Thu Jun 14 19:23:13 2007 -> HTML support enabled. Thu Jun 14 19:23:13 2007 -> Self checking every 3600 seconds. Thu Jun 14 19:25:50 2007 -> stream 1278: Eicar-Test-Signature FOUND
sudo tail -f /var/log/squid/squidclamav.log Thu Jun 14 19:22:33 2007 [11748] LOG SquidClamav (PID 11748) started Thu Jun 14 19:22:33 2007 [11751] LOG SquidClamav (PID 11751) started Thu Jun 14 19:22:33 2007 [11752] LOG SquidClamav (PID 11752) started Thu Jun 14 19:22:33 2007 [11753] LOG SquidClamav (PID 11753) started Thu Jun 14 19:22:33 2007 [11754] LOG SquidClamav (PID 11754) started Thu Jun 14 19:22:33 2007 [11749] LOG SquidClamav (PID 11749) started Thu Jun 14 19:22:33 2007 [11756] LOG SquidClamav (PID 11756) started Thu Jun 14 19:22:33 2007 [11757] LOG SquidClamav (PID 11757) started Thu Jun 14 19:22:33 2007 [11758] LOG SquidClamav (PID 11758) started Thu Jun 14 19:22:33 2007 [11755] LOG SquidClamav (PID 11755) started Thu Jun 14 19:22:33 2007 [11759] LOG SquidClamav (PID 11759) started Thu Jun 14 19:22:33 2007 [11763] LOG SquidClamav (PID 11763) started Thu Jun 14 19:22:33 2007 [11764] LOG SquidClamav (PID 11764) started Thu Jun 14 19:22:33 2007 [11765] LOG SquidClamav (PID 11765) started Thu Jun 14 19:22:34 2007 [11760] LOG SquidClamav (PID 11760) started Thu Jun 14 19:25:49 2007 [11748] DEBUG Request:http://www.eicar.org/download/eicar.com 10.0.17.1/- - GET Thu Jun 14 19:25:49 2007 [11748] DEBUG regex matched: http://www.eicar.org/download/eicar.com Thu Jun 14 19:25:49 2007 [11748] DEBUG Getting header for url http://www.eicar.org/download/eicar.com Thu Jun 14 19:25:50 2007 [11748] DEBUG File size is 68.00 Thu Jun 14 19:25:50 2007 [11748] DEBUG Sending STREAM to clamd. Thu Jun 14 19:25:50 2007 [11748] DEBUG Received port 1278 from clamd. Thu Jun 14 19:25:50 2007 [11748] DEBUG Trying to connect to clamd [port: 1278]. Thu Jun 14 19:25:50 2007 [11748] DEBUG Scanning data received against clamd stream Thu Jun 14 19:25:50 2007 [11748] DEBUG Sending data to clamd Thu Jun 14 19:25:50 2007 [11748] DEBUG Write 68 bytes on 68 to socket Thu Jun 14 19:25:50 2007 [11748] DEBUG Connection to clamd on port: 1278 closed. Thu Jun 14 19:25:50 2007 [11748] DEBUG Reading clamd scan result. Thu Jun 14 19:25:50 2007 [11748] DEBUG received from Clamd: stream: Eicar-Test-Signature FOUND Thu Jun 14 19:25:50 2007 [11748] LOG Redirecting URL to: http://10.0.17.1/cgi-bin/clwarn.cgi?url=http://www.eicar.org/download/eicar.com&source=10.0.17.1/-&user=-&virus=stream: Eicar-Test-Signature FOUND Thu Jun 14 19:25:50 2007 [11748] DEBUG End reading clamd scan result. Thu Jun 14 19:25:50 2007 [11748] STAT Virus Scanning process time 0.108 second(s) Thu Jun 14 19:25:50 2007 [11748] DEBUG Virus found send redirection to Squid. Thu Jun 14 19:25:50 2007 [11748] STAT Total process time 0.226 second(s)
sudo apt-get install clamav-testfiles Чтение списков пакетов... Готово Построение дерева зависимостей... Готово НОВЫЕ пакеты, которые будут установлены: clamav-testfiles обновлено 0, установлено 1 новых пакетов, для удаления отмечено 0 пакетов, и 2 пакетов не обновлено. Необходимо скачать 157kБ архивов. После распаковки объем занятого дискового пространства возрастёт на 242kB. Получено:1 http://debian.org.ua etch/main clamav-testfiles 0.90.1-2 [157kB] Получено 157kB за 1s (144kB/c) Выбор ранее не выбранного пакета clamav-testfiles. (Чтение базы данных... на данный момент установлено 183726 файлов и каталогов.) Распаковывается пакет clamav-testfiles (из файла .../clamav-testfiles_0.90.1-2_all.deb)... Настраивается пакет clamav-testfiles (0.90.1-2) ...
dpkg -L clamav-testfiles /. /usr /usr/share /usr/share/clamav-testfiles /usr/share/clamav-testfiles/debugm.c /usr/share/clamav-testfiles/clam.cab /usr/share/clamav-testfiles/clam.exe /usr/share/clamav-testfiles/clam.exe.bz2 /usr/share/clamav-testfiles/clam-v2.rar /usr/share/clamav-testfiles/clam-v3.rar /usr/share/clamav-testfiles/clam.zip /usr/share/doc /usr/share/doc/clamav-testfiles /usr/share/doc/clamav-testfiles/AUTHORS /usr/share/doc/clamav-testfiles/BUGS /usr/share/doc/clamav-testfiles/FAQ /usr/share/doc/clamav-testfiles/NEWS.Debian.gz /usr/share/doc/clamav-testfiles/changelog.Debian.gz /usr/share/doc/clamav-testfiles/copyright /usr/share/doc/clamav-testfiles/changelog.gz /usr/share/doc/clamav-testfiles/README.gz /usr/share/doc/clamav-testfiles/README.Debian.gz
sudo cp /usr/share/clamav-testfiles/clam.zip /var/www/
lynx http://net.nt/clam.zip SquidClamAv 3.0 : Virus detection __________________________________________________________________________________________________________________________________ The requested URL http://net.nt/clam.zip contains the virus : ClamAV-Test-File This URL can not be dowloaded. Origin: 10.0.17.1 / - __________________________________________________________________________________________________________________________________ Powered by SquidClamAv 3.0. Команды: стрелки - перемещение, '?' - помощь, 'q' - выход, '<-' - назад. Стрелки: Вверх, Вниз - перемещение. Вправо - переход по ссылке; Влево - возврат. H)elp O)ptions P)rint G)o M)Глав экран Q)uit /=поиск [delete]=список истории
[править] Анализ логов прокси-сервера
- tail -f /var/log/squid/access.log - просмотр в реальном времени процесс определения доступа к ресурсам сети Интернет
- /var/log/squid/cache.log - логирование процесса кэширования
- /var/log/squid/redirector.log - журнал работы редиректора
- /var/log/squid/redirector.err - журнал ошибок редирекора
[править] Доплнительные источники
- [1] - Squid (кеширующий прокси для http): установка, настройка и использование.
- [2] - Как не получать рекламы через Internet
- [3] - squid-faq-rus
- [4] - Squid: Logfile Analysis
[править] MIMEDefang
Настройка yum
vi /etc/yum.repos.d/asplinux-updates.repo [updates-released] name=ASPLinux 11 - $basearch - Updates # Moscow #baseurl=http://download.asplinux.ru/$basearch/updates/11/ # Moscow2 #baseurl=http://download2.asplinux.ru/install/ftp/$basearch/updates/11/ # UA-IX only #baseurl=ftp://ftp.asplinux.com.ua/pub/$basearch/updates/11/ #baseurl=http://download.asplinux.ru/$basearch/updates/11/ baseurl=ftp://ftp.asp-linux.com.ua/pub/$basearch/updates/11/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-asplinux
Далле обновим yum и поставим необходимые пакеты:
yum update yum yum install clamav.i386 yum install clamav-milter yum install spamassassin.i386 wget http://mimedefang.org/static/mimedefang-2.57.tar.gz tar xvzfC ~user/Desktop/mimedefang-2.57.tar.gz /usr/src cd /usr/src/mimedefang-2.57/redhat/ cp ~user/Desktop/mimedefang-2.57.tar.gz /usr/src/asplinux/SOURCES/mimedefang-2.57.tar.gz rpmbuild mimedefang.spec ошибка: Неудовлетворенные зависимости сборки: sendmail-devel > 8.12.0 нужен для mimedefang-2.57-1.i386 perl-MIME-tools нужен для mimedefang-2.57-1.i386 perl-IO-stringy нужен для mimedefang-2.57-1.i386 perl-MailTools нужен для mimedefang-2.57-1.i386 yum install sendmail-devel.i386 yum install perl-MIME-tools.noarch yum install perl-Archive-Zip.noarch yum install perl-File-Scan.noarch *** wget http://mailtools.anomy.net/dist/anomy-HTMLCleaner-1.26.tar.gz tar xvzfC ~user/anomy-HTMLCleaner-1.26.tar.gz /usr/src mv /usr/src/Anomy /usr/lib/perl5/5.8.6/ *** wget http://search.cpan.org/CPAN/authors/id/M/MH/MHARNISCH/Unix-Syslog-0.100.tar.gz tar xvzfC ~user/Unix-Syslog-0.100.tar.gz /usr/src/ cd /usr/src/Unix-Syslog-0.100/ perl Makefile.PL make test make install *** vim /usr/src/mimedefang-2.57/redhat/mimedefang.spec > 129 %define with_antivirus 1 *** rpmbuild -bb mimedefang.spec **** rpm -Uhv --force /usr/src/asplinux/RPMS/i386/mimedefang* ошибка: Неудовлетворенные зависимости: perl(Unix::Syslog) нужен для mimedefang-2.57-1.i386 [root@asp:redhat]# rpm -Uhv --nodeps /usr/src/asplinux/RPMS/i386/mimedefang* Подготовка... ########################################### [100%] 1:mimedefang-debuginfo ########################################### [ 33%] 2:mimedefang ########################################### [ 67%] In order to complete the installation of mimedefang, you will need to add the following line to your sendmail mc file: INPUT_MAIL_FILTER(`mimedefang', `S=unix:/var/spool/MIMEDefang/mimedefang.sock, F=T, T=S:1m;R:1m;E:5m') Use the sendmail-cf package to rebuild your /etc/mail/sendmail.cf file and restart your sendmail daemon. 3:mimedefang-contrib ########################################### [100%] ******* vi /etc/mail/sendmail.mc >112 dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl >166 INPUT_MAIL_FILTER(`mimedefang', `S=unix:/var/spool/MIMEDefang/mimedefang.sock, F=T, T=S:1m;R:1m;E:5m') >167 define(`confINPUT_MAIL_FILTERS', `mimedefang')dnl ****
Что сделано!
[править] Анализ логов прокси-сервера
- tail -f /var/log/squid/access.log - просмотр в реальном времени процесс определения доступа к ресурсам сети Интернет
- /var/log/squid/cache.log - логирование процесса кэширования
- /var/log/squid/redirector.log - журнал работы редиректора
- /var/log/squid/redirector.err - журнал ошибок редирекора
[править] Доплнительные источники
- [5] - Squid (кеширующий прокси для http): установка, настройка и использование.
- [6] - Как не получать рекламы через Internet
- [7] - squid-faq-rus
[править] MIMEDefang
Настройка yum
vi /etc/yum.repos.d/asplinux-updates.repo [updates-released] name=ASPLinux 11 - $basearch - Updates # Moscow #baseurl=http://download.asplinux.ru/$basearch/updates/11/ # Moscow2 #baseurl=http://download2.asplinux.ru/install/ftp/$basearch/updates/11/ # UA-IX only #baseurl=ftp://ftp.asplinux.com.ua/pub/$basearch/updates/11/ #baseurl=http://download.asplinux.ru/$basearch/updates/11/ baseurl=ftp://ftp.asp-linux.com.ua/pub/$basearch/updates/11/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-asplinux
Далле обновим yum и поставим необходимые пакеты:
yum update yum yum install clamav.i386 yum install clamav-milter yum install spamassassin.i386 wget http://mimedefang.org/static/mimedefang-2.57.tar.gz tar xvzfC ~user/Desktop/mimedefang-2.57.tar.gz /usr/src cd /usr/src/mimedefang-2.57/redhat/ cp ~user/Desktop/mimedefang-2.57.tar.gz /usr/src/asplinux/SOURCES/mimedefang-2.57.tar.gz rpmbuild mimedefang.spec ошибка: Неудовлетворенные зависимости сборки: sendmail-devel > 8.12.0 нужен для mimedefang-2.57-1.i386 perl-MIME-tools нужен для mimedefang-2.57-1.i386 perl-IO-stringy нужен для mimedefang-2.57-1.i386 perl-MailTools нужен для mimedefang-2.57-1.i386 yum install sendmail-devel.i386 yum install perl-MIME-tools.noarch yum install perl-Archive-Zip.noarch yum install perl-File-Scan.noarch *** wget http://mailtools.anomy.net/dist/anomy-HTMLCleaner-1.26.tar.gz tar xvzfC ~user/anomy-HTMLCleaner-1.26.tar.gz /usr/src mv /usr/src/Anomy /usr/lib/perl5/5.8.6/ *** wget http://search.cpan.org/CPAN/authors/id/M/MH/MHARNISCH/Unix-Syslog-0.100.tar.gz tar xvzfC ~user/Unix-Syslog-0.100.tar.gz /usr/src/ cd /usr/src/Unix-Syslog-0.100/ perl Makefile.PL make test make install *** vim /usr/src/mimedefang-2.57/redhat/mimedefang.spec > 129 %define with_antivirus 1 *** rpmbuild -bb mimedefang.spec **** rpm -Uhv --force /usr/src/asplinux/RPMS/i386/mimedefang* ошибка: Неудовлетворенные зависимости: perl(Unix::Syslog) нужен для mimedefang-2.57-1.i386 [root@asp:redhat]# rpm -Uhv --nodeps /usr/src/asplinux/RPMS/i386/mimedefang* Подготовка... ########################################### [100%] 1:mimedefang-debuginfo ########################################### [ 33%] 2:mimedefang ########################################### [ 67%] In order to complete the installation of mimedefang, you will need to add the following line to your sendmail mc file: INPUT_MAIL_FILTER(`mimedefang', `S=unix:/var/spool/MIMEDefang/mimedefang.sock, F=T, T=S:1m;R:1m;E:5m') Use the sendmail-cf package to rebuild your /etc/mail/sendmail.cf file and restart your sendmail daemon. 3:mimedefang-contrib ########################################### [100%] ******* vi /etc/mail/sendmail.mc >112 dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl >166 INPUT_MAIL_FILTER(`mimedefang', `S=unix:/var/spool/MIMEDefang/mimedefang.sock, F=T, T=S:1m;R:1m;E:5m') >167 define(`confINPUT_MAIL_FILTERS', `mimedefang')dnl ****
Что сделано!
[править] Временно(взможно) исправлено
В /usr/src/mimedefang-2.57/redhat/mimedefang.spec
%define dir_spool /var/spool/MIMEDefang %define dir_quarantine /var/spool/MD-Quarantine %define dir_log /var/log/mimedefang %define user defang %define with_antivirus 0
[править] /etc/mail/mimedefang-filter
[root@asp:~]# cat /etc/mail/mimedefang-filter
[править] Описание....
114 sub filter_begin { 115 my($entity) = @_; 116 # ALWAYS drop messages with suspicious chars in headers 117 if ($SuspiciousCharsInHeaders) { 118 md_graphdefang_log('suspicious_chars'); 119 action_quarantine_entire_message("Message quarantined because of suspicious characters in headers"); 120 # Do NOT allow message to reach recipient(s) 121 return action_discard(); 122 } 123 md_copy_orig_msg_to_work_dir_as_mbox_file(); 129 my($code, $category, $action) = message_contains_virus(); 132 $FoundVirus = ($category eq "virus"); 135 $FoundVirus = ($action eq "quarantine"); 137 if ($FoundVirus) { 138 md_graphdefang_log('virus', $VirusName, $RelayAddr); 139 md_syslog('warning', "Discarding because of virus $VirusName"); 140 return action_discard(); 141 } 142 143 if ($action eq "tempfail") { 144 action_tempfail("Problem running virus-scanner"); 145 md_syslog('warning', "Problem running virus scanner: code=$code, category=$category, action=$action"); 146 } 147 }
[править] Описание
172 sub filter { 173 my($entity, $fname, $ext, $type) = @_; 174 175 return if message_rejected(); # Avoid unnecessary work 176 177 # Block message/partial parts 178 if (lc($type) eq "message/partial") { 179 md_graphdefang_log('message/partial'); 180 action_bounce("MIME type message/partial not accepted here"); 181 return action_discard(); 182 } 183 184 if (filter_bad_filename($entity)) { 185 md_graphdefang_log('bad_filename', $fname, $type); 186 action_quarantine($entity, "A known virus was discovered and del eted. Virus-scanner messages follow:\n$VirusScannerMessages\n\n"); 188 } 190 # eml is bad if it's not multipart 191 if (re_match($entity, '\.eml')) { 192 md_graphdefang_log('non_multipart'); 193 action_quarantine($entity, "A known virus was discovered and del eted. Virus-scanner messages follow:\n$VirusScannerMessages\n\n"); 205 return action_accept(); 206 }
[править] Описание
224 sub filter_multipart { 225 my($entity, $fname, $ext, $type) = @_; 226 227 return if message_rejected(); # Avoid unnecessary work 228 229 if (filter_bad_filename($entity)) { 230 md_graphdefang_log('bad_filename', $fname, $type); 231 action_notify_administrator("A MULTIPART attachment of type $typ e, named $fname was dropped.\n"); 232 action_quarantine($entity, "A known virus was discovered and del eted. Virus-scanner messages follow:\n$VirusScannerMessages\n\n"); 236 # eml is bad if it's not message/rfc822 237 if (re_match($entity, '\.eml') and ($type ne "message/rfc822")) { 238 md_graphdefang_log('non_rfc822',$fname); 239 action_quarantine($entity, "A known virus was discovered and del eted. Virus-scanner messages follow:\n$VirusScannerMessages\n\n"); 241 242 } 244 # Block message/partial parts 245 if (lc($type) eq "message/partial") { 246 md_graphdefang_log('message/partial'); 247 action_bounce("MIME type message/partial not accepted here"); 248 return; 249 } 250 251 return action_accept(); 252 }
[править] Описание
266 sub defang_warning { 267 my($oldfname, $fname) = @_; 268 return 269 "An attachment named '$oldfname' was converted to '$fname'.\n" . 270 "To recover the file, right-click on the attachment and Save As\ n" . 271 "'$oldfname'\n"; 272 }
[править] Описание
276 sub filter_end { 277 my($entity) = @_; 288 return if message_rejected(); 291 if ($Features{"SpamAssassin"}) { 292 if (-s "./INPUTMSG" < 100*1024) { 296 my($hits, $req, $names, $report) = spam_assassin_check(); 297 my($score); 298 if ($hits < 40) { 299 $score = "*" x int($hits); 300 } else { 301 $score = "*" x 40; 302 } 309 if ($hits >= $req) { 310 action_change_header("X-Spam-Score", "$hits ($score) $na mes"); 311 md_graphdefang_log('spam', $hits, $RelayAddr); 314 action_add_part($entity, "text/plain", "-suggest", 315 "$report\n", 316 "SpamAssassinReport.txt", "inline"); 317 } else { 318 # Delete any existing X-Spam-Score header? 319 action_delete_header("X-Spam-Score"); 320 } 321 } 322 } 332 md_graphdefang_log('mail_in'); 344 } 347 1;
[править] /etc/sysconfig/mimedefang
[root@asp:~]# egrep -v '#|^ *$' /etc/sysconfig/mimedefang SPOOLDIR=/var/spool/MIMEDefang SOCKET=$SPOOLDIR/mimedefang.sock LOG_FILTER_TIME=yes MX_USER=defang MX_LOG=yes LOOPBACK_RESERVED_CONNECTIONS=-1 MX_SOCKET=$SPOOLDIR/mimedefang-multiplexor.sock MX_MINIMUM=2 ALLOW_NEW_CONNECTIONS_TO_QUEUE=yes MX_MAXIMUM=10 MX_BUSY=600 SUBFILTER=/etc/mail/mimedefang-filter
[править] /etc/clamd.conf
[root@asp:~]# egrep -v '#|^ *$' /etc/clamd.conf LogFile /var/log/clamav/clamd.log LogFileMaxSize 1M LogTime LogSyslog LogVerbose PidFile /var/run/clamav/clamd.pid TemporaryDirectory /tmp DatabaseDirectory /var/lib/clamav LocalSocket /var/spool/MIMEDefang/clamd.sock FixStaleSocket MaxConnectionQueueLength 30 MaxThreads 50 ReadTimeout 300 VirusEvent /usr/local/bin/send_sms 380676666666@2sms.kiyvstar.net "VIRUS ALERT: %v" User defang AllowSupplementaryGroups Debug LeaveTemporaryFiles ScanPE DetectBrokenExecutables ScanOLE2 ScanMail MailFollowURLs ScanHTML ScanArchive ArchiveMaxFileSize 10M ArchiveMaxRecursion 9 ArchiveMaxFiles 1500 ArchiveMaxCompressionRatio 250 ArchiveLimitMemoryUsage ArchiveBlockEncrypted ArchiveBlockMax
Перезапускаем:
[root@asp:~]# /etc/init.d/clamd restart Stopping Clam AV daemon: [ СБОЙ ] Starting Clam AV daemon: LibClamAV debug: Setting /tmp as global temporary direc tory LibClamAV debug: Loading databases from /var/lib/clamav LibClamAV debug: Loading /var/lib/clamav/daily.cvd LibClamAV debug: in cli_cvdload() LibClamAV debug: MD5(.tar.gz) = 2667d3188bb524ca5cb7f0c5fd165be8 LibClamAV debug: Decoded signature: 2667d3188bb524ca5cb7f0c5fd165be8 LibClamAV debug: Digital signature is correct. LibClamAV debug: in cli_untgz() LibClamAV debug: Unpacking /tmp/clamav-09d49669922f6331/COPYING LibClamAV debug: Unpacking /tmp/clamav-09d49669922f6331/daily.db LibClamAV debug: Unpacking /tmp/clamav-09d49669922f6331/daily.hdb LibClamAV debug: Unpacking /tmp/clamav-09d49669922f6331/daily.ndb LibClamAV debug: Unpacking /tmp/clamav-09d49669922f6331/daily.zmd LibClamAV debug: Unpacking /tmp/clamav-09d49669922f6331/daily.fp LibClamAV debug: Unpacking /tmp/clamav-09d49669922f6331/daily.info LibClamAV debug: Loading databases from /tmp/clamav-09d49669922f6331 LibClamAV debug: Loading /tmp/clamav-09d49669922f6331/daily.db LibClamAV debug: Initializing main node LibClamAV debug: Initializing trie LibClamAV debug: Initializing BM tables LibClamAV debug: in cli_bm_init() LibClamAV debug: BM: Number of indexes = 63744 LibClamAV debug: Loading /tmp/clamav-09d49669922f6331/daily.hdb LibClamAV debug: Initializing md5 list structure LibClamAV debug: Loading /tmp/clamav-09d49669922f6331/daily.ndb LibClamAV debug: Loading /tmp/clamav-09d49669922f6331/daily.zmd LibClamAV debug: Loading /tmp/clamav-09d49669922f6331/daily.fp LibClamAV debug: Loading /var/lib/clamav/main.cvd LibClamAV debug: in cli_cvdload() LibClamAV debug: MD5(.tar.gz) = c6c0e5c39b28fdbc7f2e23ce1c5166fc LibClamAV debug: Decoded signature: c6c0e5c39b28fdbc7f2e23ce1c5166fc LibClamAV debug: Digital signature is correct. LibClamAV debug: in cli_untgz() LibClamAV debug: Unpacking /tmp/clamav-8774734a52b5bbee/COPYING LibClamAV debug: Unpacking /tmp/clamav-8774734a52b5bbee/main.db LibClamAV debug: Unpacking /tmp/clamav-8774734a52b5bbee/main.hdb LibClamAV debug: Unpacking /tmp/clamav-8774734a52b5bbee/main.ndb LibClamAV debug: Unpacking /tmp/clamav-8774734a52b5bbee/main.zmd LibClamAV debug: Unpacking /tmp/clamav-8774734a52b5bbee/main.fp LibClamAV debug: Unpacking /tmp/clamav-8774734a52b5bbee/main.info LibClamAV debug: Loading databases from /tmp/clamav-8774734a52b5bbee LibClamAV debug: Loading /tmp/clamav-8774734a52b5bbee/main.db LibClamAV debug: Loading /tmp/clamav-8774734a52b5bbee/main.hdb LibClamAV debug: Loading /tmp/clamav-8774734a52b5bbee/main.ndb LibClamAV debug: Loading /tmp/clamav-8774734a52b5bbee/main.zmd LibClamAV debug: Loading /tmp/clamav-8774734a52b5bbee/main.fp [ ОК ]
[править] /etc/mail/sendmail.mc
[root@asp:~]# egrep -v '^dnl|^ *$' /etc/mail/sendmail.mc divert(-1)dnl include(`/usr/share/sendmail-cf/m4/cf.m4')dnl VERSIONID(`setup for ASPLinux')dnl OSTYPE(`linux')dnl INPUT_MAIL_FILTER(`mimedefang', `S=unix:/var/spool/MIMEDefang/mimedefang.sock, F =T, T=S:1m;R:1m;E:5m') define(`confDEF_USER_ID',``8:12'')dnl define(`confTO_CONNECT', `1m')dnl define(`confTRY_NULL_MX_LIST',true)dnl define(`confDONT_PROBE_INTERFACES',true)dnl define(`PROCMAIL_MAILER_PATH',`/usr/bin/procmail')dnl define(`ALIAS_FILE', `/etc/aliases')dnl define(`STATUS_FILE', `/var/log/mail/statistics')dnl define(`UUCP_MAILER_MAX', `2000000')dnl define(`confUSERDB_SPEC', `/etc/mail/userdb.db')dnl define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl define(`confAUTH_OPTIONS', `A')dnl define(`confTO_IDENT', `0')dnl FEATURE(`no_default_msa',`dnl')dnl FEATURE(`smrsh',`/usr/sbin/smrsh')dnl FEATURE(`mailertable',`hash -o /etc/mail/mailertable.db')dnl FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable.db')dnl FEATURE(redirect)dnl FEATURE(always_add_domain)dnl FEATURE(use_cw_file)dnl FEATURE(use_ct_file)dnl FEATURE(local_procmail,`',`procmail -t -Y -a $h -d $u')dnl FEATURE(`access_db',`hash -T<TMPF> -o /etc/mail/access.db')dnl FEATURE(`blacklist_recipients')dnl EXPOSED_USER(`root')dnl DAEMON_OPTIONS(`Port=smtp, Name=MTA')dnl FEATURE(`accept_unresolvable_domains')dnl LOCAL_DOMAIN(`localhost.localdomain')dnl MASQUERADE_DOMAIN(ukr.net)dnl MAILER(smtp)dnl MAILER(procmail)dnl
[править] Куда все попадает: /var/spool/MD-Quarantine/
[root@asp:~]# tree /var/spool/MD-Quarantine/ /var/spool/MD-Quarantine/ |-- qdir-2006-10-30-18.11.04-001 | |-- HEADERS | |-- MSG.1 | |-- PART.1.BODY | |-- PART.1.HEADERS | |-- RECIPIENTS | |-- SENDER | `-- SENDMAIL-QID |-- qdir-2006-10-30-18.11.57-001 | |-- HEADERS | |-- MSG.1 | |-- PART.1.BODY | |-- PART.1.HEADERS | |-- RECIPIENTS | |-- SENDER | `-- SENDMAIL-QID `-- qdir-2006-10-30-18.15.56-001 |-- HEADERS |-- MSG.1 |-- PART.1.BODY |-- PART.1.HEADERS |-- RECIPIENTS |-- SENDER `-- SENDMAIL-QID 3 directories, 21 files
[править] Просмотр прикрепленных файлов, попавших в карантин:
[root@asp:~]# cat /var/spool/MD-Quarantine/qdir-2006-10-30-18.15.56-001/PART.1.HEADERS Content-Type: application/octet-stream Content-Disposition: attachment; filename="Thunderbird Setup 1.5.0.4.exe" Content-Transfer-Encoding: base64
и
[root@asp:~]# file /var/spool/MD-Quarantine/qdir-2006-10-30-18.15.56-001/PART.1.BODY /var/spool/MD-Quarantine/qdir-2006-10-30-18.15.56-001/PART.1.BODY: PE executable for MS Windows (GUI) Intel 80386 32-bit, UPX compressed
[править] Логи:
less /var/log/maillog Oct 30 18:15:54 asp sendmail[10055]: k9UGFr4G010055: from=root, size=8558821, class=0, nrcpts=1, msgid=<20061030161552.GA10051@ asp.linux.nt>, relay=root@localhost Oct 30 18:15:55 asp sendmail[10056]: k9UGFslK010056: from=<root@asp.linux.nt>, size=8558967