Проблемы установки, настройки и работы Правильной Операционной Системы
Модератор: terminus
Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
dikens3
- подполковник
- Сообщения: 4856
- Зарегистрирован: 2006-09-06 16:24:08
- Откуда: Нижний Новгород
-
Контактная информация:
Непрочитанное сообщение
dikens3 » 2008-06-29 21:02:44
Замечательно.
Это правило вставил для того, чтобы меня не отрубало по SSH после применения скрипта с правилами.
При этом последствия никак не побеспокоили?
$Alchemist писал(а):Да и вообще, входящий нат мне по сути и не нужен т.к. пробросом портов на внутренние серваки у меня занимается rinetd
Он нужен не для проброса порта(этим тоже может заниматься),а для преобразования IP-Адреса.
1. При отправке пакета в интернет твой внутренний IP-Адрес (tcp 192.168.0.120) заменяется на внешний. (На тот IP, под которым выходит сам сервер - шлюз).
2. При получении любого пакета необходимо его загнать в nat (divert), и только после этого будет известно куда идёт пакет, в сеть (Адрес назначения преобразуется в 192.168.0.120 и т.п.) или на сервер-шлюз.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.
dikens3
-
Хостинг HostFood.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/
-
$Alchemist
- сержант
- Сообщения: 173
- Зарегистрирован: 2008-06-26 13:38:17
- Откуда: SPb
-
Контактная информация:
Непрочитанное сообщение
$Alchemist » 2008-06-29 21:08:53
Ок, спасибо! Куда лучше поставить это established правило?
Machines to Work,
People to Think.
$Alchemist
-
paradox_
- проходил мимо
Непрочитанное сообщение
paradox_ » 2008-06-29 22:30:53
раз уж так любите divert
так юзайте полные конструкции
divert ..... via
а конструкции когда нужны разные диверты у вас пока что ненамечаються
paradox_
-
$Alchemist
- сержант
- Сообщения: 173
- Зарегистрирован: 2008-06-26 13:38:17
- Откуда: SPb
-
Контактная информация:
Непрочитанное сообщение
$Alchemist » 2008-06-29 23:44:34
paradox_ писал(а):раз уж так любите divert
так юзайте полные конструкции
divert ..... via
а конструкции когда нужны разные диверты у вас пока что ненамечаються
у меня так:
divert 8668 ip from any to any out via rl0
чем она не полная?
Machines to Work,
People to Think.
$Alchemist
-
$Alchemist
- сержант
- Сообщения: 173
- Зарегистрирован: 2008-06-26 13:38:17
- Откуда: SPb
-
Контактная информация:
Непрочитанное сообщение
$Alchemist » 2008-06-30 9:08:24
Huh... разобрался!
Убрал вниз established правило, раскомментировал закрытый по запаре check-state )), сделал DNS через keep-state...
Может кому пригодится полностью рабочий конфиг:
Код: Выделить всё
#!/bin/sh
# при работе по SSH, чтобы перечитать конфиг набирать nohup sh /etc/rules
# Прежде, чем мы начнем, сбросим список
ipfw -q -f flush
# Установим префикс команды для набора правил
cmd="ipfw -q add"
skip="skipto 400"
wanip="111.222.111.222" # внешний IP
lannet="192.168.0.0/24" # внутренняя сеть
eif="rl0" # внешний интерфейс
# Нет запретов внутри интерфейса смотрящего в локальную сеть
$cmd 010 allow all from any to any via re0
# Нет ограничений на Loopback интерфейсе
$cmd 020 allow all from any to any via lo0
# Рубим попытки lo0 куда-то лезть и откуда-то лезть на lo0
$cmd 030 deny ip from any to 127.0.0.0/8
$cmd 040 deny ip from 127.0.0.0/8 to any
# Входящий NAT
$cmd 050 divert natd ip from any to any in via $eif
# Позволяем пакету проходить, если предыдущий был добавлен в
# "динамическую" таблицу правил с разрешением состояния keep-state
$cmd 060 check-state
############## Outgoing ################
# Исходящий ping
$cmd 100 $skip icmp from any to any keep-state
# Разрешаем DNS
$cmd 110 $skip udp from any to any 53 out via $eif keep-state
# Выпускаем юзверей
# Инет на выход у меня закрыт т.к. все идут на прокси, который прописан ручками в браузере
#$cmd 120 $skip all from $lannet to any 80 out via $eif setup keep-state
#$cmd 130 $skip all from $lannet to any 443 out via $eif setup keep-state
$cmd 150 $skip all from $lannet to any 4899 out via $eif setup keep-state
$cmd 160 $skip all from $lannet to any 3389 out via $eif setup keep-state
$cmd 170 $skip all from $lannet to any 25 out via $eif setup keep-state
$cmd 180 $skip all from $lannet to any 110 out via $eif setup keep-state
# Разрешаем полный выход с сервака
$cmd 190 $skip all from $wanip to any out via $eif setup keep-state
############# Incoming ################
# Запрещаем весь входящий траффик из зарезервированных адресных пространств
$cmd 200 deny all from 192.168.0.0/16 to any in via $eif #RFC 1918 private IP
$cmd 201 deny all from 172.16.0.0/12 to any in via $eif #RFC 1918 private IP
$cmd 202 deny all from 10.0.0.0/8 to any in via $eif #RFC 1918 private IP
$cmd 203 deny all from 127.0.0.0/8 to any in via $eif #loopback
$cmd 204 deny all from 0.0.0.0/8 to any in via $eif #loopback
$cmd 205 deny all from 169.254.0.0/16 to any in via $eif #DHCP auto-config
$cmd 206 deny all from 192.0.2.0/24 to any in via $eif #reserved for docs
$cmd 207 deny all from 204.152.64.0/23 to any in via $eif #Sun cluster
$cmd 208 deny all from 224.0.0.0/3 to any in via $eif #Class D & E multicast
# Запрещаем ident
$cmd 215 deny tcp from any to any 113 in via $eif
# Запрещаем весь сервис Netbios. 137=имя, 138=дейтаграмма, 139=сессия
# Netbios это сервис общего доступа MS/Windows .
# Блокируем MS/Windows hosts2 name server requests 81
$cmd 220 deny tcp from any to any 137 in via $eif
$cmd 221 deny tcp from any to any 138 in via $eif
$cmd 222 deny tcp from any to any 139 in via $eif
$cmd 223 deny tcp from any to any 81 in via $eif
# Запрещаем пакеты прибывшие позже
$cmd 230 deny all from any to any frag in via $eif
# Разрешаем входящий пинг определенных типов
$cmd 300 allow icmp from any to $wanip in via $eif icmptypes 0,8,11 limit src-addr 2
# Разрешаем входящую www функцию
$cmd 310 allow tcp from any to $wanip 80 in via $eif setup limit src-addr 2
# Разрешаем входящие безопасные SSH, порт лучше поменять
$cmd 320 allow tcp from any to $wanip 22 in via $eif setup limit src-addr 2
# Разрешаем входящую почту SMTP
$cmd 330 allow tcp from any to $wanip 25 in via $eif setup limit src-addr 2
# Разрешаем входящую почту POP3
$cmd 340 allow tcp from any to $wanip 110 in via $eif setup limit src-addr 2
# Разрешаем RAdmin, дальше у меня его прокидывает rinetd
$cmd 350 allow tcp from any to $wanip 33333 in via $eif setup limit src-addr 2
$cmd 351 allow tcp from any to $wanip 44444 in via $eif setup limit src-addr 2
$cmd 351 allow tcp from any to $wanip 55555 in via $eif setup limit src-addr 2
# Разрешаем уже установленные соединения
$cmd 360 allow all from any to any established
########### Final ###############
# Режем все, что не пошло в $skip
$cmd 399 deny log all from any to any
# Исходящий NAT
$cmd 400 divert natd ip from any to any out via $eif
# Разрешаем выход транслированых пакетов
$cmd 410 allow all from any to any
# Режем все лишнее
$cmd 999 deny log all from any to any
Всем спасибо за участие!

Machines to Work,
People to Think.
$Alchemist
-
dikens3
- подполковник
- Сообщения: 4856
- Зарегистрирован: 2006-09-06 16:24:08
- Откуда: Нижний Новгород
-
Контактная информация:
Непрочитанное сообщение
dikens3 » 2008-06-30 11:36:04
лучше вывод ipfw show.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.
dikens3
-
paradox_
- проходил мимо
Непрочитанное сообщение
paradox_ » 2008-06-30 11:40:05
у меня так:
divert 8668 ip from any to any out via rl0
чем она не полная?
divert 8668 ip from any to any via rl0
эть еще такие конструкции
но учитывая что вы всетаки неразобрались как работает divert+natd
это не для вас
paradox_
-
Rita
- сержант
- Сообщения: 157
- Зарегистрирован: 2007-12-01 23:41:45
Непрочитанное сообщение
Rita » 2008-07-04 0:56:24
Не согласна что диверт - нечто страшное непосягаемое. У нас многое работает на штатном ipfw+natd и ничего. И помоему с натд как раз все проще.
А топикстатретру посоветовала бы сначала напсиать фаер в 2-3 правила и посмотреть как они будут работать, а потом лепить конфиг какой нужно, а не наоборот.
з.с.
нормальная пркатика когда в ядре ставим фаер закрытым а оптом в конфиге открываем только то что нужно imho
Rita
-
$Alchemist
- сержант
- Сообщения: 173
- Зарегистрирован: 2008-06-26 13:38:17
- Откуда: SPb
-
Контактная информация:
Непрочитанное сообщение
$Alchemist » 2008-07-04 10:21:35
Rita писал(а):Не согласна что диверт - нечто страшное непосягаемое. У нас многое работает на штатном ipfw+natd и ничего. И помоему с натд как раз все проще.
А топикстатретру посоветовала бы сначала напсиать фаер в 2-3 правила и посмотреть как они будут работать, а потом лепить конфиг какой нужно, а не наоборот.
Топикстартер так изначально и делал
з.с.
нормальная пркатика когда в ядре ставим фаер закрытым а оптом в конфиге открываем только то что нужно imho
это нормальная практика в случае, если вы не работаете в момент установки нового ядра по ssh

Что мешает перед дефолтным разрешающим правилом поставить запрещающее?
Machines to Work,
People to Think.
$Alchemist
-
Rita
- сержант
- Сообщения: 157
- Зарегистрирован: 2007-12-01 23:41:45
Непрочитанное сообщение
Rita » 2008-07-04 10:36:22
$Alchemist писал(а):
это нормальная практика в случае, если вы не работаете в момент установки нового ядра по ssh

Что мешает перед дефолтным разрешающим правилом поставить запрещающее?
А что ssh? По дефолту для ipfw используется конфиг rc.firewall вот в него сразу вносим необходимое правило на доступ а потом собираем ядро и перегружаем, все сразу работет и доступ никуда не пропадает. Проверено временем. Но как правило пересборка ядра - редкость для рабочего сервера, даже если делается то локально, удаленно в крайних случаях только.

Rita
-
Fioktist
- мл. сержант
- Сообщения: 84
- Зарегистрирован: 2007-04-06 4:06:28
- Откуда: Россия
Непрочитанное сообщение
Fioktist » 2008-08-07 10:00:49
помогите пожалуйста перевести синтаксис правил под 7 FreeBSD
чтобы ipfw самостоятельно выполнял NAT-трансляцию, не требуя запуска демона natd из rc.conf
как прописано в статье
http://www.lissyara.su/?id=1726
ipfw.ko пересобран с
CFLAGS+= -DIPFIREWALL_NAT
вот мои старые правила
Код: Выделить всё
${ipfw} add 900 divert 8667 all from ${LADNet} to any out via ${ethSM}
${ipfw} add 910 divert 8668 all from ${LDUNet} to any out via ${ethDU}
${ipfw} add 930 divert 8669 all from ${LALNet} to any out via ${ethMA}
${ipfw} add 940 divert 8667 all from any to ${ipSM} in via ${ethSM}
${ipfw} add 950 divert 8668 all from any to ${ipDU} in via ${ethDU}
${ipfw} add 960 divert 8669 all from any to ${ipMA} in via ${ethMA}
Самое возмутительное в аргументах оппонента - это изобилие правды.
Fioktist
-
hizel
- дядя поня
- Сообщения: 9032
- Зарегистрирован: 2007-06-29 10:05:02
- Откуда: Выборг
Непрочитанное сообщение
hizel » 2008-08-07 11:05:44
как то так
Код: Выделить всё
${ipfw} nat 7 config ip ${ipSM}
${ipfw} nat 8 config ip ${ipDU}
${ipfw} nat 9 config ip ${ipMA}
${ipfw} add 900 nat 7 all from ${LADNet} to any out via ${ethSM}
${ipfw} add 910 nat 8 all from ${LDUNet} to any out via ${ethDU}
${ipfw} add 930 nat 9 all from ${LALNet} to any out via ${ethMA}
${ipfw} add 940 nat 7 all from any to ${ipSM} in via ${ethSM}
${ipfw} add 950 nat 8 all from any to ${ipDU} in via ${ethDU}
${ipfw} add 960 nat 9 all from any to ${ipMA} in via ${ethMA}
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.
hizel
-
Fioktist
- мл. сержант
- Сообщения: 84
- Зарегистрирован: 2007-04-06 4:06:28
- Откуда: Россия
Непрочитанное сообщение
Fioktist » 2008-08-07 19:25:58
hizel писал(а):как то так
Код: Выделить всё
${ipfw} nat 7 config ip ${ipSM}
${ipfw} nat 8 config ip ${ipDU}
${ipfw} nat 9 config ip ${ipMA}
${ipfw} add 900 nat 7 all from ${LADNet} to any out via ${ethSM}
${ipfw} add 910 nat 8 all from ${LDUNet} to any out via ${ethDU}
${ipfw} add 930 nat 9 all from ${LALNet} to any out via ${ethMA}
${ipfw} add 940 nat 7 all from any to ${ipSM} in via ${ethSM}
${ipfw} add 950 nat 8 all from any to ${ipDU} in via ${ethDU}
${ipfw} add 960 nat 9 all from any to ${ipMA} in via ${ethMA}
так неработает
Самое возмутительное в аргументах оппонента - это изобилие правды.
Fioktist
-
Alex Keda
- стреляли...
- Сообщения: 35426
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
-
Контактная информация:
Непрочитанное сообщение
Alex Keda » 2008-08-07 20:17:51
поиск по форуму.
минимум дважды клали рабочие конфиги
Убей их всех! Бог потом рассортирует...
Alex Keda
-
paradox
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Непрочитанное сообщение
paradox » 2008-08-09 21:12:30
тобы ipfw самостоятельно выполнял NAT-трансляцию, не требуя запуска демона natd из rc.conf
никто не мешает сделать нат в ipnat
там одна строчка
а остальное режте итд в Ipfw
paradox
-
hizel
- дядя поня
- Сообщения: 9032
- Зарегистрирован: 2007-06-29 10:05:02
- Откуда: Выборг
Непрочитанное сообщение
hizel » 2008-08-10 8:59:16
эм, у мя все верно, это не обсуждается

В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.
hizel
-
Fioktist
- мл. сержант
- Сообщения: 84
- Зарегистрирован: 2007-04-06 4:06:28
- Откуда: Россия
Непрочитанное сообщение
Fioktist » 2008-08-10 13:30:35
Спасибо за помощь, пойду поищу там где это обсуждаетс...
ядро собрано с
ident GATE_NAT
#### main rule
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=150
options IPFIREWALL_NAT
options LIBALIAS
options IPFIREWALL_FORWARD
options IPDIVERT
options DUMMYNET
options HZ=1000
rc.conf
defaultrouter="10.10.10.1"
gateway_enable="YES"
ifconfig_bge0="inet 192.168.2.34 netmask 255.255.255.0"
#ifconfig_bge1="inet 192.168.2.35 netmask 255.255.255.0"
ifconfig_em0="inet 10.10.10.2 netmask 255.255.255.252"
ifconfig_em1="inet 10.100.1.1 netmask 255.255.255.248"
ifconfig_em2="inet 192.168.11.1 netmask 255.255.255.0"
#ifconfig_em3="inet 192.168.255.254 netmask 255.255.255.0"
#natd_enable="YES"
#natd -a 10.10.10.2 -p 8667 -n em0
#natd -a 10.100.1.1 -p 8668 -n em1
#natd -a 192.168.11.1 -p 8669 -n em2
firewall_enable="YES"
firewall_script="/root/ipfw.sh"
sysctl.conf
# Много проходные правила для ipfw чтобы совместить NAT и маршрутизацию
net.inet.ip.fw.one_pass=0
где еще что либо забыл?
Самое возмутительное в аргументах оппонента - это изобилие правды.
Fioktist
-
Fioktist
- мл. сержант
- Сообщения: 84
- Зарегистрирован: 2007-04-06 4:06:28
- Откуда: Россия
Непрочитанное сообщение
Fioktist » 2008-08-11 7:28:44
поставил очередность доступа по ssh раньше чем правила NAT, перестало отваливаться и вроде как работает...
сори за недопанимание
Самое возмутительное в аргументах оппонента - это изобилие правды.
Fioktist
-
Da1VER
- рядовой
- Сообщения: 43
- Зарегистрирован: 2006-09-30 23:04:19
-
Контактная информация:
Непрочитанное сообщение
Da1VER » 2008-08-12 14:08:35
paradox писал(а):
а новичкам нат я бы рекомендовал поднимать на ipnat вместо natd
Сори что не совсем в тему... но есть одно но, ipnat - это действительно то, что называется настоящий нат (ака нат который действительно секюрный нат) в нем организованы все самые нужные функции без всяких наворотов, а вот natd как раз рай для тех, кто хочет наковырять кучу всяких плюшок, но при этом полностью светит топологию внутренней сети (при составлении пакета в его заголовки вносится ip сервака и внутрений ip клиента + изменяется ттл пакета - что тоже есть признаком количества проходимых точек) Недаром ipnat разработка OpenBSD.... но ето всеголиш ИМПХО..
Еще раз сори что не совсем по теме...
Da1VER
-
freeman
- лейтенант
- Сообщения: 734
- Зарегистрирован: 2007-03-18 5:13:25
Непрочитанное сообщение
freeman » 2008-08-12 14:22:34
Da1VER писал(а):а вот natd как раз рай для тех, кто хочет наковырять кучу всяких плюшок, но при этом полностью светит топологию внутренней сети (при составлении пакета в его заголовки вносится ip сервака и внутрений ip клиента + изменяется ттл пакета - что тоже есть признаком количества проходимых точек)
Эм, я что то не понимаю, или действительно бывают реализации NAT в которых наружу светится внутрений ip клиента и т.д. (ttl то ясно дело стандартно обязан менятся) ?

Остатся должен только один ...
freeman
-
Da1VER
- рядовой
- Сообщения: 43
- Зарегистрирован: 2006-09-30 23:04:19
-
Контактная информация:
Непрочитанное сообщение
Da1VER » 2008-08-12 14:50:43
freeman писал(а): (ttl то ясно дело стандартно обязан менятся) ?

Все зависит от того что у тебя нат делает - если он просто берет пакет дописывает в его заголовок доп айпишник (ака локали) и изменяет ттл для того чтобы знать что есть доп запись ип.... тобиш нат полностью прозрачный...
Это собственно делает натд, да и работает он как модуль ядра системы, а вот айпинат наоборот он работает от самого ядра ( привилегия на исполнение у него выше ) + он у себя строит таблицу пакетов и их маршрута (только не путать с маршрутизацией) + поддерживает тотже белый нат ака используя битмапы, но при этом всем его функциональность очень низкая, ака дубовый он... да и медленнее намного собственно...
Da1VER