Results 1 to 1 of 1

Thread: Пошаговая инструкция для новичков именно в Linux

  1. #1

    Post Пошаговая инструкция для новичков именно в Linux

    2Модератор:
    прошу не пинать ногами, решил поделиться пошаговой инструкцией для людей, которые понимают что-то в администрировании, но для которых Linux пока еще все-таки скорее на "вы", чем "на ты", а потребность с ним разобраться все-таки возникает. Написать решил из-за того, что сам потратил несколько дней на этом форуме, чтобы понять, какой минимум шагов необходимо предпринять, чтобы иметь возможность удобно "ковырять" всеми нами любимую железяку. У меня wl500gPv2, но я постараюсь "разжевать" каждый шаг с тем, чтобы люди не тупо повторяли инструкцию, а понимали, зачем каждый шаг нужен. Поскольку сам в Linux новичок, прошу "старших товарищей" поправлять.

    Итак:
    Цели:
    1. Хочу "видеть" файловую систему роутера в удобном и привычном виде (для меня это интерфейс Far Manager'а). Фанаты Total Commander'а найдут на этом форуме инструкцию по доступу по SFTP из него.
    2. Хочу иметь возможность копировать файлы туда-обратно, опять же через Far.
    3. Пока не хочу вставлять в роутер флешку/usb диск и нагромождать в него кучу непонятного/ненужного мне (пока) ПО. Т.е. все должно быть по-минимуму (пока). Фанатам point'n'go - сюда: http://rung.narod.ru/
    4. Хочу понять, как это все работает и устроено
    5. Хочу сам разобраться в скриптах, iptables, демонах, шедулере (crond) и т.п.

    Первые шаги:

    1. Предполагается, что в роутере стоит прошивка "от энтузиастов" http://code.google.com/p/wl500g/. Желательно - последняя. Крайне желательно - 'rtn', а не 'd', т.к. ядро 2.6 все-таки поинтересней, чем 2.4, во всех смыслах. К тому же поддержка 2.4, как я понимаю, скоро умрет.

    2. Поскольку для доступа к роутеру нужен будет и telnet, и ssh, через web-морду настраиваем разрешения для этих ценных сервисов в пункте System Setup - Servicies:

    Enable telnet access: Yes
    Enable SSH access: Yes, lan only (для начала вполне достаточно)
    Disable SSH password login: No (для параноиков: при выставлении в yes авторизация в SSH, точнее, в демоне dropbear, который отвечает за SSH, авторизация будет проходить только по паре открытый-закрытый ключ. Пусть меня поправят, но мне кажется, что сначала ключи в роутере должны как-то появиться. Можно, конечно, через telnet, но, как достать оттуда открытый ключ?...)

    3. Далее пояснение: обязательно требуется настроенный доступ к интернет, иначе доп. пакеты придется носить на роутер через флешку, что нудно и долго. Т.е. к данному шагу роутер уже должен иметь доступ в Сеть, неважно как - хоть через другой роутер, хоть как. Но dns-resolving и доступ в Сеть должны быть.

    4. Для начала заходим на роутер по telnet. Нам потребуется выполнить минимальный набор команд, чтобы "наступило дальнейшее счастье". Спец. замечание для фанатов Windows 7/Vista: по умолчанию telnet client в системе отсутствует, добавьте его из панели управления-программы и компоненты-компоненты Windows-бла-бла-бла (нету 7ки под рукой, чтобы написать).

    5. Итак:
    telnet my.router (или что там у вас - 192.168.1.1, etc.)
    логин, пароль.

    Вы оказываетесь в ash shell: http://linux.about.com/library/cmd/blcmdl1_ash.htm, если я правильно понял из описания busybox'а.

    этот шелл все-таки поинтересней cmd от windows, но для продвинутых добавлю: cmd "ногами торчит" из unix'а, так что общие вещи все-таки есть и их больше, чем может показаться на первый взгляд.

    6.
    Code:
     mkdir /tmp/local/opt
     mount /tmp/local/opt /opt
    поясню: в роутере используется "псевдо-файловая-система", которая создается в памяти роутера каждый раз при его включении путем разворачивания одного большого архива, хранящегося в сжатом виде на флеш-памяти роутера, наряду с загрузчиком (boot loader'ом) и содержимым nvram (по-моему, так, подробности на форуме есть). За это отвечает boot loader.

    Поскольку нам необходимо обеспечить две вещи: сохранность наших изменений после перезагрузки и совместимость с пакетами (точнее, не совместимость, а удовлетворение их требований к установке), нужно, чтобы каталог /opt корня стал writable. Две вышеуказанные команды это и делают. Здесь и далее: за подробностями - в гугл/яндекс/форум и т.п. Эти команды - некое отдаленное подобие subst в windows.

    7. Далее: то, что в windows называется "дистрибутив" в unix называется package - пакет. Примерно такое соответствие (гуру, не пинайте )) Поэтому установка чего-то на роутер - это, как правило, установка package. Они находятся в репозитории - это сервер в сети, куда добрые люди уже положили нужные пакеты. Откуда они там берутся - отдельная песня, пока для простоты сделаем некую аналогию с windows update.
    существует "точка отсчета" - есть пакет, предназначенный для установки других пакетов и управления уже установленными. Т.е. это некий аналог windows installer - без него - никуда. А минимальный вариант этого пакета - простой shell-скрипт ipkg.sh, который заботливо уже лежит в прошивке, как и dropbear - демон (в терминологии windows - сервис), предоставляющий доступ по SSH (secure shell - http://en.wikipedia.org/wiki/Secure_Shell - некий аналог telnet, но secure).

    Но! В прошивке нет поддержки SFTP (secure FTP, а без него "ходить" по файловой ситеме роутера можно только с помощью команд самого shell, что отправляет нас в далекие времена, когда альтернативы командной строке не было...)

    Еще замечание: пакеты имеют зависимости от других пакетов, и "взрослый" менеджер пакетов в состоянии самостоятельно определять, что еще нужно доустановить, чтобы затребованный пакет заработал. Все это берется в репозитории, в т.ч. и информация о зависимостях (dependencies).

    Резюме: нам нужен пакет - менеджер пакетов, и пакет, который пустит нас по SFTP - это openssh-sftp-server.

    Поэтому:
    Ставим менеджер пакетов:
    Code:
     ipkg.sh update #обновление самого скрипта
     ipkg.sh install ipkg-opt #это установка взрослого менеджера пакетов
     ipkg update #обновление этого менеджера - перестраховка
     ipkg upgrade #обновление этого менеджера - перестраховка
    Теперь ставим openssh-sftp-server:
    Code:
    ipkg install openssh-sftp-server
    Теперь сделаем так, чтобы всегда при старте монтировался /tmp/local/opt:

    post-boot, если есть, выполняется каждый раз после (пере)загрузки роутера, код ниже проверяет, есть ли этот файл, и, если есть дописывает строчку в существующий, если нет, то создает. Не проверяется наличие строчки в этом файле - желающие подстраховаться идут в поиск команды grep.

    Code:
     if [ ! -f "/usr/local/sbin/post-boot" ]; then
      mkdir -p /usr/local/sbin/
      echo "#!/bin/sh" >> /usr/local/sbin/post-boot
     fi
     echo "mount /tmp/local/opt /opt" >> /usr/local/sbin/post-boot
     chmod +x /usr/local/sbin/post-boot #помечаем post-boot как исполняемый
    Финал (за пояснениями - в поиск по форуму):
    Code:
    flashfs save && flashfs commit && flashfs enable && reboot
    Далее самое интересное:

    Берем плагин для фара: WinSCP здесь: http://winscp.net/eng/download.php. Ставим. Под Far2 тоже работает. Создаем подключение, указываем логин и пароль, соглашаемся на приглашение о неизвестных ключах, заходим на роутер и наслаждаемся возможностью бродить по нему, как по диску, копировать файлы туда/обратно, редактировать их, просматривать и т.п. Рекомендую включить опцию в настройках плагина WinScp - Transfer settings - Transfer mode - binary, чтобы при сравнении панелей не вылезали разные размеры файлов из-за автоматической трансляции последовательностей lf / cr-lf между unix и windows. Редактор фара прекрасно понимает только lf в unix-shell скриптах.

    Результат:
    Теперь можно быстро-просто-удобно править скрипты в самом роутере (заходя туда телнетом только для
    Code:
    flashfs save && flashfs commit && flashfs enable && reboot
    .
    Если стоит другой must-have плагин для фара - colorer, то редактирование становится просто сказкой. При этом мы ничего к роутеру не цепляли - ни флешки, ни диска. Для многих вещей этого вполне достаточно. Не стоит пытаться ставить в роутер mc - на флеше роутера для него не хватит места, т.к. он потащит за собой кучу зависимостей, и вы долго будете пытаться понять, что место просто кончилось. Все "тяжелые" вещи уже требуют внешнего накопителя.

    Мне, например, потребовалось сделать в роутере multi-wan, и больше ничего. ради набора скриптов общим размером около 60К цеплять в роутер внешний флеш и тащить всю кучу из раздела "для чайников" показалось сущим идиотизмом. При этом, поскольку скрипты старые и поддержки l2tp в них не было (взяты на этом форуме http://wl500g.info/showpost.php?p=35225&postcount=1), нужно было иметь возможность их быстро и удобно смотреть и править, ради чего все, собственно изначально и затевалось

    Скриншоты о проделанной работе:
    Attached Images Attached Images    
    Last edited by DfDf; 06-10-2011 at 00:00.

Similar Threads

  1. Инструкция по установке и настройке aMule
    By Iskan Der in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 59
    Last Post: 28-04-2013, 11:51
  2. Подключение USB HDD для очень очень новичков
    By NinJah in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 257
    Last Post: 30-01-2013, 06:42
  3. Инструкция по настройке роутера ASUS с нуля
    By ryzhov_al in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 12
    Last Post: 22-10-2012, 10:29
  4. Инструкция по настройке роутера WL-500gP с нуля
    By OlegI in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 1263
    Last Post: 10-02-2011, 21:25
  5. Для новичков. Читать обязательно.
    By vectorm in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 0
    Last Post: 01-10-2010, 10:55

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •