for f in /proc/sys/net/ipv4/conf/*/rp_fliter; do echo 1 > $f; done
Теперь установим правила, которые запрещают любые пакеты, кроме пакетов обратной петли (loopback):
# ipchains –A input –i ! lo –j DENY
# ipchains –A output –i ! lo –j DENY
# ipchains –A forward –j DENY
Обратите внимание, что запрет IP-спуфинга и любого трафика, кроме локального, должен быть выполнен до инициализации интерфейсов. В противном случае существует вероятность того, что сквозь наш «бастион» проникнут пакеты.
Очень желательно вставить модуль ip_masq_ftp для маскарадинга сервера FTP. Благодаря этому наш внутренний FTP-сервер сможет работать в активном и пассивном режимах.
Теперь создадим несколько цепочек. Все они будут отфильтровывать проходящие пакеты, то есть будут аналогичны цепочке forward. Название каждой из них определяется направлением передачи пакетов, например, netl-net2 — по этой цепочке пакеты будут передаваться от сети 192.168.1.0 к сети 192.168.2.0.
ipchains –N netl-net2
ipchains –N net1-inet
ipchains –N net2-net1
ipchains –N net2-inet
ipchains –N inet-net2
ipchains –N inet-net1
Также создадим цепочку для приема ICMP-сообщений:
ipchains –N icmp
В цепочке forward мы знаем только исходящий интерфейс, а для выяснения входящего интерфейса, то есть того, из которого пришел пакет, мы используем адрес источника. Подделать этот адрес невозможно, так как мы запретили IP-спуфинг. Выполним следующие команды:
ipchains –A forward –s 192.168.1.0/24 –i eth0 –j net1-net2
ipchains –A forward –s 192.168.1.0/24 –i ppp0 –j net1-inet
ipchains –A forward –s 192.168.2.0/24 –i ppp0 –j net2-inet
ipchains –A forward –s 192.168.2.0/24 –i eth1 –j net2-net1
ipchains –A forward –i eth0 –j inet-net2
ipchains –A forward –i eth1 –j int-net1
ipchains –A forward –j DENY –1
Теперь определим правила для цепочки приема ICMP-сообщений:
ipchains –A icmp –p icmp —icmp-type destination-unreachable –j ACCEPT
ipchains –A icmp –p icmp —icmp-type source-quench –j ACCEPT
ipchains –A icmp –p. icmp —icmp-type time-exceeded –j ACCEPT
ipchains –A icmp –p icmp —icmp-type parameter-problem –j ACCEPT
Мы будем принимать только ICMP-сообщения об ошибках, все остальные приниматься не будут. Далее определим правила для цепочки netl-net2. Как уже было сказано выше, от нас требуется обеспечить доступ к сервисам WWW, FTP, ssh. Также нужно разрешить доступ к серверам SMTP, POPS, DNS, использование программ traceroute и ping (все отклоненные пакеты мы будем регистрировать в журнале). С этой целью определим следующие правила:
ipchains –A net1-net2 –p tcp –d 192.84.219.128 smtp –j ACCEPT
ipchains –A net1-net2 –p tcp –d 192.84.219.128 pop-3 –j ACCEPT
ipchains –A net1-net2 –p udp –d 192.84.219.129 domain –j ACCEPT
ipchains –A net1-net2 –p tcp –d 192.84.219.129 domain –j ACCEPT
ipchains –A net1-net2 –p tcp –d 192.84.218.130 www –j-j ACCEPT
ipchains –A net1-net2 –p tcp –d 192.84.218.130 rsync –j ACCEPT
ipchains –A net1-net2 –p icmp –j icmp ipchains –A net1-net2 –j DENY –l
Эти правила также разрешают вызов rsync к серверу Web. Теперь определим правила для цепочки inet-net2. Так как в сети 192.168.2.0 находятся серверы SMTP, DNS и Web, то определим ограничения для них. Почтовый сервер должен отправлять почту во внешнюю сеть (Интернет), а также принимать почту из внешней сети. На прием почты по протоколу POP3 имеют право только пользователи внутренней сети. Сервер имен (DNS-сервер) должен посылать запросы во внешнюю сеть, а также принимать запросы из внешней сети через шлюз. Сервер Web должен принимать запросы от пользователей всех сетей. Доступ rsync разрешен только для пользователей внутренних сетей. Все это реализуется следующими правилами:
Вильям Л Саймон , Вильям Саймон , Наталья Владимировна Макеева , Нора Робертс , Юрий Викторович Щербатых
Зарубежная компьютерная, околокомпьютерная литература / ОС и Сети, интернет / Короткие любовные романы / Психология / Прочая справочная литература / Образование и наука / Книги по IT / Словари и Энциклопедии