ipfw правила запрета по умолчанию

Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок

Модераторы: vadim64, terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
time12345
сержант
Сообщения: 224
Зарегистрирован: 2011-09-21 1:23:43

ipfw правила запрета по умолчанию

Непрочитанное сообщение time12345 » 2011-12-02 22:19:37

всем добрый вечер. подскажите пожалуйста с вопросами, связанными с настройкой ipfw по принципу "запрет по умолчанию"

проблема в следующем.

dns запросы

сервер отправляет upd запросы на 53 порт dns сервера с разных локальных портов. можно ли как-то настроить, чтоб запросы отправлялись с какого-то одного порта? то есть я хочу настроить без динамических правил

и можно ли как-то без динамических правил открыть 25 порт для отправки почты, но только для отправки, чтоб коннектиться к нему было нельзя?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: ipfw правила запрета по умолчанию

Непрочитанное сообщение dikens3 » 2011-12-02 23:19:07

можно ли как-то настроить, чтоб запросы отправлялись с какого-то одного порта?
В смысле изменить реализацию работы DNS? Ну ну..
можно ли как-то без динамических правил открыть 25 порт для отправки почты, но только для отправки, чтоб коннектиться к нему было нельзя?
Что-то у вас страх от динамических правил. Вообще можно конечно, пробуйте.

P.S. Так как новенький, поясняю что от вас требуется.
Прочитал ТУТ, ТУТ и ТУТ о работе IPFW, создал ВОТ ТАКОЕ ПРАВИЛО, оно должно работать вот ТАК, но не работает как я хочу, помогите.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

time12345
сержант
Сообщения: 224
Зарегистрирован: 2011-09-21 1:23:43

Re: ipfw правила запрета по умолчанию

Непрочитанное сообщение time12345 » 2011-12-03 0:15:49

Вообще можно конечно, пробуйте.
а можете подсказать как? я пробовал примерно следующим образом

Код: Выделить всё

deny ip from any to me 25
allow ip from me to any
но оно не рабочее. можете подсказать как сделать?
В смысле изменить реализацию работы DNS? Ну ну..
а что вы с таким скептицизмом отнеслись? вы же у нас тут не новенький, порекомендуйте в какую сторону копать, что изучать?

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: ipfw правила запрета по умолчанию

Непрочитанное сообщение hizel » 2011-12-03 0:21:44

начните с handbook-а и man ipfw, судя по правилам вы их пропустили, непростительно
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

time12345
сержант
Сообщения: 224
Зарегистрирован: 2011-09-21 1:23:43

Re: ipfw правила запрета по умолчанию

Непрочитанное сообщение time12345 » 2011-12-03 0:26:14

там все на инглише, но я немного там читал, я смотрю exim тоже с какого-то левого порта начинает отправку, похоже что с этим и проблема. и если с днс можно еще добавить доверенные сервера, с порта 53 которых разрешаются коннекты к нам (любым портам), то с почтой тут сложнее. мой вопрос собственно заключается в том, а можно ли сделать это без динамических правил? потому что с динамическими правилами я могу это реализовать без проблем.

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: ipfw правила запрета по умолчанию

Непрочитанное сообщение hizel » 2011-12-03 0:30:51

идите от противного, если не можете контролировать в одну сторону, почему не контролировать в другую?
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: ipfw правила запрета по умолчанию

Непрочитанное сообщение hizel » 2011-12-03 0:48:08

без технического англцкого нечего делать в сисьадминах

довольно подробно обо всех фаерволах на русском здесь http://www.house.hcn-strela.ru/BSDCert/ ... index.html

насчет случайных портов, почитайте статьи как работают сокеты(sockets) , воспользуйтесь google-фу
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

time12345
сержант
Сообщения: 224
Зарегистрирован: 2011-09-21 1:23:43

Re: ipfw правила запрета по умолчанию

Непрочитанное сообщение time12345 » 2011-12-03 1:02:29

ну я не говорил что не знаю тех англ. просто я читал там сравнительно немного :)
идите от противного, если не можете контролировать в одну сторону, почему не контролировать в другую?
это намек использовать динамические правила? ну тоже можно, просто главное контролировать чтоб их не было слишком много. если кто-то знает, как конкретно можно в данном случае обойтись без них, буду раз за примеры. насчет сокетов понятно, серверное приложение слушает порт, но клиент не обязательно сидит на этом порте...

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: ipfw правила запрета по умолчанию

Непрочитанное сообщение dikens3 » 2011-12-03 1:05:39

Опять почта.. Ладно, пока не спится расскажу.

1. Есть почтовый клиент (CLIENT)
2. Есть почтовый сервер (SERVER)
3. Есть ещё почтовый сервер (любой другой) X-SERVER

Обычно пользователь через почтовый клиент соединяется с почтовым сервером и отправляет письмо другому почтовому серверу (или этому-же).

Связка выглядит так:
CLIENT->SERVER->X-SERVER->CLIENT2

В роли клиента может быть и SERVER и CLIENT.
Клиент начинает соединение с портов 1024-65535 на порт сервера 25,465 и т.п. (RFC читай).

Есть небольшое различие между соединением пользователя с почтовым сервером и сервера с сервером.
Жизнь стала настолько трудной, что из-за спама пришлось вводить аутентификацию (Логин и пароль) для клиентов-пользователей.
Но когда клиентом выступает сам сервер (например mail.ru передаёт данные на yandex.ru), у mail.ru нет пароля и логина на сервере yandex.ru, зато есть другие средства подлинности:
Наличие mx записи в DNS и т.п.

Подумай какую роль клиента/сервера должен выполнять твой компьютер и соответственно настрой правила в ipfw.
Полная цепочка соединений с портами выглядит так:

IP_CLIENT:1024-65535 -> IP_SERVER1:25 (Отправка письма почтовым клиентом)
IP_SERVER1:1024-65535 -> IP_SERVER2:25
IP_SERVER2:1024-65535 -> IP_SERVER_X:25
...и т.д. до последнего сервера. пользователь эти этапы не видит.
IP_CLIENT2:1024-65535 -> IP_SERVER_X:25 (Получение письма почтовым клиентом)
но клиент не обязательно сидит на этом порте...
Ага, у него диапазон портов.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

time12345
сержант
Сообщения: 224
Зарегистрирован: 2011-09-21 1:23:43

Re: ipfw правила запрета по умолчанию

Непрочитанное сообщение time12345 » 2011-12-03 11:02:55

Спасибо за некоторые пояснения. И это получается что мне нужно принимать от неизвестно кого (any) любой трафик (пусть и только с 25 порта) на локальные порты 1024-65535

Да, пусть на этом порте нету веб сервера и т.д. но все же в чем тогда суть

Код: Выделить всё

...
deny from any to any
если я буду так портами разбрасываться? :)
Значит выход - динамические правила.

Код: Выделить всё

check-state
...
allow tcp from any to any 25 out via re0 setup keep-state
...
deny ip from any to any

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: ipfw правила запрета по умолчанию

Непрочитанное сообщение dikens3 » 2011-12-03 12:25:24

Вы не понимаете работу TCP протокола. Почитайте про тройное рукопожатие. Может что прояснится.

А потом ответьте, что означает выделенное?
allow tcp from any to any 25 out via re0 setup keep-state

и ещё:
allow tcp from any 25 to me in via re0 established
P.S.
Подумай какую роль клиента/сервера должен выполнять твой компьютер
Шлюз, сервер, клиент? Совместные задачи какие-то?
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

time12345
сержант
Сообщения: 224
Зарегистрирован: 2011-09-21 1:23:43

Re: ipfw правила запрета по умолчанию

Непрочитанное сообщение time12345 » 2011-12-03 17:05:59

цель - сервер, отправляющий почту от www.

Код: Выделить всё

allow tcp from any to any 25 out via re0 setup keep-state
здесь разрешается коннект исходящий с 25 порта при этом правило запоминается, чтобы принять ответ. setup отслеживает флаг SYN (http://www.house.hcn-strela.ru/BSDCert/ ... -TCP-flags) то есть он ловит первый пакет тройного рукопожатия. кстати, хороший линк, там есть что почитать...

Код: Выделить всё

allow tcp from any 25 to me in via re0 established
здесь разрешается коннекты от мира 25 порта ко мне, которые уже установились.. а что, это идея :)

то есть по аналогии я так понял данные правила должны работать ?

Код: Выделить всё

allow tcp from any 25 to me in via re0 established
allow tcp from me to any
deny tcp from any to any

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: ipfw правила запрета по умолчанию

Непрочитанное сообщение dikens3 » 2011-12-03 20:34:40

здесь разрешается коннект исходящий с 25 порта при этом правило запоминается, чтобы принять ответ.
На 25 порт. Видимо ты описался.
то есть он ловит первый пакет тройного рукопожатия.
И если попался первый, через эту связку идут и другие пакеты в цепочке IP<->IP для протокола TCP до окончания сессии.

Проще понять наверное так:
1. Имеется правило с keep-state за номером 1000
2. Имеется таблица динамических соединений (ipfw -d)

При прохождении пакета через правило с номером 1000 появляется запись в таблице соединений с номером 1000
IP<->IP
и пакет принимается

Теперь при последующем прохождении любого пакета через это правило, сначала проверяется таблица динамических соединений, и если связка уже есть, пакет принимается, независимо от наличия setup в правиле и т.п.

Для более быстрого принятия пакета можно в начало поставить другое правило проверки динамических соединений ckeck-state

Т.о. принять пакет через динамическое соединение можно двумя путями.
1. Через это же правило, но только по совпадению IP<->IP.
2. Через check-state
то есть по аналогии я так понял данные правила должны работать ?

Код: Выделить всё

allow tcp from any 25 to me in via re0 established
allow tcp from me to any
deny tcp from any to any
+100500
Я бы добавил в начало упоминание про lo конечно же, DNS, ICMP, tracert и т.п.:-))

P.S. Осваивайте log в ipfw, очень помогает строить конкретные правила и отлавливать проблемы.

P.S2. Если у вас сервер, он должен быть виден снаружи и нормально функционировать хотя бы для проверки существования пользователей иметь запись в DNS и т.п.
Но если через smarthost используете, то пофиг конечно. Используйте как пересыльщик, нормально будет.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

time12345
сержант
Сообщения: 224
Зарегистрирован: 2011-09-21 1:23:43

Re: ipfw правила запрета по умолчанию

Непрочитанное сообщение time12345 » 2011-12-04 12:38:33

так у меня до этого еще есть правила. а насчет этого
На 25 порт. Видимо ты описался.
не совсем понятно. там же указано

allow tcp from any to any 25 out via re0 setup keep-state

то есть исходящий трафик через re0 пропускается и затем запоминается чтоб принять по этому же динамическому правилу входящий. или я чего-то не понимаю?

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: ipfw правила запрета по умолчанию

Непрочитанное сообщение dikens3 » 2011-12-04 13:00:42

allow tcp from any to any 25 out via re0 setup keep-state

здесь разрешается коннект исходящий с 25 порта при этом правило запоминается, чтобы принять ответ.
Не исходящий с 25 порта, а направляющийся на 25 порт удалённого сервера. Может ты это и имел ввиду.
то есть исходящий трафик через re0 пропускается и затем запоминается чтоб принять по этому же динамическому правилу входящий.
Ага, именно так.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

time12345
сержант
Сообщения: 224
Зарегистрирован: 2011-09-21 1:23:43

Re: ipfw правила запрета по умолчанию

Непрочитанное сообщение time12345 » 2011-12-04 14:54:43

Да, это я имел в виду.

time12345
сержант
Сообщения: 224
Зарегистрирован: 2011-09-21 1:23:43

Re: ipfw правила запрета по умолчанию

Непрочитанное сообщение time12345 » 2011-12-21 12:43:02

скажите, а fetch (та что сорцы тянет когда порты ставишь) с какого диапазона портов работает?

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: ipfw правила запрета по умолчанию

Непрочитанное сообщение dikens3 » 2011-12-23 20:37:58

А смотря куда ссылки ведут, иногда с 80 порта, иногда через FTP.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.