anonymous@RULINUX.NET~# Last login: 2024-04-20 14:35:10
Регистрация Вход Новости | Разметка | Пользователи | Галерея | Форум | Статьи | Неподтвержденное | Трекер | Правила форума | F.A.Q. | Ссылки | Поиск
[#] [Добавить метку] [Редактировать]

Настройка проброса портов средствами iptables для беспроводного роутера Cmotech CNU-680PRO

Скрыть

Данный модем содержит ARM 940T RISC Processor с kernel 2.4.22 на борту. Подобно большинству роутеров, он может настраиваться через web интерфейс. Однако в данном роутере отчего-то не стартует встроенный веб-сервер, так-как набрав в браузере  http://192.168.0.1/ ни ответа ни привета. Так как он несет на своем борту линукс, то на него можно зайти удаленно по телнету используя

  1.  Login: root
  2.  password: inewdc

Правда этот пароль с логином поменять можно, только перепрошив целиком ОС роутера. В web-интерфейсе же логин и пароль admin:admin можно поменять весьма просто.

Далее запускаем web-сервер командой

  1.  # webs -r /htdocs -p 80

Линукс в этом роутере минимальный - нет табов, башевского хистори, простейших редакторов и прочее. И вообще интернет совсем не пестрит упоминанием даже о параметрах команд находящихся там программ. Но там есть iptables.

После этого можно настраивать собственно сам роутер. Соединение держит он относительно стабильно, но имеются симптомы, аналогичные описанным в статье SkyLinux[1] от Stanson'a, посвященной более ранней модификации этого роутера CNU550. Иногда может пропадать соединение, видимо в CNU680pro так-же отваливается pppd как и в CNU550. С своей статье Stanson пересобрал прошивку и вообще очень детально разобрал как и что. В принципе, на CNU680 можно поставить и собственной сборки дистрибутив(но это только в том случае, если детально знать Unix, иначе можно угробить роутер):

    От: Stanson
  1.  
  2.  В сообщении от Thursday 05 of August 2010 вы написали:
  3.  
  4.  > Здравствуйте!
  5.  >
  6.  > Являюсь обладателем сего чудного девайса, глючит и лагает, хотя в
  7.  > целом инет есть.
  8.  >
  9.  > Я так понимаю, что обновить прошивку до SkyLinux просто скачать
  10.  > бинарник или же надо собирать самому?
  11.  > Ибо ну очень напрягает минимальное отсутствие табов в баше, хистори и
  12.  > прочее
  13.  
  14.  Увы, для 680pro прошивки нет, ибо ко мне в
  15.  руки этот девайс не попадал.
  16.  Теоретически, можно сделать следующее -
  17.  взять прошивку от 550pro и корейскую
  18.  от 680pro. Из корейской прошивки извлечь
  19.  ядро и модули usb_storage и acm и
  20.  засунуть в прошивку для 550pro. Тут ничего
  21.  компилировать не надо, достаточно
  22.  стандартных утилит для cramfs. Кроме того,
  23.  нужно найти исходники переключалки
  24.  модема из режима USB-CD (он по умолчанию
  25.  включается как USB-сидюк, на котором
  26.  драйвера для модема под винду) в режим
  27.  модема. Эта штука
  28.  даёт ioctl команду (для чего и нужен модуль
  29.  usb_storage)
  30.  
  31.  Называется эта штука как-то типа cmotech-tools,
  32.  можно найти в гугле по словам "CNU-680" (без pro)
  33.  + Linux.
  34.  Там всё просто, утилитка маленькая,
  35.  просто открывает /dev/sgХХ и плюёт туда ioctl
  36.  SCSI_IOCTL_SEND_COMMAND
  37.  со строкой "\xffRDEVCHG1" в качестве параметра.
  38.  
  39.  Вот её и придётся собрать под ARM. Потом
  40.  сунуть куда-нибудь в загрузочные скрипты,
  41.  чтобы она
  42.  при запуске срабатывала.
  43.  
  44.  В прошивке для 550pro всей этой дребедени
  45.  нету, поэтому работать-то на 680pro оно,
  46.  конечно будет,
  47.  но только как коробочка с линуксом без
  48.  какого-либо модема.

Это было лирическое отступление про возможность прошивать проприетарные девайсы опенсурсными програмным обеспечением.

Далее перейдем собственно к тонкой настройке. Почему - не знаю, но у меня так и не вышло настроить проброс ssh из внутренней машины во внешний доступ используя вкладку NAT в web-интерфейсе роутера.

Есть локальная сеть за эти роутером, в которой есть сервера, предоставляющие услуги внешнему миру(ssh,smtp и тому подобное). Нужно пробросить эти службы во внешний инет. Как это можно реализовать на примере CNU680pro средствами iptables, не используя заводские средства настройки и официальные описания, поставляющиеся вместе с роутером. Скайлинк дает услугу "постоянный ip-адрес" роутеру на интерфейсе ppp0:

    # ifconfig
  1.  eth0 Link encap:Ethernet HWaddr 00:17:0D:00:6F:39
  2.   inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0
  3.   UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
  4.   RX packets:5852 errors:0 dropped:0 overruns:2 frame:1
  5.   TX packets:4363 errors:0 dropped:0 overruns:0 carrier:0
  6.   collisions:0 txqueuelen:100
  7.   Interrupt:19 DMA chan:1
  8.  
  9.  lo Link encap:Local Loopback
  10.   inet addr:127.0.0.1 Mask:255.0.0.0
  11.   UP LOOPBACK RUNNING MTU:16436 Metric:1
  12.   RX packets:2 errors:0 dropped:0 overruns:0 frame:0
  13.   TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
  14.   collisions:0 txqueuelen:0
  15.  
  16.  ppp0 Link encap:Point-to-Point Protocol
  17.   inet addr:23.127.34.24 P-t-P:22.19.16.17 Mask:255.255.255.255
  18.   UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
  19.   RX packets:4124 errors:1 dropped:0 overruns:0 frame:0
  20.   TX packets:5314 errors:0 dropped:0 overruns:0 carrier:0
  21.   collisions:0 txqueuelen:3

в данном случае ppp0 - 23.127.34.24 - реальный адрес, выданный скайлинком, от имени которого юзер ходит в интернете и оставляет свои следы во всяческих логах и тому подобное. Предположим нужно запросить по адресу 23.127.34.24 веб-сервер, находящийсяв локальной сети на какойто из машин. Для этого надо провести следующие махинации с iptables:

  1.  # iptables -t nat -A PREROUTING --dst 23.127.34.24 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.71
  2.  # iptables -t nat -A POSTROUTING --dst 192.168.0.71 -p tcp --dport 80 -j SNAT --to-source 192.168.0.1
  3.  # iptables -I FORWARD 1 -i ppp0 -o eth0 -d 192.168.0.71 -p tcp -m tcp --dport 80 -j ACCEPT

и после этого ваш локальный сервер  http://192.168.0.71/ досупен через веб по адресу  http://23.127.34.24/

profit!

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

  1.  # iptables -t nat -A PREROUTING -d 23.127.34.24 -p tcp -m tcp --dport 8022 -j DNAT --to-destination 192.168.0.71:22
  2.  # iptables -t nat -A POSTROUTING -d 192.168.0.71 -p tcp -m tcp --dport 22 -j SNAT --to-source 192.168.0.1
  3.  # iptables -I FORWARD 1 -i ppp0 -o eth0 -d 192.168.0.71 -p tcp -m tcp --dport 22 -j ACCEPT

и после этого на внутреннюю машину можно зайти по ssh вот так вот:

  1.  ssh -p 8022 [email protected]

profit!

Более подробно настройки маршрутизации именно для этого случая разъяснены в этой статье [2]

Итого, чтобы пробросить веб сервер или ssh доступ нужно ввести всего три команды, не изменяя никак ни прошивку, ни чего остального. Чтобы сбросить настройки -надо сказать iptables -F

Правда есть одно но, файловая система в роутере read-only и чуть позднее надо будет разобраться как писать напрямую во флеш память эти команды. Так как родной web интерфейс у меня отчего-то не заработал.

Все остальные возможности этого модема не рассматривались вида DMZ хост и прочее.

За сим всё,

vilfred from LOR The Next Generation

[1]  http://89.208.116.11/ftp/pub/CNU550pro/index.html)

[2]  http://www.it-simple.ru/?p=2250

anonymous(*) (2010-08-14 22:47:00)


Подтверждено: vilfred(*) (2010-08-14 22:47:00)

[Оставить комментарий к статье]
Этот тред читают 1 пользователь:
Анонимных: 1
Зарегистрированных: 0




(c) 2010-2020 LOR-NG Developers Group
Powered by TimeMachine

Valid HTML 4.01 Transitional Правильный CSS!