Автор Тема: Продвинутый Роутер или Интернет-шлюз из ничего  (Прочитано 12457 раз)

Оффлайн Salomatin

  • Модератор
  • *****
  • Сообщений: 958
    • Пошаговые инструкции
    • Email
Оглавление:
Установка сервера  4 варианта (на этой странице)
Раздаем wi-fi
Консольные утилиты htop nload nmap arping2
Vnstat  консольная утилита для учета сетевого трафика, с возможностью веб-просмотра
NETAMS 4.0  установка  Учет траффика и управления доступом
NETAMS 4.0  настройка 


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

Однако не редко под столами пылятся старенькие системные блоки, которые даже Виндовз Хрю не в силах юзать. Из любого такого системного блока можно сделать несоизмеримо лучшее устройство  раздачи Интернета чем магазинный роутер:
- не одна, а несколько подсетей, в зависимости от мест для сетевых карт на материнской плате
- монитор можно подключить напрямую, а не только удаленно, как обычно в роутере
- действительно полное удаленное управление
- возможность получения наглядной диагностики
- учет и управление трафиком
и многое многое другое.
Не буду дальше агитировать, а просто покажу некоторые возможности такого подхода.

Берем системный блок. Заменяем системную батарейку. Ставим настройки БИОС в режиме включение при появлении питания в сети 220 вольт.  Добавляем сетевые карты. Первой сетевой картой подключаемся к действующей локальной сети с автоматической раздачей IP адресов и подключенной к Интеренет.

Далее в зависимости от мощности системного блока и решаемых задач выбираем удобный способ загрузки:

1. Минимальная установка:
http://salomatin.ru/nat1.ogv
https://youtu.be/8ZYJg_Wr7XA
Ставим Альт Линукс 7.0 Кентавр, в шаге  5/11 выбираем «Минимальная установка».
Узнаем какой адрес в локальной сети получил сервер ( если явно не назначили его сами).
Проверяем пинги.
Заходим с рабочей станции по протоколу SSH. Обновляем сведения о пакетах для apt-get.
apt-get update подгружаем
apt-get install alterator-fbi alterator-net-iptables alterator-dhcp запускаем Центр управления системой (ЦУС) — веб- ориентированный интерфейс.
service ahttpd restart
chkconfig iptables on
заходим по адресу https://ip-адрес:8080/
"Настройка" переходим в "Режим эксперта"
Далее настройки не сложнее чем рядового роутера.   

2. Минимальная установка с включенным веб-интерфейсом:
http://salomatin.ru/nat2.ogv
https://youtu.be/B4udPzuZ_yk

Ставим Альт Линукс 7.0 Кентавр, в шаге  5/11 выбираем «Офисный сервер», но убираем все кроме DNS DHCP.
Узнаем какой адрес в локальной сети получил сервер ( если явно не назначили его сами).
Проверяем пинги.
заходим по адресу https://ip-адрес:8080/
переходим в режим "эксперт"
Далее настройки также не сложнее чем рядового роутера.

3. Штатная установка.
http://salomatin.ru/nat3.ogv
https://youtu.be/jaBrXs0juUc
Ставим Альт Линукс 7.0 Кентавр сервер
Со всем соглашаемся.
Стартуем графику.
заходим по адресу https://127.0.0.1:8080/
переходим в режим "эксперт"
Далее настройки также не сложнее чем рядового роутера.   

4. Делаем роутер из любой рабочей станции ALT Linux (на примере Simply Linux)
http://salomatin.ru/nat4.ogv
 https://youtu.be/OmSTVygmiOM
Ставим Simply Linux
Обновляем сведения о пакетах для apt-get
apt-get update подгружаем
apt-get install alterator-fbi alterator-net-iptables alterator-dhcp запускаем Центр управления системой (ЦУС) — веб- ориентированный интерфейс.
service ahttpd restart
chkconfig iptables on
заходим по адресу https://127.0.0.1:8080/
"Настройка" переходим в "Режим эксперта"
Далее настройки также не сложнее чем рядового роутера.   
« Последнее редактирование: 19.02.2016 09:39:43 от Salomatin »
Хочешь понять сам, объясни другому.
"Если уже все испробовал и ничего не помогает - почитай инструкцию"

Оффлайн Salomatin

  • Модератор
  • *****
  • Сообщений: 958
    • Пошаговые инструкции
    • Email
Консольные утилиты

Чего точно нет в обычном роутере, так это удобных консольных утилит для диагностики загрузки как самого сервера, так и сети.
В ролике демонтируется работа утилит.
http://salomatin.ru/nat5.ogv
https://youtu.be/SZ1h8RzD0P4
Подгрузим
apt-get install htop nmap nload arping2
htop - Интерактивный просмотр списка запущенных процессов
Также показывает время непрерывной работы, использование процессоров и памяти.

nload - просмотр загрузки канала в консольном режиме
Примеры:
nload -mпоказывает все интерфейсы
nload -i 40960 -o 40960 enp5s2Экран разделен на две области. В верхней отображается загрузка интерфейса входящим трафиком, в нижней - исходящим. Есть возможность переключаться между интерфейсами в режиме реального времени, "гоняя" их по кругу

nmap — свободная утилита, предназначенная для разнообразного настраиваемого сканирования IP-сетей
Примеры:
nmap 10.0.0.241показывает открытые порты
nmap -p 80 10.0.0.0/24показывает видимые компьютеры в сети

Если в сети есть компьютеры закрытые от сканирования, то можно использовать

arping2 - узнать MAC адрес и проблему конфликта ip-адресов

пример
[root@server ~]# arping2 10.0.0.26работает только от рута, сообщает MAC адрес и если в сети под одним IP адресом появилось два компьютера сообщит оба.

Подробнее с работой утилит можно познакомится почитав man или погуглить. Информации предостаточно.
« Последнее редактирование: 19.02.2016 09:40:59 от Salomatin »
Хочешь понять сам, объясни другому.
"Если уже все испробовал и ничего не помогает - почитай инструкцию"

Оффлайн Salomatin

  • Модератор
  • *****
  • Сообщений: 958
    • Пошаговые инструкции
    • Email
Vnstat - консольная утилита для учета сетевого трафика, с возможностью веб-просмотра

В ролике демонтируется установка утилиты, запуск PHP-скрипта для вывода результатов мониторинга в виде веб странички.
http://salomatin.ru/vnstat.ogv
 https://youtu.be/rWF5ktmJlEU

Подгрузим
[root@server ~]#apt-get install vnstat
Больше ничего делать не надо.
Через 5-10 минут смотрите информацию о трафике.

(Пока сработает crohtab можем поднять веб сервер apache2)

[root@server ~]#vnstat -i enp0s3 где enp0s3 название интерфейса
vnstat -i enp0s3 -h  Показать статистику трафика по часам
vnstat -i enp0s3 -d  Показать статистику по дням
vnstat -i enp0s3 -w Показать статистику по неделям
vnstat -i enp0s3 -m   Показать статистику по месяцам
vnstat -i enp0s3 -t  Показать top10 дней
сбросить статистику
vnstat -i eth2 --delete
    Delete database of interface eth2 and stop monitoring it. 
подробнее man vnstat

Вывод в виде веб-странички

Запускаем Apache2 
http://forum.altlinux.org/index.php/topic,29114.msg203898.html#msg203898
заходим по адресу http://192.168.0.10 и видим тестовую страницу   It Works

скачиваем скрипт с http://www.sqweek.com/sqweek/index.php?p=1
размещаем в каталог /var/www/html этот скрипт
[root@server html]# wget -c  www.sqweek.com/sqweek/files/vnstat_php_frontend-1.5.1.tar.gzи разархивируем его
[root@server html]#tar -zxvf vnstat_php_frontend-1.5.1.tar.gz переименовываем
[root@server html]# mv vnstat_php_frontend-1.5.1 vnstatсоздаем каталог
[root@server ~]#mkdir /var/www/html/vnstat/dumpsправим файл
[root@server ~]#mcedit /var/www/html/vnstat/config.phpнаходим строку
$iface_list = array('eth0', 'sixxs');и записываем через запятую только нужные нам интерфейсы
$iface_list = array('enp0s3', 'enp0s8', 'enp0s9');комментируем строки
//    $iface_title['eth0'] = 'Internal';
//    $iface_title['sixxs'] = 'SixXS IPv6';
вместо них записываем наши интерфейсы и понятные нам названия
$iface_title['enp0s3'] = 'internet';
$iface_title['enp0s8'] = 'local8';
$iface_title['enp0s9'] = 'local9';
комментируем
//   $vnstat_bin = '/usr/bin/vnstat';правим следующую
   $data_dir = '/var/www/html/vnstat/dumps';сохраняем и закрываем.

Установим Русской язык для vnstat, если необходимо.
[root@server ~]#cd /var/www/html/vnstat/lang
[root@server lang]#wget http://file.testino.ru/asus_rt56n/ru.php_.tar.gz
[root@server lang]#tar -xzvf ru.php_.tar.gz
[root@server lang]#mcedit /var/www/html/vnstat/config.php
находим
$language = 'nl';заменяем на
$language = 'ru';
заходим по адресу http://192.168.0.10/vnstat
и видим vnstat веб-страничку, но пока с нулями
Вручную создаем первый дамп для нужной нам сети
[root@server ~]#vnstat --dumpdb -i enp0s3 > /var/www/html/vnstat/dumps/vnstat_dump_enp0s3 обновляем  в браузере http://192.168.0.10/vnstat и видим результат.

теперь добавляем команды в крон, например чтоб обновлялось каждые 10 минут, даем команду
[root@server ~]#crontab -eнажимаем символ "a", так в редакторе vi включают режим редактирования текстового файла, перемещаем курсор в начало строки, копируем
*/10 * * * * vnstat --dumpdb -i enp0s3 > /var/www/html/vnstat/dumps/vnstat_dump_enp0s3
*/10 * * * * vnstat --dumpdb -i enp0s8 > /var/www/html/vnstat/dumps/vnstat_dump_enp0s8
*/10 * * * * vnstat --dumpdb -i enp0s9 > /var/www/html/vnstat/dumps/vnstat_dump_enp0s9
вставляем как обычно и подправляем как надо нам, затем нажимаем
кнопку Esc 
символ ":"
символ "x"
символ "!"
так сохраняем изменения. Подробнее man crontab и man vim
« Последнее редактирование: 19.02.2016 09:42:42 от Salomatin »
Хочешь понять сам, объясни другому.
"Если уже все испробовал и ничего не помогает - почитай инструкцию"

Оффлайн Salomatin

  • Модератор
  • *****
  • Сообщений: 958
    • Пошаговые инструкции
    • Email
Зачастую в сети появляется продвинутый пользователь, который если и не убьет всю сеть, то может ее реально подсадить. Консольные утилиты не так удобны чтобы узнать что творилось с сетью час тому назад или вчера.

http://salomatin.ru/netams1.ogv
 https://youtu.be/zoc5b-7wdnw

Познакомимся с
NETAMS 4.0
Учет траффика и управления доступом.
http://www.netams.com 
Используя отчеты мы много интересного узнаем о работе нашей сети. Но там есть еще отчет (TOP пользователей), по которому мы быстро узнаем кто у нас в сети безобразничает и используя ЦУС поместим его IP в черный список.
Подгружаем:
[root@server ~]#apt-get install java-1.6.0-sun
[root@server ~]#apt-get install libpcap-devel jpcap
Скачиваем http://www.netams.com/netams4_download.html
Создаем каталог, переносим туда архив, скаченный с официального сайта и открываем.
[root@server ~]#mkdir /usr/local/netams4/
[root@server ~]#cp /home/vova/netams4.0.1633-linux-i386.tar.gz /usr/local/netams4/
[root@server  netams4]#tar -zxvf netams4.0.1633-linux-i386.tar.gz
Далее:
Имя нашего сервера должно без проблем разрешаться в IP-адрес. Для это открываем для редактирования  файл
[root@server ~]# mcedit /etc/hostsи вписываем туда:
127.0.0.1 server server.localdomain Выходим из редактора с сохранением и запускаем скрипт, чтобы изменения вступили в силу:
[root@server ~]# /etc/chroot.d/resolv.allПроверяем:
[root@server ~]# ping server
[root@server ~]# ping server.localdomain
открываем для редактирования  файл
[root@server ~]# mcedit /var/lib/mysql/my.cnf
комментируем строку
[code]###skip-networking
затем
[root@server ~]#service mysqld restartсоздаем базу данных
[root@server ~]#mysqladmin -p create netams4спросит пароль
Делаем ссылку от того меcта, где у нас установлен JRE, к дистрибутиву:
[root@server ~]#ln -s /usr/lib/jvm/java-1.6.0-sun-1.6.0.26/jre /usr/local/netams4/java
Редактируем
[root@server ~]# mcedit /usr/local/netams4/netams4.propertiesизменяя порт 8080 ( который у нас занял ЦУС) на 8180
webadmin.listen.port=8180и пароль:
db.sql.mysql.user=root
db.sql.mysql.password=aaa
« Последнее редактирование: 19.02.2016 09:44:15 от Salomatin »
Хочешь понять сам, объясни другому.
"Если уже все испробовал и ничего не помогает - почитай инструкцию"

Оффлайн Salomatin

  • Модератор
  • *****
  • Сообщений: 958
    • Пошаговые инструкции
    • Email
Заставить считать netams дело техники и почитав документацию вы можете выбрать наиболее подходящий вариант.
В ролике демонстрируется настройка неплохо загруженного сервера.
http://salomatin.ru/netams2.ogv
https://youtu.be/A_lqL1-iWVI
Коротко алгоритм такой:

Источник
Конфигурируем источник. Необходимо записать точное название сетевой карты (eth1 или enp0s9)  напротив interface
Больше ничего пока можно не трогать. Сохраняем. Запускаем.
Тестируйте другие источники самостоятельно.

Тариф
Далее: Элементы - Тарифы - Добавить - Наименование ( любое testtar) - Имя обработчика - Flat Rate v2 -   Применить - Применить -Закрыть

Подсети - наименование test_local - Добавить - 192.168.0.0/24 -  Применить  - Закрыть

Создание объектов
Можно вручную. Показано динамическое.
Система - Динамическое создание объектов - Добавить - Включен (галочка) - Источник данных RemoteAgentDatasource - Подсеть 192.168.0.0/24 - Создать учетный объект? (галочка) - Создать контракт? (галочка) - Способ именования контракта my-%4 - Создать лицевой счет? (галочка) - Валюта лицевого счета Рубль - Создать услугу? (галочка) - Тарифный план testtar - Применить - Закрыть

Через минут 5 появятся первые Обнаруженные объекты , контракты, услуги. Счетчик начинает считать.

Удалить netams:
http://salomatin.ru/netams3.ogv
Останавливаем агент
[root@server ~]#  ps -ax | grep n4a
13649 ?        Ss     0:00 /usr/local/netams4/jserver/agent/n4agent_pcap -c 127.0.0.1:20002 -d
13653 pts/0    S+     0:00 grep --color=auto n4a
[root@server ~]#kill 13649Удаляем процессы:
[root@server ~]#ps -ax | grep java
12211 pts/0    Sl     0:39 ../java/bin/java -Djava.net.preferIPv4Stack=true -cp ../lib/*:bin/:bin/netams4-jserver.jar com.netams.netams4.netams4 ../netams4.properties
12213 pts/0    Sl     0:13 ../java/bin/java -Djava.net.preferIPv4Stack=true -cp ../lib/*:./lib/*:./war/WEB-INF/lib/*:../java/lib/tools.jar:war/WEB-INF/classes/ com.netams.n
12262 pts/0    Sl     0:10 ../java/bin/java -Djava.net.preferIPv4Stack=true -cp ../lib/*:bin/:lib/*:bin/netams4-repserver.jar com.netams.netams4.report.server.ReportServer
16058 pts/0    S+     0:00 grep --color=auto java

[root@server ~]#kill 12211 12213 12262Удаляем каталог
[root@server ~]#rm -rf /usr/local/netams4/Удаляем базу
[root@server ~]#mysqladmin -p drop netams4
« Последнее редактирование: 19.02.2016 09:47:39 от Salomatin »
Хочешь понять сам, объясни другому.
"Если уже все испробовал и ничего не помогает - почитай инструкцию"

Оффлайн maestro

  • Давно тут
  • **
  • Сообщений: 265
    • Email
Владимир, вы имеете опыт настройки контентной фильтрации? Если есть, можно ли добавить урок об этом?

Оффлайн Salomatin

  • Модератор
  • *****
  • Сообщений: 958
    • Пошаговые инструкции
    • Email
Раздаем wi-fi

Рядовые Wi-Fi роутеры виснут, затыкаются и имеют множество недостатков.

Дополним наш сервер возможностью не только раздавать интернет по локальной сети, но и по Wi-Fi

Ставим на сервер Wi-Fi адаптер. Через ЦУС (заходим по адресу https://127.0.0.1:8080/) видим этот адаптер под именем wlp2s2 (название может быть другим).
Для раздачи интернета настраиваем сетевую карту точно также как любую обыкновенную. Задаем подсетку, сервер DHCP, галочка внешние сети и тому подобное.
Отличие заключается только в том, как будут подключаться клиенты.
Для этого ставим
[root@server ~]#apt-get install hostapd   переписывем
[root@server ~]#rm -rf /etc/hostapd/hostapd.conf
[root@server ~]#cat >>/etc/hostapd/hostapd.conf
вставляем
interface=wlp2s2
driver=nl80211
ssid="ALT"
country_code=RU
hw_mode=g
channel=1
ieee80211n=1
ht_capab=[HT40+][SHORT-GI-20][SHORT-GI-40]

сохранить (ctrl+d)
проследите, чтобы правильно было указано имя интерфейса. Это единственное что надо сделать.
Далее запускаем:
[root@server ~]#service hostapd restartВсе. Любой клиент получает беспарольный доступ по wi-fi к сети "ALT", без каких либо ограничений.

если пароль необходим, то файл /etc/hostapd/hostapd.conf будет таким

interface=wlp2s2
driver=nl80211
ssid="ALT"
country_code=RU
hw_mode=g
channel=1
wpa=2
wpa_passphrase=11111111
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
wps_state=0
ieee80211n=1
ht_capab=[HT40+][SHORT-GI-20][SHORT-GI-40]

пароль 11111111

Для более точных настроек (шифрование, пароли и т.п.) знакомьтесь с родным  /etc/hostapd/hostapd.conf  и описаниями в любых других источниках. hostapd умеет все, что умеет любой роутер.
« Последнее редактирование: 04.07.2015 09:28:25 от Salomatin »
Хочешь понять сам, объясни другому.
"Если уже все испробовал и ничего не помогает - почитай инструкцию"