Секреты Ubiqiuti. Часть 1 |
В любой из точек доступа Ubiquiti есть web-скрипт «admin.cgi», который служит для четырёх очень полезных вещей: http://192.168.1.20/admin.cgi
Скрин №1
1. Upload File — используя протокол http, загрузить файл;
2. Chmod — изменить права доступа к файлу;
3. Download File — используя протокол http, скачать файл;
4. Command Line — командная строка.
Что бы правильно их использовать достаточно знать структуру каталогов Linux и изучить документацию к командам Linux, которые есть в прошивках.
1. Рассмотрим команду «Upload File».
Для загрузки какой-либо файла на точку (файла прошивки, либо файла конфигурации rc.poststart), не нужно искать scp-клиент, а достаточно нажеть кнопку «Обзор», выбирать файл и загрузить его на точку. Файл попадает в папку …
Секреты Ubiqiuti. Часть 1|
|
Обзор Ubiquiti AirRouter |
Очень хотелось разглядеть Ubiquiti AirRouter поближе. Поскольку на тест мне его никто не давал, а было интересно, решил купить. Итак, краткий обзор данной модели.
Первым делом привлек внимание дизайн – просто и элегантно, очень приятно смотрится глянцевая поверхность. По комплектации всё как и у обычных роутеров: пять портов RJ-45, кнопка сброса Reset, есть USB-порт, нет антенных входов-выходов. Антенны у Ubiquiti AirRouter расположены внутри, светят они по кругу, поэтому размещать его можно где угодно: на стене, под потолком, или же просто на столе поставить.
Обзор Ubiquiti AirRouter|
|
Обновился реестр НКРС |
|
|
Удаление устройства Mikrotik Routerboard с помощью скрипта |
Для удаления маршрутизатора Mikrotik Routerboard из базы данных, напишем скрипт со соответствующей функцией.
Рис.1. Список устройств Mikrotik Routerboard до удаления.
Скрипт:
id_device = raw_input("Введите ID устройства которое нужно удалить>>> ")
#!/usr/bin/env python
# -*- coding: utf_8 -*-
import MySQLdb
import mysql_db, time
def f_del_device(id_device):
if raw_input("Вы уверенны что хотите удалить устройство? y/n: ")=="y":
cur = mysql_db.db.cursor()
sql = "DELETE FROM devices WHERE id = ‘%s’" % (id_device)
cur.execute(sql)
cur.close()
print "33[31m| Устройство удалено |33[0m"
time.sleep(1)
return()
else:
print "33[31m| Устройство не удалено |33[0m"
time.sleep(1)
return()
f_del_device(id_device)
Разберём скрипт:
Импортируем необходимые модули:
#!/usr/bin/env python
# -*- coding: utf_8 -*-
import MySQLdb
import mysql_db, time
Теперь вызываем функцию raw_input. Она предложит ввести id оборудования, которое нужно удалить. Эти данные будут занесены в переменную id_device.
Рис.2. Вводим id устройства Mikrotik Routerboard.
id_device = raw_input("Введите ID устройства которое нужно удалить>>> ")
Удаление устройства Mikrotik Routerboard с помощью скрипта|
|
Пошаговая инструкция по восстановлению устройств Ubiquiti после неудачной прошивки |
По этой ссылке можно скачать прошивку для Ubiquiti UniFi (детальнее о UniFi).
Примечание: хотя это руководство и относится к ПК под управлением Windows, его также можно применять при любой другой ОС.
ВАЖНО! Не выключайте, не перезагружайте оборудование и не отключайте его от источника питания в процессе обновления прошивки, поскольку такие действия могут устройство повредить!
Итак, процедура восстановления относится к устройствам под управлением AirOS версии 1.5 или выше..
Пошаговая инструкция по восстановлению устройств Ubiquiti после неудачной прошивки|
|
Маленький скрипт ? большое дело |
Добавляем пользователей в Mikrotik Routerboard при помощи Pythonix.
Чтобы добавить пользователей в Mikrotik Routerboard, воспользуемся этими двумя скриптами: new_user.py и add_user_mikrotik.py.
Первый скрипт будет вносить данные, введенные администратором, а затем передавать их в скрипт add_user_mikrotik.py. Тот, в свою очередь, произведет добавление данных в Mikrotik Routerboard. Скрипт new_user.py мы уже рассмотрели, теперь поработаем над скриптом add_user_mikrotik.py,
Скрипт add_user_mikrotik.py:
#!/usr/bin/env python
# -*- coding: utf_8 -*-
from paramiko import SSHClient
from paramiko import AutoAddPolicy
def f_add_user_mikrotik(login, ip, ip_device, login_device, password_device):
ssh = SSHClient()
ssh.set_missing_host_key_policy(AutoAddPolicy())
ssh.connect(ip_device, port=2222, username=login_device, password=password_device)
cmd = "/ip fi address-list add address=%s list=working" % (ip)
ssh.exec_command(cmd)
ssh.close()
Разберем скрипт add_user_mikrotik.py:
Импортируем нужные модули:
#!/usr/bin/env python
# -*- coding: utf_8 -*-
from paramiko import SSHClient
from paramiko import AutoAddPolicy
Создаем функцию f_add_user_mikrotik. Она будет принимать следующие аргументы:
login —
login
пользователя;
ip — IP-адрес пользователя;
ip_device — IP устройства Mikrotik Routerboard, для которого необходимо выполнить действия;
login_device — login для подключения к устройству Mikrotik Routerboard;
password_device — пароль для подключения к устройству Mikrotik Routerboard;
|
|
Подготавливаем данные для добавления нового пользователя в Mikrotik Routerboard |
Продолжаем работу с системой Pythonix.
В этой статье мы напишем скрипт new_user.py. Что он будет делать? Он будет принимать данные, которые ввел администратор, а затем передавать их на выполнение скрипту add_user_mikrotik.py. Вот так.
Скрипт:
#!/usr/bin/env python
# -*- coding: utf_8 -*-
import MySQLdb
import mysql_db, os, sys, time, tarif_list, device_list, add_user_mikrotik
def f_new_user():
print "33[33m ——————————33[0m"
print "33[33m| Добавить нового пользователя |33[0m"
print "33[33m ——————————33[0m"
time.sleep(1)
os.system(‘clear’)
while True:
login = raw_input("Введите имя пользователя: ")
if not login:
print "33[31m| Вы не ввели имя пользователя |33[0m"
time.sleep(1)
else:
break
while True:
password = raw_input("Введите пароль пользователя: ")
if not password:
print "33[31m| Вы не ввели пароль пользователя |33[0m"
time.sleep(1)
else:
break
while True:
ip_user = raw_input("Введите ip адрес пользователя: ")
if not ip_user:
print "33[31m| Вы не ввели ip адрес пользователя |33[0m"
time.sleep(1)
else:
break
while True:
mac_user = raw_input("Введите mac адрес пользователя: ")
if not mac_user:
print "33[31m| Вы не ввели mac адрес пользователя |33[0m"
time.sleep(1)
else:
break
while True:
balance = raw_input("Внести средства пользователю: ")
if not balance:
print "33[31m| Вы не внесли средства пользователю |33[0m"
time.sleep(1)
else:
break
device_list.f_device_list()
Разбираем скрипт:
Выполняем подключение необходимых модулей:
#!/usr/bin/env python
# -*- coding: utf_8 -*-
import MySQLdb
import mysql_db, os, sys, time, tarif_list, device_list, add_user_mikrotik
Создаем функцию f_new_user:
def f_new_user():
На экран выводим такое сообщение:
print "33[33m ——————————33[0m"
print "33[33m| Добавить нового пользователя |33[0m"
print "33[33m ——————————33[0m"
time.sleep(1) — приостанавливаем скрипт на одну секунду.
os.system(‘clear’) — очищаем экран.
|
|
Пишем скрипт вывода на экран списка доступных тарифов |
Зачем нам понадобился такой скрипт? Неужели недостаточно обыкновенного прайс-листа? Что ж, функция вывода списка доступных тарифов нужна нам для того, чтобы потом у нас была возможность извлекать из него данные о скорости и создавать правила шейпера в устройствах Mikrotik Routerboard. Кстати, для начала, желательно все-таки купить Mikrotik Routerboard.
Рис.1. Список доступных тарифов.
Сейчас в нашей базе данных три тарифа.
А вот и скрипт:
#!/usr/bin/env python
# -*- coding: utf_8 -*-
import MySQLdb
import mysql_db, sys, os
def clearConsol():
os.system(‘clear’)
def f_tarif_list():
clearConsol()
Разбираем скрипт:
Подключение необходимых модулей:
#!/usr/bin/env python
# -*- coding: utf_8 -*-
import MySQLdb
import mysql_db, sys, os
Функция очистки экрана:
def clearConsol():
os.system(‘clear’)
Создадим функцию с именем f_tarif_list. Она будет выводить список тарифов:
def f_tarif_list():
Снова очищаем экран:
clearConsol()
Пишем скрипт вывода на экран списка доступных тарифов
|
|
Как вывести список доступных устройств Mikrotik Routerboard на экран? |
Как добавить устройства Mikrotik Routerboard в базу данных мы уже знаем. Теперь с помощью скрипта выведем на экран список доступного оборудования.
Итак, приступим к написанию скрипта с нужной нам функцией.
Рис.1. Список устройств Mikrotik Routerboard.
Сейчас в нашей базе два устройства Mikrotik Routerboard.
Скрипт:
#!/usr/bin/env python
# -*- coding: utf_8 -*-
import MySQLdb
import mysql_db, sys, os
def clearConsol():
os.system(‘clear’)
def f_device_list():
clearConsol()
cur = mysql_db.db.cursor()
sql = ("SELECT * FROM devices")
cur.execute(sql)
devices_data = cur.fetchall()
cur.close()
print "33[34m| %3s | %11s | %14s | %11s | %11s |33[0m" % (‘id’, ‘login_admin’, ‘password_admin’, ‘ip_device’, ‘info_device’)
for sql_result in devices_data:
Разбор скрипта:
Подключение нужных модулей:
#!/usr/bin/env python
# -*- coding: utf_8 -*-
import MySQLdb
import mysql_db, sys, os
Очищаем экран:
def clearConsol():
os.system(‘clear’)
Функция f_devices_list выведет список доступных устройств Mikrotik Routerboard:
def f_device_list():
Функция очистки экрана:
clearConsol()
Работаем с базой данных:
cur = mysql_db.db.cursor()
Извлекаем все поля из таблицы devices:
clearConsol()
В результате этой работы, все извлеченные данные будут занесены в кортеж device_data:
cur.execute(sql)
devices_data = cur.fetchall()
cur.close()
Выводим на экран шапку таблицы:
print "33[34m| %3s | %11s | %14s | %11s | %11s |33[0m" % (‘id’, ‘login_admin’, ‘password_admin’, ‘ip_device’, ‘info_device’)
При помощи цикла for обходим кортеж device_data. Значения заносим в кортеж sql_result и выводим sql_result на экран:
for sql_result in devices_data:
Как вывести список доступных устройств Mikrotik Routerboard на экран?
|
|
Обновился реестр НКРС |
|
|
С 23 по 25 сентября на сайте проводились технико-профилактические работы |
В связи с проведением технико-профилактических работ с 23 по 25 сентября сайт интернет-магазина ASP24 мог функционировать неправильно. Просим прощения, если при работе с сайтом в эти дни у Вас возникли какие-либо проблемы.
Если у Вас не вышло оформить заказ через сайт – будьте добры, повторите его ещё раз или позвоните продавцу консультанту, чтобы заказать устно.
Искренне Ваша, администрация ASP24
С 23 по 25 сентября на сайте проводились технико-профилактические работы|
|
Знакомство со Scapy |
Что же такое Scapy и как она может нам пригодиться?
Scapy – это сетевая утилита, которая написана на языке Python. Она предоставляет нам следующие возможности: отсылка, просмотр и анализ сетевых пакетов. Утилита Scapy тем и отличается от других утилит, что не ограничена перечнем каких-либо протоколов, пакеты которых она может генерировать. То есть, фактически, Scapy предоставляет возможность создавать любые пакеты и комбинировать атаки различных типов.
Получить эту утилиту можно по такому адресу: http://www.secdev.org/projects/scapy/.
С помощью Scapy можно выполнять различные сетевые атаки и, таким образом, проверять защищенность вашего оборудования.
Рис.1. Запуск Scapy.
Чтобы запустить Scapy, выполним ./run_scapy.
Рис.2. Scapy готова к работе.
Знакомство со Scapy|
|
Считайте деньги с помощью Pythonix |
Ничего удивительного, что система Pythonix из тарифов может получать данные о скорости, и, в результате этого, создавать в оборудовании Mikrotik Routerboard (Mikrotik RouterBoard 1200, Mikrotik RouterBoard 433AH, Mikrotik RouterBoard 750G) правила шейпера для пользователей. Поэтому для системы Pythonix стоит написать скрипт с функцией добавления нового тарифа в базу данных.
Скрипт:
#!/usr/bin/env python
# -*- coding: utf_8 -*-
import MySQLdb
import mysql_db, os, sys, time
def f_new_tarif():
print "33[33m ———————33[0m"
print "33[33m| Добавить новый тариф |33[0m"
print "33[33m ———————33[0m"
time.sleep(1)
os.system(‘clear’)
while True:
name_tarif = raw_input("Введите название тарифа: ")
if not name_tarif:
print "33[31m| Вы не ввели название тарифа |33[0m"
time.sleep(1)
else:
break
Разбираем скрипт:
Подключение нужных модулей:
#!/usr/bin/env python
# -*- coding: utf_8 -*-
import MySQLdb
import mysql_db, os, sys, time
Создаем функцию с именем f_new_tarif:
def f_new_tarif():
Выводим сообщение "Добавить новый тариф":
print "33[33m ———————33[0m"
print "33[33m| Добавить новый тариф |33[0m"
print "33[33m ———————33[0m"
time.sleep(1)
Производим очистку экрана:
os.system(‘clear’)
Запускаем цикл, в котором администратору будет предложено ввести название тарифа, например, unlim_10. Данные, введенные администратором, будут добавлены в переменную name_tarif с помощью функции raw_input. В случае, если администратор не ввёл название тарифа, выведется сообщение "Вы не ввели название тарифа", и администратору будет предложено сделать это еще раз.
while True:
name_tarif = raw_input("Введите название тарифа: ")
if not name_tarif:
print "33[31m| Вы не ввели название тарифа |33[0m"
time.sleep(1)
else:
break
|
|
Скрипт добавления устройства Mikrotik Routerboard в базу данных |
Создавая сеть с помощью устройств Mikrotik Routerboard, вы можете купить Mikrotik RouterBoard 1100AH, Mikrotik RouterBoard 433AH, и, к примеру, Mikrotik RouterBoard RB435G. Когда сеть уже создана, напишем скрипт с функцией добавления данных об устройствах в базу данных. Эти данные будут полезны при добавлении клиентов.
Скрипт:
#!/usr/bin/env python
# -*- coding: utf_8 -*-
import MySQLdb
import mysql_db, os, sys, time
def f_new_device():
print "33[33m —————————33[0m"
print "33[33m| Добавить новое устройство |33[0m"
print "33[33m —————————33[0m"
time.sleep(1)
os.system(‘clear’)
Разбор скрипта:
Выполняем подключение необходимых модулей:
#!/usr/bin/env python
# -*- coding: utf_8 -*-
import MySQLdb
import mysql_db, os, sys, time
Далее создаем функцию с именем new_device:
def f_new_device():
Теперь выведем
надпись "Добавить новое устройство"
на экран:
print "33[33m —————————33[0m"
print "33[33m| Добавить новое устройство |33[0m"
print "33[33m —————————33[0m"
time.sleep(1) — приостанавливаем скрипт на одну секунду;
Очищение экрана:
os.system(‘clear’)
Скрипт добавления устройства Mikrotik Routerboard в базу данных|
|
Добавляем сообщение пользователя в базу данных |
Продолжим работу над нашей системой HotSpot для Mikrotik Routerboard. В этой статье мы добавим данные, которые отправил пользователь, в базу.
Рис.1. Подключение к базе и обработка переданных данных.
Файл подключения к базе данных у нас уже есть (в директории admins). Наша задача – всего лишь подключить его.
Итак, подключаем файл соединения с базой данных:
include ("admins/db.php");
Обрабатываем данные переданые методом POST и заносим их в переменную:
if (isset($_POST['admin_mess'])) $admin_mess = $_POST['admin_mess'];
В случае, если пользователь отправил пустое сообщение, уничтожим переменную $admin_mess:
$admin_mess if { unset; }
Рис.2. Добавление данных в базу.
Добавляем сообщение пользователя в базу данных|
|
Настраиваем DHCP-клиент для Edge-core ES3510 |
Производим настройку Edge-core ES3510. Нам нужно, чтобы он получал сетевые настройки от DHCP сервера.
Рис.1. Edge-core ES3510 show ip interface.
Выполним команду show ip interface. Так мы узнаем IP-адрес нашего Edge-core ES3510.
Рис.2. Edge-core ES3510 interface vlan 1.
Для конфигурирования интерфейса выполним команду interface vlan 1.
Настраиваем DHCP-клиент для Edge-core ES3510|
|
Присваеваем Edge-core ES3510 статический IP-адрес |
Мы уже подключились к Edge-core ES3510. Теперь займемся его конфигурацией и присвоим статический IP-адрес.
Рис.1. Edge-core ES3510 configure.
Начнем с команды configure.
Рис.2. Edge-core ES3510 interface vlan 1.
Теперь выполним interface vlan 1 и таким образом получим доступ к интерфейсу конфигурации.
Присваеваем Edge-core ES3510 статический IP-адрес|
|
Как настроить Edge-core ES3510 через COM порт |
Такая ситуация: у вас возникли проблемы с настройками Edge-core ES3510, не получается подключиться через Ethernet.
Тогда вы можете настроить Edge-core ES3510 с помощью подключения через COM-порт.
Рис.1. Инструкция к Edge-core ES3510.
В инструкции к Edge-core ES3510 мы узнаем необходимые данные для соединения с Edge-core ES3510.
Рис.2. Программа Putty.
Для подключения воспользуемся программой Putty.
Как настроить Edge-core ES3510 через COM порт|
|
Как отправить сообщение нескольким администраторам в случае, если ваше устройство Mikrotik Routerboard не работает? |
Мы уже знаем, как отправить одному администратору смс о неработающем Mikrotik Routerboard. Теперь добавим в наш скрипт возможность отправки смс нескольким администраторам в аналогичном случае.
Рис.1. Скрипты python.
Смс отправляются с помощью двух скриптов: ind.py (основной скрипт, который выполняет проверку доступности устройств Mikrotik Routerboard) и nowork_sms.py (файл с функцией для отправки сообщения).
Рис.2. Файл nowork_sms.py.
В файле nowork_sms.py внесем изменения в функцию отправки сообщений.
Комментируем или удаляем переменную mail_text – она будет передаваться в функцию из скрипта ind.py. Для этого добавляем следующую запись:
def mail(mail_text, mail_to):
Как отправить сообщение нескольким администраторам в случае, если ваше устройство Mikrotik Routerboard не работает?|
|
Как вести учет пользователей и устройств Mikrotik Routerboard? |
Воспользовавшись возможностями языка Python, напишем программу для учета пользователей и устройств Mikrotik Routerboard.
Для начала создадим базу данных (на основе MySQL) из четырех таблиц: пользователи, устройства (Mikrotik Routerboard), тарифы и администраторы.
В таблице пользователей будет девять полей:
Рис.1. Таблица с данными о пользователях.
Далее формируем таблицу users, куда будем размещать данные о пользователях.
Как вести учет пользователей и устройств Mikrotik Routerboard?|
|