Назад | Перейти на главную страницу

iptables на dd-wrt для церковной сети

Я пытаюсь настроить брандмауэр на WRT54GL моей церкви с dd-wrt v24. Я не нашел много хороших руководств по настройке брандмауэра, и ничего, что было бы достаточно новым для этих маршрутизаторов.

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

Я пробовал возиться с fwbuilder (Firewall Builder), но безуспешно. Я могу передать свои изменения брандмауэру, но не могу заставить их работать.

Кто-нибудь может помочь?

Я не могу дать вам точного ответа, но следующее должно помочь и дать вам приблизительное представление.

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

Я не знаком с дистрибутивом wrt, поэтому я не уверен, где вам следует разместить эти правила.

Порядок важен.

#Add these rules once
iptables -A FORWARD -j INPUT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p icmp --icmp-type any -j ACCEPT
iptables -A INPUT -p 50 -j ACCEPT
iptables -A INPUT -p 51 -j ACCEPT
iptables -A INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#for each incoming tcp service you want to allow add one of these:
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport <allowed_port> -j ACCEPT

#for each incoming udp service you want to allow add one of these:
iptables -A INPUT -m state --state NEW -m udp -p udp --dport <allowed_port> -j ACCEPT

#for each local client that should not have fileserver access add one of these:
iptables -A INPUT -s <banned_local_ip> -d <filesrever> -j REJECT

#add these once
iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited

# if you only wanted to block the outgoing access for a given local IP to an 
# external service then you add one of these for each local client and external
# service combination
iptables -A OUTPUT -s <local_banned_IP> --dport <disallowed_port> -j REJECT
    
#for each outgoing service you want to block to all local host add one of these:
# this will block the service for every host on the network 
iptables -A OUTPUT --dport <disallowed_port> -j REJECT


#add this once to allow all other outgoing    
iptables -A OUTPUT -j ALLOW

Если файловый сервер является хостом Linux, просто поместите правила iptables на файловый сервер, чтобы отклонить локальные хосты, к которым вы не хотите иметь доступ.

Этот вопрос и ответ требует среднего / высокого уровня понимания iptables. Я не могу дать "из коробки" решение, но могу привести пару строк в качестве примера из брандмауэра для почти открытого Wi-Fi с использованием openwrt на wrt54gl.

В этом примере перечисленные порты разрешены, любые другие заблокированы:

НЕ наклеивайте вслепую !!! Это может заблокировать вас:

#iptables -A forwarding_rule -i br-lan -p tcp -m multiport --dports port,port,port -j ACCEPT
#iptables -A forwarding_rule -i br-lan -j DROP

Эти строки взяты из /etc/firewall.user файл на Wi-Fi роутере.

Пожалуйста, сделайте резервные копии, прежде чем что-то менять!
Будьте готовы переписать прошивку!
Пожалуйста, оставьте бэкдор через ssh или http, если они не работают.

Вот этот считается «библией iptables», она должна покрыть все ваши потребности.

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