<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="uk">
	<id>https:///index.php?action=history&amp;feed=atom&amp;title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_NoDeny</id>
	<title>Установка NoDeny - Історія редагувань</title>
	<link rel="self" type="application/atom+xml" href="https:///index.php?action=history&amp;feed=atom&amp;title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_NoDeny"/>
	<link rel="alternate" type="text/html" href=""/>
	<updated>2026-05-05T12:27:27Z</updated>
	<subtitle>Історія редагувань цієї сторінки в вікі</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id></id>
		<title>Sv в 07:48, 25 липня 2023</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2023-07-25T07:48:22Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Нова сторінка&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Intro =&lt;br /&gt;
&lt;br /&gt;
Устанавливаем по такой схеме:&lt;br /&gt;
&lt;br /&gt;
* Сначала настраиваем сервер так, чтобы он работал без NoDeny, т.е. предоставлял абонентам доступ в интернет: выполнял функции  NAT, маршрутизации и локального DNS&lt;br /&gt;
* Настраиваем веб-интерфейс NoDeny&lt;br /&gt;
* Настраиваем серверные скрипты NoDeny&lt;br /&gt;
&lt;br /&gt;
Предпочитаемой системой для NoDeny является FreeBSD. Эта система во многом похожа на Lunux. Если вы сталкиваетесь  с  FreeBSD впервые, то обратите внимание на используемый редактор в этой системе: '''ee'''. Выход из редактора осуществляется по клавише  ESC, затем «a», затем снова «a»&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Установка и настройка сервера=&lt;br /&gt;
&lt;br /&gt;
[[Install NoDeny on Ubuntu server 22.04|Для Ubuntu server 22.04]]&lt;br /&gt;
&lt;br /&gt;
Ниже описана установка на FreeBSD&lt;br /&gt;
&lt;br /&gt;
==Устанавливаем операционную систему==&lt;br /&gt;
&lt;br /&gt;
Загружаем с [https://www.freebsd.org/where.html офсайта] образ FreeBSD под архитектуру amd64 или i386 в зависимости от типа процессора вашего сервера. Обратите внимание, что amd64 означает не процессор amd, а архитектуру, если у вас 64 разрядный intel - скорее всего нужно выбирать архитектуру  amd64. Версию желательно выбирать stable.&lt;br /&gt;
&lt;br /&gt;
При установке можно выбирать рекомендуемые параметры, т.е. на все вопросы нажимать enter. На вопрос &amp;quot;Would you like to add users to the installed system now?&amp;quot; отвечаем Yes и создаем пользователя. При этом на вопрос Login Group вводим wheel - тогда наш пользователь сможет стать root с помощью команды su.&lt;br /&gt;
&lt;br /&gt;
Минутное видео инсталляции системы FreeBSD:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;oID6BFzxcr0&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==После установки и перезагрузки==&lt;br /&gt;
&lt;br /&gt;
Если мы настраиваем тестовый сервер, то скорее всего выбрали получение ip по dhcp. Логинимся на сервер и выясняем какой ip он получил:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ifconfig&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее удобнее выполнять настройку по ssh. Логинимся по ssh под созданным логином и становимся root-ом:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Настраиваем rc.conf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ee /etc/rc.conf&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Добавляем в rc.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ifconfig_lo0_alias0=&amp;quot;inet 1.1.1.1 netmask 255.255.255.255&amp;quot;&lt;br /&gt;
fsck_y_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
background_fsck=&amp;quot;NO&amp;quot;&lt;br /&gt;
firewall_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
gateway_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
local_unbound_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;overflow: hidden&amp;quot; data-expandtext=&amp;quot;Объяснить что мы сделали&amp;quot; data-collapsetext=&amp;quot;Скрыть&amp;quot;&amp;gt;&lt;br /&gt;
* background_fsck=&amp;quot;NO&amp;quot; отключает проверку дисков в бекграунде и делает ее при старте, fsck_y_enable=&amp;quot;YES&amp;quot; говорит «yes» на все вопросы при проверке.&lt;br /&gt;
* 1.1.1.1 - виртуальный ip, который автор настраивает на всех своих серверах на интерфейсе lo0. Этот ip клиенты указывают в своих настройках в качестве dns сервера, сервера авторизации и т.д.&lt;br /&gt;
* local_unbound_enable=&amp;quot;YES&amp;quot; - автозапуск локального DNS&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Копируем следующий текст и выполняем на сервере в командной строке одним блоком:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo '/sbin/ipfw add 100 allow ip from any to any' &amp;gt; /etc/rc.firewall&lt;br /&gt;
echo 'pf_load=&amp;quot;YES&amp;quot;' &amp;gt;&amp;gt; /boot/loader.conf&lt;br /&gt;
echo 'pf_enable=&amp;quot;YES&amp;quot;' &amp;gt;&amp;gt; /etc/rc.conf&lt;br /&gt;
echo 'ipfw_load=&amp;quot;YES&amp;quot;' &amp;gt;&amp;gt; /boot/loader.conf&lt;br /&gt;
echo 'ipdivert_load=&amp;quot;YES&amp;quot;' &amp;gt;&amp;gt; /boot/loader.conf&lt;br /&gt;
echo 'dummynet_load=&amp;quot;YES&amp;quot;' &amp;gt;&amp;gt; /boot/loader.conf&lt;br /&gt;
echo 'nameserver 8.8.8.8' &amp;gt; /etc/resolv.conf&lt;br /&gt;
ifconfig lo0 alias 1.1.1.1 netmask 255.255.255.255&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style='display:none'&amp;gt;&lt;br /&gt;
Устанавливаем пакетный менеджер PKGNG==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/usr/sbin/pkg&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
На вопрос отвечаем «y»&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pkg2ng&lt;br /&gt;
echo 'WITH_PKGNG=&amp;quot;yes&amp;quot;' &amp;gt;&amp;gt; /etc/make.conf&lt;br /&gt;
echo 'daily_backup_pkgdb_enable=&amp;quot;NO&amp;quot;' &amp;gt;&amp;gt; /etc/periodic.conf&lt;br /&gt;
cp /usr/local/etc/pkg.conf.sample /usr/local/etc/pkg.conf&lt;br /&gt;
pkg update -f&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Устанавливаем необходимые пакеты==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style='display:none'&amp;gt;&lt;br /&gt;
Установить perl можно довольно быстро &lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
pkg install perl5&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Но автор на всякий случай устанавливает из портов, чтобы удостовериться, что perl будет собран с опцией «THREADS - Build threaded perl» - не забудьте проверить это когда будет выведен список опций:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /usr/ports/lang/perl5.20/&lt;br /&gt;
make install clean&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ставим необходимые приложения&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
pkg install perl5 bash subversion mc sudo&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Назначаем bash дефолтным для учетной записи root:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
pw usermod root -s /usr/local/bin/bash&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Добавим возможность по sudo переключаться на root без ввода пароля:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo '%wheel ALL=(ALL) NOPASSWD: ALL' &amp;gt;&amp;gt; /usr/local/etc/sudoers&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В дальнейшем вместо  «su» можно вводить «sudo bash» без ввода пароля&lt;br /&gt;
&lt;br /&gt;
==Загружаем NoDeny+==&lt;br /&gt;
Для NoDeny plus:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /usr/local&lt;br /&gt;
svn co svn://nodeny-plus.com.ua/release nodeny&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для NoDeny next:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /usr/local&lt;br /&gt;
svn co svn://nodeny-plus.com.ua/release/next nodeny&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Настраиваем nat==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cp /usr/local/nodeny/etc/pf.conf /etc/&lt;br /&gt;
ee /etc/pf.conf&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В первой строке указываем интерфейс, который смотрит на вышестоящего провайдера. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
kldload pf&lt;br /&gt;
pfctl -N -f /etc/pf.conf&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Игнорируем следующие ошибки:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
No ALTQ support in kernel&lt;br /&gt;
ALTQ related functions disabled&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Настраиваем локальный dns==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sysrc local_unbound_enable=YES&lt;br /&gt;
/etc/rc.d/local_unbound quietstart&lt;br /&gt;
ee /var/unbound/unbound.conf &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В секцию server добавляем строки&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        interface: 1.1.1.1&lt;br /&gt;
        interface: 127.0.0.1&lt;br /&gt;
        access-control: 0.0.0.0/0 allow&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Проверяем корректность конфига:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/etc/rc.d/local_unbound configtest&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Должны получить в ответ:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
unbound-checkconf: no errors in /var/unbound/unbound.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/etc/rc.d/local_unbound restart&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Проверяем&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
drill @1.1.1.1 nodeny.com.ua&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Смотрим внимательно в ответ - в нем должен присутствовать ip адрес nodeny.com.ua&lt;br /&gt;
&lt;br /&gt;
==Проверяем, что клиенты получают доступ в интернет==&lt;br /&gt;
&lt;br /&gt;
На данном этапе сервер может выполнять свои функции без NoDeny, т.е. давать абонентам доступ в интернет. Пробуем с клиентского компьютера пропинговать 8.8.8.8. Если не пингуется, на сервере запускаем tcpdump (где fxp1 - интерфейс на вышестоящего провайдера):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
tcpdump -ifxp1 -p -n icmp&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если пакеты, идущие на 8.8.8.8, идут от ip клиента, значит nat у нас не работает. Смотрим pf.conf все ли мы верно там указали.&lt;br /&gt;
&lt;br /&gt;
На клиентском компьютере в качестве DNS устанавливаем 1.1.1.1 (наш локальный). Проверяем ping ya.ru&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Настраиваем NoDeny=&lt;br /&gt;
&lt;br /&gt;
==Устанавливаем MySQL-сервер==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
pkg install mysql80-server&lt;br /&gt;
mkdir /var/db/mysql_tmpdir/&lt;br /&gt;
chown mysql /var/db/mysql_tmpdir/&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Автозапуск при старте системы&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sysrc mysql_enable=YES&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Стартуем mysql-сервер&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
service mysql-server start&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Создаем структуру БД NoDeny+&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mysql -u root&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Выполняем в консоли mysql:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'hardpass';&lt;br /&gt;
create database nodeny;&lt;br /&gt;
use nodeny;&lt;br /&gt;
source /usr/local/nodeny/bill.sql;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Кроме создания структуры БД NoDeny+, мы изменили root пароль для mysql на hardpass. Измените его на иной если это не тестовая инсталляция. Выходим:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Perl-модуль для MySQL==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
pkg install p5-DBD-mysql&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если появится сообщение типа такого:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Installed packages to be REMOVED:&lt;br /&gt;
    mysql80-client: 8.0.31&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Это означает, что в пакетах perl-модуль не работает с mysql версии 8. Надо прервать установку и устанавить из портов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
portsnap fetch&lt;br /&gt;
portsnap extract&lt;br /&gt;
cd /usr/ports/databases/p5-DBD-mysql/ &amp;amp;&amp;amp; make install clean&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Устанавливаем Web-сервер==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
pkg install apache24&lt;br /&gt;
&amp;lt;/source &amp;gt;&lt;br /&gt;
&lt;br /&gt;
Автозапуск&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sysrc apache24_enable=YES&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Подправим конфиг&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sed -i '' '1 s/.*/LoadModule cgi_module libexec\/apache24\/mod_cgi.so/' /usr/local/etc/apache24/httpd.conf&lt;br /&gt;
echo 'ServerName 0.0.0.0:80' &amp;gt;&amp;gt; /usr/local/etc/apache24/httpd.conf&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Стартуем&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
apachectl start&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Открываем в браузере&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://10.0.0.1/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если не получаем приветствующего сообщения «It works!» - смотрим логи&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
tail /var/log/httpd-error.log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Установка веб-интерфейса NoDeny+=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
pkg install p5-Crypt-Rijndael p5-Net-ARP p5-JSON p5-JSON-XS p5-LWP-Protocol-https p5-CGI&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ln -s /usr/local/bin/perl /usr/bin/perl &amp;gt; /dev/null&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
По умолчанию во FreeBSD путь к cgi-bin и корню www: /usr/local/www/apache24/. Следующие команды удалят cgi-bin и data (www корень), после чего создадут символические линки на папки cgi-bin и htdocs внутри /usr/local/nodeny/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
rm -fR /usr/local/www/apache24/cgi-bin&lt;br /&gt;
rm -fR /usr/local/www/apache24/data&lt;br /&gt;
ln -s /usr/local/nodeny/cgi-bin/ /usr/local/www/apache24/cgi-bin&lt;br /&gt;
ln -s /usr/local/nodeny/htdocs/ /usr/local/www/apache24/data&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Подключим модули (-x), установим владельца и права на файлы (-w), создадим стартовый конфиг (-m), создадим суперадмина (-p):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /usr/local/nodeny&lt;br /&gt;
perl install.pl -x&lt;br /&gt;
perl install.pl -w=www&lt;br /&gt;
perl install.pl -m&lt;br /&gt;
perl install.pl -p admin=12345&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Входим в админку под логином admin и паролем 12345&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://10.0.0.1/cgi-bin/stat.pl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Если в левом верхнем углу появится эмблема NoDeny+, то заходим в настройки и устанавливаем в «да» параметр «установите &amp;quot;да&amp;quot; если путь к изображениям корректен»'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Изменяем следующие настройки:&lt;br /&gt;
&lt;br /&gt;
* Тарификация → Денежная еденица&lt;br /&gt;
* Доп.поля. Удалите поля, которые не потребуются для данных ваших клиентов и добавьте нужные. Например, если вам необходимо поле «Город», то следует создать запись:&lt;br /&gt;
** Имя поля: Город&lt;br /&gt;
** Имя поля в бд: _adr_city&lt;br /&gt;
** Тип поля: выпадающий список&lt;br /&gt;
** Тип объекта: city&lt;br /&gt;
&lt;br /&gt;
В настройках в разделе «Администраторы» меняем пароль своей учетке, а также выдаем все привилегии.&lt;br /&gt;
&lt;br /&gt;
Создаем клиентскую учетную запись, после чего устанавливаем в значение «Всегда онлайн» параметр «Авторизация» - это позволит клиенту получить доступ в интернет без авторизации вначале тестирования. Также добавляем ip и услугу «1 Мбит».&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Запуск ядра NoDeny+=&lt;br /&gt;
&lt;br /&gt;
Ядро NoDeny+ работает в фоне и выполняет следующие функции: обработка авторизаций, сбор статистики трафика, управление услугами и т.д. Конфиги находятся в файлах /usr/local/nodeny/kernel/*.cfg. &lt;br /&gt;
&lt;br /&gt;
Получим список всех установленных модулей:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /usr/local/nodeny&lt;br /&gt;
perl nokernel.pl -L&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Напротив названия модуля YES означает, что модуль будет запускаться автоматически при старте ядра. Если же нет, то мы можем запустить модуль в отдельном потоке с помощью ключа -m.&lt;br /&gt;
&lt;br /&gt;
Запускаем ядро со стандартным набором модулей&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
perl nokernel.pl&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если на консоль не вывело никаких ошибок - ядро успешно запустило все модули.&lt;br /&gt;
&lt;br /&gt;
Запускаем скрипт управления фаерволом&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
perl noserver.pl -v&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если на консоль не вывело никаких ошибок - ставим в автозагрузку:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo '/usr/bin/perl /usr/local/nodeny/nokernel.pl -d &amp;amp;' &amp;gt;&amp;gt; /etc/rc.local&lt;br /&gt;
echo '/usr/bin/perl /usr/local/nodeny/noserver.pl -d &amp;amp;' &amp;gt;&amp;gt; /etc/rc.local&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Запускаем скрипты в фоне&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
perl /usr/local/nodeny/nokernel.pl -d &amp;amp;&lt;br /&gt;
perl /usr/local/nodeny/noserver.pl -d &amp;amp;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Настройка фаервола==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cp /usr/local/nodeny/etc/rc.firewall /etc/&lt;br /&gt;
ee /etc/rc.firewall&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Редактируем rc.firewall, меняем внешний интерфейс:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ifOut='fxp1'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если мы будем осуществлять подсчет трафика, раскомментируем строчку:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#use_ipcad_divert=YES&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
и установим программу сбора трафика ipcad:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
pkg install ipcad&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В автозагрузку:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo ipcad_enable=YES &amp;gt;&amp;gt; /etc/rc.conf&lt;br /&gt;
cp /usr/local/nodeny/etc/ipcad.conf /usr/local/etc/&lt;br /&gt;
ipcad -d&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В автозагрузку модуль NoDeny подсчета трафика:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo '/usr/bin/perl /usr/local/nodeny/nokernel.pl -m=collectors -d &amp;amp;' &amp;gt;&amp;gt; /etc/rc.local&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Проверим, что все сделали правильно==&lt;br /&gt;
&lt;br /&gt;
Перезагружаем сервер:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
reboot&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Логинимся. Проверяем, что запущены скрипты NoDeny:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ps ax | grep nodeny | grep pl | grep -v grep&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Должны получить в ответ примерно следующее:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 659 v0- S    0:00.98 /usr/bin/perl /usr/local/nodeny/noserver.pl -d&lt;br /&gt;
 660 v0- S    0:01.36 /usr/bin/perl /usr/local/nodeny/nokernel.pl -d&lt;br /&gt;
 661 v0- S    0:00.99 /usr/bin/perl /usr/local/nodeny/nokernel.pl -m=collectors -d&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь видно, что запущен модуль управления фаерволом (noserver) и ядро NoDeny (nokernel). Также запущено второе ядро NoDeny с запуском модуля подсчета трафика (-m=collectors). Как было сказано, все модули, которые при perl nokernel.pl -L выдают YES, запускаются при обычном старте nokernel (все вместе в одном потоке). Поскольку сбор трафика довольно нагруженный процесс и может требовать много памяти - автор рекомендует запускать его отдельным процессом ядра.&lt;br /&gt;
&lt;br /&gt;
Проверяем запущен ли ipcad (если используем подсчет трафика):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ps ax | grep ipcad | grep -v grep&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Проверяем состояние фаервола:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ipfw list&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Он должен частично соответствовать содержимому файла /etc/rc.firewall. Если мы используем подсчет трафика, то проверяем существование строки 420 и что в ней есть команда divert&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Можно проверить правильно ли идет управление фаерволом, выдается скорость и считается трафик. Для этого на тестовом, компьютере, подключенном к настраиваемому серверу,  пропишите статический ip.  В админке создайте учетную запись абонента (на титульной странице кнопка «создать»), установите ей параметры:&lt;br /&gt;
&lt;br /&gt;
* отключать ли по балансу = «нет»&lt;br /&gt;
* авторизация = «всегда онлайн»&lt;br /&gt;
* добавьте ip  и тариф для доступа в интернет&lt;br /&gt;
&lt;br /&gt;
На тестовом компьютере через несколько секунд должен появиться доступ в интернет.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;overflow: hidden&amp;quot; data-expandtext=&amp;quot;Если интернет не появился&amp;quot; data-collapsetext=&amp;quot;Скрыть&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Если интернет не появился, проверим, что скрипт управления фаерволом дал указание фаерволу пропустить абонента:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ipfw table 21 list&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В списке должен быть ip абонента и какое-то число. Если нет, то запустим скрипт управления фаерволом с выводом информации в консоль:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
perl /usr/local/nodeny/noserver.pl -v&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Не забывайте условия доступа в интенет:&lt;br /&gt;
&lt;br /&gt;
* в настройках абонента должен быть привязан ip к его учетной записи&lt;br /&gt;
* должен быть выдан тариф с доступом в интернет&lt;br /&gt;
* абонент должен быть авторизован (пока мы до этого не дошли) либо же его параметр авторизация должен быть «всегда онлайн»&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Настройка авторизации клиентов==&lt;br /&gt;
&lt;br /&gt;
На этом этапе необходимо определиться с технологией подключения и авторизации абонентов. Наиболее распространено:&lt;br /&gt;
&lt;br /&gt;
* [[dhcp|ipoe + dhcp]]: удобен для абонентов - не нужно ничего настраивать на компьютере. Однако низкая безопасность т.к. злоумышленник может подделать свой мак-адрес и пользоваться интернетом за чужой счет&lt;br /&gt;
* ipoe + dhcp + option82: удобен для абонентов - не нужно ничего настраивать на компьютере. Хорошая безопасность. Однако требует установки управляемых свичей и их настройку.&lt;br /&gt;
* pppoe: относительно сложен для клиентов. Безопасность лучше чем при dhcp. Небольшое уменьшение пропускной способности внутри сети из-за пересылки дополнительных данных в pppoe протоколе.&lt;/div&gt;</summary>
		<author><name>Sv</name></author>
	</entry>
</feed>