HTTP Сервер на микротике

Инструкция взята отсюда Хостим персональный сайт на роутере и переделана для использования uhttpd. Основное назначение сервера на микротике - уменьшить нагрузку на сервер во время начала учётного периода (когда много пользователей с негативным депозитом).

Установка OpenWRT на микротик

  • Скачиваем образ OpenWRT 12.09 mr-mips
  • Закидаем на Mikrotik (Удобнее всего, через winbox (Files))
  • Импортируем образ
/metarouter import-image file-name=openwrt-mr-mips-rootfs-31411-basic.tar.gz memory=24 enabled=yes name=mr1
  • Создаём сетевой интерфейс (Здесь, возможно, придётся поменять значение для dynamic-bridge, подставьте название своего бриджа)
/metarouter interface add virtual-machine=mr1 type=dynamic dynamic-bridge=bridge

Настройка OpenWRT

  • Входим в консоль нашего MetaROUTER


  • Проверяем настройки сети /etc/config/network (если нужен статический адрес, смотрим сюда OpenWRT: Настройка сети)
vi /etc/config/network

config interface lan
option ifname eth0
option proto dhcp
  • Добавляем службу сети в автозагрузку и перезапускаем
  /etc/init.d/network restart
  /etc/init.d/network enable
  • Проверяем, что у нас теперь есть IP адрес
root@metarouter:/# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx  
          inet addr:192.168.88.254  Bcast:192.168.88.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:70 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:3980 (3.8 KiB)  TX bytes:1227 (1.1 KiB)
  • Закрепляем адрес за устройством (Mikrotik > IP > DHCP Server > Leases > Make static)

Настройка uHTTPd

  • Редактируем конфигурационный файл пакет-менеджера для обновления репозитория и установки необходимых программ:
vi /etc/opkg.conf

src/gz snapshots http://openwrt.wk.cz/trunk/mr-mips/packages
dest root /
dest ram /tmp
lists_dir ext /var/opkg-lists
option overlay_root /overlay
  • Обновляем список пакетов
opkg update
  • Устанавливаем uhtppd
opkg install uhttpd
  • Правим конфигурацию /etc/config/uhttpd
config uhttpd main
        # HTTP listen addresses, multiple allowed
        list listen_http        0.0.0.0:8081
        # Server document root            
        option home             /www
        option error_page       /
        option rfc1918_filter   1               
        option network_timeout  30         
        option tcp_keepalive    1                  
  • Прописываем в автозагрузку и включаем
/etc/init.d/uhttpd enable
/etc/init.d/uhttpd start

Установка заглушки

  • Заполняем страничку /www/index.html
  vi /www/index.html
  
  <h1>На Вашем счету нет денег. Доступ к интернету приостановлен</h1>
  • Проверяем работу, открываем в браузере страницу. http://192.168.88.254:8081/ (адрес нужно подставить свой, вы должны быть в той же сети)
/ip firewall nat add chain=dstnat action=dst-nat to-addresses=192.168.88.254 to-ports=8081 protocol=tcp dst-address=0.0.0.0/0 src-address-list=negative dst-port=80