Сделал наконец-то firewall, правда сыроват Теперь задача заключается в составлении правил для него. Какие порты должны быть открыты для всеобщего обозрения в сети ? add 100 allow tcp from 192.168.0.0/24 to any 1-3000 add 100 allow udp from 192.168.0.0/24 to any 1-3000 Последнее правило "deny any to any" Эти два правила дают видеть ОС в сети, и запрещают её пинговать. Хочется сделать более тонккую настройку... Пока знаю только UDP 137,138 TCP 139
firewall под какую OS? (FTP, Telnet). AFAIK винда сама очень активно использует порты для межпроцессного взаимодействия. Не знаю открыта ли эта информация Microsoft или нет, но я не встречал. Но Portmon.exe вроде показывает. А вообще может по умолчанию открыть все. Так как IMHO работа с стенами, по определению требует определённой квалификации. З.Ы. Интересно каким методом контролируешь, перехватом в ядре?
а откуда взялось 3000 ? imo есть диапазон 0-1023 и 1024-65535 первый - системный диапазон, часть из которого (well-known ports) документирована. Доступ обычнотолько с привилегиями админа/рута. Вторая - свободная, доступ не ограничен. Я бы сделал (и делал) например так: allow tcp 80 # http allow tcp/udp 53 # ns allow tcp 110 # pop3 allow tcp 25 # smtp deny tcp/udp 0-1023 allow tcp/udp 1024-65535 насчет сервисов - есть в системе такой файлик - services для винды он в windows\system32\drivers\etc - там найдешь инфу по портам для сервисов которые хочушь открыть.
infern0 Последнее правило "deny any to any" => все ICMP дропаются Это же аналог ipfw За подсказку спасибо ! Про этот файл совсем забыл
SteelRat Хорошую стенку написать не так просто. Миниум надо смотреть что передается по 21 порту и мониторить команды PORT\ABORT\RETR\STOR чтобы ВРЕМЕННО открыть доступ для датаконнекшена ftp - иначе будут топы в форумах "я не могу зайти на твой фтп... - выбрось свой IE и поставь нормальный фтп клиент" =) - что действиельно может помочь, но реально переключится только пассив режим - ведь действительно кажется что дело в клиенте, а на самом деле в стенке.
... минимум надо : привязываться к тому, какая именно программа открывает данный порт, раз уж ты пишешь персональный файрвол. Иначе, будет как раньше - все входящие с 53/UDP - пропускаем (ради DNS), все входящие с 20/TCP - пропускаем (ради FTP). А более-менее умные трояны и сканеры про эти (и аналогичные) free-access порты отлично знают ...
Эта "стенка закладывалась" как классическое подобие ipfw от FreeBSD. Т.о. вся отвественность лежит на админе (поэтому хорошие админы ценятся). Как он заложит правила, так и будет а начальные правила хочу заложить, чтобы машину было видно в сети, "стенка" даже имеет два варианта последнего правила deny all и allow all они даже не прописаны, он так скомпилированы )) OLS Можешь по подробнее ? Трояны и вирусы это не мой "конёк". Как же тогда поступать если не открывать доступ н-р к 53/UDP на in/out ?
SteelRat Надо не просто фильтровать, но и: 1) Мониторить контент портов некоторых служб. Пример с фтп я привел. Это делать обязательно иначе работа служб не корректна. 2) Попрограмная настройка - о чем говорил OLS. Чтоб не дать ненужным прогам юзать порты что им не положено. 3) Можно еще проверять контент некоторых служб на правильность. Ну и много чего еще...
semen Это же "вилы в бок" да и отправка пакетов идет на уровне DISPATCH_LEVEL... На сколько я понял можно RAW сокетами отправлять/принимать данные по любому порту, н-р 110 и стенка будет считать (если не вести мониторинг), что это почтовый POP3, который вероятно админом может быть открыт ?
semen, про фильтрацию содержимого в принципе верно, но есть 2 отрицательных момента: 1. Надо ХОРОШО знать много протоколов 2. Протоколы меняются, - это надо отслеживать ИМХО для этого лучше подходит метод CONNECT HTTP прокси или SOCKS прокси - и авторизация с учетом трафика есть, и любой ориентированный на связь протокол нормально работать. Сейчас многие клиены эти методы поддерживают.
xCoRe эээ видел, но мне-то это зачем, не яж стенку делаю. nnosov ну критичен только первый пункт(остальное улучшение секурити...) и к этому пункту замечания верны, но деваться некуда, иначе банальный фтп работать не будет. Хм, делается стенка а не прокси(назначения то совсем разные =), прокси это так сказать клиент стенки =) и потенциальная опасность)) А вот закрыть все и ходить в инет через прокси это можно конечно, что все равно не убавляет того, что если стенка хорошая, то поддержка хотябы фтп быть должна...
SteelRat Можешь по подробнее ? Трояны и вирусы это не мой "конёк" А от кого ты тогда создаешь защиту ? Просто многие UDP-сканеры давно отправляют запрос от имени 53-го порта, как наиболее часто открытого на подобных файрволах. Да и кто-то из повальных Интернет-эпидемий тоже 53-м портом побаловался. Раз уж ты создаешь персональный файрвол, то грех не пользоваться информацией о том, какая именно программа открыла порт на прием и/или передачу. Вот GHP действительно нужен прием на 53/UDP, а MSSQL-ю - совершенно не нужно - так сделай, чтобы правила варьировались в зависимости от приложения. А вообще - понаблюдай за серьезными персональными файрволами (естественно в режиме обучения) и сам все поймешь - кто из программ куда хочет ...
OLS Говорил же, всё зависити от Админа пусть сканируют UDP от этого никуда не денешся... Смотри как можно выстроить толковую цепочку: Допустим я точно знаю свой DNS (мой провайдер 81.22.0.3) стоит стенка на машине (192.168.0.222), одним "глазом" (сетевухой) смотрит в инет, другим в мою сеть. На клиентской машине я указываю DNS=81.22.0.3 при таком раскладе машина 192.168.0.9 посылает запрос DNS на 81.22.0.3 стенка по правилам перенаправляет его на 81.22.0.3 и как ipfw создает временное правило возврата этого пакета от 81.22.0.3 с ограниченным "временем жизни" если этот пакет возвратится, то по "временному правилу" он войдет внутрь моей сети, если опоздает, то облом Попытка протолкнуть UDP пакет извне "провалится", т.к. нет подходящего правила вхождения пакета )) Рассмотрим случай заражения внутренней машины (192.168.0.9) Машина пытается, используя порт DNS соединиться с машиной 217.137.106.126 (от балды) по правилам ей "дадут по рукам", т.к. порт 53 разрешён от 192.168.0.0/24 к 81.22.0.3, даже UDP поверх ICMP на 53 порт провалится неудачей, т.к. хороший Админ, это хороший Админ, который ставит правило add 200 deny icmp from any to any in icmptype 5,9,13,14,15,16,17 )) Единственное, что сможет сделать машина 192.168.0.9 это отправить UDP пакет на порт 53 с информацией от вируса, но сервер 81.22.0.3 не поймёт "об чём речь", т.к. пакет нестандартный и уничтожит его. Естественно стенка должна стоять на отдельной машине, чтобы "шальные ручки" юзверей не добавили туда вирусов А ещё круче ситуация сложится, если настроить DNS внутри своей сети.
SteelRat Пишет не персональный файрвол, а корпоративный, который ставится Админом(желательно грамотным ) на шлюзе в интернет. Тут вопрос встает такого плана: а что не хватает ipfw (по образу и подобию которого пишется файрвол)для Windows, с учетом ее специфики ?