Важные моменты после перепрошивки роутера для новичков
Введение
правитьЭта статья описывает советы и важные моменты для новичков, перепрошивших свой роутер[1] альтернативной прошивкой, такой как прошивка Олега или DD-WRT
Подробное описание как перепрошить роутер прошивкой Олега, описано в статье настройка роутера WL500g Premium
Все советы, изложенные в статье, предназначены для тех, кто настраивает свой роутер вручную через консоль с использованием ssh[2] или telnet[3] клиентов.
Первые шаги после перепрошивки
правитьПервым делом после перепрошивки роутера[1] следует помнить, что в прошивке зашит определенный MAC адрес[4], поэтому его надо обязательно поменять на какой-то другой, потому что есть очень большая вероятность того, что мы не единственные с перепрошитым роутером в нашей сети и следовательно, такой MAC адрес[4] уже может быть занят.
Назначить новый MAC адрес[4] можно следующей командой:
ifconfig vlanN hw ether 00:11:32:23:32:23
вместо vlanN, надо подставить интерфейс нужного провайдера, как правило если он один, то это vlan1.
Чтобы не мучаться с выбором MAC адреса[4], можно просто взять MAC адрес[4] сетевой карты любого компьютера в вашей домашней сети.
Тонкости настроки файрвола iptables
правитьПри настройке файрвола iptables[5], важно помнить следующий момент: Если роутер[1] с Wi-Fi, то интерфейс сети - это br0, то есть мост это между сетевой картой и Wi-Fi точкой, а не просто eth0 или vlan0.
Описание скриптовых переменных для iptables
правитьWAN_IFACE - это интерфейс, который смотрит в интернет, если провайдер один, то это обычно vlan1 или ppp0 - если используется VPN соединение.
PORT_NUM - № порта[6]
LOCAL_SERVER_IP - IP адрес[7] сервера в нашей локальной сети, на который будут перенаправляться все пакеты идущие из интернета.
WAN_IP - Внешний IP адрес[7] провайдера.
Базовая настройка интернета для локальной сети
правитьЧтобы в нашей домашней сети был интернет надо выполнить следующие команды:
#Разрешить входящие пакеты из локальной сети
iptables -A INPUT -i WAN_IFACE -s 192.168.1.0/24 -j ACCEPT
#Разрешаем форвардинг уже инициализированных соединений
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
После этого надо сделать подмену адреса отправителя из локальной сети, на IP адрес[7] провайдера.
Это можно сделать 2-мя способами:
iptables -t nat -A POSTROUTING -o $WAN_IFACE -j MASQUERADE
или
iptables -t nat -A POSTROUTING -o $WAN_IFACE -s 0.0.0.0/0 -j SNAT --to-source $WAN_IP
Обычно в настройках по умолчанию используется способ №1.
В случае же если у вас VPN[8] соединение, то лучше использовать способ №2, он увеличивает скорость VPN соединений.
Описание переменных см. выше
Порт форвардинг
правитьЧтобы работал порт-форвардинг, надо отключить антиспуфинговую фильтрацию см. ниже.
А так же необходимо включить форвардинг пакетов, как правило он уже включен, но как говорится береженого бог бережет. См.ниже
Теперь можно открывать доступ к порту[6], который мы будем пробрасывать в нашу домашнюю сеть:
#Открываем порт для доступа из вне
iptables -A INPUT -i WAN_IFACE -p tcp --dport PORT_NUM -j ACCEPT
#Разрешаем дальнейшее следование по порту внутри сети
iptables -A FORWARD -i WAN_IFACE -p tcp --dport PORT_NUM -j ACCEPT
#Если пытаемся подключиться из локальной сети к внешнему IP с пробрасываемым портом, то делаем это от лица роутера
iptables -t nat -A POSTROUTING -d LOCAL_SERVER_IP -s 192.168.1.0/24 -p tcp --dport PORT_NUM -j SNAT --to-source 192.168.1.1
#Перенаправляем пакеты с внешнего адреса провайдера, на адрес в локальной сети по пробрасываеваему порту
iptables -t nat -A PREROUTING -d WAN_IP -p tcp --dport PORT_NUM -j DNAT --to-destination LOCAL_SERVER_IP:PORT_NUM
#Что-бы сам шлюз мог работать с пробрасываемым портом
iptables -t nat -A OUTPUT -d WAN_IP -p tcp --dport PORT_NUM -j DNAT --to-destination LOCAL_SERVER_IP
Описание переменных см. выше
Отключение антиспуфинговой фильтрации
правитьЕсли на роутере[1] планируется порт[6] форвардинг, то необходимо отключить rp_filter(антиспуфинговая фильтрация).
Это делается следующими командами:
echo 0 > /proc/sys/net/ipv4/conf/default/rp_filter
echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter
Включение форвардинга пакетов
правитьДелается следующими командами:
echo 1 > /proc/sys/net/ipv4/ip_forward
Настройка таблиц маршрутизации для 2-х провайдеров с помощью пакета iproute2
правитьПодробная настройка 2-х провайдеров описана тут.
Описание скриптовых переменных для iproute2
правитьWAN1_IP - Внешний IP адрес[7] провайдера №1.
WAN1_GW - IP адрес[7] шлюза провайдера №1.
WAN2_IP - IP адрес[7] провайдера №2.
WAN2_GW - IP адрес[7] шлюза провайдера №2.
LAN_IFCE - Интерфейс сетевой карты, как правило br0 или vlan0.
Создание таблиц маршрутизации
правитьЭто делается это следующим образом:
mkdir -p /etc/iproute2
echo "201 T1" > /etc/iproute2/rt_tables
echo "202 T2" >> /etc/iproute2/rt_tables
Рекомендую прописать эти строчки в post-boot, т.к. после рестарта, даже если сохранить flashfs, она не восстановится.
Распределение маршрутов по таблицам
правитьТеперь в таблицы T1 и T2 надо добавить следующие маршруты:
#Добавляем в таблицу Т1 шлюз по умолчанию, если у вас VPN соединение, то следующую строчку нужно закоментить
ip route add default via $WAN1_GW table T1
#Добавляем в таблицу Т1 информацию о нашей локальной сети
ip route add 192.168.1.0/24 dev $LAN_IFACE table T1
#Добавляем в таблицу Т1 информацию о самих себе
ip route add 127.0.0.0/8 dev lo table T1
#Добавляем в таблицу Т2 шлюз по умолчанию
ip route add default via $WAN2_GW table T2
#Добавляем в таблицу Т2 информацию о нашей локальной сети
ip route add 192.168.1.0/24 dev $LAN_IFACE table T2
#Добавляем в таблицу Т2 информацию о самих себе
ip route add 127.0.0.0/8 dev lo table T2
#Если у вас VPN соединение, то закоментарьте следующую строчку
ip route add default gw via $WAN1_GW
#Добавляем правило чтобы пакеты первого правайдера шли по его таблице Т1
ip rule add from $WAN1_IP table T1
#Добавляем правило чтобы пакеты второго правайдера шли по его таблице Т2
ip rule add from $WAN2_IP table T2
#Чистим за собой кэш маршрутов
ip route flush cache
* Если вы планируете порт-форвардинг по обоим провайдерам, тогда надо отключить антиспуфинговую фильтрацию
Описание переменных см. выше
Прочие советы
правитьДля установки дополнительных пакетов, вам понадобится флешка, а далеко не каждый роутер имеет USB[9] вход.
- При написании скриптов, особенно для автозагрузки, не забывайте что переменная PATH инициализируется позже, чем выполнение скриптов автозагрузки, поэтому в скриптах надо писать полный путь до нужной программы. Это касается всех дополнительных пакетов, которые ставятся на флешку.
Примечания
править- ↑ а б в г д Router(маршрутизатор)
- ↑ Secure Shell
- ↑ Telecommunication Network
- ↑ а б в г д MAC адрес
- ↑ iptables - брендмауэр для ОС Linux
- ↑ а б в Сетевой порт
- ↑ а б в г д е ё IP адрес
- ↑ Virtual Private Network
- ↑ Universal Serial Bus
Ссылки
правитьАльтернативные прошивки:
Статьи по перепрошивке:
Статья не закончена и периодически дополняется