понеділок, 28 травня 2012 р.

OpenWRT. Доступ к ssh и web-interface роутера из Internet

Если есть необходимость получить доступ к ssh или web-интерфейсу роутера из внешней сети, необходимо войти ssh-клиентом на роутер и сделать следующее и сохранить:

1. vi /etc/config/firewall - и в конце файла добавляем следующее:


#==========================
#ssh ext port SSSS to int port 22
config rule
        option src wan
        option desp_port SSSS
        option target ACCEPT
        option proto tcp


config redirect
        option src wan
        option src_dport SSSS
        option dest lan
        option dest_ip ROUTER_INTERNAL_IP
        option dest_port 22
        option proto tcp
#eof ssh ext to int ssh redirect


#http ext port HHHH to int port 80
config rule
        option src wan
        option desp_port HHHH
        option target ACCEPT
        option proto tcp


config redirect
        option src wan
        option src_dport HHHH
        option dest lan
        option dest_ip ROUTER_INTERNAL_IP
        option dest_port 80
        option proto tcp
#eof ssh ext to int http redirect

где:
  • SSSS - внешний порт для ssh по которому Вы хотите подключаться к роутеру;
  • HHHH - внешний порт для http по которому вы хотите подключаться к web-интерфейсу;
  • ROUTER_INTERNAL_IP - внутренний адрес роутера (по умолчанию: 192.168.1.1).
2. /etc/init.d/firewall reload - теперь наш роутер можно админить извне.

Примечание: работает только когда есть реальный IP Address на внешнем порту роутера.

четвер, 24 травня 2012 р.

Установка и настройка OpenWRT 10.03.1. Часть 2 (IPTV).

Всем привет!

Подготовка

Рассмотрим как настроить IPTV, чтобы заработало на роутерах с OpenWRT. Для DD-WRT процесс описан здесь.
Нам необходимо на компьютере:
  • ssh-клиент для доступа к роутеру (подойдет PuTTY или любой другой);
На роутере, зайдя по ssh будет настраивать следующее:
  • udpxy - UDP Proxy;
  • PureFTPd - простой, но довольно продвинутый FTP server. Нужен для автоматического обновления плейлиста со списком каналов;
Заходим по ssh на роутер, и делаем следующее:
  1. opkg update - обновили список пакетов;
  2. opkg install udpxy - установили UDP Proxy;
  3. opkg install pure-ftpd - FTP server;
  4. opkg install shadow - набор утилит для работы с пользователями/группами;
  5. opkg install nano - для тех, кому с vi тяжело - простой DOS-подобный текстовый редактор. Устанавливать необязательно. Если хочется, то дальше везде вместо vi подставляем nano - все конфги буду делаться этим редактором.
Все необходимые пакеты мы установили, осталось их настроить для работы. Сначала настраиваем udpxy.

Настройка udpxy на OpenWRT

Делаем следующее:
  1. vi /etc/rc.local - Вбиваем в начало строку: udpxy  -p 81 -M 30 -B 256Kb -m IP_ADDRESS_1 -a IP_ADDRESS_2 , где IP_ADDRESS_1 - внешний адрес роутера, смотрящий на провайдера, IP_ADDRESS_2 - локальный адрес роутера в домашней сети.
  2. vi /etc/firewall.user - Вбиваем туда строку: iptables -I INPUT -d 224.0.0.0/4 -j ACCEPT . Необходимо, чтобы firewall пропускал мультикаст траффик из внешней сети в роутер.
  3. reboot - перезагружаем роутер, после рестарта UDP Proxy заработала. Перейдем к настройке автообновления телепрограммы и автозагрузке при запуске программы для просмотра IPTV.

Настройка автообновления телепрограммы для IPTV

- Настройка скрипта обновления телепрограммы и планировщика

  1. mkdir -p /home/iptv - создаем папку, где будет работать скрипт и храниться телепрограмма;
  2. vi /home/iptv/iptv_playlist.sh - и создаем скрипт, как описано здесь (пункт 9);
  3. chmod +x /home/iptv/iptv_playlist.sh - даем права на запуск.
  4. /home/iptv/iptv_playlist.sh - запускаем скрипт. Должен появиться файл с переделанной под udpxy телепрограммой. ls -la /home/iptv/ - чтобы проверить. Файл http_playlist.m3u не должен быть пустым. Если он не пустой - значит все ОК.
  5. vi /etc/rc.local - Вбиваем в начало строку: /home/iptv/iptv_playlist.sh . Теперь телепрограмма будет обновляться при каждом старте роутера.
  6. crontab -e - Вбиваем туда строку: @daily root /home/iptv/iptv_playlist.sh . Сохраняем и выходим. Теперь раз в сутки телепрограмма будет обновляться сама. Больше ничего делать не надо. Она всегда будет актуальной.
  7. Если раньше планировщик был не задействован, выполняем команду: /etc/init.d/cron enable - чтобы его задействовать.

- Настройка FTP сервера

FTP сервер нам нужен для того, чтобы с него в программе для просмотра IPTV автоматически подгружалась адаптированная под udpxy телепрограмма. Можно конечно это реализовать и по-другому. Я сделал так. И VLC и IPTV Player отлично умеют читать телепрограмму по FTP протоколу. Проверено, работает 100%. Настройку Pure-FTPd сервера я делал по этой инструкции. Делаем следующее:
  1. vi /etc/config/pure-ftpd . Здесь в строке option authentication меняем значение на: 'puredb:/etc/pureftpd.pdb' и option enabled 0 меняем на option enabled 1.  Сохраняем файл конфигурации.
  2. groupadd pure_ftpd_grp
  3. useradd -g pure_ftpd_grp pure_ftpd_user
  4. pure-pw useradd iptv -u pure_ftpd_user -d /home/iptv/ - пароль iptv
  5. pure-pw mkdb

  6. /etc/init.d/pure-ftpd enable
  7. /etc/init.d/pure-ftpd reload
  8. /etc/init.d/pure-ftpd start
Все. Настройка FTP Server - завершена. Измененная телепрограмма доступна по ссылке: ftp://iptv:iptv@ROUTER_IP_ADDRESS/http_playlist.m3u , где ROUTER_IP_ADDRESS -  адрес роутера в локальной сети, например 192.168.1.1. 
Если pure-FTPd не поднялся - делаем reboot.

- Настройка программы просмотра

Теперь, чтобы автоматически загружалась телепрограмма в нашу программу просмотра делаем следующее:
  • для VLC Media Player - делаем ярлык, например на Рабочий Стол. Открываем свойства и вбиваем после названия программы после кавычек вышеуказанную ссылку.
  • для IPTV Player - вбить адрес на первой закладке в настройках и поставить галочке обновлять при запуске.
Теперь у Вас всегда все самое свежее :-).

С телевизором вроде все.  Дальше будем настроивать жесткий диск SAMBA демон для доступа к файлам из под Windows.