Открытие доступа на openwrt из интернета

https://pp.userapi.com/c638127/v638127063/275b1/yXqStf3lL7I.jpg

Часто мне нужно иметь доступ к своей домашней сетке с работы, либо с любого другого места, поэтому мне необходимо иметь доступ к своему роутеру (DIR-320A1) по ssh  и www. По умолчанию доступ из вне на wan в openwrt закрыт, поэтому здесь я опишу как его открыть.

Есть несколько способов это сделать. Для себя я выбрал стандартный iptables, дабы подкреплять знания в нем, которые потом можно всегда применить в другой linux-системе.

Я использую веб-интерфейс luci, поэтому привожу скриншот куда вводить команды iptables.

https://autohome.org.ua/images/upload/OpenWRT/firewall/firewall_custom_rules.JPG

Вводим в данное окно наши iptables правила.

WAN='wlan0'
iptables -A input_rule -i $WAN -p tcp --dport 80 -j ACCEPT
iptables -A input_rule -i $WAN -p tcp --dport 22 -j ACCEPT

Нажимаем кнопку Submit, а потом Save&Apply или перезагружаем роутер.

Эти две команды открываю доступ к вебинтерфейсу на 80 порту и доступ по ssh на 22порту.

Интернет на своем DIR-320 я получаю по wifi, поэтому я использую интерфейс wlan0.

Какой интерфейс использовать вы можете посмотреть подключившись к своему роутеру с помощью ssh-клиента и посмотреть файл /etc/config/network с настройками сетевых интерфейсов.

Код:
cat /etc/config/network

У меня выводит следующее

Код:
config switch 'eth0'
        option enable '1'

config switch_vlan 'eth0_0'
        option device 'eth0'
        option vlan '0'
        option ports '1 2 3 4 5'

config switch_vlan 'eth0_1'
        option device 'eth0'
        option vlan '1'
        option ports '0 5'

config interface 'loopback'
        option ifname 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config interface 'lan'
        option ifname 'eth0.0'
        option type 'bridge'
        option proto 'static'
        option netmask '255.255.255.0'
        option gateway '192.168.2.221'
        option dns '8.8.8.8'
        option ipaddr '192.168.2.2'

config interface 'wan'
        option ifname 'eth0.1'
        option _orig_ifname 'eth0.1'
        option _orig_bridge 'false'
        option proto 'static'
        option ipaddr '192.168.2.1'
        option netmask '255.255.255.0'
        option gateway '192.168.2.221'
        option dns '8.8.8.8'

config interface 'wwan'
        option _orig_ifname 'wlan0'
        option _orig_bridge 'false'
        option proto 'static'
        option ipaddr '192.168.1.210'
        option netmask '255.255.255.0'
        option gateway '192.168.1.1'
        option dns '192.168.1.1'

Если бы я получал интернет не по wifi, а через wan, то согласно приведенной конфигурация мне нужно было использовать eth0.1 интерфейс и команды iptables имели бы следующий вид

WAN='eth0.1'
iptables -A input_rule -i $WAN -p tcp --dport 80 -j ACCEPT
iptables -A input_rule -i $WAN -p tcp --dport 22 -j ACCEPT

Тоже самое можем продеалать внеся данные строки в файл /etc/firewall.user

Код:
nano /etc/firewall.user

После внесения изменений перезагружаем firewall

Код:
/etc/init.d/firewall restart

Леня