Дабы не пропадало зря - вдруг кому-то понадобится. Если что - сносите, хотя никаких "нештатных" вещей тут нет.
Постановка задачи:
Используется D-Link DSL-G604T (DSL-модем со встроенным роутером, WiFi и хабом на 4 UTP)
В качестве доступа к интернет используется DSL-соединение (Стрим)
Нужно обеспечить параллельный доступ к городской сети, причем для раздачи адресов в домашней сети оставить встроенный в роутер DHCP.
Адрес в городской сети - 10.103.133.117, gateway - 10.103.128.1
Нужно:
а) обеспечить работу с адресами городской сети
10.103.0.0/16
80.90.113.0/24 отправлять туда же
б) разрешить DHCP только "своим" компьютерам
в) разрешить доступ к веб-интерфейсу роутера по порту 8031
Решение:
Код:
#=========================== Начало настройки
#=========================== На штатной прошивке - делать при каждой загрузке!!!
#=========================== Настройка для доступа к веб-интерфейсу извне
# Эти правила устанавливают новый порт для вашего веб-интерфейса,
# независимо от того откуда Вы заходите!
#
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
iptables -t nat -I PREROUTING -p tcp --dport 8031 -j REDIRECT --to-ports 80
#
#=========================== Настройка для доступа из горсетей
# Вешаем еще один «интерфейс»
ifconfig br0:1 10.103.133.117 netmask 255.0.0.0
route add -net 80.90.113.0 netmask 255.255.255.0 gw 10.103.128.1
#
#------------------------------------------- Включаем натирование
iptables -t nat -A POSTROUTING -d 10.103.0.0/16 -j SNAT --to-source 10.103.133.117
iptables -t nat -A POSTROUTING -d 80.90.113.0/24 -j SNAT --to-source 10.103.133.117
#
#=================================МАК-фильтры===================================================
#!!!!!!!!!!!!!!!АХТУНГ!!! При добавлении нового мака, надо добавить его во все 3 фильтра!!!!!!!
#------------------------------------------- Наш фильтр по макам (ДХЦП)
iptables -N dhcp
iptables -A dhcp -m mac --mac-source 00:01:02:03:04:05 -j ACCEPT
iptables -A dhcp -m mac --mac-source 00:01:02:03:04:06 -j ACCEPT
#...... и т.д. Для всех компов из домашней сети
#.
# Остальным идти мимо...
iptables -A dhcp -j DROP
#
#------------------------------------------- Наш фильтр по макам (закроем файервол)
iptables -N firewall
iptables -A firewall -m mac --mac-source 00:01:02:03:04:05 -j ACCEPT
iptables -A firewall -m mac --mac-source 00:01:02:03:04:06 -j ACCEPT
iptables -A firewall -j DROP
#
#------------------------------------------- Наш фильтр по макам (закроем интернет)
iptables -N minet
iptables -A minet -m mac --mac-source 00:01:02:03:04:05 -j ACCEPT
iptables -A minet -m mac --mac-source 00:01:02:03:04:06 -j ACCEPT
iptables -A minet -j DROP
#
#---------------------------- Выход в интернет через фильтр по МАКам
iptables -I FORWARD 2 -o ! br0 -j minet
#
#------------------------------------------ Включаем экран от внешних DHCP клиентов
iptables -I INPUT 1 -d 255.255.255.255 -j dhcp
#
#------------------------------------------ Включаем защиту роутера от горсетей
iptables -I INPUT 2 -i br0 -j firewall
#
#=========================== Конец настройки
# Просмотр статистики попыток злых хацкеров
Код:
iptables -L -nv
Примечание.
Команда
Код:
iptables -I FORWARD 2 -o ! br0 -j minet
должна быть именно ВТОРЫМ правилом, чтобы команда "штатного" файрволла
Код:
TCPMSS tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x06/0x02 TCPMSS set 1360
оставалась на ПЕРВОМ месте.
Все работает.