Пример сети Предположим что у



Пример сети

Предположим, что у нас есть сеть небольшой организации, которая использует Linux-машину с firewall для связи с Internet. Мы разрешаем пользователям этой сети обращаться к web-серверам в Internet, но не позволяем какой-либо другой трафик.

Мы должны определить правила пересылки наружу пакетов с исходным адресом в нашей сети и портом назначения 80, а также пакетов с ответами.

Предположим, что наша сеть имеет 24-битную сетевую маску (класс C) и ее сетевой адрес 172.16.1.0. Правила будут такими:

# ipfwadm -F -f # ipfwadm -F -p deny # ipfwadm -F -a accept -P tcp -S 172.16.1.0/24 -D 0/0 80 # ipfwadm -F -a accept -P tcp -S 0/0 80 -D 172.16.1.0/24

Параметр -F инструктирует ipfwadm, что мы определяем правило пересылки пакетов (forwarding). Первая команда предписывает ipfwadm очистить все правила. Это гарантирует, что мы работаем с известным состоянием, и после добавления правил не окажется, что остались еще какие-то неизвестные нам правила.

Второе правило устанавливает нашу заданную по умолчанию стратегию пересылки. Мы сообщаем, что ядро должно отвергать пересылку всех IP-пакетов, кроме тех, которые мы позже разрешим. Это очень важный момент, так как здесь определяется судьба всех пакетов, которые не подходят какому-либо правилу.

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



Давайте расмотрим все параметры: -F

Определяет правило пересылки (Forwarding).

-a accept

Добавляет правило со стратегией "accept", позволяющей принимать все пакеты, соответствующие этому правилу.

-P tcp

Правило применимо к TCP-пакетам (не трогает пакеты UDP или ICMP).

-S 172.16.1.0/24

Исходящий адрес должен иметь маску подсети в 24 бита и адрес сети 172.16.1.0.

-D 0/0 80

Адрес назначения должен иметь нулевые биты (0.0.0.0). Это соответствует любому адресу. Число 80 определяет порт назначения, в этом случае WWW. Вы можете также использовать любую запись из файла /etc/servicesдля определения порта, например, -D 0/0 www.

ipfwadm принимает сетевые маски в форме, с которой Вы можете быть незнакомы. Запись /nn обозначает сколько бит адреса значительны или размер маски. Биты всегда считаются слева направо. Ряд примеров перечислен в таблице 9-1.



Содержание раздела