GeoSELECT.ru



Программирование / Реферат: Исследование точности численного интегрирования (Программирование)

Космонавтика
Уфология
Авиация
Административное право
Арбитражный процесс
Архитектура
Астрология
Астрономия
Аудит
Банковское дело
Безопасность жизнедеятельности
Биология
Биржевое дело
Ботаника
Бухгалтерский учет
Валютные отношения
Ветеринария
Военная кафедра
География
Геодезия
Геология
Геополитика
Государство и право
Гражданское право и процесс
Делопроизводство
Деньги и кредит
Естествознание
Журналистика
Зоология
Инвестиции
Иностранные языки
Информатика
Искусство и культура
Исторические личности
История
Кибернетика
Коммуникации и связь
Компьютеры
Косметология
Криминалистика
Криминология
Криптология
Кулинария
Культурология
Литература
Литература : зарубежная
Литература : русская
Логика
Логистика
Маркетинг
Масс-медиа и реклама
Математика
Международное публичное право
Международное частное право
Международные отношения
Менеджмент
Металлургия
Мифология
Москвоведение
Музыка
Муниципальное право
Налоги
Начертательная геометрия
Оккультизм
Педагогика
Полиграфия
Политология
Право
Предпринимательство
Программирование
Психология
Радиоэлектроника
Религия
Риторика
Сельское хозяйство
Социология
Спорт
Статистика
Страхование
Строительство
Схемотехника
Таможенная система
Теория государства и права
Теория организации
Теплотехника
Технология
Товароведение
Транспорт
Трудовое право
Туризм
Уголовное право и процесс
Управление
Физика
Физкультура
Философия
Финансы
Фотография
Химия
Хозяйственное право
Цифровые устройства
Экологическое право
   

Реферат: Исследование точности численного интегрирования (Программирование)



[pic]
Министерство общего и профессионального образования РФ.
Уральский государственный технический университет – УПИ
Кафедра “Технология и средства связи”



"Исследование точности численного интегрирования"
"Research of Accuracy of Numerical Integration"



Отчет


по лабораторной работе

дисциплины
"Информатика",
третий семестр


Преподаватель: Болтаев А.В.

Студенты: Степанов А.Г
Черепанов К.А.

Группа: Р-207



Екатеринбург

2000
Содержание
1. Задание исследования 3
2. Подробное описание задачи и способы ее решения 3
3. Результаты исследований 4
4. Сравнение результатов 12
5. Список библиографических источников 13
6. Текст программы 13



Задание исследования


Провести исследование внутренней сходимости численного интегрирования
методом Симпсона и трапеций различных функций, задаваемых с помощью языка
С.


Подробное описание задачи и способы ее решения


Необходимо провести исследования так называемой внутренней сходимости
численного интегрирования методами Симсона и трапеций различных функций,
задаваемых с помощью функций языка С. Предполагается, что отрезок
интегрирования [a,b] разбит на n равных частей системой точек (сеткой).

[pic] [pic] [pic] [pic]
Контроль внутренней сходимости заключается в циклическом вычислении
приближенных значений интеграла для удваимого по сравнению со значением на
предыдущем прохождении цикла числа n. Отношения абсолютной величины
разности этих значений к абсолютной величине предыдущего приближенного
значения принимается в качестве критерия достижения точности интеграла.
Построить зависимости количеств итераций от различных величин критерия
точности.
Построить обратные зависимости критерия точноти от количества итераций.
Повторить все вышеуказанные исследования для случая, когда при вычислении
критерия точности разность значений интеграла относится не к предыдущему
значению, а к точному значению аналитически вычисленного интеграла.
Исследовать влияние увеличения верхнего предела интегрирования на
точность (при прочих неизменных условиях)

Метод трапеций

[pic], где
[pic] [pic]
Метод Симпсона
[pic], где
[pic]

Результаты исследований

Таблица и график зависимости количества итераций от различных значений
критерия точности
Для [pic]
|Критерий |Количество |
|точности |итераций |
|-0,1676631 |14 |
|-0,1518916 |16 |
|-0,0046931 |12 |
|-0,0026531 |11 |
|-0,0002639 |10 |
|-0,0001709 |2 |
|-0,0001297 |9 |
|-0,0000557 |3 |
|-0,000025 |8 |
|-0,0000198 |4 |
|-0,0000096 |5 |
|-0,0000038 |6 |
|0 |15 |
|0,0000052 |7 |
|0,071089 |13 |

[pic]
|Критерий |Количество |
|точности |итераций |
|-0,1127271 |16 |
|-0,0750288 |15 |
|-0,0540677 |14 |
|-0,0021415 |12 |
|-0,0005711 |11 |
|-0,0000458 |9 |
|-0,0000381 |2 |
|-0,0000191 |3 |
|-0,000008 |4 |
|-0,000004 |5 |
|-0,0000019 |7 |
|-0,0000002 |6 |
|0,000005 |8 |
|0,0002983 |10 |
|0,0164377 |13 |



[pic]

|Критерий |Количество |
|точности |итераций |
|-0,0066709 |13 |
|-0,0042367 |14 |
|-0,0003561 |10 |
|-0,0000016 |5 |
|-0,000001 |4 |
|0,0000005 |3 |
|0,0000006 |6 |
|0,0000009 |2 |
|0,0000009 |7 |
|0,0000223 |8 |
|0,000056 |9 |
|0,0002782 |11 |
|0,0003474 |12 |
|0,005293 |16 |
|0,0053267 |15 |



[pic]

|Критерий |Критерий |
|точности |точности |
|-61,4469795 |12 |
|-5,714047 |3 |
|-1,0215755 |13 |
|-0,7241433 |2 |
|-0,5121117 |4 |
|-0,3222643 |11 |
|-0,2163614 |7 |
|-0,1536629 |9 |
|-0,0930261 |14 |
|0,0353183 |16 |
|0,057059 |15 |
|0,1697371 |5 |
|0,2025534 |10 |
|0,2504728 |6 |
|0,6202592 |8 |

[pic]

|Критерий |Количество |
|точности |итераций |
|-0,0119308 |16 |
|-0,0007834 |13 |
|-0,0000079 |3 |
|-0,0000041 |4 |
|-0,0000037 |7 |
|-0,0000027 |5 |
|-0,0000027 |6 |
|-0,000002 |8 |
|-0,0000016 |2 |
|0,0000003 |10 |
|0,0000062 |9 |
|0,0000385 |11 |
|0,0000802 |12 |
|0,0005452 |15 |
|0,0016689 |14 |


[pic]

|Критерий |Количество |
|точности |итераций |
|-0,0026286 |16 |
|-0,0012416 |14 |
|-0,0000118 |3 |
|-0,0000107 |4 |
|-0,0000046 |5 |
|-0,0000046 |9 |
|-0,0000028 |6 |
|-0,0000021 |7 |
|-0,0000005 |2 |
|0,0000011 |10 |
|0,0000018 |8 |
|0,0000023 |11 |
|0,000058 |12 |
|0,0001049 |13 |
|0,0027928 |15 |



Таблица и график зависимости значений критерия точности от количества
итераций
Для функции [pic]
|По отношению | |По отношению | |
|к предыдущему| |к | |
|значению | |аналитическом| |
| | |у значению | |
|Критерий |Количество |Критерий |Количество |
|точности |итераций |точности |итераций |
|-0,0001709 |2 |-0,0001932 |2 |
|-0,0000557 |3 |-0,0000629 |3 |
|-0,0000198 |4 |-0,0000224 |4 |
|-0,0000096 |5 |-0,0000108 |5 |
|-0,0000038 |6 |-0,0000043 |6 |
|0,0000052 |7 |0,0000058 |7 |
|-0,000025 |8 |-0,0000283 |8 |
|-0,0001297 |9 |-0,0001466 |9 |
|-0,0002639 |10 |-0,0002983 |10 |
|-0,0026531 |11 |-0,002998 |11 |
|-0,0046931 |12 |-0,0052891 |12 |
|0,071089 |13 |0,0797403 |13 |
|-0,1676631 |14 |-0,2014365 |14 |
|0 |15 |0 |15 |
|-0,1518916 |16 |-0,1518916 |16 |

Для функции [pic]
|По отношению | |По отношению | |
|к предыдущему| |к | |
|значению | |аналитическом| |
| | |у значению | |
|Критерий |Количество |Критерий |Количество |
|точности |итераций |точности |итераций |
|-0,0000381 |2 |-0,0000666 |2 |
|-0,0000191 |3 |-0,0000335 |3 |
|-0,000008 |4 |-0,0000141 |4 |
|-0,000004 |5 |-0,0000069 |5 |
|-0,0000002 |6 |-0,0000004 |6 |
|-0,0000019 |7 |-0,0000033 |7 |
|0,000005 |8 |0,0000088 |8 |
|-0,0000458 |9 |-0,0000802 |9 |
|0,0002983 |10 |0,000522 |10 |
|-0,0005711 |11 |-0,0009997 |11 |
|-0,0021415 |12 |-0,0037465 |12 |
|0,0164377 |13 |0,0286955 |13 |
|-0,0540677 |14 |-0,0959378 |14 |
|-0,0750288 |15 |-0,1259331 |15 |
|-0,1127271 |16 |-0,1750124 |16 |



Сравнение результатов


Таблица сравнительных результатов

|Метод трапеции |Метод Симпсона |Аналитический |Функция |Предел|
|n=1000000 |n =1000000 |результат | |ы |
|4,5051475 |4,5240183 |4,49980967 |f(x)=1/x |0,1…..|
| | | | |9 |
|1,7491462 |1,7500761 |1,791756469 |f(x)=1/x*x|0,3…..|
| | | | |5 |
|1,9991885 |1,9999505 |2 |f(x)=sin(x|0…….? |
| | | |) | |
|-0,0000512 |0,000003 |0 |f(x)=sin(2|0…….? |
| | | |*x) | |
|0,2857157 |0,2856935 |0,285714285 |f(x)=sin(7|0…....|
| | | |*x) |? |
|0,2222053 |0,2222133 |0,222222222 |f(x)=sin(9|0…....|
| | | |*x) |? |


Таблица влияния увеличения верхнего предела на точность интегрирования

|Аналитическое |Практическое |Верхний |Погрешнос|
|значение |значение |предел |ть |
|4,49980967 |4,5217996 |9 |-0,021989|
| | | |93 |
|4,605170186 |4,624969 |10 |-0,019798|
| | | |814 |
|4,787491743 |4,8039412 |12 |-0,016449|
| | | |457 |
|4,941642423 |4,9557843 |14 |-0,014141|
| | | |877 |
|5,075173815 |5,0875444 |16 |-0,012370|
| | | |585 |
|5,192956851 |5,2039275 |18 |-0,010970|
| | | |649 |
|5,298317367 |5,3082042 |20 |-0,009886|
| | | |833 |


Следовательно, увеличение верхнего предела приводит к увеличению точности
интегрирования

Список библиографических источников

1. Справочник по математике/Бронштейн И.Н., Семендяев К.А.-М.:Физико-
математическая литература, 1998.

Текст программы

/* Курсовая работа по информатике
"Исследование точности численного интегрирования"
"Research of Accuracy of Numerical Integration"
Преподаватель:
Студенты: Степанов А.Г.
Черепанов К.А.
Группа: Р-207
*/
# include
# include
# include
# include
# include
# include

int main ()
{
FILE *fp; /*указатель на поток*/
int n,i,t,j,N;
float a,b,h,Sum[100],x,y,coa;

printf("Research of Accuracy of Numerical Integrationn");

/*Ввод точности вычисления*/
printf("Enter accuracy of calculation n= ");
scanf("%d",&n);

/*Ввод начала интегрирования*/
printf("Enter beginnings of integration= ");
scanf("%f",&a);

/*Ввод предела интегрирования*/
printf("Enter limit of integration= ");
scanf("%f",&b);


/*Открытие файла-источника*/
while((fp=fopen("data3.xls","w"))==NULL)
{
puts("Error!!! Can't open file nInput name of
filen");
}

/*Ввод количества итераций*/
printf("Enter number of Itteration N= ");
scanf("%d",&N);

/*Вычисление шага интегрирования*/
h=(a+b)/n;
printf("Step=%.3fn",h);

/*******Вычисление интеграла методом трапеций*******/
for(j=1;j myfile
drwxr-xr-x 1 root users 4096 Фев 7 19:49 lnk
-rwxr----- 1 anotheruser users 97 Фев 7 19:48 myfile1
-rw-rw-r-- 1 root users 84 Фев 7 19:45 myfile2

В первой колонке представлены права доступа к файлу. Эта колонка
содержит 10 символов. Первый из них слева говорит о том, к какому типу
принадлежит файл, то есть является ли он файлом, каталогом, ссылкой и так
далее. Далее слева направо представлены права доступа соответственно для
владельца, для группы, и в конце – для всех остальных. Вторая колонка
отображает количество жестких ссылок для этого файла. Третья указывает на
имя владельца файла, четвертая – на имя группы-владельца, пятая колонка –
размер файла, шестая – дата создания файла, седьмая - имя файла.
Как видно из примера, linkfile является символической ссылкой на файл
myfile. Об этом говорит буква l в самой левой части колонки прав доступа.
Для символических ссылок задание прав доступа возможно, но вряд ли имеет
смысл. Дело в том, что символическая ссылка указывает на файл, который
имеет свои права доступа, поэтому при доступе по символической ссылке
проверяются права конечного файла. Файл lnk является каталогом, о чем
говорит буква d в поле прав доступа. Поле владельца говорит о том, что
владельцем каталога является пользователь root, а группа-владелец – users.
Владелец имеет право на чтение файлов в каталоге, запись файлов и чтение
содержимого каталога. Буква r (от слова Read) говорит о возможности для
данного пользователя выполнять операции чтения файлов каталога, буква w (от
слова Write) – о возможности записи файлов в каталог, последняя буква x (от
слова eXecute) дает право на просмотр содержимого каталога. Пользователи,
входящие в группу users, имеют право только на чтение файлов этого каталога
и на получение его содержимого (буквы r и x), право на запись файлов в этот
каталог у них отсутствует. Все остальные пользователи имеют те же права
доступа, что и группа-владелец. Последние два файла myfile1 и myfile2
являются обычными файлами. Файл myfile2 имеет права чтения и записи для
владельца (пользователя root) и группы users, все остальные имеют право
только читать файл. Файл myfile1 имеет права на чтение, запись и выполнение
для владельца, коим в данном случае является пользователь anotheruser.
Группа users имеет право только на чтение этого файла, а все остальные
пользователи вообще не могут выполнять какие-либо действия с этим файлом.
Изменение прав доступа к файлу осуществляется при помощи стандартной
системной команды chmod. Права доступа при вызове команды могут задаваться
как битовой маской в десятичном представлении, так и при помощи символов.
Подробно использование этой команды описано на соответствующей man-
странице.
Помимо прав доступа существуют так называемые модификаторы доступа. К
модификаторам доступа относятся Sticky bit, SUID и SGID.
Sticky bit (S). Для файлов установка этого модификатора в современных
дистрибутивах потеряла свое значение. Установка Sticky bit для каталога
позволяет пользователю записывать файлы в этот каталог, но удалять из этого
каталога он может только те файлы, владельцем которых он является, или в
том случае, если ему явно заданы права записи.
SUID (s). Если файлу установлен модификатор доступа SUID и файл
исполняемый, то файл при запуске на выполнение получает не права
пользователя, запустившего его, а права владельца файла. Такие приемы
используются для того, чтобы пользователь мог работать с некоторыми
системными файлами, владельцем которых является привилегированный
пользователь. К примеру, для того, чтобы пользователь мог самостоятельно
изменить свой пароль при помощи программы passwd, у этой программы,
владельцем которой является пользователь root, должен быть установлен бит
SUID, поскольку она работает с файлом shadow, модификацию которого имеет
право производить только пользователь root.
SGID (s). Если файл имеет модификатор доступа SGID, то это аналогично
установке бита SUID, только вместо владельца файла используется группа,
которой принадлежит файл. В случае установки SGID для каталога файлы,
содержащиеся в этом каталоге, будут иметь установки группы такие же, как у
каталога.
[root@app mydir]# ls –l
-rwsr--r-x 1 anotheruser users 97 Фев 7 19:48 myfile1

В приведенном примере видно, что файл myfile1 имеет установленный бит
SUID. При запуске файла любым пользователем системы (права на выполнение
установлены для всех) файл будет выполнять действия от имени его владельца,
в данном случае от имени пользователя anotheruser.
Модификаторы доступа при правильном использовании представляют очень
мощное и гибкое средство. С другой стороны, неправильная настройка системы
с использованием этих модификаторов может свести все действия по
обеспечению безопасности к нулю. Особенно опасной представляется ситуация,
когда тот же SUID установлен на исполняемый файл, принадлежащий
привилегированному пользователю. При выполнении файла запустивший его
пользователь получает право выполнять операции, доступные только
пользователю root. Если даже файл не выполняет никаких системных операций и
не работает с системными файлами, неправильное его использование может
привести к очень неприятным последствиям.
Практическое применение рассмотренной информации приводится в
приложении в примере 2.

2.2.2. Атрибуты файлов

В файловой структуре операционной системы всегда есть файлы, которые не
должны изменяться в процессе функционирования системы, например,
исполняемые файлы или файлы, которые должны быть откорректированы только
однажды при настройке системы и не должны изменяться впоследствии, примером
могут служить конфигурационные файлы. Есть и такие, которые могут быть
дополнены, но не могут быть удалены или перезаписаны. Наличие средств,
гарантирующих выполнение перечисленных условий, позволяет очень сильно
повысить безопасность файловой системы, сохранив первоначальную целостность
данных при различных типах атак.
Начиная с версии ядра 1.1, в файловой системе Linux помимо прав доступа
присутствует поддержка расширенных атрибутов файлов. В последних версиях
ядра 2.4 присутствует поддержка следующих атрибутов:
. Atime (A). Каждый раз, когда система обращается к файлу, происходит
изменение ячейки времени последнего обращения к файлу. Установка атрибута
atime позволяет избежать обновления времени последнего обращения и
увеличить производительность файловой системы, особенно в тех случаях,
когда обращения к файлам происходят очень часто. Однако, отсутствие
времени последней модификации файла представляет угрозу изменения файла
без последующей регистрации этого действия, что может угрожать
безопасности.
. Sync (S). Установка атрибута sync позволяет сразу фиксировать все
изменения, происходящие с файлом, на жестком диске синхронно с процессом,
который осуществляет эти изменения. Это обеспечивает более безопасную
работу, но может также снизить производительность из-за прямой постоянной
записи на диск.
. Append (a). Этот атрибут позволяет открывать файл только с целью его
дополнения. Усечение или перезапись файла запрещается. Для каталога
установка этого атрибута означает, что удалять файлы, содержащиеся в этом
каталоге, запрещено, хотя создание новых и модификация существующих
возможны.
. Immutable (i). Файл с установленным атрибутом immutable не может
подвергаться никаким изменениям вообще. Если установить этот атрибут для
каталога, процессы смогут модифицировать файлы, находящиеся в нем, но не
смогут создавать или удалять файлы. Для обеспечения безопасности имеет
большое значение.
. No Dump (d). Установка атрибута no dump дает указание процессу,
осуществляющему создание дампа, игнорировать этот файл и не включать его
в создание резервной копии.
. Compress (c). Этот атрибут позволяет производить прозрачное сжатие файлов
перед записью их на диск. При доступе к файлу он декомпрессируется и
конечному процессу представляется уже в нормальном виде.
. Secure Deletion (s). Если этот атрибут установлен, то при удалении файла
все блоки, в которых он располагался, заполняются нулями, то есть
производится полное удаление файла, а не только его дескриптора.
. Undelete (u). При удалении файла с этим атрибутом система сохраняет все
блоки файла на диске, что позволяет при желании восстановить удаленный
файл.
Последние версии ядер, начиная с 2.4, игнорируют значения последних
трех атрибутов: compress, secure deletion и undelete. Разработчики
посчитали, что их дальнейшее использование не имеет смысла.
Для изменения и просмотра установленных атрибутов в стандартный
системный пакет Linux входят две программы chattr и lsattr. Первая
позволяет изменять атрибуты, добавлять или снимать их, вторая позволяет
получить список установленных атрибутов. Пример работы программы lsattr
показан ниже.
[root@app tmpdir]# lsattr myfile*
---i---------- myfile
----a--------- myfile1

В примере первый файл имеет установленный атрибут immutable, второй –
атрибут atime. Подробно использование программ lsattr и chattr описывается
в соответствующих man-руководствах.
При определенных условиях процессы, выполняемые от имени
привилегированного пользователя, могут игнорировать эти атрибуты. С другой
стороны, атрибуты ext2 учитываются некоторыми системными вызовами, такими
как sys_open() для открытия файла или sys_truncate() для его отсечения,
причем вне зависимости от идентификатора пользователя, вызываемого их
процесса и прочих условий. Например, присутствие флага immutable в
дескрипторе файла приводит к тому, что системные вызовы, касающиеся
модификации файлов, просто перестают работать вне зависимости от других
условий. Наличие данных атрибутов и специальных режимов работы ядра в Linux
позволяет просто и эффективно укрощать абсолютные возможности, которыми
обладает привилегированный пользователь. Цель комплексной настройки
заключается в том, чтобы атрибуты накладывали ограничения для всех
процессов независимо от их прав доступа и уровня привилегий. Они могут
служить в качестве эффективной низкоуровневой защиты против атак на любой
привилегированный процесс, в котором могут присутствовать какие-либо
неизвестные уязвимости.
Однако, сама политика безопасности, построенная на установке атрибутов
типа immutable и append, является только одной стороной монеты. Хотя эти
атрибуты и предотвратят изменение защищенных ими файлов даже со стороны
процессов, которые выполняются от имени привилегированного пользователя, в
обычных обстоятельствах пользователь root все равно может убрать эти флаги
и продолжить работу с файлами уже без этих атрибутов. Другими словами,
ничто не мешает программе, исполняемой от имени пользователя root, перед
началом работы выполнить проверку файла на наличие этих атрибутов и просто
их отменить.
Дополняющим компонентом, или второй стороной монеты, можно считать
специальные возможности ядер 2.4, позволяющие конфигурировать систему в
режиме полной защиты файлов с атрибутами immutable и append до момента
перезагрузки в однопользовательский режим. Для установки этих и множества
других параметров ядра используется программа lcap (Linux Kernel
Capabilities Bounding Set Editor).
Пример использования lcap
[root@app /]# lcap CAP_LINUX_IMMUTABLE
[root@app /]# lcap CAP_SYS_RAWIO

Первый вызов lcap с параметром CAP_LINUX_IMMUTABLE отменяет возможность
у привилегированных процессов снимать флаги immutable и append. Второй
вызов с параметром CAP_SYS_RAWIO запрещает низкоуровневый доступ к блочным
устройствам, таким как диски, для предотвращения прямого доступа к файлам.
После того, как с помощью lcap был изменен какой-либо параметр ядра,
его повторное изменение возможно только после перезагрузки системы. Эта
особенность дает уверенность в том, что в системе не смогут незаметно
производиться изменения без получения физического доступа и перезагрузки в
однопользовательский режим.
Подробную документацию по программе lcap можно найти в соответствующих
man-руководствах.
Практическое применение рассмотренной информации приводится в
приложении в примере 3.

2.2.3. Механизм квот

Пожалуй, каждый администратор многопользовательской системы знаком с
понятием «дисковой квоты». Попробуем разобраться, что же это такое, и какое
отношение это понятие имеет к безопасности системы.
Дисковая квота – заранее определенное, фиксированное количество блоков
дискового пространства и/или количество файловых дескрипторов, выделяемое
каждому пользователю или группе пользователей для работы и хранения данных.
Использование дисковых квот позволяет ограничивать два аспекта
дискового пространства: количество файловых дескрипторов, другими словами,
количество файлов, которое может быть создано пользователем или группой
пользователей, и часть от всего объема диска, которую может использовать
пользователь или группа для хранения своих файлов. Идея состоит в том,
чтобы определить для каждого пользователя или группы определенную часть от
общего объема диска, чтобы ни при каких условиях пользователь не смог
превысить тот объем используемой дисковой памяти, который ему выделен.
Таким образом, устраняется проблема переполнения диска или нехватки
дискового пространства для других пользователей и процессов.
Концепция разделения дискового пространства оперирует тремя понятиями:
мягкое ограничение (soft limit), жесткое ограничение (hard limit) и период
отсрочки (grace period).
Мягкое ограничение определяет максимальный размер дискового
пространства, который может быть занят данными определенного пользователя
или группы пользователей.
Жесткое ограничение работает, только если установлен период отсрочки
grace period.
Если период отсрочки установлен в значение, отличное от нуля, то, когда
занятый объем превышает объем мягкого ограничения, пользователю выдается
сообщение, что его дисковое пространство на исходе. Если пользователь
игнорирует это предупреждение и его дисковая квота продолжает превышать
значение мягкого ограничения, то по истечении периода отсрочки дисковая
квота считается исчерпанной. При этом обязательно должно быть установлено
жесткое ограничение. Жесткое ограничение является абсолютным максимумом
использования пространства файловой системы пользователем.
Управление механизмом квот осуществляет ядро операционной системы. В
последних версиях Linux в стандартное ядро, идущее в дистрибутиве,
поддержка квот включена по умолчанию. Если же производится сборка нового
ядра, поддержку квот необходимо включить явно. Включение поддержки
механизма квот осуществляется установкой параметра Quota Support
(CONFIG_QUOTA) в разделе FileSystems при конфигурировании ядра до процесса
сборки. Если такого параметра в ядре нет, это означает, что данная версия
ядра не поддерживает механизм квот. В этом случае для поддержки квот на
ядро необходимо наложить «заплатку» - специальное дополнение в стандартный
код ядра. Заплатку можно загрузить с Интернета.
Поддержка квот распространяется на логический раздел диска и
указывается при его монтировании. Для монтирования раздела используется
файл /etc/fstab, в котором и задаются параметры, указывающие на
использование квот. Это параметры usrquota и grpquota.
Для управления и настройки дисковых квот используется пакет quota. В
современных дистрибутивах Linux этот пакет входит в стандартную поставку,
но можно загрузить последнюю версию с Интернета.
На момент написания работы последней стабильной версией пакета quota
была версия 3.11. Далее перечислены основные программы пакета quota-3.11,
необходимые для настройки механизма квот:
quota – программа позволяет отображать текущее состояние механизма
квот. По умолчанию отображается только квота пользователя, запустившего
программу на выполнение. Эту программу может запускать любой пользователь
системы.
convertquota – программа производит перевод файлов quota.user и
quota.group в файлы aquota.user и aquota.group. Файлы quota.user и
quota.group являются файлами пользовательских квот старого формата. Начиная
с версии ядра 2.4.0, в Linux используется новый формат дисковых квот,
который обладает, в отличие от старой версии, следующими преимуществами:
- поддержка 32-битных идентификаторов пользователей (UID);
- установка квоты для привилегированного пользователя;
- установка дисковой квоты в байтах (в старой версии единицей дисковой
квоты служил килобайт);
- поддержка дисковой квоты для журналируемой файловой системы
ReiserFS.
Для настройки новой версии механизма квот используются файлы
aquota.user и aquota.group. Проще говоря, программа convertquota позволяет
перевести файлы настройки квот из старого формата в новый, тем самым
позволяя перейти к использованию новой версии с минимальной перенастройкой
системы.
edquota – программа является редактором пользовательских квот. При
вызове этой программы запускается текстовый редактор, установленный по
умолчанию в системе. В этом редакторе можно сделать необходимые изменения в
файле дисковой квоты.
qout – программа выводит статистику в килобайтах по пользовательским
квотам для конкретной файловой системы. На момент написания работы
программа quot, входящая в пакет версии 3.11, поддерживала только файловую
системы XFS.
quotacheck – программа для проверки целостности дисковой квоты. При
интенсивной работе механизма квот в файловой системе могут возникать
различные неточности, связанные с использованием дискового пространства
пользователей. Программа quotacheck проводит проверку файловой системы,
определяя размер доступного и занятого пространства, производит построение
таблицы текущего использования дискового пространства и сравнивает
полученные данные с записями в файле дисковой квоты. Если имеются какие-то
несоответствия, эти несоответствия устраняются путем исправления неверных
значений в файлах дисковой квоты.
quotaon – программа для включения пользовательских квот на указанной
файловой системе. До использования этой программы необходимо для требуемой
файловой системы установить параметр usrquota и/или grpquota в файле
/etc/fstab.
quotaoff – программа для выключения пользовательских квот на указанной
файловой системе.
repquota – программа для вывода статистики по использованию дискового
пространства для указанной файловой системы.
setquota – программа для редактирования пользовательских квот в режиме
командной строки.
warnquota – программа для информирования пользователей о том, что их
дисковое пространство на исходе. Информирование происходит путем посылки
предупреждающего сообщения по электронной почте.
Более подробная информация о программах пакета quota может быть
получена из соответствующих man-руководств.
Практическое применение рассмотренной информации приводится в
приложении в примере 4.

2.3. Библиотека PAM

PAM (Pluggable Authentication Modules) – подгружаемые модули
аутентификации. PAM является набором динамически подключаемых модулей, с
помощью которых привилегированный пользователь может выбирать, как
приложение должно осуществлять процесс аутентификации. Такая технология
оказалась очень полезна, особенно при появлении различных методов
аутентификации пользователя в системе. Эта технология имеет два основных
преимущества. Первым преимуществом является модульность приложений,
поддерживающих PAM. Это означает, что для приложения, поддерживающего PAM,
появляется возможность изменить механизм аутентификации пользователей без
перекомпиляции программы, как говорят «на ходу», достаточно изменить
конфигурационный файл PAM. Второе преимущество использования PAM
заключается в том, что администратор системы получает полную свободу в
выборе схемы аутентификации для каждого отдельного приложения, причем эта
схема может быть достаточно сложной и состоящей из нескольких этапов.
Единственным неотъемлемым требованием для использования PAM является
наличие изначально встроенных в приложение функций работы с библиотекой
PAM. Сейчас практически все популярные программные продукты имеют
встроенную поддержку PAM.


[pic]

Рис. 2.3.1 Структурная схема взаимодействия приложения и библиотеки PAM


На рисунке 2.3.1 наглядно показано, как происходит взаимодействие некого
приложения А с библиотекой PAM. Приложение взаимодействует с библиотекой
PAM, причем приложению неизвестно, какие алгоритмы аутентификации
используются при проверке подлинности пользователя. Все операции по
аутентификации, то есть шифрование пароля и его проверку, производит
библиотека PAM. Библиотека Linux-PAM (в середине рисунка) производит чтение
параметров аутентификации приложения А из конфигурационного файла и
загружает необходимые модули в память. Затем загруженные модули попадают в
одну из четырех управляющих групп (расположенных в нижней части рисунка
посередине) и помещаются туда в порядке появления их в конфигурационном
файле (сначала модуль а в группу auth, за ним b и так далее). Эти модули
при вызове библиотекой Linux-PAM выполняют различные задачи аутентификации
для приложения А. Для передачи текстовой информации, запрашиваемой у
пользователя, может быть использована встроенная функция обмена.
Все модули PAM по умолчанию располагаются в каталоге /lib/security, а
конфигурационные файлы PAM – в каталоге /etc/pam.d. Имя каждого
конфигурационного файла, расположенного в каталоге /etc/pam.d, совпадает с
именем приложения, использующего его. Например, для программы login полный
путь к конфигурационному файлу PAM будет иметь вид /etc/pam.d/login.
Содержимое этого файла может иметь следующий вид:
#%PAM-1.0
auth required /lib/security/pam_securetty.so
auth required /lib/security/pam_stack.so service=system-auth
auth required /lib/security/pam_nologin.so
account required /lib/security/pam_stack.so service=system-auth
password required /lib/security/pam_stack.so service=system-auth
session required /lib/security/pam_stack.so service=system-auth
session required /lib/security/pam_limits.so
session optional /lib/security/pam_console.so

Каждая строчка файла означает, что для удачной аутентификации
пользователь должен пройти через указанный модуль. Формат строки любого
конфигурационного файла PAM имеет вид:
тип_модуля флаг_контроля путь_к_модулю параметры_модуля

Все модули библиотеки PAM по функциональному признаку делятся на четыре
типа:
auth – этот тип модулей позволяет осуществлять два аспекта
аутентификации. Во-первых, он выполняет саму аутентификацию, то есть
устанавливает факт того, что пользователь действительно тот, за кого себя
выдает. Это может быть запрос пароля или другие методы идентификации. Во-
вторых, модуль может разрешить членство в группе (независимо от файла групп
пользователей group) или определить другие привилегии, основываясь на
информации о пользователе.
account – этот тип модулей выполняет функции, не связанные с
аутентификацией напрямую. Обычно он используется для разрешения или
запрещения доступа в зависимости от определенных условий, таких как время
дня, количество пользователей, одновременно запросивших ресурс, различные
параметры системы и так далее.
sessions – в основном этот тип используется для определения
дополнительных действий, которые необходимо выполнить до или после
предоставления сервиса пользователю. Сюда можно отнести протоколирование
действий по открытию определенных файлов, монтирование каталогов, удаление
временных файлов и так далее.
password – этот последний тип необходим для обновления опознавательного
признака (например, того же самого пароля), который идентифицирует
пользователя.
Наличие четырех управляющих типов говорит о том, что сама технология
аутентификации с использованием библиотеки PAM способна предоставить не
только «голый» способ установления подлинности пользователя, а еще и
широкий спектр дополнительных возможностей по защите системы и
предоставлению доступа к сервисам.
Флаг контроля определяет, как система будет себя вести при удачном или
неудачном прохождении соответствующего модуля. Поскольку модули запускаются
один за другим, то специальной расстановкой флагов можно определить
значимость каждого из них. В качестве флагов могут быть использованы четыре
ключевых слова:
required – этот флаг определяет, что для удачной аутентификации в целом
необходимо успешное прохождение соответствующего модуля. Если при
прохождении этого модуля система получила отказ, процесс аутентификации
продолжается до тех пор, пока все модули не будут обработаны, и только
потом выдается сообщение об ошибке.
requisite – эффект действия этого флага тот же, что и флага required, с
одним различием: при получении отказа управление сразу возвращается
приложению, прохождение остальных модулей не производится.
sufficient – весь процесс аутентификации считается успешным, если
работа модуля с этим флагом была успешной и проверка на предшествующих
модулях с флагом required не провалилась. Если работа модуля с этим флагом
была неудачной, это не считается фатальной ошибкой.
optional – успешность модуля с этим флагом является необязательной и
его использование не критично для аутентификации.
Путь к модулю содержит строку полного пути к модулю в файловой системе.
Все модули хранятся в каталоге /lib/security, поэтому, например, путь к
модулю pam_limits будет выглядеть как /lib/security/pam_limits.so.
Параметры модуля являются индивидуальным для каждого модуля и
описываются в документации модуля.
Помимо основных конфигурационных файлов некоторые модули используют
дополнительные файлы конфигурации, находящиеся в каталоге /etc/security.
Каждый файл в этом каталоге предназначен для конкретной группы настроек:
time.conf – в этом файле можно ограничить время доступа пользователей с
различных терминалов к различным сервисам. Эти настройки использует модуль
pam_time, поэтому для вступления в силу временных ограничений необходимо
добавить модуль pam_time в конфигурационный файл приложения, на которое
должны распространяться эти ограничения.
pam_env.conf – с помощью этого файла можно ограничить возможность
изменения некоторых переменных среды пользователями. Этот файл используется
модулем pam_env.
limits.conf – этот файл дает возможность ограничить размер core-файла,
максимально допустимый размер файла, максимальное количество одновременно
открытых файлов, запущенных процессов, количество одновременно открытых
пользовательских сессий и так далее. Используется модулем pam_limits.
access.conf – с помощью этого файла можно определить различные
параметры входа пользователя в систему, например, с каких компьютеров
пользователь имеет доступ в систему. Этот конфигурационный файл
используется модулем pam_access.
group.conf – в этом файле можно указать, к какой группе будет
принадлежать процесс, запущенный пользователем в определенное время с
определенного терминала. Файл читается модулями pam_time и pam_group.
console.perms – в этом файле имеется возможность указать права,
назначаемые привилегированным пользователям при входе в систему и
возвращаемые консоли при его выходе. Файл используется модулем pam_console.
Как уже неоднократно упоминалось, все модули располагаются в каталоге
/lib/security. Кратко рассмотрим, какие модули входят в стандартный пакет
PAM, и какие функции выполняет каждый из них:

|Название модуля |Тип модуля |Описание |
|pam_cracklib |password |Позволяет проверять пароль на стойкость, |
| | |не является ли он, например, словом из |
| | |словаря и т. д. В основном используется |
| | |программами, задающими пароли. К полезным |
| | |параметрам относятся: |
| | |retry=N – задает количество попыток на |
| | |исправление ошибки; |
| | |diffok=N – определяет минимальное |
| | |количество символов, которое должно быть |
| | |изменено при смене пароля; |
| | |minlen=N – задает минимальный размер |
| | |пароля в символах; |
| | |dcredit=N ucredit=N lcredit=N ocredit=N – |
| | |задает минимальное количество цифр, |
| | |строчных, прописных букв и других |
| | |символов, которые должны присутствовать в |
| | |пароле. |
|pam_deny |любой |Основное назначение этого модуля – запрет |
| | |доступа при любых условиях. |
|pam_env |auth |Контролирует сохранность переменных среды.|
| | |С помощью параметра conffile=S можно |
| | |указать файл конфигурации, отличный от |
| | |стандартного. |
|pam_ftp |auth |Предназначен для организации анонимного |
| | |доступа. Получив в качестве имени |
| | |пользователя последовательность |
| | |‘anonymous’, модуль в качестве пароля |
| | |требует строку, похожую на почтовый адрес.|
| | |К полезным параметрам относятся: |
| | |users=XXX, XXX, … - разрешает анонимный |
| | |вход для пользователей из этого списка; |
| | |ignore – позволяет не обращать внимания, |
| | |похож ли пароль на почтовый адрес. |
|pam_group |auth |Определяет группу-владельца процесса, |
| | |запущенного аутентифицированным |
| | |пользователем. |
|pam_lastlog |auth |Сообщает о месте и времени входа в |
| | |систему. Для протоколирования используется|
| | |файл wtmp, находящийся в каталоге /var/log|
| | |. К полезным параметрам можно отнести: |
| | |nodate noterm nohost silent – позволяют не|
| | |выводить в сообщении дату, терминал, адрес|
| | |машины или вообще ничего не записывать в |
| | |файл; |
| | |never – предоставляет возможность выдачи |
| | |приветствия пользователя, впервые |
| | |вошедшего в систему. |
|pam_limits |session |Позволяет задавать ограничения для |
| | |пользователя на размер файлов, число |
| | |одновременно открытых дескрипторов и т. д.|
| | |Имеет параметр conf=S для указания |
| | |альтернативного конфигурационного файла. |
|pam_listfile |auth |Предназначен для организации доступа на |
| | |основе конфигурационных файлов наподобие |
| | |/etc/ftpaccess. Возможные паарметры: |
| | |onerr=succeed | fail – задает возвращаемое|
| | |значение в случае неудачного поиска; |
| | |sence=allow | deny – задает возвращаемое |
| | |значение в случае удачного поиска; |
| | |file=filename – позволяет указать имя |
| | |файла со списком; |
| | |item=user | tty | rhost | ruser | group | |
| | |shell – определяет тип элементов в списке.|
| | |Например, значение item=user означает, что|
| | |в файле содержится список имен |
| | |пользователей, имеющих возможность входа в|
| | |систему. |
|pam_mail |auth |Позволяет уведомлять пользователя о вновь |
| | |пришедшей почте. Полезные параметры: |
| | |dir=S – указывает путь к каталогу почтовых|
| | |очередей; |
| | |noenv – отменяет установку переменной |
| | |среды MAIL; |
| | |close – разрешает уведомлять о новых |
| | |письмах в почтовых ящиках пользователей с |
| | |аннулированными бюджетами; |
| | |nopen – запрещает вывод какой-либо |
| | |почтовой информации для вновь заведенного |
| | |бюджета. |
|pam_nologin |auth |Если файл /etc/nologin существует, в |
| | |систему может войти только |
| | |привилегированный пользователь root, |
| | |остальным же при попытке входа выдается |
| | |содержимое этого файла. |
|pam_permit |любой |Этот модуль дает доступ при любых |
| | |условиях. Необдуманное использование этого|
| | |модуля весьма опасно! |
|pam_pwdb |любой |Замещает модули серии pam_unix. Этот |
| | |модуль использует интерфейс библиотеки |
| | |libpwdb, предназначенный для работы с |
| | |пользовательскими базами данных, что |
| | |повышает независимость системы |
| | |аутентификации от способа хранения |
| | |пользовательских данных. Полезные |
| | |параметры: |
| | |nullok – разрешает использование пустых |
| | |паролей; |
| | |md5 shadow bigcrypt – указывает |
| | |используемые алгоритмы шифрования паролей.|
|pam_radius |session |Позволяет осуществлять аутентификацию |
| | |через сервер RADIUS. |
|pam_rhosts_auth |auth |Механизм работы этого модуля основывается |
| | |на анализе содержимого файлов hosts.equiv |
| | |и .rhosts, используемых для аутентификации|
| | |такими службами, как rlogin и rsh. |
| | |Полезные параметры: |
| | |no_hosts_equiv – позволяет игнорировать |
| | |содержимое файла hosts.equiv; |
| | |no_rhosts - позволяет игнорировать |
| | |содержимое файла .rhosts; |
| | |suppress – позволяет избежать запись |
| | |малозначительных сообщений в системный |
| | |журнал, в частности, при использовании |
| | |флага sufficient. |
|pam_root_ok |auth |Позволяет организовать доступ |
| | |привилегированного пользователя к сервису,|
| | |минуя процедуру ввода пароля. Пользователь|
| | |допускается к сервису, только если его |
| | |системный идентификатор равен нулю (то |
| | |есть привилегированный пользователь root).|
|pam_securetty |auth |Позволяет учитывать файл /etc/securetty. В|
| | |файле /etc/securetty указаны терминалы, с |
| | |которых привилегированный пользователь |
| | |имеет доступ в систему. |
|pam_time |account |Накладывает временные ограничения на |
| | |доступ в систему. |
|pam_warn |auth, |Производит записи в системных журналах при|
| |password |определенных действиях. |
|pam_wheel |auth |Этот модуль позволяет получить права |
| | |привилегированного пользователя только |
| | |пользователям определенной группы. |
| | |Полезные параметры: |
| | |group=XXX – задает группу, пользователи |
| | |которой имеют возможность получить права |
| | |пользователя root; |
| | |deny – этот параметр инвертирует действие |
| | |модуля, другими словами, он запрещает |
| | |изменение прав на права пользователя root |
| | |для указанной группы; |
| | |trust – избавляет пользователей указанной |
| | |группы от необходимости ввода пароля при |
| | |смене идентификатора на нулевой. |

Возможно также создание собственных PAM-модулей на основе готовых
шаблонов, что позволяет быстро получить необходимый метод аутентификации
без особых усилий. Более подробную информацию о модулях и библиотеке PAM
можно найти в документации, поставляемой вместе с пакетом. Практическое
применение рассмотренной информации приводится в приложении в примере 5.

2.4. Брандмауэр

Локальная безопасность – необходимая составляющая общей безопасности
системы. Она позволяет устранить угрозу локального взлома. Однако, при
работе компьютера в сети возникает еще один тип угрозы – сетевой. Для
устранения сетевой угрозы, как и для локальной, существуют свои средства и
методы. Одним таким средством, наиболее важным и практически необходимым
при построении сетевой системы безопасности является брандмауэр.
Брандмауэр, он же сетевой экран, он же firewall (с англ. «огненная
стена») - это система или группа систем, реализующих правила управления
доступом между двумя сетями. Фактические средства, с помощью которых это
достигается, весьма различны, но в принципе брандмауэр можно рассматривать
как пару механизмов: один для блокирования передачи информации, а другой –
для пропуска информации. Некоторые брандмауэры уделяют больше внимания
блокировке передачи информации, другие – ее пропуску. Некоторые брандмауэры
пропускают только сообщения электронной почты, тем самым защищая сеть от
любых атак, кроме атак на почтовую службу. Другие брандмауэры обеспечивают
менее строгую защиту и блокируют лишь службы, определенно угрожающие
безопасности. Обычно брандмауэры конфигурируются для защиты от
неавторизованной интерактивной регистрации из внешнего мира. Именно это,
больше, чем все остальное, помогает предотвратить проникновение взломщиков
в компьютеры внутренней сети. Более развитые брандмауэры блокируют передачу
информации извне в защищаемую сеть, разрешая при этом внутренним
пользователям свободно взаимодействовать с внешним миром.
Схема сетевого запроса на сервер с установленным брандмауэром показана
на рисунке 2.4.1.

Рис. 2.4.1. Пошаговая схема выполнения сетевого запроса с установлением
соединения к ОС Linux


Ядро ОС Linux версии 2.4 и более поздних имеет встроенный межсетевой экран
netfilter, который располагает следующими возможностями:
. позволяет осуществлять фильтрацию входящих, исходящих и транзитных
пакетов, основываясь на содержании заголовка пакета, типе пакета,
определяющего его состояние в соединении (первый пакет установления
соединения, пакет синхронизации, пакет завершения сеанса), IP адресе
компьютера-отправителя и компьютера-получателя, MAC адресе отправителя и
получателя и так далее.
. позволяет осуществлять трансляцию сетевых адресов NAT (Network Address
Translation) и подмену портов NPT (Network Port Translation). Действие
NAT заключается в подмене IP адреса компьютера-отправителя или компьютера-
получателя на указанный. В большинстве случаев эта возможность
используется для организации обмена информацией между двумя сетями,
имеющими разные диапазоны IP адресов. Действие NPT аналогично NAT с тем
различием, что в последнем производится подмена порта приложения вместо
IP адреса.
. позволяет менять специальные поля заголовка пакета, такие как TOS (Type
Of Service), TTL (Time To Live) и так далее, что предоставляет
расширенные возможности для управления процессом маршрутизации.
Вся логическая структура экрана netfilter строится на понятиях цепочек,
таблиц и правил доступа.
Цепочка – определенный набор правил управления доступом. Попадая в
цепочку, пакет проходит все ее правила, начиная с самого первого. Каждое
правило имеет критерий и действие. Если пакет попадает под критерий
правила, то с пакетом производится действие, определенное для этого
правила.
Таблица – это набор цепочек. Таблицы делятся по функциональному
назначению и определяют действия, которые разрешено выполнять в правилах
цепочек этих таблиц.
Netfilter содержит только три таблицы:
mangle – эта таблица используется для внесения изменений в заголовки
пакетов. Примером может служить изменение поля TTL, TOS или MARK. Таблица
имеет пять цепочек: PREROUTING, POSTROUTING, INPUT, OUTPUT и FORWARD.
Цепочка PREROUTING используется для внесения изменений на входе в
брандмауэр, перед принятием решения о маршрутизации. Цепочка POSTROUTING
используется для внесения изменений на выходе из брандмауэра уже после
принятия решения о маршрутизации. Цепочка INPUT используется для внесения
изменений в пакеты перед тем, как они будут переданы локальному приложению
внутри брандмауэра. Цепочка OUTPUT используется для внесения изменений в
пакеты, поступающие от приложений внутри брандмауэра. И, наконец, цепочка
FORWARD используется для внесения изменений в транзитные пакеты после
первого принятия решения о маршрутизации, но перед последним принятием
решения о маршрутизации. Использование таблицы для других целей, нежели
изменения заголовка пакета, является недопустимым.
nat – эта таблица используется для преобразования сетевых адресов,
именуемого также NAT, и подмены портов NPT. Через эту таблицу проходит
только первый пакет из всего потока данных соединения. Преобразование
адресов автоматически применяется ко всем последующим пакетам. Эта таблица
содержит три заранее определенные цепочки. Цепочка PREROUTING используется
для внесения изменений в пакеты на входе в брандмауэр. Цепочка OUTPUT
используется для преобразования адресов в пакетах, созданных приложениями
внутри брандмауэра, перед принятием решения о маршрутизации. И последняя
третья цепочка в этой таблице – POSTROUTING, которая используется для
преобразования пакетов перед отправкой их в сеть. Эта таблица должна
использоваться только для преобразования адресов и портов в пакете.
filter – эта таблица используется главным образом для фильтрации
пакетов. Таблица имеет три встроенных цепочки. Первая – FORWARD,
используемая для фильтрации пакетов, не адресованных серверу, на котором
установлен брандмауэр, то есть идущих транзитом через него. Цепочку INPUT
проходят пакеты, которые предназначены локальным приложениям сервера. И
цепочка OUTPUT используется для фильтрации исходящих пакетов,
сгенерированных приложениями на сервере с брандмауэром.
Структурная схема брандмауэра netfilter показана на рисунке 2.4.2.

Рис. 2.4.2. Структурная организация брандмауэра


Для того, чтобы брандмауэр выполнял те функции, которые на него
возлагаются, для комплексной сетевой защиты необходимо, чтобы все пакеты,
приходящие по сети и уходящие в сеть, проходили через него. Если же это
правило не соблюдается, или соблюдается частично, то все действия,
направленные на создание безопасного сервера с использованием брандмауэра,
будут бесполезны. Если существует хоть малейшая вероятность, что брандмауэр
можно обойти, эта возможность обязательно рано или поздно будет
использована взломщиками. В Linux брандмауэр является частью ядра, а
поскольку все операции при работе с сетью контролирует ядро, гарантию того,
что все сетевые пакеты пройдут через него, можно считать практически
стопроцентной.
Следуя рисунку 2.4.2, рассмотрим, какой путь совершает пакет, прежде
чем достичь места назначения. Попадая на сервер, пакет сначала проходит
цепочки PREROUTING таблиц mangle и nat. Затем, в зависимости от того, кому
адресован пакет, его направление может меняться. Если пакет адресован
локальному процессу сервера, после маршрутизации он попадает в цепочки
INPUT таблиц mangle и filter. Если ему удается успешно пройти эти цепочки,
пакет достигает локального процесса. Ответ локального процесса перед
отправкой проходит сначала цепочку OUTPUT всех трех таблиц, и, если пакет
не был отфильтрован, он попадает в заключительную цепочку POSTROUTING
таблиц mangle и nat. После этого пакет покидает сервер.
Если же пакет адресован другому компьютеру, то есть является
транзитным, то после маршрутизации он попадает в цепочку FORWARD таблиц
mangle и filter, в которой осуществляются все необходимые действия по
управлению доступом для всех транзитных пакетов. Далее, как и пакет
локального процесса, перед отправкой в сеть транзитный пакет проходит через
цепочки POSTROUTING таблиц mangle и nat.
Этих трех таблиц с заранее закрепленным функциональным назначением
вполне достаточно для реализации всех перечисленных ранее возможностей.
Количество таблиц является определенн

Новинки рефератов ::

Реферат: Антенные решетки (Радиоэлектроника)


Реферат: Реологические свойства САН и АБС пластиков (Химия)


Реферат: Первая мировая война (История)


Реферат: Инновационный менеджмент (курс лекций) (Менеджмент)


Реферат: Античность - средние века - новое время. Причины и механизмы смены эпохи (История)


Реферат: Административная деятельность органов внутренних дел (Административное право)


Реферат: Жизнь Пифагора (Математика)


Реферат: Арттерапия в работе с детьми (Психология)


Реферат: Матричные операции в вейвлетном базисе (Математика)


Реферат: Конституции зарубежных стран (Право)


Реферат: Ватикан (География)


Реферат: Мировая урбанизация на пороге XXI века (Социология)


Реферат: География и геополитика (Геополитика)


Реферат: Модель разработки стратегии для ОАО "Аливария" (Менеджмент)


Реферат: Анкета по социологии: Проблемы алкоголизма и наркомании в студенческой среде (Социология)


Реферат: Взаимоотношения Пермского регионального отделения фонда соц.страх РФ с ю.л. и их учет (Бухгалтерский учет)


Реферат: Сильные Люди в рассказах Джека Лондона (Литература)


Реферат: Милиция общественной безопасности (Государство и право)


Реферат: Контрольные вопросы по аграрному праву Украины (Право)


Реферат: Летучая Мышь - Рыжая Вечерница (Биология)



Copyright © GeoRUS, Геологические сайты альтруист