Прошу помочь с настройкой SFIB, IPFW и по возможности IPTV

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Yrees
проходил мимо
Сообщения: 1
Зарегистрирован: 2021-02-11 14:04:37

Прошу помочь с настройкой SFIB, IPFW и по возможности IPTV

Непрочитанное сообщение Yrees » 2021-02-11 14:32:45

Приветствую уважаемых специалистов.

Прошу помочь с решением поставленных задач профану. Очень нужно, а моих познаний не хватает. Буду премного благодарен за помощь!!! Спасибо!

Вобщем такая у меня задачка. Есть две локалки

1. em0 = 172.16.0.0/24
2. em1 = 192.168.0.0/24

два провайдера

1. em2 = 100.100.100.5 gateway 100.100.100.1
2. em3 = 200.200.200.66 gateway 200.200.200.1

Сейчас, все работает в режиме одного канала. Весь трафик, идет через em2, и лишь в случае, если происходит отвал канала на em2, то происходит переключение на em3, и восстановление на em2 если линк появляется снова.

Ну естественно все это делается с помощью cron скрипта, и вызовом defaultroute изменяющего дефолтный шлюз.

Помогите пожалуйста, нужно решить следующие проблемы, на решение которых у меня ума не хватает:

1. При работе, если извне все работает на основном канале. То при попытке подключиться SSH на адрес 200.200.200.66, подключение не происходит. Т.е. пакет вроде как приходит на этот адрес, и на этот интерфейс, но насколько я понял из ловли пакетов TCPDUMP-ом, ответ идет с другого интерфейса, но при этом в пакете адрес 200.200.200.66 (т.е. адрес, на который собственно попытка коннекта и происходит).

2. В локалке 172.16.0.0, есть машины, на которых вертятся определенные сервисы. До них должна быть возможность достучаться из вне, желательно по обоим адресам (сейчас, опять же, это возможно только на активном канале, думаю по причине той же, что и в п.1)

3. Не особо важный вопрос..... В сети провайдера который висит на интерфейсе em3, вещается IPTV. Его нужно пробросить внутрь локалок для машин 172.16.0.0. Это мне удалось сделать с помощью данных правил, и igmpproxy. Однако, есть проблема. Если канал длительное время просматривается, а потом с него переключиться на другой какой-нибудь, и с этого какого-нибудь другого, снова вернуться на предыдущий. То предыдущий канал не показывает. Т.е. он как бы завис получается. Но если перезапустить igmpproxy, то даже не переключаясь, показ возобновляется.

4. Внутри локалки, есть необходимость, поднять сервис, который будет висеть на порту 37777 на машине, ну скажем 172.16.0.111. Извне, нужно чтоб на этот порт могли подключаться через интерфейс em3 (200.200.200.66).

Прошу не пинать за возможную безграмотность. Не силен я в сетевых делах...:-( Правила файрвола, на данный момент, такие:

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

#!/sbin/ipfw
-f flush

enable one_pass

# My external IPs
table 10 flush
table 10 add 200.200.200.66

table 11 flush
table 11 add 100.100.100.5

# Allowed internal IPs 172 network
table 20 flush
table 20 add 172.16.0.0/24
#table 20 add 172.16.1.0/24

# Allowed internal IPs 192 network
table 30 flush
table 30 add 192.168.0.0/24

# Trusted hosts allowed to internal services
#table 40 flush

# Allowed VPN connections for internet DNS through this gateway
table 50 flush
table 50 add 172.16.1.0/24
# Allowed VPN connections for any internet hosts
table 51 flush
table 51 add 172.16.1.4
table 51 add 172.16.1.1
table 51 add 172.16.1.3
table 51 add 172.16.1.2


# Custom allowed destinations
table 100 flush
table 100 add 0.0.0.0/8 53

# Правила разрешающие трафик через локальный интерфейс lo0
# будут добавлять автоматически при старте файрвола
add 100 check-state

# Разрешаем исходящие соединения от себя ковсем через внешний интерфейс
# с созданием обратного динамического правила
add 200 allow all from me to any via em2 keep-state
add 201 allow all from me to any via em3 keep-state

# Разрешить траф по вн. интерфейсу
add 200 allow ip from any to any via lo0

# Блокируем попытки lo0 куда-то лезть и откуда-то лезть на lo0
add 210 deny ip from any to 127.0.0.0/8
add 220 deny ip from 127.0.0.0/8 to any

# Блокируем частные сети на внешнем интерфейсе
add 240 deny ip from any to 172.16.0.0/16 in via em2
add 241 deny ip from any to 172.16.0.0/16 in via em3
add 250 deny ip from any to 0.0.0.0/8 in via em2
add 251 deny ip from any to 0.0.0.0/8 in via em3

# Блокируем автоконфигуреную дефолтную для Windows DHCP частную сеть
add 260 deny ip from any to 169.254.0.0/16 in via em2
add 261 deny ip from any to 169.254.0.0/16 in via em3

# Блокируем мультикастовые рассылки
add 270 deny ip from not 93.100.195.91 to 240.0.0.0/4 in via em2
add 271 deny ip from not 93.100.195.91 to 240.0.0.0/4 in via em3

# Блокируем фрагментированные icmp
add 280 deny icmp from any to any frag

# Блокируем широковещательные icmp на внешнем интерфейсе
add 290 deny log icmp from any to 255.255.255.255 in via em2
add 300 deny log icmp from any to 255.255.255.255 out via em2
add 291 deny log icmp from any to 255.255.255.255 in via em3
add 301 deny log icmp from any to 255.255.255.255 out via em3

# Блок дополнительных разрешающих правил предшествующих NAT
#add 1000 allow all from 100.100.100.5 to any in via em3
#add 1000 allow all from any to 100.100.100.5 out via em3
#add 1040 allow all from any to any via lo0
#add 1050 allow all from any to any via em0
#add 1060 allow all from any to any via em1

# Блокировка дополнительных запрещающих правил предшествующих NAT
#add 10100 deny ip from 10.0.0.0/8 to any in recv em3


add 14990 skipto 15100 all from any to me dst-port 5203,15202 via em3
add 14990 skipto 16000 all from any to me dst-port 22,80,53,5201,1194,587 via em3

nat 1 config if em3 deny_in reset same_ports
add 15000 nat 1 all from table(20) to not table(10) out xmit em3
add 15000 nat 1 all from table(30) to not table(10) out xmit em3
add 15000 nat 1 all from table(50) to any dst-port 53 out xmit em3
add 15000 nat 1 all from table(51) to not table(10) out xmit em3

add 15010 nat 1 all from any to 200.200.200.66 in recv em3

add 15099 skipto 16000 all from any to any via em3

nat 2 config if em3 redirect_port tcp 172.16.0.179:5203 5203 redirect_port tcp 172.16.0.230:15202 15202
add 15100 nat 2 all from table(20) to not table(10) out xmit em3
add 15100 nat 2 all from table(30) to not table(10) out xmit em3
add 15100 nat 2 all from table(50) to any dst-port 53 out xmit em3
add 15100 nat 2 all from table(51) to not table(10) out xmit em3

add 15110 nat 2 all from any to 200.200.200.66 in recv em3
add 15120 nat 2 all from any to table(20) dst-port 5203,15202 via em3
add 15120 nat 2 all from any to table(30) dst-port 5203,15202 via em3
#add 15120 nat 2 all from any to table(50) dst-port 5203,15202 via em3
add 15120 nat 2 all from any to table(51) dst-port 5203,15202 via em3


add 15990 skipto 16100 all from any to me dst-port 5203,15202 via em2
add 15990 skipto 19000 all from any to me dst-port 22,80,53,5201,1194,587 via em2

nat 5 config if em2 deny_in reset same_ports
add 16000 nat 5 all from table(20) to not table(11) out xmit em2
add 16000 nat 5 all from table(30) to not table(11) out xmit em2
add 16000 nat 5 all from table(50) to any dst-port 53 out xmit em2
add 16000 nat 5 all from table(51) to not table(11) out xmit em2

add 16010 nat 5 all from any to 100.100.100.5 in recv em2

add 16099 skipto 19000 all from any to any via em2

nat 6 config if em2 redirect_port tcp 172.16.0.179:5203 5203 redirect_port tcp 172.16.0.230:15202 15202
add 16100 nat 6 all from table(20) to not table(11) out xmit em2
add 16100 nat 6 all from table(30) to not table(11) out xmit em2
add 16100 nat 6 all from table(50) to any dst-port 53 out xmit em2
add 16100 nat 6 all from table(51) to not table(11) out xmit em2

add 16110 nat 6 all from any to 100.100.100.5 in recv em2
add 16120 nat 6 all from any to table(20) dst-port 5203,15202 via em2
add 16120 nat 6 all from any to table(30) dst-port 5203,15202 via em2
#add 16120 nat 6 all from any to table(50) dst-port 5203,15202 via em2
add 16120 nat 6 all from any to table(51) dst-port 5203,15202 via em2

add 19000 skipto 20030 all from any to any

# Блокируем мультикастовые рассылки
add 20030 deny ip from 224.0.0.0/4 to not 93.100.195.91 out via em2
add 20031 deny ip from 224.0.0.0/4 to not 93.100.195.91 out via em3
add 20040 deny ip from 240.0.0.0/4 to not 93.100.195.91 out via em2
add 20041 deny ip from 240.0.0.0/4 to not 93.100.195.91 out via em3

# Блокируем траффик к частным сетям через внешний интерфейс
add 21000 deny ip from 10.0.0.0/8 to any out via em2
add 21010 deny ip from 172.16.0.0/12 to any out via em2
add deny ip from 0.0.0.0/8 to any out via em2
# Блокируем автоконфигуреную частную сеть
add 21020 deny ip from 169.254.0.0/16 to any out via em2

# разрешаем все установленные соединения
add 25000 allow tcp from any to any established
# разрешаем весь исходящий траффик
add 25010 allow ip from me to any out xmit em3
# разрешаем DNS снаружи
add 25020 allow udp from any 53 to any via em3
# разрешаем DNS входящий снаружи - если на этой машине работает named
# и держит какую-то зону.
add 25030 allow udp from any to any 53 via em3
# разрешаем некоторые типы ICMP траффика - эхо-запрос, эхо-ответ и время жизни пакета истекло
add 25040 allow icmp from any to any icmptypes 0,8,11
# открываем снаружи порты (WEB, SMTP, SSH, IMAP соответственно)
#add 25050 allow tcp from any to me 22,5201 via em3 # default unblocked SSH
add 25050 allow all from any to me 5201 via em3
add 25051 allow all from 10.173.109.181 to me via em3 # Allow any traffic from Lenina 1 (need to replace internal IP with external)
#add 25050 allow all from any to me 5201,1194,587 via em3

# разрешаем все установленные соединения
add 26000 allow tcp from any to any established
# разрешаем весь исходящий траффик
add 26010 allow ip from me to any out xmit em2
# разрешаем DNS снаружи
add 26020 allow udp from any 53 to any via em2
# разрешаем DNS входящий снаружи - если на этой машине работает named
# и держит какую-то зону.
add 26030 allow udp from any to any 53 via em2
# разрешаем некоторые типы ICMP траффика - эхо-запрос, эхо-ответ и время жизни пакета истекло
add 26040 allow icmp from any to any icmptypes 0,8,11
# открываем снаружи порты (WEB, SMTP, SSH, IMAP соответственно)
#add 26050 allow tcp from any to me 22,5201 via em2 # default unblocked SSH
add 26050 allow all from any to me 5201 via em2 # default unblocked SSH
add 26051 allow all from 10.173.109.181 to me via em2 # Allow any traffic from Lenina 1
#add 26050 allow all from any to me 5201,1194,587 via em2 # default unblocked SSH


# разрешаем весь tcp трафик внутри локалки (на внутреннем интерфейсе)
add 30000 allow all from any to any via em0
add 30010 allow all from any to any via em1
# allow весь tcp трафик (на внешнем интерфейсе)
#add 31020 allow all from any to any via em2
#add 31030 allow all from any to any via em3

# разрешаем весь трафик по интерфейсам tun*
add 32000 allow all from any to any via tun*
# разрешаем весь трафик по интерфейсам tap*
add 32010 allow all from any to any via tap*

# Разрешаем UDP трафик от IPTV сервера к нам
add 33000 allow all from 93.100.195.91 to 224.0.0.0/4 dst-port 1234 via em2

# Запрещаем нафиг все оставшееся
#add 65500 allow all from any to any
add 65534 deny all 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/
Выделенные сервера, Россия, Москва, от 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/

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

Прошу помочь с настройкой SFIB, IPFW и по возможности IPTV

Непрочитанное сообщение Alex Keda » 2021-05-20 20:04:18

Чето кауто дохрена

Задачу на кусочки разбейте

И в фарволле номера правил уберите
Убей их всех! Бог потом рассортирует...