<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
					xmlns:content="http://purl.org/rss/1.0/modules/content/"
					xmlns:wfw="http://wellformedweb.org/CommentAPI/"
					xmlns:atom="http://www.w3.org/2005/Atom"
				  >
<channel>
<atom:link rel="self"  type="application/rss+xml"  href="http://rulinux.net/rss_from_sect_2_subsect_8"  />
<title>rulinux.net - Статьи - Linux-hardware</title>
<link>http://rulinux.net/</link>
<description><![CDATA[Портал о GNU/Linux и не только]]></description>
<image><title>rulinux.net - Статьи - Linux-hardware</title>
<link>http://rulinux.net/</link>
<url>http://rulinux.net/rss_icon.png</url>
</image>
<item>
<title>Настройка проброса портов средствами iptables для беспроводного роутера Cmotech CNU-680PRO</title>
<link>https://rulinux.net/message.php?newsid=34860&amp;page=1</link>
<guid>https://rulinux.net/message.php?newsid=34860&amp;page=1</guid>
<pubDate>Sat, 14 Aug 2010 18:47:00 +0400</pubDate>
<description><![CDATA[<p>Данный модем содержит ARM 940T RISC Processor с kernel 2.4.22 на борту. Подобно большинству роутеров, он может настраиваться через web интерфейс. Однако в данном роутере отчего-то не стартует встроенный веб-сервер, так-как набрав в браузере &nbsp;<a href="http://192.168.0.1/">http://192.168.0.1/</a> ни ответа ни привета. Так как он несет на своем борту линукс, то на него можно зайти удаленно по телнету используя</p><p><fieldset style="border: 1px dashed black; padding:0px;"><ol style="background-color:#3d3d3d;" start="1">
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;Login: root
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;password: inewdc</ol></fieldset></p><p>Правда этот пароль с логином поменять можно, только перепрошив целиком ОС роутера. В web-интерфейсе же логин и пароль admin:admin можно поменять весьма просто.</p><p>Далее запускаем web-сервер командой</p><p><fieldset style="border: 1px dashed black; padding:0px;"><ol style="background-color:#3d3d3d;" start="1">
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;# webs -r /htdocs -p 80</ol></fieldset></p><p>Линукс в этом роутере минимальный - нет табов, башевского хистори, простейших редакторов и прочее. И вообще интернет совсем не пестрит упоминанием даже о параметрах команд находящихся там программ. Но там есть iptables.</p><p>После этого можно настраивать собственно сам роутер. Соединение держит он относительно стабильно, но имеются симптомы, аналогичные описанным в статье SkyLinux[1] от Stanson'a, посвященной более ранней модификации этого роутера CNU550. Иногда может пропадать соединение, видимо в CNU680pro так-же отваливается pppd как и в CNU550. С своей статье Stanson пересобрал прошивку и вообще очень детально разобрал как и что. В принципе, на CNU680 можно поставить и собственной сборки дистрибутив(но это только в том случае, если детально знать Unix, иначе можно угробить роутер):</p><p><fieldset style="border: 1px dashed black; padding:0px;"><ol style="background-color:#3d3d3d;" start="1">От: Stanson	
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;В сообщении от Thursday 05 of August 2010 вы написали: 
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;> Здравствуйте!
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;>
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;> Являюсь обладателем сего чудного девайса, глючит и лагает, хотя в
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;> целом инет есть.
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;>
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;> Я так понимаю, что обновить прошивку до SkyLinux просто скачать
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;> бинарник или же надо собирать самому?
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;> Ибо ну очень напрягает минимальное отсутствие табов в баше, хистори и
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;> прочее
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;Увы, для 680pro прошивки нет, ибо ко мне в
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;руки этот девайс не попадал.
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;Теоретически, можно сделать следующее -
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;взять прошивку от 550pro и корейскую
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;от 680pro. Из корейской прошивки извлечь
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;ядро и модули usb_storage и acm и
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;засунуть в прошивку для 550pro. Тут ничего
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;компилировать не надо, достаточно 
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;стандартных утилит для cramfs. Кроме того,
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;нужно найти исходники переключалки 
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;модема из режима USB-CD (он по умолчанию
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;включается как USB-сидюк, на котором 
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;драйвера для модема под винду) в режим
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;модема. Эта штука
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;даёт ioctl команду (для чего и нужен модуль
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;usb_storage)
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;Называется эта штука как-то типа cmotech-tools,
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;можно найти в гугле по словам "CNU-680" (без pro)
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;+ Linux.
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;Там всё просто, утилитка маленькая,
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;просто открывает /dev/sgХХ и плюёт туда ioctl
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;SCSI_IOCTL_SEND_COMMAND
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;со строкой  "\xffRDEVCHG1" в качестве параметра.
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;Вот её и придётся собрать под ARM. Потом
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;сунуть куда-нибудь в загрузочные скрипты,
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;чтобы она 
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;при запуске срабатывала.
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;В прошивке для 550pro всей этой дребедени
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;нету, поэтому работать-то на 680pro оно,
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;конечно будет,
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;но только как коробочка с линуксом без
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;какого-либо модема.</ol></fieldset></p><p>Это было лирическое отступление про возможность прошивать проприетарные девайсы опенсурсными програмным обеспечением.</p><p>Далее перейдем собственно к тонкой настройке. Почему - не знаю, но у меня так и не вышло настроить проброс ssh из внутренней машины во внешний доступ используя вкладку NAT в web-интерфейсе роутера.</p><p>Есть локальная сеть за эти роутером, в которой есть сервера, предоставляющие услуги внешнему миру(ssh,smtp и тому подобное). Нужно пробросить эти службы во внешний инет. Как это можно реализовать на примере CNU680pro средствами iptables, <b>не используя заводские средства настройки и официальные описания</b>, поставляющиеся вместе с роутером. Скайлинк дает услугу "постоянный ip-адрес" роутеру на интерфейсе ppp0:</p><p><fieldset style="border: 1px dashed black; padding:0px;"><ol style="background-color:#3d3d3d;" start="1"># ifconfig
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;eth0      Link encap:Ethernet  HWaddr 00:17:0D:00:6F:39
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;          inet addr:192.168.0.1  Bcast:192.168.0.255  Mask:255.255.255.0
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;          RX packets:5852 errors:0 dropped:0 overruns:2 frame:1
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;          TX packets:4363 errors:0 dropped:0 overruns:0 carrier:0
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;          collisions:0 txqueuelen:100
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;          Interrupt:19 DMA chan:1
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;lo        Link encap:Local Loopback
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;          inet addr:127.0.0.1  Mask:255.0.0.0
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;          UP LOOPBACK RUNNING  MTU:16436  Metric:1
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;          RX packets:2 errors:0 dropped:0 overruns:0 frame:0
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;          TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;          collisions:0 txqueuelen:0
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;ppp0      Link encap:Point-to-Point Protocol
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;          inet addr:23.127.34.24  P-t-P:22.19.16.17 Mask:255.255.255.255
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;          RX packets:4124 errors:1 dropped:0 overruns:0 frame:0
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;          TX packets:5314 errors:0 dropped:0 overruns:0 carrier:0
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;          collisions:0 txqueuelen:3</ol></fieldset></p><p>в данном случае ppp0 - 23.127.34.24 - реальный адрес, выданный скайлинком, от имени которого юзер ходит в интернете и оставляет свои следы во всяческих логах и тому подобное. Предположим нужно запросить по адресу 23.127.34.24 веб-сервер, находящийсяв локальной сети на какойто из машин. Для этого надо провести следующие махинации с iptables:</p><p><fieldset style="border: 1px dashed black; padding:0px;"><ol style="background-color:#3d3d3d;" start="1">
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;# iptables -t nat -A PREROUTING --dst 23.127.34.24 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.71
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;# iptables -t nat -A POSTROUTING --dst 192.168.0.71 -p tcp --dport 80 -j SNAT --to-source 192.168.0.1
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;# iptables -I FORWARD 1 -i ppp0 -o eth0 -d 192.168.0.71 -p tcp -m tcp --dport 80 -j ACCEPT</ol></fieldset></p><p>и после этого ваш локальный сервер &nbsp;<a href="http://192.168.0.71/">http://192.168.0.71/</a> досупен через веб по адресу &nbsp;<a href="http://23.127.34.24/">http://23.127.34.24/</a></p><p>profit!</p><p>Предположим нужно пробросить доступ по ssh напрямую из внешнего мира через роутер, чтобы пользователи могли логиниться по ssh на внутренние машины локальной сети. Для этого необходимо ввести следующие команды:</p><p><fieldset style="border: 1px dashed black; padding:0px;"><ol style="background-color:#3d3d3d;" start="1">
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;# 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
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;# iptables -t nat -A POSTROUTING -d 192.168.0.71 -p tcp -m tcp --dport 22 -j SNAT --to-source 192.168.0.1
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;# iptables -I FORWARD 1 -i ppp0 -o eth0 -d 192.168.0.71 -p tcp -m tcp --dport 22 -j ACCEPT</ol></fieldset></p><p>и после этого на внутреннюю машину можно зайти по ssh вот так вот:</p><p><fieldset style="border: 1px dashed black; padding:0px;"><ol style="background-color:#3d3d3d;" start="1">
<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;ssh -p 8022 root@23.127.34.24</ol></fieldset></p><p>profit!</p><p>Более подробно настройки маршрутизации именно для этого случая разъяснены в этой статье [2]</p><p>Итого, чтобы пробросить веб сервер или ssh доступ нужно ввести всего три команды, не изменяя никак ни прошивку, ни чего остального. Чтобы сбросить настройки -надо сказать iptables -F</p><p>Правда есть одно но, файловая система в роутере read-only и чуть позднее надо будет разобраться как писать напрямую во флеш память эти команды. Так как родной web интерфейс у меня отчего-то не заработал.</p><p>Все остальные возможности этого модема не рассматривались вида DMZ хост и прочее.</p><p> За сим всё,</p><p>vilfred from LOR The Next Generation</p><p></p><p>[1] &nbsp;<a href="http://89.208.116.11/ftp/pub/CNU550pro/index.html)">http://89.208.116.11/ftp/pub/CNU550pro/index.html)</a></p><p>[2] &nbsp;<a href="http://www.it-simple.ru/?p=2250">http://www.it-simple.ru/?p=2250</a></p>]]></description>
</item>
</channel>
</rss>