пятница, 13 февраля 2009 г.

четверг, 12 февраля 2009 г.

Скрипт формирования правил iptables

Fail2ban: враг script kiddie
http://beshenov.ru/debaday/200704.html

http://www.linux.org.ru/view-message.jsp?msgid=2610316

http://forum.script-coding.info/viewtopic.php?id=471

http://sourceforge.net/projects/python-iptables/

среда, 11 февраля 2009 г.

Настройка proxy-сервера

http://wiki.rsu.edu.ru/index.php/%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_proxy-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B0

Лимит трафика для пользователей

http://www.gentoo.ru/node/8891

А теперь по порядку.
1) Настраиваем acl
Для начала создадим каталог. У меня /etc/squid/quota. Каталог должен быть доступен сквиду для чтения, руту для записи. В каталог помещаем файлик deny.lst. В него добавляем фиктивного юзверя и подопытного кролика (из под него будем ломиться в тырнет). Фиктивный нужен потому как сквид ругаеццо на пустой acl

baduser
mydomen+krolik


В файле не должно быть пустых строчек, после имен юзера не должно быть пробелов.

Затем пропишем этот файлик в конфиге сквида /etc/squid/squid.conf

.....
acl quota_deny proxy_auth "/etc/squid/quota/deny.lst"
http_access deny quota_deny
deny_info ERR_QUOTA quota_deny
......



Ну тут все просто. Создаем лист типа авторизации со списком юзверей в файле, запрещаем доступ и выводим страничку с сообщением. Особенности - запрещать надо до того как разрешать, к тому же ы строчках не должно быть лишних пробелов.
далее /usr/sbin/squid -k reconfigure и лезем сначала под собой (нам должно быть можно), затем под кроликом (ему долно быть нельзя). Файлик ERR_QUOTA должен лежать там где его ищет сквид (у меня /usr/share/squid/errors/English). Ежели заработало идем дальше.

2) Настраиваем квоты.
"Много думать надо нет". Файлик квот будет состоять из строк. Строки из слов. Слова разделены пробелами. Первое слово - лимит в байтах. Второе и последующее - имена юзерей. Ежели имен нет - квота распространяется на всех, для кого явно не указана. Создаем файл /etc/squid/quota/quota.conf

5000000
10000000 mydomen+loozer1 mydomen+loozer2
10000000 mydomen+looser3
1000000000 mydomen+looser4



Постарайся не писать лишних пробелов и не добавляй пустых строк. Здесь мы ограничиваем до ~5 метров всем. Лузерам 1, 2, 3 ставим 10 метров, лузеру 4 - 100.

3) Пишем скрипт на перле (/etc/squid/quota/getdeny.pl)

#! /usr/bin/perl
# koi8-r

#Вызов скрипта
# getdeny.pl файл_квот файл_лога

# читаем файл квот
# Формат файла: квота пользователь пользователь ....
# Заполняем хеш квоты{пользователь}=квота

open qfh, $ARGV[0];
my %quotas;
while (){
chomp;
@fields = split / /;
$quota=$fields[0];
splice @fields,0,1;
$default_quota=$quota if (!@fields);
foreach $user (@fields){
$quotas{$user}=$quota;
}
}
close qfh;


#Определяем системное время
@currenttime=localtime;

# Анализ сквидового лога (7 поле пользователь, 4 количество байтов (вычитаем из квоты),1 дата)

open ac, $ARGV[1];
while(){
s/\s+/ /g;
@fields = split / /;
#Дневное ограничение, 3 поле списка - день месяца
@logtime=localtime($fields[0]);
if ($logtime[3]==$currenttime[3]){
$quotas{$fields[7]}=$default_quota if !exists $quotas{$fields[7]};
$quotas{$fields[7]}-=$fields[4];
}
}

close ac;

# Выдаем список для запрещения доступа
print "baduser";
foreach $user (sort keys %quotas){
if ($quotas{$user}<0){
printf "\n%s", $user;
}
}



Скриптик после некоторых раздумий должен выдать список юзерей, превысивших квоту. Для отладки брал небольшой кусок лога, и ставил самому активному юзеру квоту в 10 байт. Как только убеждаемся в том что скриптик делает то что надо - ставим это дело в крон. Я постаил каждые 10 мин.

crontab -e и добавляем запись

*/10 * * * * /etc/squid/quota/getdeny.pl /etc/squid/quota/quotas.conf /var/log/squid/access.log >/etc/squid/quota/deny.lst;/usr/sbin/squid -k reconfigure

Вот собсно и все.


Глюки.
Вобщем как бы все хорошо, токмо мозилка и ие требуют поемуто авторизацию.

Squid + LightSquid + Perl = ограничение по трафику

http://www.opennet.ru/tips/info/1797.shtml

итак.

1. настраиваем сквид (статей много, описывать не буду)
В squid.conf , желательно перед остальными ACL, надо будет добавить следующее


# блокировка пользователей которые превысили лимит (файл user-deny),
# и разрешение этим пользователям только тех IP и сайтов, которые перечислины в файле host.acl

acl no_quota url_regex -i "/etc/squid/no_quota_url.txt"
acl banusers proxy_auth_regex -i "/etc/squid/user_deny.txt"
http_access allow no_quota banusers allowedhost
deny_info ERR_QUOTA all
http_access deny banusers allowedhost all

по порядку что к чему с файлами:

no_quota_url.txt - ведется руками.
текст:

# файд содержит сайты, который открываются, даже если превышена квота и пользователь попал в users_deny.txt
test.ru
icq.com
205.188.

user_deny.txt - в дальнейшем создастся сам, но без него перечитать настройки squid не получиться

# файл содержит пользователей превысивших квоту.
# автоматически переписывается скриптом traf_limit.pl
dolzhen_bit_odin_user
user1
user2

ERR_QUOTA создадим по образу и подобию всех остальных страниц с ошибками.
Я поставил что-бы получать другой текст. вот так получилось:


Превышен лимит

ПРЕВЫШЕН ЛИМИТ






Заблокированный URL:
%U




  • Вы превысили месячный лимит на интеренет.

    Если Вы считаете это неправильным, свяжитесь с отделом АСУ по телефонам
    1013 или 1066



    Если этот сайт необходим для работы, то он может быть открыт по служебной записке.



С Уважением отдел АСУ.


allowedhost - мое правило проверки пользователей.


2. LightSquid абсолютно штатный. вот официальный сайт http://lightsquid.sourceforge.net/

Ставится и настраивается минут 5-10. Собственно вся настройка у меня заключалась в том,
что-бы рассортировать пользователей по группам. Для тех у кого еще есть http сервер
дополнительно будет красивая статистика. ;)

3. в /etc/squid создадим папку traf_limit

4. в /etc/squid/traf_limit создаем два файла

traf_limit.pl

#!/usr/bin/perl
#
# Довесок на LightSquid Project (c) 2004-2005 Sergey Erokhin aka ESL
#
# Скрипт создает файлик user_deny для ограничения инета по трафику

# Автор: Иван Лонин loninia@apksouz.ru 2008 год.


use File::Basename;

# коряво конечно напрямую писать путь к конфигу, но лениво было sh файлик для крона делать :)
require "/etc/squid/traf_limit/config";

#($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time);
@dat=localtime(time);
$year =1900+$dat[5];
$month=1 + $dat[4];
$filter="$year$month";

#print "$log_path/$filter*\n";
@daylist=glob("$log_path/$filter*");

foreach $daypath (sort @daylist) {
open FF,"<$daypath/.total";

$totaluser=;chomp $totaluser;$totaluser=~s/^user: //;
$totalsize=;chomp $totalsize;$totalsize=~s/^size: //;

while () {

($user,$size,$hit)=split;
$h{$user}{size}+=$size;
$h{$user}{hit}+=$hit;
}
close FF;
}
#
$cummulative=0;
open RES,">$res_file";
print RES "# файл содержит юзеров превысивших квоту.\n
# автоматически переписывается скриптом traf_limit.pl\ndolzhen_bit_odin_user\n";
foreach $user (sort {$h{$b}{size}<=>$h{$a}{size}} keys %h) {

$all4user=$h{$user}{size}/1024/1024;
if ($vip_user{$user}{size} > 0) {
$limit=$vip_user{$user}{size};
}else{
$limit=$all_limit;
}

if ($all4user >= $limit) {
print RES "$user\n";
# print "$h{$user}{size}\n";
};

}
__END__


и файлик config


#!/usr/bin/perl
# конфигурационный файл для скрипта traf_limit.pl
#
# путь к логам lightsquid
$log_path="/www/lightsquid/report";

# файл в который пушутся пользователи превысившие лимит
$res_file="/etc/squid/user_deny.txt";

# лимит инета в мегабайтах
$all_limit=150;

# привелигированные пользователи с повышенным или пониженным лимитом
# для каждого пользователя строка формата:
#$vip_user={<имя_юзера}{size}=<лимит_в_мегабайтах>;
$vip_user{user1}{size}=5;
$vip_user{qwe}{size}=50;


назначим файликам нужного владельца и права на запуск

5. осталось в только в cron добавить запуск. Я сделал раз в сутки в 5-00.
делать вечером в 20 с чем нибудь категорически не рекомендую т.к. скрипт работает
на текущую дату (первого числа будут использоваться прошломесячные данные)

делаем

crontab -e

и добавляем для скрипта строчку вида

45 04 * * * /etc/squid/traf_limit/traf_limit.pl

и для сквида

0 05 * * * /etc/init.d/squid reload

собственно все :). естественно, что правильно оно начнет работать только с 1 числа следующего за установкой месяца.

вторник, 10 февраля 2009 г.

Код
iptables -A FORWARD -d 192.168.1.1 -m string --string "vkontakte.ru" --algo kmp --to 65535 -j DROP


Таким макаром мы залочили машине с IP 192.168.1.1 доступ к сайту vkontakte.ru

Код
iptables -A FORWARD -m string --string "vkontakte.ru" --algo kmp --to 65535 -j DROP


А так мы залочили всем доступ к сайту vkontakte.ru

Как настроить управление трафиком для обеспечения гарантированного качества обслуживания (QoS)?

для dfl-800 http://www.dlink.ru/ru/faq/85/758.html

воскресенье, 8 февраля 2009 г.

internal 192.168.10.4
external 192.168.10.4
nserver 84.22.128.10
users admin:CL:bigsecret
fakeresolve
#allow * * * 80,8080
allow *
parent 1000 http 192.168.10.2 8080 iva xxxxxx(пароль)
auth strong
log
proxy

Точка доступа D-link DWL-7000AP

http://www.ferra.ru/online/networks/s25636/
Так как он в сети 100.0.0.2 (маршрутизатор шлюз)
настроили Костю
ip 100.0.0.222 255.255.255.0
dns 84.22.128.10
dns1 84.22.140.1


почтовый ящик kgteirosim@kgtei.ru

ОГРН 1022401788826

прокси 84.22.133.164 8080

Дистр программы
http://rosim.ru/doing/200511151146-8766.htm/200804251124-4836.htm/200805081643-6662.htm/200805081652-5713.htm

среда, 4 февраля 2009 г.

Список наиболее часто встречающихся расширений файлов

http://www.03pk.ru/etc/spechific.html

Расширение файла - последовательность символов, предназначенных для идентификации типа файла. Основное предназначение расширений файлов - указать операционной системе, какой программой был создан данный файл и какую программу следует вызвать для открытия этого файла. Обычно расширение состоит из трех (двух, четырех) символов, отделяемых точкой от имени файла.
Здесь приведены наиболее часто встречающиеся расширения файлов, а к ним добавлен комментарий о содержимом файла или о программе, с помощью которой файл создан.

.3DF --- файл с трехмерным чертежом
.ACS --- файл в формате Microsoft Access
.ADI --- файл монохромной растровой графики, генерируемый AutoCAD
.APD --- файл Aldus PageMaker Printer description
.ARC --- архивированный, сжатый файл, который можно разархивировать с помощью программы PKXARC
.ART --- графический файл с иллюстративными вставками
.ASP --- действующая (активная) страница сервера
.ANI --- Animation (Presidio - many)
.AU --- звуковой файл в Интернете
.AVI --- мультимедийный файл в Windows
.BAK --- копия файла, создаваемая перед его изменением
.BAT --- файл, содержащий команды DOS
.BDB --- резервная копия файла базы данных пакета Works for Windows
.BIB --- файл, содержащий библиографические сведенья
.BIN --- двоичный файл; файл, содержащий образ памяти
.BMP --- битовый файл
.BTR --- Btrieve Database File или MS Frontpage-related File
.BPS --- резервная копия документа текстового процессора пакета Works for Windows
.CAG --- формат файла со сжатым изображением
.CAL --- данные календаря
.CAP --- файл с изображением, захваченным с экрана
.CAT --- файл каталога
.CDR --- файл (векторного) изображения в формате графического пакета Corel Draw
.CDT --- шаблон в графическом пакете Corel Draw
.CFG --- файл конфигурации в прикладных пакетах и системах
.CGM --- метафайл в Windows; диаграмма в Lotus 1-2-3
.CLP --- файл, в котором на диске сохраняется содержимое буфера обмена
.CMD --- командный файл
.CNT --- справочный файл некоторых программ
.CNV --- конвертер из одного графического формата в другой; файл конфигурации
.COD --- список команд
.COM --- выполняемый файл, программа
.CPE --- обложка, первая страница документа
.CPI --- файлы с информацией о кодовых таблицах
.CPL --- 1. панель управления; 2. файл с цветовой палитрой в пакете Corel Draw
.CPP --- файл с исходными текстами программ C++
.CPT --- файл (растрового) изображения в формате Corel Photo-Paint
.CRD --- 1. картотека; 2. музыкальный файл
.DAT --- файл данных
.PDF --- (аббревиатура от англ. Portable Document Format, произносится пи-ди-эф) — платформонезависимый формат электронных документов, созданный фирмой Adobe Systems с использованием ряда возможностей PostScript
.DBX --- файл базы данных
.DEF --- файл определений
.DEM --- файл с презентацией
.DFV --- файл в формате для печати
.DjVu --- (фонетическое сокращение от англ. «Digital View» — «Цифровой вид» или «Цифровая фотография») — формат, разработанный специально для хранения сканированных документов — книг, журналов, рукописей и пр., где обилие формул, схем, рисунков и рукописных символов делает чрезвычайно трудоёмким их полноценное распознание
.dgs --- файл программы “Dagesh” («Дагеш»)
.DIB --- графический файл, аналогичный.ВМР
.DIC --- файл словаря
.DIF --- формат обмена данными
.DOC --- документ
.DOT --- файл с описанием (шаблоном) документа
.DRV --- драйвер; программа, управляющая каким-либо устройством
.DRW --- графический файл
.DTA --- файл даты
.DVR --- драйвер устройства
.DXR --- Adobe Acrobat File
.EDB --- WIN SECURITY file
.EFM --- файл Equation FontMetrics
.EMF --- Enhanced Windows Meta-file picture
.EML --- текст письма, пришедшего по электронной почте
.ENC --- зашифрованный
.EPS --- файл с изображением
.ERR --- файл сообщений об ошибках
.EXE --- выполняемый файл, перемещаемая выполняемая программа
.FAX --- факс-файл
.FLR --- папка
.FLT --- фильтр
.FNT --- файл с графическим шрифтом
.FON --- 1. файл с графическим шрифтом; 2. файл с номерами телефонов пакетов Phone
.FRM --- 1. файл с формами Visual Basic; 2. отчеты
.GEM --- файл с изображением
.GID --- индексный файл помощи
.GIF, .gif --- 1. графический формат файла; 2. файл с изображением в пакете 3D Studio
.GLY --- глоссарий
.GRF --- графический файл
.GRP --- файл с определением группы объектов или файлов
.HLP --- файл с подсказками
.HTM --- файл на языке разметки гипер-текста Hyper Text Markup Language
.html --- см. HTML
.HYP --- 1. файл переносов; 2. архивный упакованный файл, созданный упаковщиком HYPER
.ICE --- архивный упакованный файл упаковщика LHICE (ICE.exe)
.ICO --- пиктограмма
.IMG --- графический файл; сканированное изображение
.INC --- файл, включаемый в состав других программ
.IND --- индекс
.INF --- информационный файл
.INI --- файл с начальной установкой некоторых программ
.jpeg --- см. .JPG
.JPG, .jpg --- графический файл в формате JPEG
.KBD --- файл назначения функциональных клавиш
.KEY --- макрофайл
.LBL --- файл с этикетками
.LBR --- библиотека
.LES --- файл с уроком в обучающих программах
.LET --- письмо
.LEX --- файл с текстом, обработанным программой-редактором
.LIB --- библиотечный файл
.LNK --- копия инвертированного файла
.LOG --- протокол работы системы или оператора
.LHZ --- LH ARC compressed archive
.LZX --- сжатый файл
.MAC --- 1. макрофайл; 2. файл Macintosh
.MAI --- письмо
.MAN --- руководство
.MAT --- файл с данными матрицы
.MAX --- 3DStudio Scene
.MCI --- высокоуровневый программный интерфейс для управления мультимедиа-устройствами
.MDB --- файл базы данных
.MDF --- файл определения меню
.ME --- открытая информация
.MES --- аудиофайл программы REALJBOX
.MET --- метафайл
.MIC --- формат для создания изображений для Интернета
.MID --- звуковой миди-файл, формат миди-файлов
.MOV --- файл с видеофильмом
.MP2 --- музыкальный файл в формате MPEG2
.MP3 --- музыкальный файл в формате MPEG3
.MPA --- музыкальный файл в формате MPEG
.MPG --- музыкальный файл в формате MPEG
.MRB --- файл из программы помощи Windows
.MSP --- графический файл программы Paint вWindows
.MTM --- формат музыкального файла с записью до 32 каналов
.NDX --- индексный файл
.NEW --- новая версия
.OLD --- предыдущая версия
.OPT --- опции
.ORI --- исходная версия
.OUT --- контуры
.OVL, .OVR --- программа, подгружаемая во время работы; оверлей
.PAK --- упакованный программой Pack файл под MS DOS
.PAT --- файл с исправлениями («заплатками»)
.PBM --- переносное растровое изображение
.PCX --- файл растрового изображения в формате пакета PC PaintBrush
.PHO --- файл со списком телефонов
.PIF --- файл с дополнительной информацией о программе
.PLY --- игровой файл
.PPM --- формат для хранения цветных растровых изображений
.PPC --- Game: Uefa champions league file
.PPT --- файл презентации Power Point
.PPD --- файл PageMaker : PostScript printer description file
.PRD --- файл со спецификацией принтера
.PRN --- файл для печати
.PRO --- 1. файл с исходными текстами программ на языке Пролог или в среде Турбо Пролог; 2. файл проекта, профиль (расширение имени файла)
.PRT --- файл, отформатированный для вывода на принтер
.PSD --- формат графических файлов редактора Adobe Photoshop: - использующий компрессию; и - позволяющий записывать изображение со многими слоями, их масками, дополнительными каналами
.PUB --- файл MS Publisher Document
.RA --- аудиофайл для прослушивания музыки в Сети
.RAM --- аудиометафайл
.REC --- устройство записи в Windows
.REF --- файл со ссылками
.RES --- файл ресурсов
.RI --- Lotus 1-2-3 data
.RLE --- сжатый файл в графическом формате
.RTF --- файл с поддержкой многих атрибутов форматирования
.SAF --- стандартный архивный файл
.SCR --- 1. файл сценария; 2. экранный файл; 3. файл с данными для хранителя экрана
.SDF --- стандартный формат данных
.SWF (Shockwave Flash) --- внутренний векторный формат программы Flash фирмы Macromedia. Используется для анимации в Интернете
.SEA --- самораспаковывающийся архив
.SHW --- демонстрация
.SIG --- файл электронного письма с автоматической подписью
.SLD --- слайд
.SMP --- пример
.SND --- звуковой файл
.SOL --- файл данных
.SPL --- программа проверки орфографии
.SRC --- исходный текст
.SRP --- файл сценария
.STY --- файл стилей
.SVD --- файл, создаваемый при автоматическом сохранении
.SWP --- файл подкачки
.SYL --- файл с программой мероприятия, расписанием, планом
.SYM --- символ
.SYN --- синоним
.SYS --- системный файл
.TAR --- Tape Archive, Unix standard Archive format / not compressed
.TBL --- таблица
.TBS --- файл с частью текста в Word
.THS --- файл словаря, тезауруса
.TIF(F) --- графический файл, часто введенный со сканера
.TLX --- телекс
.TMP --- временный рабочий файл
.TPM --- файл с данными о терминале
.TST --- файл с набором тестовых данных или тестовым примером
.TUT --- обучающая программа, учебное пособие
.TXT --- текстовый файл
.VBS --- видеофайл
.VID --- видеодрайвер
.WAB --- файл Microsoft Outlook (Address Book file)
.WAV --- звуковой файл
.WB2 --- Spreadsheet; Lotus 1-2-3 for OS/2
.WDB --- файл базы данных или отчет Works for Windows
.WKS --- файл электронной таблицы
.WK4 --- Lotus 123 version 4 spreadsheet
.WMF --- аппаратно-независимый графический векторный файл в среде Windows
.WPD --- описание принтера в Windows
.WPS --- документ, созданный пакетом деловых предложений Microsoft Works for Windows
.XLA --- файл надстройки редактора электронных таблиц Excel
.XLC --- файл диаграммы редактора электронных таблиц Excel
.XLK --- файл с резервной копией электронной таблицы Excel
.XLM --- файл макросов редактора электронных таблиц Excel
.XLS --- файл с электронной таблицей Excel
.XLT --- файл шаблона редактора электронных таблиц Excel
.ZIP --- заархивированный файл, могущий быть распакованным с помощью программы PKUNZIP
.ZOO --- файл, созданный программой-упаковщиком Zoo

SquidGuard - ДЛЯ ВСЕХ.

http://www.opennet.ru/docs/RUS/squidguard/index.html

Возможности SquidGuard:
1) гибкая фильтрация запросов;
2) опознавание пользователей по IP-адресу или имени;
3) работа по расписанию;
4) обрезка (а точнее подмена) banners и т.д.

Сайт программы
http://www.squidguard.org/
Блэклист
http://squidguard.mesd.k12.or.us/blacklists.tgz

http://www.squid.kiev.ua/faq/squid-15.html
Следующий скрипт на Perl может использоваться как шаблон при написании собственного редиректора:

#!/usr/local/bin/perl
$|=1;
while (<>) {
s@http://fromhost.com@http://tohost.org@;
print;
}
Простенький редирект
http://www.fork.kiev.ua/category/redir/

воскресенье, 1 февраля 2009 г.

Ночную сборку FAR (и плагинов) можно скачать с официального сайта.