Рассмотрены различные схемы подключения брандмауэров, которые отличаются как экономическими показателями, так и степенью защиты локальной сети.
Показано, что наиболее предпочтительной с точки зрения безопасности и надежности защиты, является схема, изображенная на рис.2.3
Кроме того показано, что важным компонентом брандмауэра является система сбора статистики и предупреждения об атаке.
Разработан алгоритм работы программы контроля доступа пользователей к банковской сети.
Разработанный алгоритм предусматривает два режима работы:
режим контроля за работой пользователя в сети;
режим администрирования.
Разработана программа контроля доступа пользователей к банковской сети. В качестве языка программирования был выбран язык Perl, что позволило гибко управлять работой прокси-сервера. Для достижения поставленной задачи - возможности удаленного управления сервером, был разработан платформо-независимый WEB интерфейс. Таким образом, разработанное программное средство выполняет следующие функции:
удаленное администрирование прокси-сервера при помощи WEB-интерфейса;
просмотр списка пользователей;
добавление - удаление пользователей;
выбор пользователя для изменения его свойств;
определение размера получаемой информации для каждого пользователя в отдельности;
предоставление расширенного отчета о работе пользователя за определенный период.
1. Сервер RedHadLinux для Windows: Пер. с англ. / Пол Сэри - К.: Издательство "Диа Софт", 2001. - 400с.
2. Освой самостоятельно Perl за 24 часа: Пер. с англ.: Уч. пос. - М.: Издательский дом "Вильямс", 2000. - 384с.: ил. - Парал. тит. англ.
3. Компьютерные сети. Принципы, технологии, протоколы / В.Г. Олифер, Н.А. Олифер. - СПб: Издательство "Питер", 1999. - 672 с.: ил.
4. Фоминов О. "Диагностика сетей как средство выживания" - Компьютер Пресс 1996, №4, с 72-76.
5. Михаил Федотов. "Системы сетевого/системного управления: принципы создания".
6. Нессер Д. Дж. Оптимизация и поиск неисправностей в сетях. - К.: "Диалектика", 1996. - 384 с., ил.
7. Фаронов В.В. Delphi 4. Учебный курс. - М.: "Нолидж", 1998. - 464 с., ил.
8. Клепчинов И. "Произвол в локальной сети. Кнуты и пряники системного администратора". - Компьютеры + программы, 1999, №9.
9. Галушка С. "Введение в локальные сети", - Компьютерное обозрение, 1996, №7 (31).
10. ДСТУ 3008-95. Документация. Отчеты в сфере науки и техники. Структура и правила оформления.
Приложение А
Листинг программы контроля доступа пользователей к банковской сети.
#! /usr/bin/perl
$passwd_file = ". /passwd";
$squid_copylog_file = ". /access. log";
$passwdnew_file = ">. /passwd. new";
$squid_file = "/etc/init. d/squid reload";
$users_cvota_file = ". /users";
init_cvota ();
sum_traf ();
razbor_passwd ();
$i = @cnames;
$j = 0;
print_traf ();
$j = 0;
$flag = 0;
open (PASLISTNEW, $passwdnew_file) || die "can't open file users";
while ($j<$i) {
# print $cnames [$j]," ", $traf {$cnames [$j] },"\n";
$a=index ($passwd {$cnames [$j] },"*");
if ( ($cvota {$cnames [$j] } < $traf {$cnames [$j] }) && ($a==-1)) {
print PASLISTNEW ($cnames [$j],": *",$passwd {$cnames [$j] },"\n");
$flag = 1;
}
else
{
print PASLISTNEW $cnames [$j],": ",$passwd {$cnames [$j] },"\n";
};
$j = $j + 1;
};
close (PASLISTNEW) || die "can't close file users";
if ($flag == 1) {
rename (". /passwd. new",$passwd_file);
system ($squid_file);
};
sub razbor_passwd {
open (PASLIST, $passwd_file) || die "can't open file users";
while (defined ($pas = <PASLIST>)) {
chomp ($pas);
$pname = $pas;
$pname =~ s/:. * //;
$ppas = $pas;
$ppas =~ s/\w*: //;
$passwd {$pname} = $ppas;
# print $pname," ",$passwd {$pname},"\n";
};
close (PASLIST) || die "can't close file users";
};
sub init_cvota {
open (USERLIST, $users_cvota_file) || die "can't open file users";
while (defined ($fname = <USERLIST>)) {
chomp ($fname);
$fcvota = <USERLIST>;
chomp ($fcvota);
$cvota {$fname} = $fcvota;
@cnames = (@cnames, $fname);
};
close (USERLIST) || die "can't close file users";
};
sub razbor_str {
$date = $str;
$date =~ s/. * //;
#print $date," ";
$date =~s/^\d+\. \d+/localtime $&/e;
#print $date,"\n";
$s2 = $str;
$s2 =~ s/\S* * //;
$s2 =~ s/. * //;
$IP = $str;
$IP =~ s/\S* *\S* * //;
$IP =~ s/. * //;
$rez = $str;
$rez =~ s/\S* *\S* *\S* * //;
$rez =~ s/. * //;
$raz = $str;
$raz =~ s/\S* *\S* *\S* *\S* * //;
$raz =~ s/. * //;
$metod = $str;
$metod =~ s/\S* *\S* *\S* *\S* *\S* * //;
$metod =~ s/. * //;
$addr = $str;
$addr =~ s/\S* *\S* *\S* *\S* *\S* *\S* * //;
$addr =~ s/. * //;
$name = $str;
$name =~ s/\S* *\S* *\S* *\S* *\S* *\S* *\S* * //;
$name =~ s/. * //;
};
sub sum_traf {
open (LOG, $squid_copylog_file) || die "can't open file users";
while (defined ($str = <LOG>)) {
chomp ($str);
razbor_str ();
if (! ($name eq "-")) {
$traf {$name} = $traf {$name} + $raz;
};
};
close (LOG) || die "can't close file users";
};
sub print_traf {
open (SUMTRAF,">. /sumtraf. log") || die "can't open sum-log file";
$j=0;
while ($j<$i) {
print SUMTRAF $cnames [$j]," ", $traf {$cnames [$j] },"\n";
$j++;
};
close (SUMTRAF) || die "can't close sum-log file";
};