

© Onizuka, 2018
Мало кто из конечных пользователей задумывается над тем, что большинство современных сетевых роутеров фактически уже давно представляют собой мини-компьютер. И как правило работает такой компьютер под управлением операционной системы семейства Linux, прошитой в его NVRAM. В общем, если Linux знаком и понятен, то и натворить с такой прошивкой можно всякого-разного. Главное, чтобы в прошивке был открыт доступ по telnet. Проверяется это элементарно в терминале:
telnet <сетевой адрес роутера>
Если соединение удалось (роутер запросил логин и пароль, они обычно совпадают с логином и паролем от веб-интерфейса), то дальше можно получить доступ к хорошо знакомой командной строке. Но вот собственные аппаратные ресурсы роутеров обычно крайне ограничены, и места на собственном системном разделе очень мало. Если есть USB-интерфейс, то проблема решается подключением внешнего накопителя, скорости даже USB 2.0 вполне хватит для комфортной работы – процессор все равно небыстрый, да и памяти мало. Проблема в том, что нам надо, чтобы разделы нашего внешнего накопителя монтировались куда нам надо, а не в каталог по умолчанию, а для этого надо внести исправления в /etc/fstab, который лежит вообще-то в NVRAM. Это возможно, если в прошивке присутствует утилита flashfs, выполняющая прошивку образов из оперативной памяти обратно в NVRAM. Если она есть, и если есть редактор vi (вряд ли его выпилили из прошивки), то можно заняться редактированием fstab:
1 |
vi /etc/fstab |
Для примера можно прописать такие разделы:
1 2 3 4 |
#Device Mountpoint FStype Options Dump Pass# /dev/sda3 none swap sw /dev/sda1 /opt ext3 rw,noatime 1 1 /dev/sda2 /tmp/mnt/disca_2 ext3 rw,noatime 1 1 |
Разумеется, имена блочных устройств в конкретном случае могут оказаться и менее стандартными – в некоторых прошивках это имена вида /dev/discs/disc0a/part1 и т.д., это зависит от конкретной прошивки конкретного роутера, то же касается и точек монтирования. Здесь мы прописали три раздела внешнего диска под своп, /opt и расшариваемый сетевой диск. Параметр noatime при монтировании указан для того, чтобы снизить число обращений к диску, поскольку он у нас заведомо небыстрый.
После проведения любых манипуляций с системным разделом для внесения физических изменений в NVRAM надо выполнить команды
1 |
flashfs save && flashfs commit && reboot |
В некоторых случаях может понадобиться добавить еще
1 |
&& flashfs enabled |
после commit и, естественно, перед reboot.
После подключения внешнего диска мы получили возможность использовать своп (с памятью будет получше) и ставить сторонние пакеты, например можно взгромоздить на роутер любимый mc. Аналогичным образом, если поставить дополнительные пакеты ntfs-3g(если ещё нет в прошивке), curlftpfs и nfs, то в fstab можно прописать монтирование разделов ntfs, а также сетевых ресурсов, подключаемых по FTP и NFS. Это открывает широчайший простор для творчества!
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.