ipfw + shtm

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
XliN
мл. сержант
Сообщения: 145
Зарегистрирован: 2007-10-10 17:16:28
Контактная информация:

Re: ipfw + shtm

Непрочитанное сообщение XliN » 2007-10-11 13:50:45

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

SKTV# ./rc.firewall.old
SKTV# ipfw -ad list
00100  0    0 divert 8668 ip from any to any via fxp0
00200  0    0 fwd 192.168.1.222 tcp from any to any dst-port 80 in via nve0
00300  6  376 allow ip from any to any
00400  0    0 fwd 127.0.0.1,3128 tcp from any to any dst-port 80 in via nve0
00500  0    0 allow ip from any to any
00600  0    0 allow ip from any to any
65535 34 2142 deny ip from any to any
Ну спасибо!!!! Заработало!!!! Огромное спасибо!! Будем изучать. Может есть хорошие ссылочки?
Изображение
Изображение
Изображение

Хостинговая компания 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/
Выделенные сервера, Россия, Москва, от 2460 рублей (8 CPU, 8Gb RAM, 2x500Gb HDD, RAID 3ware 9750):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
XliN
мл. сержант
Сообщения: 145
Зарегистрирован: 2007-10-10 17:16:28
Контактная информация:

Re: ipfw + shtm

Непрочитанное сообщение XliN » 2007-10-11 14:05:14

Вопрос в дагонку
Куда дописать? чтобы не запускать каждый раз вручную /usr/local/billing/ ./rc.firewall и /etc/inet.d/ ./natd start
Изображение
Изображение
Изображение

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

Re: ipfw + shtm

Непрочитанное сообщение dikens3 » 2007-10-11 14:11:32

firewall_script="/usr/local/billing/rc.wirewall" wirewall?
В rc.conf у тебя всё нормально. Я тебе выделил что неправильно. Фаер и Natd должны при загрузке нормально запускаться.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Аватара пользователя
XliN
мл. сержант
Сообщения: 145
Зарегистрирован: 2007-10-10 17:16:28
Контактная информация:

Re: ipfw + shtm

Непрочитанное сообщение XliN » 2007-11-02 18:41:26

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

SKTV# cat rc.firewall.old
FwCMD="/sbin/ipfw"
LanOut="fxp0"
LanIn="nve0"
IpOut="192.168.2.2"
IpIn="192.168.1.222"
NetMask="24"
NetIn="192.168.1.0"

${FwCMD} -f flush
${FwCMD} add divert 10001 ip from any to any via fxp0
${FwCMD} add divert 10002 ip from any to any via nve0
${FwCMD} add fwd 127.0.0.1,8080 tcp from ${NetIn}/${NetMask} to any 80 via ${LanOut}
${FwCMD} add divert natd ip from ${NetIn}/${NetMask} to any out via ${LanOut}
${FwCMD} add divert natd ip from any to ${IpOut} in via ${LanOut}
${FwCMD} add deny ip from any to any

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

SKTV# ipfw -a list
00100  7  384 divert 10001 ip from any to any via fxp0
00200  0    0 divert 10002 ip from any to any via lo0
00300  0    0 fwd 127.0.0.1,8080 tcp from 192.168.1.0/24 to any dst-port 80 via fxp0
00400  0    0 divert 8668 ip from 192.168.1.0/24 to any out via fxp0
00500  0    0 divert 8668 ip from any to 192.168.2.2 in via fxp0
00600 40 2883 deny ip from any to any
65535 12  582 deny ip from any to any
Все закрывает наглухо В чем дело?
Изображение
Изображение
Изображение

Аватара пользователя
smilealex
мл. сержант
Сообщения: 105
Зарегистрирован: 2007-06-20 20:34:31
Откуда: SAMARA
Контактная информация:

Re: ipfw + shtm

Непрочитанное сообщение smilealex » 2007-11-02 21:03:51

XliN писал(а): 00100 7 384 divert 10001 ip from any to any via fxp0
00200 0 0 divert 10002 ip from any to any via lo0

00400 0 0 divert 8668 ip from 192.168.1.0/24 to any out via fxp0
00500 0 0 divert 8668 ip from any to 192.168.2.2 in via fxp0

Все закрывает наглухо В чем дело?
на одном интерфейсе могет быть только один NAT

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

00200  0    0 divert 10002 ip from any to any via lo0
а это вообще что???
Слава Богу за всё!

Аватара пользователя
smilealex
мл. сержант
Сообщения: 105
Зарегистрирован: 2007-06-20 20:34:31
Откуда: SAMARA
Контактная информация:

Re: ipfw + shtm

Непрочитанное сообщение smilealex » 2007-11-02 21:07:20

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

maxim, 2006-09-12 в 16:29:06

Грамотная статья, но но не нашел как сделать так чтобы на одной машине крутилось два NAT-а (бывает же у людей несколько сетевых карт на машине). Я это решил так
в /etc новый файл rc.local
natd -p 8668 -n xl0
natd -p 8778 -n xl1
а в firewall вместо natd написал 8668 и 8778
в комментах к статье http://www.lissyara.su/?id=1127 там кстати разжёвано всё для работающего без особых наворотов фаера в жидкую кашку..
Слава Богу за всё!

Аватара пользователя
XliN
мл. сержант
Сообщения: 145
Зарегистрирован: 2007-10-10 17:16:28
Контактная информация:

Re: ipfw + shtm

Непрочитанное сообщение XliN » 2007-11-03 9:29:18

на одном интерфейсе могет быть только один NAT
Так у меня две сетевухи fxp0 nve0 Первая смотрит в интернет, а вторая в локалку
Задача стот сделать так, что бы все хттп сворачивались на прокси (которая у меня стоит) А остальное пускалось по нату

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

00200  0    0 divert 10002 ip from any to any via lo0
а это вообще что???
Это я так для теста ))

P.S. Конфиг для фаира писался на основе статьи от Лиса
Изображение
Изображение
Изображение

Аватара пользователя
smilealex
мл. сержант
Сообщения: 105
Зарегистрирован: 2007-06-20 20:34:31
Откуда: SAMARA
Контактная информация:

Re: ipfw + shtm

Непрочитанное сообщение smilealex » 2007-11-03 12:50:56

не совсем верное понимание работы NAT... смысл NэтворкAдрессTранслейшн в самом названии - трансляция сетевого адреса. т.е. объясняю на пальцах. у тебя два интерфейса - один во внешний мир, другой в локалку. Так вот.. NAT показывает(транслирует) внешнему миру адрес внешнего интерфейса, подменяя заголовок пакета, уходящего во внешний мир, но пришедшего из внутренней сети.. поэтому в твоём случае может быть только ОДИН NAT и висеть он будет на внешнем (повторюсь) интерфейсе так как показывается адрес внешнего интерфейса!
зы оставил бы фаер лиссяры без изменений и не мучился бы)) я так и сделал... сам нахожусь в стадии освоения IPFW ))
а вообще настоятельно рекомендую почитать описание стэка протоколов TCP/IP про нат там тоже будет ))
Слава Богу за всё!

Аватара пользователя
XliN
мл. сержант
Сообщения: 145
Зарегистрирован: 2007-10-10 17:16:28
Контактная информация:

Re: ipfw + shtm

Непрочитанное сообщение XliN » 2007-11-03 14:28:09

Я конечно почитаю, но сейчас нет времени. Лиса конфиг у меня не робит, а мне срочно нужен работующий фаир ((
Про то что НАТ подменяет адрес локального на внешний я понимаю.
Кто сможет накатайте самый простой конфиг.... мне заморочек и всяких фишек не надо.
У меня есть работающий конфиг, сам писал, ну уж больно он тупой.
Изображение
Изображение
Изображение

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35071
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: ipfw + shtm

Непрочитанное сообщение Alex Keda » 2007-11-03 14:46:08

читай.
когда поймёшь принцип работы - само на места встанет - почему не работает мой, и как допилитть свой.
Убей их всех! Бог потом рассортирует...

Аватара пользователя
smilealex
мл. сержант
Сообщения: 105
Зарегистрирован: 2007-06-20 20:34:31
Откуда: SAMARA
Контактная информация:

Re: ipfw + shtm

Непрочитанное сообщение smilealex » 2007-11-03 14:52:23

как это всё воркает у меня(может не всё логически верно, но работает - смотри, сопоставляй со своей конфигурацией):

/etc/rc.conf

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

defaultrouter="192.168.116.1"
gateway_enable="YES"
hostname="ad.faer.local"
ifconfig_fxp0="inet 192.168.116.254  netmask 255.255.255.0"
ifconfig_fxp1="inet 192.168.2.2  netmask 255.255.255.0"

firewall_enable="YES"
firewall_script="/etc/firewall.conf"
firewall_logging="YES"
natd_enable="YES"
natd_interface="fxp0"
natd_flags="-f /etc/natd.conf"
/etc/natd.conf

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

same_ports yes
use_sockets yes
interface fxp0
verbose no
log no
port 8668
/etc/firewall.conf

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

#!/bin/sh
FwCMD="/sbin/ipfw"      # собственно где лежит бинарник ipfw
LanOut="fxp0"           # внешний интерфейс
LanIn="fxp1"            # внутренний интерфейс
IpOut="192.168.116.254" # внешний IP адрес машины
IpIn="192.168.2.2"      # внутренний IP машины
NetMask="24"            # маска сети 
NetIn="192.168.2.0"     # Внутренняя сеть
${FwCMD} -f flush
${FwCMD} add check-state
${FwCMD} add deny ip from any to 127.0.0.0/8
${FwCMD} add deny ip from 127.0.0.0/8 to any
${FwCMD} add allow ip from any to any via lo0
${FwCMD} add deny ip from any to 10.0.0.0/8 in via ${LanOut}
${FwCMD} add deny ip from any to 172.16.0.0/12 in via ${LanOut}
#${FwCMD} add deny ip from any to 192.168.0.0/16 in via ${LanOut} (как видно у меня сети на обоих фейсах частные)
${FwCMD} add deny ip from any to 0.0.0.0/8 in via ${LanOut}
${FwCMD} add deny ip from any to 169.254.0.0/16 in via ${LanOut}
${FwCMD} add deny ip from any to 240.0.0.0/4 in via ${LanOut}
${FwCMD} add deny icmp from any to any frag
${FwCMD} add deny log icmp from any to 255.255.255.255 in via ${LanOut}
${FwCMD} add deny log icmp from any to 255.255.255.255 out via ${LanOut}
${FwCMD} add divert natd ip from ${NetIn}/${NetMask} to any out via ${LanOut}
${FwCMD} add divert natd ip from any to ${IpOut} in via ${LanOut}
${FwCMD} add deny ip from 10.0.0.0/8 to any out via ${LanOut}
${FwCMD} add deny ip from 172.16.0.0/12 to any out via ${LanOut}
#${FwCMD} add deny ip from 192.168.0.0/16 to any out via ${LanOut}
${FwCMD} add deny ip from 0.0.0.0/8 to any out via ${LanOut}
${FwCMD} add deny ip from 169.254.0.0/16 to any out via ${LanOut}
${FwCMD} add deny ip from 224.0.0.0/4 to any out via ${LanOut}
${FwCMD} add deny ip from 240.0.0.0/4 to any out via ${LanOut}
${FwCMD} add allow tcp from any to any established
${FwCMD} add allow ip from ${IpOut} to any out xmit ${LanOut}
${FwCMD} add allow udp from any 53 to any via ${LanOut}
${FwCMD} add allow udp from any to any 53 via ${LanIn}
${FwCMD} add allow udp from any to any 123 via ${LanOut}
${FwCMD} add allow tcp from any to ${IpOut} 49152-65535 via ${LanOut}
${FwCMD} add allow icmp from any to any icmptypes 0,8,11
${FwCMD} add allow tcp from any to ${IpOut} 22 via ${LanOut}
${FwCMD} add allow tcp from any to ${IpIn} 22 via ${LanIn}
${FwCMD} add allow ip from any to any via ${LanIn}
${FwCMD} add deny ip from any to any
Слава Богу за всё!

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

Re: ipfw + shtm

Непрочитанное сообщение dikens3 » 2007-11-03 16:20:55

NATD - Это всего лишь сервис, будь то Apache, Squid и т.д.

Почему он должен быть один? Не нужно привязывать NATD к интерфейсу (На нём может быть диапазон IP-Адресов и исходящий пакет будет преобразован к одному IP-Адресу из этого диапазона)
У NATD есть полезный ключик -a, который присваивает IP-Адрес.

Пользуйтесь хоть 10-ком натов, только фаером рулить нужно всё очень грамотно, не более того.

P.S. Если на исходящем интерфейсе только один IP-Адрес, а не диапазон, то смысла в 2-х натах нет.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Аватара пользователя
smilealex
мл. сержант
Сообщения: 105
Зарегистрирован: 2007-06-20 20:34:31
Откуда: SAMARA
Контактная информация:

Re: ipfw + shtm

Непрочитанное сообщение smilealex » 2007-11-03 16:53:21

dikens3 писал(а): У NATD есть полезный ключик -a, который присваивает IP-Адрес.
век живи, век учись.. чес слово даже не предполагал такую возможность! Фряха - реально мощнючая система!!!
Слава Богу за всё!

yakuzzza
рядовой
Сообщения: 19
Зарегистрирован: 2007-10-27 22:09:33
Откуда: Сумы, Украина
Контактная информация:

Re: ipfw + shtm

Непрочитанное сообщение yakuzzza » 2007-11-04 20:32:13

Нельзя делать divert natd первой строкой, ели используется transparent proxy. Пакеты не будут заворачиваться на прокси.

А вообще по теме - у автора начального поста полная каша в голове. Для начала прочитать про ipfw, порядок написания правил (идет разрешающее правило в самом начале конфига, все что внизу уже и не нужно даже рассматривать оно туда не дойдет).

Потом прочитать про прокси. Потом далее и далее. Не будет знаний никаких в голове пока полностью не выстроится каша в голове в начальные знания. А эти "сделай так" и так конечно помогают, но на самом деле предстваляют из себя "затыкание дыр". Следующий серьезный вопрос будет задан сдесь же, а не найден в документации к пакету ПО.

По вопросу автора...
Почему никто не советует просто вручную прибить и запустить тот же natd, перед этим убрав правило самого ната из конфига файрволла, чтобы у нас трафик не начал заворачиваться в "некуда"...

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

ipfw delete <номер правила с divert>
killall natd
natd -n <внешний интерфейс>
ipfw add <номер прибитого правила вверху> divert 8668 ip from any to any via <внешний интерфейс>
Ну а как прописать сами правила файрволла и ната в rc.conf можно найти в документации/примерах/man 5 rc.conf в конце концов.

PS: Ребята, большая просьба, прежде чем что-то советовать - внимательно посмотрите на вопрос и то что уже выведено (только последний человек заметил порядок правил в файрволле).