Monday, February 4, 2019

Все что нужно и можно на OpenWRT

 Восстановление настроек openwrt в исходное состояние и failsafe mode.

Previous Entry Поделиться Next Entry
Это можно сделать 3 командами.
Командаособенности
firstbootхотя она описана как команда для failsafe режима, но работает и в обычном режиме
rm -rf /overlay/*
mtd -r erase rootfs_dataвызывает перезагрузку.

После чего выполнить перезагрузку (команда reboot).

Если войти под суперпользователем из сети в консоль роутера невозможно из-за утраты пароля или сбоя настроек, то тогда надо запустить режим защиты от сбоев.


Это делается 2 способами.


1. Через последовательный порт.
Сначала производятся соединения как описывал в посте про перепрошивку.
Потом включить роутер.
Когда в эмуляторе терминала появится приглашение нажать f для входа в аварийный режим.
[ 1.180000] 8021q: 802.1Q VLAN Support v1.8
[ 1.190000] VFS: Mounted root (squashfs filesystem) readonly on device 31:2.
[ 1.200000] Freeing unused kernel memory: 212k freed
- preinit -
Press the [f] key and hit [enter] to enter failsafe mode

Нажать и <ввод>:)
Тогда появится надпись.

f[ 6.160000] eth0: link up (100Mbps/Full duplex)

- failsafe -


BusyBox v1.19.4 (2013-12-08 03:47:05 MSK) built-in shell (ash)
Enter 'help' for a list of built-in commands.

 _______                     ________        __
|       |.-----.-----.-----.|  |  |  |.----.|  |_
|   -   ||  _  |  -__|     ||  |  |  ||
   _||   _|
|_______||   __|_____|__|__||________||__|  |____|
         |__| W I R E L E S S F R E E D O M
-----------------------------------------------------
ATTITUDE ADJUSTMENT (Attitude Adjustment, r38863)
-----------------------------------------------------
* 1/4 oz Vodka Pour all ingredients into mixing
* 1/4 oz Gin tin with ice, strain into glass.
* 1/4 oz Amaretto
* 1/4 oz Triple sec
* 1/4 oz Peach schnapps
* 1/4 oz Sour mix
* 1 splash Cranberry juice
-----------------------------------------------------
root@(none):/#



2. При помощи манипулирования кнопками.
2.1. Сначала установить ip адрес на компьютере в 192.168.1.2.
2.2. Подать на девайс питание, а когда начнет мигать светодиод WPS (ближайший к единственной кнопке на плате tl-mr3020), нажать на кнопку WPS (единственная кнопка на плате, если роутор не разобран, то значит надо нажимать на прозрачный световод WPS).
2.3. Теперь можно подключиться к консоли роутора используя протокол telnet по адресу 192.168.1.1 из PuTTY или командной строки (telnet 192.168.1.1).

=== IMPORTANT ============================
Use 'passwd' to set your login password
this will disable telnet and enable SSH
------------------------------------------


BusyBox v1.19.4 (2013-12-08 03:47:05 MSK) built-in shell (ash)
Enter 'help' for a list of built-in commands.

 _______                     ________        __
|       |.-----.-----.-----.|  |  |  |.----.|  |_
|   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
|_______||   __|_____|__|__||________||__|  |____|
         |__| W I R E L E S S F R E E D O M
-----------------------------------------------------
ATTITUDE ADJUSTMENT (Attitude Adjustment, r38863)
-----------------------------------------------------
* 1/4 oz Vodka Pour all ingredients into mixing
* 1/4 oz Gin tin with ice, strain into glass.
* 1/4 oz Amaretto
* 1/4 oz Triple sec
* 1/4 oz Peach schnapps
* 1/4 oz Sour mix
* 1 splash Cranberry juice
-----------------------------------------------------
root@(none):/#


Теперь маршрутизатор в безопасном режиме.

Из этого же режима можно сбросить пароль root командой "mount_root; passwd"

root@(none):/# mount_root; passwd
[ 23.890000] JFFS2 notice: (451) jffs2_build_xattr_subsystem: complete buildin
g xattr subsystem, 1 of xdatum (0 unchecked, 0 orphan) and 10 of xref (0 dead, 2
orphan) found.
switching to jffs2
Changing password for root
New password:
Bad password: too short
Retype password:
Password for root changed by root
root@(none):/#


Перезагружается устройство из failsafe mode командой "reboot -f".
root@(none):/# reboot -f
[ 106.580000] Removing MTD device #3 (rootfs_data) with use count 1
[ 106.600000] Res

U-Boot 1.1.4 (Mar 20 2012 - 11:37:54)

AP121 (ar9330) U-boot
<....>

Корневая файловая система на внешнем устройстве (extroot)

Для многих роутеров существует существенное ограниченное в количестве дискового пространства для хранения файлов и данных на встроенных устройствах хранения (встроенная flash память). Но в тоже время роутеры могут быть оборудованы портами USB или SATA что позволяет подключить к ним внешние устройства хранения то как USB flash или USB HDD диски. В более экзотических случаях могут быть подключены даже mini PCI-E или сетевые диски. Подключение подобных устройств позволяет расширить "дисковую" память роутера в том числе и его корневую файловую систему для хранения как дополнительного программного обеспечения так и дополнительных настроек. При использовании механизма extroot в OpenWRT, вы можете расширить емкость вашей корневой файловой системы дополнительного устройства хранения данных. Переключение ли использование внешнего устройства как корневой файловой системы определяется процессом загрузки OpenWRT. Существует несколько механизмов создание внешней корневой файловой системы. Чтобы понять все технические детали OpenWRT extroot, крайне необходимо, прочитать extroot.theory. Данная статья объясняет, как настроить extroot в OpenWR.

Возможные альтернативы внешней корневой файловой системы

Существует несколько вариантов для построения/подключения устройств с внешней корневой файловой системой. Возможны следующие базовые варианты:
  1. Конфигурирование вашего загрузчика bootloader для непосредственной загрузки с внешнего USB устройства. Не все загрузчики могут иметь такую функцию.
    • Популярные загрузчики такие как U-Boot или RedBoot support different file systems поддерживают такой функционал, но требуют драйвера для конкретной реализации аппаратуры!
  2. Конфигурирование вашего загрузчика для загрузки по сети network →netboot. Подобную опцию имею еще меньше загрузчиков!
  3. Создание установки что бы opkg был в состоянии устанавливать пакет еще где то в файловой системе OpenWRT →Installation destinations. Но обеспечение установки пакетов OPKG в корне намного удобнее, так как все файлы устанавливаются в стандартных местах файловой системы, в которых ОС ожидает их найти.
  4. Использование kexec. Что может потребовать очень специфические настройки в зависимости от устройства.

Прежде чем начать...

  1. Прочитайте статью extroot.theory для лучшего понимания технологии внешней корневой файловой системы. Различия между двумя основными вариантами: pivot overlay and pivot root.
  2. Для различных версий OpenWRT конфигурации и опции будут также различны или могут отсутствовать.Инструкция ниже описывает процедуры для версий OpenWRT выше 10. Для версий ниже 10 возможен только вариант pivot overlay, но не pivot root.
    • Примечание русского переводчика: переводится секция только для OpenWrt 'Barrier Breaker' (trunk)
  3. For different OpenWrt versions extroot configuration and features differ. The sections below provide separate instructions for OpenWrt 10 and higher. Notably, in OpenWrt 10 (Backfire) you can only use the pivot overlay variant, not pivot root.
  4. Функциональность extroot еще разрабатывается т.е. functionality is Work-in-Progress, поэтому обязательно смотрите статьи об ошибках Troubleshooting и примечания Notes в процессе подготовки и далее в процессе установки и настройки!
Если по некоторым причинам extroot сбоит при загрузке, то обычная конфигурация загружается из раздела JFFS2 из основной flash памяти. Вы можете скопировать старые настройки от туда для их последующего изменения. Подобная конфигурация несет некоторый риск, для примера конфигурация SSH может оказаться незащищенной и даже доступной из Интернета. Т.е. вы должны убедиться, что система находится в безопасности и защищена перед установкой extroot. Так же любые изменения, внесенные в сетевое окружение, должны быть совместимы с безопасностью в исходной конфигурации JFFS2.

Подготовка

Вы должны смонтировать файловую систему куда будут копироваться настройки и корень.
  • Для устройств USB , смотрите usb.essentials а так же usb.storage для устройств хранения USB.
  • Так же в варианты SATA sata.essentials, IDE(PATA) ide.essentials или cf.essentials для других устройств.
  • Вариант Mounting Filesystems для монтирования удаленной файловой системы через сеть.
  • Смотрите Storage для общей информации о конфигурации устройств хранения.
Убедитесь что ваше устройство смонтирована в режиме read/write и на него можно записывать данные. Для примера смонтируйте в ручном режиме раздел на USB диске /dev/sda:
  mount /dev/sda1 /mnt/sda1
Вы должны проверить проверить что у вас все успешно подключено запустив mount или df. Так же вы может записать файл и просчитать его непосрсдственно в/из /mnt/sda1.

OpenWrt 12.09 'Attitude Adjustment'

Примечание русского переводчика: данный раздел не переводился.
For OpenWrt 12.09, the second extroot variant pivot root is added. Decide whether you want to pivot /overlay (recommended) or to pivot / (entire root)

Required Packages

  • block-mount
This is the only required extroot package for OpenWrt 12.09, see block_mount.

Installation

After preparing your storage device and its file system, installation proceeds as follows. First the required packages are installed. Then the existing files from the current JFFS2 overlay partition on flash are copied to the new storage device. Then the system is configured using fstab for activating extroot at boot.

Install packages

opkg update
opkg install block-mount
Also opkg install any filesystem or usb packages you need

Duplicate data

Copy necessary files from flash to the new root partition:
  1. For pivot overlay you can either use an empty new rootfs OR copy the contents of the current overlay (JFFS2) to the new rootfs (assuming the filesystem for the new external rootfs is mounted on /mnt/sda1):
    tar -C /overlay -cvf - . | tar -C /mnt/sda1 -xf -
  2. For pivot root (only possible as of r26109!) you must make sure to have a complete root filesystem on the external rootfs device. One possible way to get such a system (assuming the filesystem for the new external rootfs is mounted on /mnt/sda1) is to issue
    mkdir -p /tmp/cproot
    mount --bind / /tmp/cproot
    tar -C /tmp/cproot -cvf - . | tar -C /mnt/sda1 -x
    umount /tmp/cproot

Configuration

The configuration of extroot is very simple and is done entirely in /etc/config/fstab.

Using username "root".

Спасибо andr128 :

Очень полезно подключать внешнюю флэшку не только с целью расширить память для установки программ, но и для восстановления работы роутера при неправильной настройки сети. Когда к роутеру не возможно достучаться. Все глобальные настройки сети лучше производить при подключенной внешней флэшке. В случае не удачи просто вынимаем и перегружаемся. После загрузки с внутр. флэш вставляем внешнюю - редактируем на примонтированной флэшке файлы. Снова перезагружаемся уже не вынимая флэшку.


BusyBox v1.19.4 (2012-11-18 02:19:39 UTC) built-in shell (ash)
Enter 'help' for a list of built-in commands.

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 ATTITUDE ADJUSTMENT (12.09-rc1, r34185)
 -----------------------------------------------------
  * 1/4 oz Vodka      Pour all ingredients into mixing
  * 1/4 oz Gin        tin with ice, strain into glass.
  * 1/4 oz Amaretto
  * 1/4 oz Triple sec
  * 1/4 oz Peach schnapps
  * 1/4 oz Sour mix
  * 1 splash Cranberry juice
 -----------------------------------------------------
root@Rover_WI_FI:~# mount
rootfs on / type rootfs (rw)
/dev/root on /rom type squashfs (ro,relatime)
proc on /proc type proc (rw,noatime)
sysfs on /sys type sysfs (rw,noatime)
tmpfs on /tmp type tmpfs (rw,nosuid,nodev,noatime,size=30856k)
tmpfs on /dev type tmpfs (rw,noatime,size=512k,mode=755)
devpts on /dev/pts type devpts (rw,noatime,mode=600)
/dev/mtdblock4 on /overlay type jffs2 (rw,noatime)
overlayfs:/overlay on / type overlayfs (rw,relatime,lowerdir=/,upperdir=/overlay                                                                  )
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
none on /proc/bus/usb type usbfs (rw,relatime)
/dev/sda1 on /tmp/overlay-disabled type ext4 (rw,relatime,user_xattr,barrier=1,d                                                                  ata=ordered)
root@Rover_WI_FI:~# df -h
Filesystem                Size      Used Available Use% Mounted on
rootfs                    3.3M      2.7M    588.0K  82% /
/dev/root                 2.0M      2.0M         0 100% /rom
tmpfs                    30.1M    160.0K     30.0M   1% /tmp
tmpfs                   512.0K         0    512.0K   0% /dev
/dev/mtdblock4            3.3M      2.7M    588.0K  82% /overlay
overlayfs:/overlay        3.3M      2.7M    588.0K  82% /
/dev/sda1               993.6M     55.5M    888.3M   6% /tmp/overlay-disabled
___________________________________________________________
Замечен подключенный и блокированный overlay - Там и есть конфиги !

В WinSCP или в Putty и MC /tmp/overlay-disabled/etc переход и восстановление заранее продублированных файлов конфигурации, или копирование с работающего etc/conf в корне...

Prerequisites

Вы должны смонтировать файловую систему, на которой наложение будет скопирован в.
  • Для поддержки USB, выполните usb.essentials
  • Для поддержки хранения USB, выполните usb.storage. См хранение для общей информации о разбиении, форматирование и монтаж устройств хранения данных.
  • В качестве альтернативы, следуйте Монтаж файловых смонтировать файловую систему дистанционного сети
Убедитесь, что вы можете смонтировать и чтения / записи на внешнем устройстве хранения данных. Например, проверить, если вы можете читать / писать из вручную смонтированной файловой системы на диске USB распределяют на /dev/sda1 (адаптировать sda1 к вашим реальным потребностям):
  mount /dev/sda1 /mnt/sda1
You should check if the mount was succesful by running mount or df. Now check if you can write to /mnt/sda1 by writing a file to it and reading it back.
Вы должны проверить, что монтирование  была успешно запуском mount или df.. Теперь проверьте, если вы можете написать /mnt/sda1, написав файл  и прочитав его обратно. 

Chaos Calmer

As described in extroot theory you can use pivot-overlay or pivot-root. This section will only cover pivot-overlay which is the recommended extroot implementation. If you really want pivot-root, check the Barrier Breaker section.

Prerequisites

  • block-mount
  • kmod-fs-ext4 or kmod-fs-[filesystem of choice]
  • kmod-usb-storage-extras
    opkg update ; opkg install block-mount kmod-fs-ext4 kmod-usb-storage-extras

Steps

  1. Format and partition drive the way you want, either using a Linux Live CD or via uci (it's recommended to use first partition for the root overlay, second partition for swap (if you want swap), and then you can add other partitions as you like)
  2. Prepare your external storage root overlay
    mount /dev/sda1 /mnt ; tar -C /overlay -cvf - . | tar -C /mnt -xf - ; umount /mnt
  3. Create an fstab template
    block detect > /etc/config/fstab ; vi /etc/config/fstab
  4. Edit the following in /etc/config/fstab:
    1. Set all enabled '0'  → enabled '1'
    2. Edit option target of your root overlay partition to show /overlay (not overlay, as it will cause broken, duplicate mounts)
    3. Edit option target of your other partition(s) to show whatever mount point(s) you want them to have (make sure to also create the directories those mount points point to)
      You'll end up with an fstab looking something like this:
      config 'global'
              option  anon_swap       '0'
              option  anon_mount      '0'
              option  auto_swap       '1'
              option  auto_mount      '1'
              option  delay_root      '5'
              option  check_fs        '0'
      
      config 'mount'
              option  target  '/overlay'
              option  uuid    'c91232a0-c50a-4eae-adb9-14b4d3ce3de1'
              option  enabled '1'
      
      config 'swap'
              option  uuid    '08b4f0a3-f7ab-4ee1-bde9-55fc2481f355'
              option  enabled '1'
      
      config 'mount'
              option  target  '/data'
              option  uuid    'c1068d91-863b-42e2-bcb2-b35a241b0fe2'
              option  enabled '1'
  5. Reboot the router
  6. Verify that the partitions were mounted properly:
    • via LuCI
      • System - Software should show free space of overlay partition
      • System - Mount Points should show USB partition mounted as overlay
    • via CLI
      • mount should show USB partition mounted as /overlay
        root@OpenWRT:mount
        
        /dev/root           on /rom               type squashfs (ro,relatime)
        proc                on /proc              type proc     (rw,noatime)
        sysfs               on /sys               type sysfs    (rw,noatime)
        tmpfs               on /tmp               type tmpfs    (rw,nosuid,nodev,noatime)
        /dev/ubi0_1         on /overlay           type ubifs    (rw,noatime)
        overlayfs:/overlay  on /                  type overlay  (rw,noatime,lowerdir=/,upperdir=/overlay/upper,workdir=/overlay/work)
        tmpfs               on /dev               type tmpfs    (rw,relatime,size=512k,mode=755)
        devpts              on /dev/pts           type devpts   (rw,relatime,mode=600)
        /dev/sda1           on /overlay           type ext4     (rw,relatime,data=ordered)
        /dev/sda3           on /data              type ext4     (rw,relatime,data=ordered)
        debugfs             on /sys/kernel/debug  type debugfs  (rw,noatime)
        
      • df should show free space available on your /overlay and /data partition
        root@OpenWRT:df
        
        Filesystem           1K-blocks      Used Available Use% Mounted on
        rootfs                   27180      7796     17964  30% /
        /dev/root                 2304      2304         0 100% /rom
        tmpfs                   127668      1468    126200   1% /tmp
        /dev/ubi0_1            1998672      8056   1869376   0% /overlay
        overlayfs:/overlay       27180      7796     17964  30% /
        tmpfs                      512         0       512   0% /dev
        /dev/sda1              1998672      8056   1869376   0% /overlay
        /dev/sda3            242846048    163864 230323224   0% /data
  7. You're done!

Что такое zRam

Не буду углубляться глубоко в теорию, расскажу, как говорится, на пальцах.
Модуль ядра zRam в системах семейства Linux создает виртуальное блочное устройство, что-то вроде жесткого диска, который размещается в оперативной памяти. С ним можно делать что угодно, форматировать, монтировать и так далее. Вот только в отличии от других виртуальных блочных устройств, все данные на ходу сжимаются при записи, а при чтении разжимаются. Причем степень сжатия по оценкам некоторых пользователей — до восьми раз.
Конечно, степень сжатия во многом зависит от типа данных, размещаемых в этом устройстве.
Что там можно разместить? Что угодно, что не жалко потерять при перезагрузке устройства. Например, временные файлы или же не важные логи.
Однако фантазия людей пошла дальше. Раз мы имеем полноценное устройство, то разместим ка мы в нем.. Раздел подкачки!
Именно тот самый swap-раздел.
Что мы получим в итоге? Как уже говорилось в предыдущем пункте, Linux в раздел подкачки пытается скинуть данные, которые редко используются. Вот эти данные мы заставим сжимать и размещать всё в той же оперативной памяти. Причем время на сжатие хоть и требуется, оно всё равно компенсируется с достатком в сравнении с временем записи на физический носитель.
Картина многообещающая, а главное работает. На личном опыте — устройства типа бюджетных нетбуков с 2Гб оперативной, которые используются для периодического Web-серфинга даже при двух десятках открытых вкладках в прожорливом Chromium продолжают спокойно работать, а главное жесткий диск лишний раз не дергают.

zRam в OpenWRT

OpenWRT — операционная система семейства Linux для embedded-устройств. Например, для WiFi-маршрутизаторов или NAS-серверов. В народе её чаще именуют «альтернативная прошивка OpenWRT»
В таком роде устройств практически всегда катастрофически мало оперативной памяти, а прошивка позволяет установить и торрент-качалку и файловой сервер и еще кучу всего.
Тут то zRam опять приходит на помощь, чтобы память оперативную сэкономить:
~# opkg update
~# opkg install zram-swap

Nginx на OpenWrt


Здравствуйте. В этой статье рассказано о том, как установить на роутер с OpenWrt быстрый и надёжный сервер Nginx.

Nginx — это HTTP-сервер, обратный прокси-сервер, почтовый прокси-сервер, а также TCP прокси-сервер общего назначения, написанный российским программистом Игорем Сысоевым. Nginx успешно работает на таких высоконагруженных ресурсах, как Яндекс, Mail.Ru, ВКонтакте и Рамблер.


Если Вы ещё не установили OpenWrt на свой роутер, то для получения подробной инструкции по этому вопросу, можете проследовать вот сюда.


Перейдём сразу к делу. Все операции проводятся на роутере TP-Link TL-MR3020, и так же справедливы для любого устройства под управлением OpenWrt. 


Предполагается, что система перенесена на флешку и свободного места достаточно.

Если у Вас установлен Web-интерфейс Luci и соответственно сервер uhttpd, то его следует перенести на другой порт.
Делается это просто, надо отредактировать файл /etc/config/uhttpd


vi /etc/config/uhttpd

подсказка vi



Замените 80 на 81, сохраните и рестартуйте uhttpd.

/etc/init.d/uhttpd restart

Теперь в вебку будете заходить по адрес:81


Обновляем репозиторий:

opkg update


Если Вы не планируете использовать PHP на своём сайте, то достаточно будет установить только сам сервер. 

Устанавливаем nginx:

opkg install nginx


Переименовываем дефолтный конфигурационный файл /etc/nginx/nginx.conf

mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.old


Создаём свой:

vi /etc/nginx/nginx.conf


И вставляем в него нижеследующие:


user nobody nogroup;
worker_processes  1;


events {
    worker_connections  1024;
}

http {
    include       mime.types;
    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       80; 
        #server_name  localhost;
        charset koi8-r;

        location / {
            root   /www;
            index  index.html index.htm;
        }
    }
}

Это примитивный конфиг, «чтоб заработало».


Создаём в папке /www файл index.html с приветствием )))

touch /www/index.html | echo Hello World! > /www/index.html


Добавляем сервер в автозагрузку и стартуем:

/etc/init.d/nginx enable

/etc/init.d/nginx start



В браузере видим Hello World! 




Если нужен PHP, тогда устанавливаем вот так:

opkg install nginx php5 php5-fastcgi


Останавливаем сервер:

/etc/init.d/nginx stop

На ошибки не обращайте внимание.

Удаляем кнофиг:

rm /etc/nginx/nginx.conf


Создаём новый:

vi /etc/nginx/nginx.conf


И заполняем его вот этим:


user nobody nogroup;
worker_processes  1;
#error_log  logs/error.log;

events {
    worker_connections  1024;
}

http {
        include mime.types;
        index index.php index.html index.htm;
        default_type text/html;

        sendfile on;
        keepalive_timeout 65;
        gzip on;

        gzip_min_length  1k;
        gzip_buffers     4 16k;
        gzip_http_version 1.0;
        gzip_comp_level 2;
        gzip_types       text/plain application/x-javascript text/css application/xml;
        gzip_vary on;
        server {
                listen       80;                
                #server_name  YOUR_SERVER;      
                fastcgi_connect_timeout 300;
                fastcgi_send_timeout 300;
                fastcgi_read_timeout 300;
                fastcgi_buffer_size 32k;
                fastcgi_buffers 4 32k;
                fastcgi_busy_buffers_size 32k;
                fastcgi_temp_file_write_size 32k;
                client_body_timeout 10;
                client_header_timeout 10;
                send_timeout 60;                
                output_buffers 1 32k;
                postpone_output 1460;

                root   /www;    # корневая папка сервера        

                location ~ \.php$ {
                        fastcgi_index  index.php;
                        include        fastcgi_params;
                        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

                        if (-f $request_filename) {
                                # Only throw it at PHP-FPM if the file exists (prevents some PHP exploits)
                                fastcgi_pass    127.0.0.1:1026;     # The upstream determined above
                        }
                }
        }
}

Конфиг с официального сайта.


Открываем файл /etc/php.ini

vi /etc/php.ini


Находим строки и приводим их следующему виду:

doc_root = "/www"
cgi.force_redirect = 1
cgi.redirect_status_env = "yes";


Создаём файл для проверки php:

touch /www/index.php | echo '<?php phpinfo(); phpinfo(INFO_MODULES); ?>' > /www/index.php


Cервер в автозагрузку и стартуем:

/etc/init.d/nginx enable/etc/init.d/nginx start/etc/init.d/php5-fastcgi enable/etc/init.d/php5-fastcgi start



Переходим в браузер и видим информацию о PHP.




На этом всё. Копируйте Ваш сайт в папку /www и пользуйтесь.


Сайт nginx.


OpenVPN - OpenWRT


Установка и настройка.




Работа с OpenVPN на «большом» компьютере описана здесь...


Устанавливаем:

opkg update

opkg install openvpn openvpn-easy-rsa


Переходим в папку /etc/easy-rsa для создания ключей:

cd /etc/easy-rsa


Очищаем от старых ключей (если таковые были):

clean-all



Откроем файл с переменными для создания ключей:

nano /etc/easy-rsa/vars


В самом конце перечислены значения, которые будут внесены в сертификат. Можно всё оставить как есть (на работу это не влияет), а можно вписать свои, например вот так:

export KEY_COUNTRY="RU"
export KEY_PROVINCE="RU"
export KEY_CITY="SPb"
export KEY_ORG="stD"
export KEY_EMAIL="istarik@mail.ru"



Создаём: 

Сертификат, на все вопросы отвечайте нажатием Enter:

build-ca


Файл с параметрами протокола Диффи-Хеллмана, это займёт пару минут:

build-dh


Ключи для сервера, надо будет несколько раз нажать Enter и два раза y:

build-key-server server


Ключи для клиента:

build-key client1


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

build-key client2

И так далее… Если в дальнейшем появятся ещё клиенты, то просто выполните эту команду.

Если что-то нажали не так, то сделайте clean-all и создайте ключи заново.

TLS-ключ:

openvpn --genkey --secret /etc/openvpn/ta.key


Переходим в папку с создаными ключами:

cd /etc/easy-rsa/keys


И копируем ключи для сервера в папку /etc/openvpn/

cp ca.crt ca.key dh1024.pem server.crt server.key /etc/openvpn/


Бекапим дефолтный конфиг openvpn:

mv /etc/config/openvpn /etc/config/openvpn.bak


Создаём свой:

nano /etc/config/openvpn


И вносим в него следующие строки…

package openvpn

config openvpn custom_config# Set to 1 to enable this instance:
option enable 1
# Include OpenVPN configuration
option config /etc/openvpn/server.conf

Сохраняем.

Теперь перейдём в папку /etc/openvpn

cd /etc/openvpn


И создадим в ней конфиг сервера server.conf

nano /etc/openvpn/server.conf


Наполним его этим:

port 1194

proto udp

dev tun

topology subnet

server 10.25.0.0 255.255.255.0

keepalive 10 30

comp-lzo

persist-key
persist-tun

ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
dh /etc/openvpn/dh1024.pem

tls-auth /etc/openvpn/ta.key 0 

log-append /var/log/openvpn.log
#status /var/log/openvpn.status
#client-to-client

verb 3 

Сервер OpenVPN получит адрес 10.25.0.1, а клиенты будут получать адреса 10.25.0.2 и т.д.


Описание команд и параметров.


Откроем конфиг файрвола:

nano /etc/config/firewall


И после опции:

config include
        option path /etc/firewall.user


Добавим правило:

config 'rule'
        option 'target' 'ACCEPT'
        option 'name' 'VPN'
        option 'src' 'wan'
        option 'proto' 'udp'
        option 'dest_port' '1194'


Получится вот так:


...
# include a file with users custom iptables rules
config include
        option path /etc/firewall.user

config 'rule'
        option 'target' 'ACCEPT'
        option 'name' 'VPN'
        option 'src' 'wan'
        option 'proto' 'udp'
        option 'dest_port' '1194'
...

Сохраняем — закрываем...


Открываем файл /etc/firewall.user

nano /etc/firewall.user


И дополняем его этим:

iptables -t nat -A prerouting_wan -p udp --dport 1194 -j ACCEPT
iptables -A input_wan -p udp --dport 1194 -j ACCEPT

iptables -I INPUT -i tun+ -j ACCEPT
iptables -I FORWARD -i tun+ -j ACCEPT
iptables -I OUTPUT -o tun+ -j ACCEPT
iptables -I FORWARD -o tun+ -j ACCEPT

iptables -t nat -A POSTROUTING -s 10.25.0.0/24 -o br-lan -j MASQUERADE

Где br-lan — интерфей смотрящий в интернет. Проверить можно командой ifconfig

Перегрузите роутер. 

reboot



Запустим сервер:

/etc/init.d/openvpn restart

Ничего не должно отображаться. 

Смотрим лог:

tail -f /var/log/openvpn.log


Должна предстать такая картина:


Работает.

Ещё вот так можно посмотреть…

netstat -rn






Осталось дело за клиентами.


Настройку клиентов для различных ОС я описал в статье про VPN на большом компьютере, поэтому не стал дублировать эту инфу здесь и предлагаю вам перейти сюда.

Названия файлов ключей для клиентов совпадают в обоих статьях, так что никакого дискомфорта Вы не испытаете...)))


https://wiki.archlinux.org/index.php/Tor_ док по TOR на ARCH