Показати сторінкуСтарі ревізіїПосилання сюдиЕкспорт до PDFПовернутися наверх Ця сторінка доступна тільки для перегляду. Ви можете продивитися вихідний текст, але не можете змінювати його. Якщо ви вважаєте, що це не вірно, зверніться до адміністратора. ====== AIO install ====== ===== Швидка установка "Все в одному" ===== \\ \\ \\ \\ \\ <WRAP center round info 65%> Весь процес установки та налаштування за даною інструкцією від початку і до кінця займає близько півгодини! Мій рекорд 22 хвилини :) \\ Процедура оновлення всіх пакетів відбувається швидко за командою <code>pkg upgrade</code> </WRAP> ===== Встановлення системи ===== Підготовляємо дистрибутив FreeBSD x.x **__Release__** Записуємо завантажений дистрибутив на диск і сміливо приступаємо: <WRAP center round important 70%> Все перевірено на FreeBSD v13.0, v12.1, v11.0-2, v10.1-3 та v9.3! </WRAP> - Під час установки, після вибору локалі, обов'язково вибираємо **SRC** (у майбутньому може знадобиться для перескладання ядра), решта за бажанням (я б не ставив тільки порти та доки, і так їх оновлювати потрібно) - Далі вибрати метод розбивки диска за промовчанням - Auto (UFS) - Тому що розбивати: весь диск або розділ (припустимо весь диск) - установка запропонує найкращий варіант, де <WRAP round box 60%>під завантажувальний сектор = 512 кб \\ розділ підкачування свап = 1 гб (2*рам але не більше 1 гб) \\ кореневий розділ / = все інше</WRAP> - тиснемо Finish => Commit = пішла установка FreeBSD - потім вводимо пароль для рут-користувача - потім налаштуємо доступ до інтернету - після чого вибираємо часовий пояс - далі можна вибрати які послуги вам потрібні, **SSHD** обов'язково - потім потрібно додати локального користувача помістивши його до групи **wheel** - Установка системи завершена Exit => No => Reboot <WRAP center round important 60%> важливо витягнути інсталяційний диск під час перезавантаження, щоб не розпочати інсталяцію заново </WRAP> <WRAP center round info 100%> Після перезавантаження сервера, підключаємося до нього через SSH, щоб легше копі-пастити </WRAP> ===== Налаштування завантажувача ===== Для прискорення завантаження сервера відключимо таймер завантажувального меню, а також саме меню <code bash> echo autoboot_delay=\"-1\" >> /boot/loader.conf echo beastie_disable=\"YES\" >> /boot/loader.conf </code> ===== Початкова конфігурація ===== <code bash> sysrc fsck_y_enable=YES sysrc background_fsck=NO sysrc sshd_enable=YES sysrc firewall_enable=YES sysrc gateway_enable=YES ee /etc/rc.conf </code> приводимо до вигляду <code bash> hostname="nodeny.com.ua" defaultrouter="1.2.3.1" ifconfig_fxp0="inet 10.0.0.1 netmask 255.255.255.0" ifconfig_fxp1="inet 1.2.3.4 netmask 255.255.255.0" ifconfig_lo0_alias0="inet 1.1.1.1 netmask 255.255.255.255" fsck_y_enable="YES" background_fsck="NO" sshd_enable="YES" firewall_enable="YES" gateway_enable="YES" </code> <WRAP center round info 100%> де * background_fsck="NO" відключає перевірку дисків у бекграунді та робить при старті * fsck_y_enable="YES" каже "yes" на всі запитання під час перевірки. * 1.1.1.1 - віртуальний ip, який автор налаштовує усім своїх серверах на інтерфейсі lo0. Цей ip клієнти вказують у своїх настройках як dns сервер, сервер авторизації і т.д. * Інтерфейс fxp1 дивиться на шлюз вищого провайдера з ip 1.2.3.1. * Інтерфейс fxp0 дивиться у мережу клієнтів. </WRAP> Відключаємо підтримку X11 та GUI echo 'WITHOUT_X11="yes"' >> /etc/make.conf echo 'WITHOUT_GUI="yes"' >> /etc/make.conf ===== Ставимо PKGNG ===== <WRAP center round important 90%> З вересня 2014 розробники FreeBSD замінили застарілий пакетний менеджер на новий - PKGNG (package new generation). З базової системи були видалені утиліти pkg_* (такі, як: pkg_install, pkg_add, pkg_create, pkg_delete, pkg_info, pkg_updating та pkg_version).\\ [[http://www.freebsd.org/doc/ua/books/handbook/pkgng-intro.html|Посібник FreeBSD:PKGNG]] </WRAP> установка PKGNG <code bash> pkg bootstrap -f </code> Перекладаємо базу даних портів працювати з PKGNG, відключаємо бекап старої бази, створюємо конфіг PKGNG <code bash> 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 </code> За замовчуванням підключений квартальний репозиторій пакетів, але я вмикаю останній <code> cp /etc/pkg/FreeBSD.conf /etc/pkg/FreeBSD.conf.old sed -i -p "s/quarterly/latest/" /etc/pkg/FreeBSD.conf ee /etc/pkg/FreeBSD.conf url: "pkg+http://pkg.FreeBSD.org/${ABI}/latest", </code> оновимо базу доступних пакетів <code bash> pkg update -f </code> ===== Ставимо Пакети ====== <code bash> pkg install perl5 p5-App-cpanminus p5-Crypt-Rijndael p5-JSON p5-JSON-XS p5-LWP-Protocol-https p5-CGI \ bash subversion apache24 mc-nox11 mysql80-server </code> <code bash> ln -s /usr/local/bin/perl /usr/bin/perl > /dev/null cpanm DBD::mysql </code> ===== Завантажуємо NoDeny Next ====== **на момент написання статті є 3 репозиторії:**\\ * демоверсія ''[[svn://nodeny-plus.com.ua/nodenyfree]]''\\ * стабільна ''[[svn://nodeny-plus.com.ua/release]]''\\ * нова гілка ''[[svn://nodeny-plus.com.ua/release/next]]''\\ я буду використовувати Next і так, завантажуємо білінг <code bash> cd /usr/local svn co svn://nodeny-plus.com.ua/release/next nodeny </code> ===== Налаштування NAT (pf) ====== <code bash> echo pf_load=YES >> /boot/loader.conf echo pf_enable=\"YES\" >> /etc/rc.conf cp /usr/local/nodeny/etc/pf.conf /etc/ ee /etc/pf.conf </code> <WRAP center round info 100%> * вписати в ext_if = "fxp1" свій інтерфейс, який у вас дивиться в інет * залишити правило тієї мережі, яка дивиться в локалку </WRAP> <WRAP center round important 100%> Важливо, щоб адреси зовнішньої та внутрішньої мереж не були однаковими! </WRAP> ===== Налаштування збір статистики трафіку (ipcad) ====== <code bash> echo ipfw_load=\"YES\" >> /boot/loader.conf echo ipdivert_load=\"YES\" >> /boot/loader.conf echo dummynet_load=\"YES\" >> /boot/loader.conf echo ipcad_enable=\"YES\" >> /etc/rc.conf cp /usr/local/nodeny/etc/ipcad.conf /usr/local/etc/ ipcad -d </code> ===== Налаштування firewall ====== Фаєрвол із блокуванням неавторизованих клієнтів <code bash> cp /usr/local/nodeny/etc/rc.firewall /etc/ ee /etc/rc.firewall </code> <WRAP center round info 70%> Редагуємо rc.firewall, міняємо зовнішній інтерфейс \\ ifOut='fxp1' на той, що у вас дивиться в інет </WRAP> ===== Налаштування mysql ====== <code bash> sysrc mysql_enable=yes sysrc mysql_optfile=/usr/local/etc/mysql/my.cnf mkdir /var/db/mysql_tmpdir/ chown mysql /var/db/mysql_tmpdir/ service mysql-server start </code> Підключаємося до mysql і встановимо пароль руту <code bash> mysql -u root # замість hardpass ваш пароль ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'hardpass', `root`@`localhost` PASSWORD EXPIRE NEVER; exit; </code> Підключаємось до mysql з паролем <code bash> # замість hardpass ваш пароль mysql -u root --password='hardpass' ALTER USER `root`@`localhost` IDENTIFIED BY `hardpass`, `root`@`localhost` PASSWORD EXPIRE NEVER; </code> Створимо базу даних nodeny <code mysql> create database nodeny; use nodeny; source /usr/local/nodeny/bill.sql; exit; </code> ==== Tuning ==== pkg install mysqltuner mysqltuner --user root --pass hardpass --color [[https://stackoverflow.com/a/68738293| fix [Warning] [MY-013360] [Server] Plugin sha256_password reported]] ===== Налаштування apache24 ====== <code bash> sysrc apache24_enable=yes echo /sbin/kldload accf_http >> /etc/rc.local /sbin/kldload accf_http </code> <code bash> echo "ServerName 0.0.0.0:80" >> /usr/local/etc/apache24/Includes/httpd.conf echo "LoadModule cgi_module libexec/apache24/mod_cgi.so" >> /usr/local/etc/apache24/Includes/httpd.conf </code> Створимо симлінк на веб-скрипти NoDeny <code bash> rm -fR /usr/local/www/apache24/cgi-bin rm -fR /usr/local/www/apache24/data ln -s /usr/local/nodeny/cgi-bin/ /usr/local/www/apache24/cgi-bin ln -s /usr/local/nodeny/htdocs/ /usr/local/www/apache24/data </code> <code bash> service apache24 start </code> mkdir /usr/local/etc/newsyslog.conf.d/ ee /usr/local/etc/newsyslog.conf.d/apache24.conf # Apache /var/log/httpd-access.log www:wheel 600 3 2048 * JC /var/run/httpd.pid 30 /var/log/httpd-error.log www:wheel 600 10 2048 * JC /var/run/httpd.pid 30 # Apache SSL /var/log/httpd-access-ssl.log www:wheel 600 3 2048 * JC /var/run/httpd.pid 30 /var/log/httpd-error-ssl.log www:wheel 600 10 2048 * JC /var/run/httpd.pid 30 service newsyslog restart newsyslog -a /var/log/ [[freebsd:certbot|freebsd:install:certbot]] ===== Налаштування NoDeny Plus ====== Підключимо модулі (-x), встановимо власника та права на файли (-w), створимо стартовий конфіг (-m), створимо суперадміну (-p): <code bash> cd /usr/local/nodeny perl install.pl -m perl install.pl -x perl install.pl -w=www perl install.pl -p admin=12345 </code> ==== Відновлення з Бекапа ==== <WRAP center round important 100%> Обов'язково скопіювати в папку /usr/local/nodeny/ файли: sat.cfg - файл з налаштуваннями відновлюваної NoDeny backup.sql - файл бази даних, що відновлюється NoDeny </WRAP> Створимо структуру бази nodeny <code sql> mysql --default-character-set=utf8 -u root -p # вводимо пароль рута drop database nodeny; create database nodeny; exit; #source /usr/local/nodeny/backup.sql; </code> і наповнимо даними з бекапа: <code bash> mysql --default-character-set=utf8 -u root -p nodeny < /usr/local/nodeny/backup.sql Enter password: # вводимо пароль рута </code> Підключимо модулі (-x), встановимо власника та права на файли (-w): <code bash> cd /usr/local/nodeny perl install.pl -x perl install.pl -w=www </code> ===== Запуск ядра NoDeny+ ===== Ядро NoDeny+ працює на тлі та виконує такі функції: обробка авторизацій, збір статистики трафіку, управління послугами тощо. Конфіги знаходяться у файлах /usr/local/nodeny/kernel/*.cfg. Обов'язковий параметр run - вказує, чи буде плагін запущений при старті ядра чи ні. Якщо run встановлено в 0, то плагін можна запустити лише вказавши його у параметрах командного рядка під час запуску ядра. Отримаємо список усіх плагінів <code bash>perl nokernel.pl -L</code> Навпроти назви модуля 1 означає, що модуль запускатиметься автоматично при старті ядра. Запускаємо ядро зі стандартним набором модулів <code bash>perl nokernel.pl</code> Якщо на консоль не вивело жодних помилок – ядро успішно запустило всі модулі. Запускаємо скрипт управління фаєрволом <code bash>perl noserver.pl -v</code> Якщо на консоль не вивело жодних помилок – ставимо в автозавантаження: <code bash> echo '/usr/bin/perl /usr/local/nodeny/nokernel.pl -d &' >> /etc/rc.local echo '/usr/bin/perl /usr/local/nodeny/noserver.pl -d &' >> /etc/rc.local </code> Запускаємо скрипти ядра <code bash> perl /usr/local/nodeny/nokernel.pl -d & perl /usr/local/nodeny/noserver.pl -d & </code> ===== Додаткові проги для зручності ====== ==== Установка Webmin ==== <code bash> pkg install sysutils/webmin /usr/local/lib/webmin/setup.sh sysrc webmin_enable=YES service webmin start </code> не забудьте відкрити у файрволі порти <code bash> ee /etc/rc.firewall замінити ${f} add 50 allow tcp from any to me 22 ${f} add 51 allow tcp from me 22 to any на ${f} add 50 allow tcp from any to me 22,10000 ${f} add 51 allow tcp from me 22,10000 to any </code> <WRAP center round info 60%> де 10000 = порт webmin </WRAP> ==== Встановлення phpMyAdmin ==== <code bash> pkg install phpMyAdmin5-php84 mod_php84 php84-iconv </code> Create directory for phpMyAdmin temp files. <code bash> mkdir -p /usr/local/www/phpMyAdmin/tmp chown -R www:www /usr/local/www/phpMyAdmin/tmp nano /usr/local/www/phpMyAdmin/config.inc.php </code> <code bash> $cfg['NavigationTreeEnableGrouping'] = false; #Edit the file and set secret passphrase: $cfg['blowfish_secret'] = 'H2OxcGXxflSd8JwrwVlh6KW6s2rER63i'; //Configure Temp directory by add $cfg['TempDir'] = '/usr/local/www/phpMyAdmin/tmp'; </code> У файлі /usr/local/etc/apache24/Includes/httpd.conf допишемо: <code bash> ee /usr/local/etc/apache24/Includes/httpd.conf </code> <code bash> <IfModule dir_module> DirectoryIndex index.html index.htm index.php index.shtml </IfModule> </code> У папці /usr/local/etc/apache24/Includes створюємо файл php-application.conf <code bash> ee /usr/local/etc/apache24/Includes/php-application.conf </code> і внесемо до нього ці рядки: <code bash /usr/local/etc/apache24/Includes/php-application.conf> <FilesMatch "\.php$"> SetHandler application/x-httpd-php </FilesMatch> <FilesMatch "\.phps$"> SetHandler application/x-httpd-php-source </FilesMatch> </code> Після цього створимо файл /usr/local/etc/php.ini з файлу php.ini-production та надамо йому необхідні права <code bash> cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini chmod u+w /usr/local/etc/php.ini </code> Після установки є два варіанти налаштування: як аліас або як піддомен === Налаштування phpMyAdmin як аліас === створимо файл phpmyadmin.conf <code bash> ee /usr/local/etc/apache24/Includes/phpmyadmin.conf </code> з таким змістом: <code /usr/local/etc/apache24/Includes/phpmyadmin.conf> Alias /pma "/usr/local/www/phpMyAdmin/" <Directory "/usr/local/www/phpMyAdmin/"> Options none AllowOverride Limit Order Deny,Allow Require all granted DirectoryIndex index.php </Directory> </code> Перезапустимо apache <code bash> service apache24 restart </code> === Налаштування phpMyAdmin як піддомен === <code bash> ee /usr/local/etc/apache24/Includes/vhost_db.example.org.conf </code> вставляємо наступне <code bash> <VirtualHost *:80> DocumentRoot "/usr/local/www/phpMyAdmin" ServerName db.example.org ServerAlias db.local ErrorLog "/var/log/apache/db.example.org-error.log" CustomLog "/var/log/apache/db.example.org-access.log" common <Directory "/usr/local/www/phpMyAdmin"> AllowOverride None Options None Require all granted </Directory> </VirtualHost> </code> <WRAP center round info 60%> де \\ example.org - ваш домен \\ db.example.org - ваш піддомен для phpMyAdmin \\ </WRAP> також не забудьте створити файли логів, інакше apache буде дуже сваритися <code bash> mkdir -p /var/log/apache/ touch /var/log/apache/db.example.org-error.log touch /var/log/apache/db.example.org-access.log </code> Перезапускаємо apache <code bash> service apache24 restart </code> ===== Встановлення BRAS ===== BRAS - Broadband Remote Access Server - у перекладі, сервер віддаленого широкосмугового доступу. Він покликаний здійснювати авторизацію абонентів у мережі. Зазвичай складається з бази даних, Radius'а та точок доступу. Але кожна мережа має свій вибір... nodeny/fastinstall.txt Востаннє змінено: 12/12/2024 21:08повз Method Увійти