Автор Тема: IMSLU- “Система за управление на интернета за потребители в локална мрежа”  (Прочетена 36305 пъти)

Naka

  • Напреднали
  • *****
  • Публикации: 3395
    • Профил
така:
http://www.linux-bg.org/forum/index.php?topic=46936.msg288782#msg288782

ама айде да не спамим повече че му отиде темата на човека.
« Последна редакция: Aug 02, 2017, 11:52 от Naka »
Активен

Perl - the only language that looks the same before and after encryption.

mystical

  • Напреднали
  • *****
  • Публикации: 326
  • Distribution: Debian, FreeBSD
  • Window Manager: XFCE
    • Профил
    • WWW
Искам да дам малко информация за отговора, който писах в друга тема относно линукс рутер и защитна стена.

Линукс рутера, през който минават почти 9 Gb трафик работи с ipacct.com
Линукс защитната стена, през която минават над 100 Gb трафик се разработва от млад човек, който е изключително в час, в тази област.

Тази информация я споделям, за да знаете, че в България също има много добри специалисти.
Моето лично мнение е, че ако държавата използва подобни специалисти, няма да има новините от типа:
- атаки блокираха работата на държавно учреждение, защото преди да падне услугада на това учреждение, че паднат много големи доставчици.
!!! Моля не доразвивайте тази теория в тази тема. Може да отворим друга тема, ако има интерес!!!

Предполагам, че във форума има потребители, които се занимават сериозно с мрежово администриране. Ако дадат своето мнение, за използваните инструменти и начина на работа на системата, ще съм им благодарен.

Системата се стартира в тори ред, Линукс :
rc.local - създава vlan-ни, iptables правила, ipset таблици
start.sh - създава правила за шейпъра, добавя рутиране за IP адреси по интерфейсите, пуска mac защита, проверява платилите клиенти

Ако има интерес, мога да обясня по-подробно.
« Последна редакция: Aug 02, 2017, 23:31 от mystical »
Активен

Ако не можеш да градиш, поне не руши!

10101

  • Напреднали
  • *****
  • Публикации: 384
  • Distribution: GNU LINUX
    • Профил
Като си започнал давай до край ,на мен ми е интересно.Можеш да споделиш детайли.
Активен

А печат ?

mystical

  • Напреднали
  • *****
  • Публикации: 326
  • Distribution: Debian, FreeBSD
  • Window Manager: XFCE
    • Профил
    • WWW
Конфигурационни файлове, които се използват от php:
/etc/imslu/config.php - съдържа общи конфигурационни променливи
/etc/imslu/database_config.php - съдържа променливи за база данни
include/os.php - изберете каква ОС използвате, по подразбиране е FreeBSD

/etc/imslu/config.sh  - съдържа общи конфигурационни променливи, които се използват от скриптовете.

За някои потребители може да изглежда малко объркващо и сигурно се питат, дали има нужда от конфигурационни файлове, скриптове, ...?

Идеята е проста.
Конфигурационните файлове съдържат най-общите системни настройки и позволяват лесна промяна на стойности, без да се правят промени по кода.
В база данни се съхранява останалата информация.
Уеб интерфейса променя данните в база данни и стартира functions-php.sh скрипта, за да приложи новите промени.
sh скриптовете имат достъп до системата и прилагат промените.

/etc/rc.local:

. /etc/imslu/config.sh
. /etc/imslu/scripts/functions.sh
Включва променливи от конф. файл и системни функции.

####### IMQ #######
Правилата трябва да се разкоментират, ако imq модула не е част от ядрото. На IMQ интерфейсите не създават правилата за шейпъра.

##### ADD VLANS #####
Тази функция се намира в functions.sh и служи за автоматично създаване на виртуални интерфейси. Разгледайте променливата VLAN_SEQ в /etc/imslu/config.sh, тя определя колко и с какво id да бъдат vlan-ните.

####### ipset #######
Създават се ipset таблици, за да се използват по-късно. ipset създава хеш таблици, чрез които се прави много бърза проверка, дали пакета отговаря на даденото правило. С едно ipset правило може да се заменят много iptables правила.

### kinds of traffic ###
Маркира се входящ и изходящ трафик, който не е български (международен). Българския трафик се използва повече, поради което маркираме международни. Ако има обратна тенденция могат да им се сменят местата, но това ще наложи промени и в другите скриптове. Маркираме може би, не е правилния израз, понеже iptables разполага и с инструмент "-j MARK". Мисля, че "-j TOS" е по-бърза операция в сравнение с "-j MARK", ако греша моля да ме поправите.

### Shaper ###
Тези правила пренасочват трафика за ограничаване на скоростт в IMQ интерфейса.

# Dynamic NAT
Тези правила са интересни. DNETMAP модула позволява частни мрежи да се nat-ват с част или цяла публична подмрежа.

# Redirect expiret users to warning page
Това правило излишно проверява уеб трафика, за да пренасочи неплатилите клиенти към старицата за предупреждение.
Не ми харесва, че има такова правило, но не мога да намеря по-елегантно решение.
Ако има начин това да се прави във FORWARD таблицата, след като е минала проверката за плащането, ще е перфектно.

# NAT
Няма какво да обяснявам.

# Set default policy for chain FORWARD to DROP
Запазва се минимален лог и се извършва проверка за платили клиенти. "-m set --match-set allowed" таблица allowed съдържа IP адреси на клиенти, които са платили услугата. С ipset проверката става чрез бързи хеш таблици и само с две правила.

Разгледайте /etc/imslu/scripts/start.sh има интересни команди. Този скрипт работи с БД, за да създаде правилата за щейпър, платили клиенти, рутиране, mac защита.

Отворен съм на всякакви предложения, за оптимизиране на производителността.
Писането не ми е силната страна, ако имате въпроси, питайте.
Активен

Ако не можеш да градиш, поне не руши!

supportpc

  • Гост
Здравейте , като тръгна да зареждам веб интерфейса ми дава тази грешка

Secure Connection Failed

An error occurred during a connection to 192.168.88.89. SSL received a record that exceeded the maximum permissible length. Error code: SSL_ERROR_RX_RECORD_TOO_LONG

    The page you are trying to view cannot be shown because the authenticity of the received data could not be verified.
    Please contact the website owners to inform them of this problem.

всичко съм спазил по документа на инсталацията инсталирал съм го на debian 8

до тука стигам !!!!!!!!!!!!!!!!!!!!!!!
Може да изтеглите системата от уеб адрес: https://sourceforge.net/projects/imslu/
   tar -zxvf imslu_0.1-alpha.tar.gz

ИЛИ
Актуална версия от:
   git clone https://github.com/mysticall/imslu.git
cd  imslu

За по-добра отчетност, ще създадем няколко директории и ще копираме системата в тях.
mkdir /usr/share/imslu - Създаваме директория за PHP уеб интерфейса.
cp -r PHP/* /usr/share/imslu – Преместваме уеб интерфейса.
mkdir /etc/imslu - Създаваме главна директория, която ще съдържа конфигурационните файлове и ядрото.
cp -r conf/debian/* /etc/imslu/ - Копираме всички файлове в главната директория.
chmod +x /etc/imslu/scripts/* - Променя режима на скриптовете, за да са изпълними.
mkdir /etc/imslu/backup  - В тази директория ще се намират резервните копия на базата данни. Ако искате да използвате друга директория, променете “ SQL_BACKUP_DIR = "/etc/imslu/backup/" ” в “/etc/imslu/scripts/config.py”.
chown www-data:www-data /etc/imslu/backup
mkdir /var/log/imslu – Създаваме директорията, в която програмата ще води подробни дневници (log dir).
cp conf/cron/imslu /etc/cron.d/ - Този файл, ще се стартира автоматично от cron всяка сутрин в 00:01 часа. Първо проверява за потребители, които не се изключват и ако намери добавя автоматични задължения. След което проверява за потребители с изтекла дата за предоставената услуга. Прави архив на най-важните таблици от базата данни.

2.3 База данни

   База данни заема централно място и е най-важния елемент от “Система за управление на интернета за потребители в локална мрежа”. В база данни се записва и съхранява информация за потребители, плащания, срокове за преплатена услуга, информация за оператори и друга информация. След което тази информация се използва от Freeradius и скриптовете, които правят работоспособна системата. Без база данни нищо няма да работи.
   В процес на разработване на системата за база данни сървър се изполваше MariaDB - https://mariadb.org/ и тук ще разгледаме как да инсталираме този сървър. Това да не притеснява тези, които искат да използват MySQL, понеже MariaDB е заместител на MySQL. Ако искате да използвате друг база данни сървър, ще трябва да донапишите системата, но добрата нивина е, че връзките към база данни сървъра са писана на PDO. Предполага се, че с минимални промени по кода, може да се добави поддръжка и за други база данни.

Всички команди в това ръководство, ще се изпълняват с права на root!

Създаваме файла “MariaDB.list” и добавяме следното съдържание:

nano /etc/apt/sources.list.d/MariaDB.list
# MariaDB 5.5 repository list
# http://mariadb.org/mariadb/repositories/
deb http://mirror.timeweb.ru/mariadb/repo/5.5/debian wheezy main
deb-src http://mirror.timeweb.ru/mariadb/repo/5.5/debian wheezy main

gpg --keyserver keys.gnupg.net --recv-keys CBCB082A1BB943DB
gpg -a --export CBCB082A1BB943DB | apt-key add -

apt-get update
apt-get install mariadb-server

Когато актуализираме системата, тя иска да замени libmysqlclient на MariaDB с тази на  MySQL, за да предотвратим това изпълняваме следната команда:
echo libmysqlclient18 hold | dpkg –set-selections

Ако  трябва да актуализирате libmysqlclient на MariaDB:
echo libmysqlclient18 install | dpkg --set-selections

Вече имаме инсталиран база данни сървър. Създаваме база данни:
mysql -uroot -p
CREATE DATABASE imslu DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON imslu.* TO imslu@localhost IDENTIFIED BY 'imslu_password';
quit;

Нека да разгледаме съдържанието на папка “database/mysql/”, където се намира информацията, която трябва да прелеем в новосъздадената база данни:
01_schema.sql – таблици, които се използват от системата
02_data.sql – информация, която позволява достъп до системата
03_example_static_ip-addresses.sql -  примерна мрежа за статични IP адреси
04_freeradius_schema.sql - таблици, които се използват от Freeradius
05_freeradius_data.sql – информация, която Freeradius използва за изтекли потребители
06_freeradius_example.sql – примерни конфигурации, които се използват от Freeradius
07_freeradius_example_ippool.sql – примерна мрежа, от която Freeradius дава IP адреси на валидни клиенти

  Бележка: Трябва да са налични и таблиците за FreeRADIUS в базата данни, даже и да не позволявате на вашите потребители, да имат достъп до интернет чрез PPPoE сесии. Причината за това е
      try {

       }
       catch (PDOException $e) {

       }
блока в “include/classes/class.cpdoinstance.php”. PHP, ще се опита да извлече информация от дадена таблица на FreeRADIUS и ако не съществува ще се спре изпълнението на кода. Ако не е включена и опцията за показване на грешки “error_reporting(E_ALL); ini_set('display_errors', 'On');” , ще имате само празна страница, без да знаете какво се случва.

    Бележка: Всички примери в ръковоството са от мрежите, които се намират в горните файлове.

Създаване на таблици и вмъкване на данни:
mysql -D imslu -u imslu -pimslu_password < 01_schema.sql
mysql -D imslu -u imslu -pimslu_password < 02_data.sql
mysql -D imslu -u imslu -pimslu_password < 03_example_static_ip-addresses.sql
mysql -D imslu -u imslu -pimslu_password < 04_freeradius_schema.sql
mysql -D imslu -u imslu -pimslu_password < 05_freeradius_data.sql
mysql -D imslu -u imslu -pimslu_password < 06_freeradius_example.sql
mysql -D imslu -u imslu -pimslu_password < 07_freeradius_example_ippool.sql

   Прилагане на пачове

mysql -D imslu -u imslu -pimslu_password < ../upgrades/mysql/01_patch-0.1-alpha-1.sql

   2.4 Apache2 и PHP5

Инсталиране:
apt-get install libapache2-mod-php5 php5-mysql subversion

В Дебиан подразбиращия се събирач на боклука за PHP е заменен със скрипт. Първо трябва да се спре този скрипт:
nano /etc/cron.d/php5 и само коментирате “#”

Старниране на PHP default garbage collection:
nano /etc/php5/apache2/php.ini
session.gc_probability = 1

Задаване на времева зона по подразбиране:
nano /etc/php5/apache2/php.ini
date.timezone = "Europe/Sofia"

mkdir /etc/apache2/ssl
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt

Най-важната линия е "Common Name". Въведете името на официалния си домейн тук или ако нямате такъв все още, IP адреса на сайта.
Пример:
Generating a 2048 bit RSA private key
............................................................+++
...........................................................+++
writing new private key to '/etc/apache2/ssl/apache.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:BG
State or Province Name (full name) [Some-State]:Sofia
Locality Name (eg, city) []:Sofia
Organization Name (eg, company) [Internet Widgits Pty Ltd]:imslu
Organizational Unit Name (eg, section) []:imslu
Common Name (e.g. server FQDN or YOUR name) []:192.168.1.253
Email Address []:webmaster@localhost

a2enmod ssl
rm /etc/apache2/sites-enabled/default-ssl
rm /var/www/index.html
ln -s /etc/imslu/apache-ssl.conf /etc/apache2/sites-enabled/imslu-ssl
cp /etc/imslu/index.php /var/www
/etc/init.d/apache2 restart
Активен

go_fire

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 8780
  • Distribution: Дебиан Сид
  • Window Manager: ROX-Desktop / е17
  • кашик с гранатомет в танково поделение
    • Профил
    • WWW
Исмаиле, безкрайно благодаря от свое име, а надявам се и от други, че буташ проекта и той се развива. На мен не ми помага с нищо, но вярвам, че на много народ им върши работа, при това професионално.

Само един въпрос. Публикува ли го в „Мейд ин Би Джи“? Просто там има много по-голяма видимост, отколкото има във форума.
Активен

В $por4e2 e истината  ;)

***

Aко даваха стипендия за най-глупави, щях да съм човека с най-много Mини Kупъри

***

Reborn since 1998 || 15.09.2007 totally М$ free && conscience clear

4096bits

  • Напреднали
  • *****
  • Публикации: 6152
    • Профил
Не обичам никакъв вид контрол  ;D
Активен

As they say in Mexico, "Dasvidaniya!" Down there, that's two vidaniyas.

supportpc

  • Гост
Исмаиле, безкрайно благодаря от свое име, а надявам се и от други, че буташ проекта и той се развива. На мен не ми помага с нищо, но вярвам, че на много народ им върши работа, при това професионално.

Само един въпрос. Публикува ли го в „Мейд ин Би Джи“? Просто там има много по-голяма видимост, отколкото има във форума.

БРАВО!!!
Активен