Установка NoDeny: відмінності між версіями
Sv (обговорення | внесок) |
Sv (обговорення | внесок) Немає опису редагування |
||
Рядок 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;