Интересное

Сообщение об ошибке

Warning: ini_set(): A session is active. You cannot change the session module's ini settings at this time in drupal_environment_initialize() (line 684 of /home/www/nixtalk.com/includes/bootstrap.inc).

Превращаем Asus WL500gp/Dir320 в вебсервер Ч.1

Опубликовано сб, 12/21/2013 - 18:25 пользователем Demontager

Превращаем Asus WL500gp/Dir320 в вебсервер Ч.1
Данная инструкция пригодится тем, кто собирается устанавливать прикладные приложения на роутеры с серии Asus WL 500 Premium V1/V2, Dir 320, RTN-16 и другие. Благодаря небольшим манипуляциям эти железки можно превратить в почти полноценную Linux машину.
Конечно, для того чтобы устанавливать программы на роутер, необходимо для начала прошить его кастомной прошивкой, рекомендую для этих целей брать прошивку от энтузиастов, основанную на прошивке "от Олега" с доработками и твиками.
Скачать ее можно у vampik-а здесь. Устаналивается прошивка с вебинтерфейса роутера в пару кликов, поэтому детально разбирать нет смысла.
Для хранения программ потребуется диск c USB интерфейсом или флешка как минимум 1 Гб или более, в зависимости от того, что вы собираетесь туда ставить.
Разберем пошагово подготовку роутера и установку приложений.

1. Включаем в вебинтерфейсе роутера ssh доступ и логимся через консоль.
Вставляем флешку и смотрим под каким именем она определилась, затем форматируем ее.
Скорей всего это будет /dev/sda

  1. fdisk -l
  2. fdisk /dev/sda

Делаем два раздела, один под данные, другой под swap

  1. Command (m for help): n
  2. Command action
  3. e extended
  4. p primary partition (1-4)
  5. p
  6. Partition number (1-4): 1
  7. First cylinder (1-621, default 1)
  8. Using default value 1
  9. Last cylinder or +size or +sizeM or +sizeK (1-621, default 621): +500M

и таким же образом делаем другой раздел
в конце нажимаем w, сделанные изменения запишуться на диск
После этого создадуться такие разделы

  1. /dev/discs/disca/part1
  2. /dev/discs/disca/part2

2. Форматируем раздел для данных в ext3 и активируем swap

  1. mke2fs -j /dev/discs/disca/part1
  2. mkswap /dev/discs/disca/part2
  3. swapon /dev/discs/disca/part2

3. Монтируем раздел для данных в каталог /opt

  1. mount /dev/discs/disca/part1 /opt

4. Делаем автомонтирование флешки

  1. touch /etc/fstab

вставляем скрипт автомонтирования

  1. vi /etc/fstab
  2.  
  3.  
  4. /dev/discs/disca/part1 /opt ext3 rw,noatime 1 1

Создаем временный файл откуда будут парсится настройки

  1. touch /tmp/local/.files
  2. echo "/etc/fstab" >> /tmp/local/.files

5. Создаем скрипты автозапуска и делаем их исполняемыми

  1. mkdir /tmp/local/sbin
  2. touch /tmp/local/sbin/pre-mount (скрипт вызывающийся перед монтированием)
  3. touch /tmp/local/sbin/post-mount (скрипт вызывающийся после монтирования)
  4. touch /tmp/local/sbin/pre-shutdown (скрипт вызывающийся перед выключении/перезагрузке)
  5. cd /tmp/local/sbin
  6. chmod +x /usr/local/sbin/*

6. В /usr/local/sbin/post-mount добавляем автомонтирование swap

  1. vi /usr/local/sbin/post-mount
  2.  
  3. #!/bin/sh
  4. swapon /dev/discs/disca/part2

7. Для целостности данных прописываем cкрипт проверки раздела с данными

  1. vi /tmp/local/sbin/pre-mount
  2.  
  3. #!/bin/sh
  4. e2fsck -f -y -v /dev/discs/disca/part1

8. Обновим ipkg для установки пакетов из репозитория:

  1. cd /opt
  2. wget http://wl500g-repo.googlecode.com/svn/ipkg/entware_install.sh
  3. sh ./entware_install.sh

Чтобы просмотреть список доступных пакетов и установить для примера Midnight Commander и nano, вводим

  1. opkg list
  2. opkg install mc nano

9. Настраиваем OpenSSH сервер

  1. opkg install openssh-server openssh-sftp-server

Прописываем его автозапуск

  1. vi /tmp/local/sbin/post-mount
  2.  
  3. #!/bin/sh
  4. /opt/etc/init.d/S40sshd

Генерируем ключи для OpenSSH

  1. ssh-keygen -t rsa -f /opt/etc/ssh/ssh_host_rsa_key
  2. ssh-keygen -t dsa -f /opt/etc/ssh/ssh_host_dsa_key

Ставим права на ключи

  1. chmod 0600 /opt/etc/ssh/ssh_host_rsa_key
  2. chmod 0600 /opt/etc/ssh/ssh_host_dsa_key

Прописываем в конфиге ключи

  1. nano /opt/etc/ssh/sshd_config
  2.  
  3. .....
  4.  
  5. HostKey /opt/etc/ssh/ssh_host_rsa_key
  6. HostKey /opt/etc/ssh/ssh_host_dsa_key
  7. .....

Добавляем sshd пользователя в /etc/passwd

  1. vi /etc/passwd
  2.  
  3. sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

Добавляем файл /etc/passwd для автоматического чтения при загрузке

  1. echo "/etc/passwd" >> /tmp/local/.files

Создаем runtime директорию

  1. mkdir /opt/var/empty

Запускаем ssh сервер

  1. /opt/etc/init.d/S40sshd start

10. Сохраняем все проделанные изменения в постоянную память

  1.  
  2. flashfs save && flashfs commit && flashfs enable

Можно сделать reboot и проверить все ли работает как надо

  1. reboot

В следующей части разберем как настроить Вебсервер на базе nginx+Mysql+php5

category_index: 
Поделится: 

Добавить комментарий