Маршрутизатор/брандмауэр Raspbian

Маршрутизатор/брандмауэр Raspbian

Здравствуйте, уважаемые суперпользователи!

Вот топология моей локальной сети. WAN-модем-маршрутизатор-брандмауэр-Pi маршрутизатор-брандмауэр-локальные машины.

Я использую тестовую машину в локальной сети: bob.

Я не могу получить доступ к интернет-сайтам Боба, получаю сообщение «хост назначения недоступен».

Вот мои маршруты:

маршруты на бобе (анонимно):

по умолчанию черезpi-маршрутизатор-iface-внутренний-lan-eth0dev eth0 источникбоб-ипметрика 202

внутренняя локальная сеть/24 dev eth0 proto dhcp область ссылка источникбоб-ипметрика 202

lan-beyond-pi-router (модем + pi-iface-eth1)/24 черезpi-маршрутизатор-внутренний-lan-iface-eth0dev eth0

маршруты на роутере pi:

по умолчанию черезpi-маршрутизатор-внутренний-iface-eth0dev eth0 источникpi-маршрутизатор-внутренний-iface-eth0метрика 202

по умолчанию черезpi-маршрутизатор-внешний-iface-eth1dev eth1 источникpi-маршрутизатор-внешний-iface-eth1метрика 203

внутренняя локальная сеть/24 dev eth0 proto dhcp область ссылка источникpi-маршрутизатор-внутренний-iface-eth0метрика 202

lan-beyond-pi-маршрутизатор/24 dev eth1 proto dhcp scope link srcpi-маршрутизатор-внешний-iface-eth1метрика 203

Я использую ufw для фильтров и nat. Это моя собственная идея, не совсем в ней уверен: поскольку я не могу настроить via route на модеме, я включил NAT на "внешнем" (eth1) интерфейсе маршрутизатора Pi (интерфейс на стороне модема). Вот моя конфигурация ufw:

'#

'# правил.перед

'#

'# Правила, которые должны быть запущены до добавления правил в командную строку ufw. Пользовательские

'# правил следует добавить в одну из этих цепочек:

'# ufw-before-input

'# ufw-before-output

'# ufw-before-forward

'#

'# nat Правила таблицы

*нат

:ПОСТРАСПИСАНИЕ ПРИНЯТО - [0:0]

'# Перенаправить трафик с eth0 на eth1

-A POSTROUTING -s 10.0.0.0/24 -o eth1 -j МАСКАРАД

'#личное дополнение, не уверен в этом

-A POSTROUTING -s 192.168.0.0/24 -o eth0 -j МАСКАРАД

'# не удаляйте строку 'COMMIT', иначе эти правила таблицы NAT не будут обработаны

СОВЕРШИТЬ

'# Не удаляйте эти обязательные строки, иначе будут ошибки

*фильтр

:ufw-before-input - [0:0]

:ufw-before-output - [0:0]

:ufw-before-forward - [0:0]

:ufw-не-локальный - [0:0]

'# Конец требуемых строк

'# разрешить все на обратной петле

-A ufw-before-input -i lo -j ACCEPT

-A ufw-before-output -o lo -j ACCEPT

'# быстро обрабатываем пакеты, для которых у нас уже есть соединение

-A ufw-before-input -m conntrack --ctstate СВЯЗАННЫЕ, УСТАНОВЛЕННЫЕ -j ПРИНЯТЬ

-A ufw-before-output -m conntrack --ctstate СВЯЗАННЫЕ,УСТАНОВЛЕННЫЕ -j ПРИНЯТЬ

-A ufw-before-forward -m conntrack --ctstate СВЯЗАННЫЕ, УСТАНОВЛЕННЫЕ -j ПРИНЯТЬ

'# отбрасывать НЕДОПУСТИМЫЕ пакеты (регистрировать их на уровне журнала средний и выше)

-A ufw-before-input -m conntrack --ctstate НЕВЕРНО -j ufw-logging-deny

-A ufw-before-input -m conntrack --ctstate НЕВЕРНЫЙ -j ОТКАЗ

'# ok icmp коды для INPUT

-A ufw-before-input -p icmp --icmp-type destination-unreachable -j ACCEPT

-A ufw-before-input -p icmp --icmp-type время-превышено -j ПРИНЯТЬ

-A ufw-before-input -p icmp --icmp-type проблема-параметра -j ACCEPT

-A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT

'# ok icmp code for FORWARD -A ufw-before-forward -p icmp --icmp-type destination-unreachable -j ACCEPT

-A ufw-before-forward -p icmp --icmp-type время-превышено -j ПРИНЯТЬ

-A ufw-before-forward -p icmp --icmp-type проблема-параметра -j ПРИНЯТЬ

-A ufw-before-forward -p icmp --icmp-type echo-request -j ACCEPT

'# разрешить работу DHCP-клиента

-A ufw-before-input -p udp --sport 67 --dport 68 -j ПРИНЯТЬ

'#

'# ufw-не-локальный

'#

-A ufw-before-input -j ufw-not-local

'# если ЛОКАЛЬНЫЙ, ВОЗВРАТ

-A ufw-not-local -m addrtype --dst-type ЛОКАЛЬНЫЙ -j ВОЗВРАТ

'# если МУЛЬТИКАСТ, ВОЗВРАТ

-A ufw-not-local -m addrtype --dst-type МНОГОАДРЕСНАЯ РАССЫЛКА -j ВОЗВРАТ

'# если ТРАНСЛЯЦИЯ, ВОЗВРАТ

-A ufw-not-local -m addrtype --dst-type BROADCAST -j RETURN

'# все остальные нелокальные пакеты отбрасываются

-A ufw-not-local -m limit --limit 3/min --limit-burst 10 -j ufw-logging-deny

-A ufw-not-local -j DROP

'# разрешить MULTICAST mDNS для обнаружения служб (убедитесь, что строка MULTICAST выше

'# не прокомментирован) -A ufw-before-input -p udp -d 224.0.0.251 --dport 5353 -j ACCEPT

'# разрешить MULTICAST UPnP для обнаружения служб (убедитесь, что строка MULTICAST выше

'# не прокомментирован)

-A ufw-before-input -p udp -d 239.255.255.250 --dport 1900 -j ПРИНЯТЬ

СОВЕРШИТЬ


Теперь я могу пинговать модем с Боба, но не могу нормально зайти в интернет. Хотя DNS интернета работает.

Когда я пытаюсь подключиться к WAN-серверу, я получаю: "хост назначения недоступен". Думаю, у меня где-то проблема в конфигурации или чего-то не хватает.

Может быть, мне следует настроить что-то на модеме, сейчас я этого не делаю. Но нет, когда я проводил тесты, я подключил маршрутизатор Pi к коммутатору с обоими интерфейсами на одном коммутаторе, в какой-то момент я смог получить доступ к сети, все работало. После этих тестов я подключил Pi к его конечному месту, рядом с модемом. Теперь, от machine bob до WAN, маршрут проходит через коммутатор, два CPL, маршрутизатор pi, модем.

Большое спасибо за ваши идеи :-)

/cr!?ptal

решение1

Я добавил новый маршрут на pi-router и он работает!

sudo ip добавить маршрут по умолчанию черезмодем-маршрутизатор-ip/24 устройство eth1.

и:

судо су

отключить ufw && включить ufw

Более того, чтобы сделать этот пользовательский маршрут постоянным, я добавил его в /etc/dhcpcd.exit-hook.

Миссия выполнена :-)

Связанный контент