Установка NoDeny: відмінності між версіями

Матеріал з NoDeny
Перейти до навігації Перейти до пошуку
Немає опису редагування
Рядок 119: Рядок 119:


В первой строке указываем интерфейс, который смотрит на вышестоящего провайдера.  
В первой строке указываем интерфейс, который смотрит на вышестоящего провайдера.  
<syntaxhighlight lang="bash">
pfctl -N -f /etc/pf.conf
</syntaxhighlight>
Игнорируем
<pre>
No ALTQ support in kernel
ALTQ related functions disabled
</pre>


===Настраиваем локальный dns===
===Настраиваем локальный dns===
Рядок 158: Рядок 169:
</syntaxhighlight>
</syntaxhighlight>


=== Проверяем, что клиенты получают доступ в интернет===


Перезагружаем сервер:
Перезагружаем сервер:
Рядок 174: Рядок 186:


На клиентском компьютере в качестве DNS устанавливаем 1.1.1.1 (наш локальный). Проверяем ping ya.ru
На клиентском компьютере в качестве DNS устанавливаем 1.1.1.1 (наш локальный). Проверяем ping ya.ru
===Устанавливаем MySQL-сервер===
<syntaxhighlight lang="bash">
pkg install mysql56-server
</syntaxhighlight>
Создаем конфиг
<syntaxhighlight lang="bash">
ee /etc/my.cnf
</syntaxhighlight>
Редактируем my.cnf
<pre>
[mysqld]
skip-networking
character-set-server=utf8
init-connect="SET NAMES utf8"
query_cache_size=64M
long_query_time=5
slow_query_log=1
slow_query_log_file=/var/db/mysql/slow.log
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
</pre>
Стартуем mysql-сервер
<syntaxhighlight lang="bash">
/usr/local/etc/rc.d/mysql-server forcestart
</syntaxhighlight>
Устанавливаем пароль root в mysql
<syntaxhighlight lang="bash">
mysqladmin -u root password 'hardpass'
</syntaxhighlight>
Автозапуск при старте системы
<syntaxhighlight lang="bash">
echo mysql_enable=YES >> /etc/rc.conf
</syntaxhighlight>
Создаем структуру БД NoDeny+
<syntaxhighlight lang="bash">
mysql -u root --password='hardpass'
</syntaxhighlight>
<pre>
create database nodeny;
use nodeny;
source /usr/local/nodeny/bill.sql;
</pre>

Версія за 14:09, 5 серпня 2015

Вступление

Устанавливаем по такой схеме:

  • Сначала настраиваем сервер так, чтобы он работал без NoDeny, т.е. предоставлял абонентам доступ в интернет: выполнял функции NAS, маршрутизации и локального DNS
  • Настроим веб-интерфейс NoDeny
  • Настроим серверные скрипты NoDeny

Установка

При установке можно выбирать рекомендуемые параметры, т.е. на все вопросы нажимаем enter. Обращаем внимание на такие вещи:

  • На вопрос "Would you like to add users to the installed system now?" отвечаем Yes и создаем пользователя. При этом на вопрос Login Group вводим 0 (ноль) - тогда наш пользователь сможет стать root с помощью команды su

После установки и перезагрузки

Если мы настраиваем тестовый сервер, то скорее всего выбрали получение ip по dhcp. Логинимся на сервер и выясняем какой ip он получил:

ifconfig

Далее удобнее выполнять настройку по ssh. Логинимся по ssh под созданным логином и становимся root-ом:

su

Настраиваем rc.conf

ee /etc/rc.conf

Добавляем в rc.conf

ifconfig_lo0_alias0="inet 1.1.1.1 netmask 255.255.255.255"
fsck_y_enable="YES"
background_fsck="NO"
firewall_enable="YES"
gateway_enable="YES"
local_unbound_enable="YES"
  • background_fsck="NO" отключает проверку дисков в бекграунде и делает при старте, fsck_y_enable="YES" говорит «yes» на все вопросы при проверке.
  • 1.1.1.1 - виртуальный ip, который автор настраивает на всех своих серверах на интерфейсе lo0. Этот ip клиенты указывают в своих настройках в качестве dns сервера, сервера авторизации и т.д.

Копируем следующий текст и выполняем на сервере одним блоком:

echo '/sbin/ipfw add 100 allow ip from any to any' > /etc/rc.firewall
echo 'pf_load="YES"' >> /boot/loader.conf
echo 'pf_enable="YES"' >> /etc/rc.conf
echo 'ipfw_load="YES"' >> /boot/loader.conf
echo 'ipdivert_load="YES"' >> /boot/loader.conf
echo 'dummynet_load="YES"' >> /boot/loader.conf
echo 'nameserver 8.8.8.8' > /etc/resolv.conf

Устанавливаем пакетный менеджер PKGNG

/usr/sbin/pkg

На вопрос отвечаем «y»

pkg2ng
echo 'WITH_PKGNG="yes"' >> /etc/make.conf
echo 'daily_backup_pkgdb_enable="NO"' >> /etc/periodic.conf
cp /usr/local/etc/pkg.conf.sample /usr/local/etc/pkg.conf
pkg update -f

Устанавливаем необходимые программы

Устанавить perl можно довольно быстро

pkg install perl5

Но автор на всякий случай устанавливает из портов, чтобы удостовериться, что perl будет собран с опцей «THREADS - Build threaded perl» - не забудьте проверить это когда будет выведен список опций:

cd /usr/ports/lang/perl5.18/
make install clean
ln -s /usr/local/bin/perl /usr/bin/perl 2> /dev/null

Ставим bash, svn и mc.

pkg install bash subversion mc-light sudo

Назначаем bash дефолтным для учетной записи root:

pw usermod root -s /usr/local/bin/bash

Загружаем NoDeny+

cd /usr/local
svn co svn://nodeny-plus.com.ua/release nodeny

Настраиваем nat

cp /usr/local/nodeny/etc/pf.conf /etc/
ee /etc/pf.conf

В первой строке указываем интерфейс, который смотрит на вышестоящего провайдера.

pfctl -N -f /etc/pf.conf

Игнорируем

No ALTQ support in kernel
ALTQ related functions disabled

Настраиваем локальный dns

ee /var/unbound/unbound.conf

В секцию server добавляем строки

        interface: 1.1.1.1
        interface: 127.0.0.1
        access-control: 0.0.0.0/0 allow

Проверяем корректность конфига:

unbound-checkconf

Должны получить в ответ:

unbound-checkconf: no errors in /var/unbound/unbound.conf

Стартуем dns:

/etc/rc.d/local_unbound restart

Проверяем

drill @1.1.1.1 nodeny.com.ua

Проверяем, что клиенты получают доступ в интернет

Перезагружаем сервер:

reboot

На данном этапе сервер может выполнять свои функции без NoDeny, т.е. давать абонентам доступ в интернет. Пробуем с клиентского компьютера пропинговать 8.8.8.8. Если не пингуется:

tcpdump -ifxp1 -p -n icmp

Если пакеты, идущие на 8.8.8.8, идут от ip клиента, значит nat у нас не работает. Смотрим pf.conf все ли мы верно там указали.

На клиентском компьютере в качестве DNS устанавливаем 1.1.1.1 (наш локальный). Проверяем ping ya.ru

Устанавливаем MySQL-сервер

pkg install mysql56-server

Создаем конфиг

ee /etc/my.cnf

Редактируем my.cnf

[mysqld]
skip-networking
character-set-server=utf8
init-connect="SET NAMES utf8"
query_cache_size=64M
long_query_time=5
slow_query_log=1
slow_query_log_file=/var/db/mysql/slow.log
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

Стартуем mysql-сервер

/usr/local/etc/rc.d/mysql-server forcestart

Устанавливаем пароль root в mysql

mysqladmin -u root password 'hardpass'

Автозапуск при старте системы

echo mysql_enable=YES >> /etc/rc.conf

Создаем структуру БД NoDeny+

mysql -u root --password='hardpass'
create database nodeny;
use nodeny;
source /usr/local/nodeny/bill.sql;