<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Mick - Информационный ресурс &#187; FreeBSD</title>
	<atom:link href="http://mick.in.ua/category/mywork/freebsd/feed/" rel="self" type="application/rss+xml" />
	<link>http://mick.in.ua</link>
	<description>Практический опыт системного администратора</description>
	<lastBuildDate>Tue, 23 Sep 2025 12:49:35 +0000</lastBuildDate>
	<language>ru-RU</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=4.0</generator>
	<item>
		<title>Встановлення Oracle Linux 8.10</title>
		<link>http://mick.in.ua/2025-03-07/oraclelinux810/</link>
		<comments>http://mick.in.ua/2025-03-07/oraclelinux810/#comments</comments>
		<pubDate>Fri, 07 Mar 2025 12:05:54 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[oracle]]></category>

		<guid isPermaLink="false">http://mick.in.ua/?p=1128</guid>
		<description><![CDATA[Качаємо iso файл для встановлення ОС  &#8211; https://yum.oracle.com/oracle-linux-isos.html, вибираємо FullISO Release 8.10 &#8211; link. Я використовую VMware Workstation 16 Player. Підключаємо і встановлюємо. Документація &#8211; link.  Мінімальні вимоги до апаратних ресурсів: 2 ядра, 3 Гб опративної пам&#8217;яті, 20Гб диска. Після  встановлення оновлюємо усі пакети. # sudo dnf update -y або [root@localhost ~]# sudo yum update -y [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Качаємо iso файл для встановлення ОС  &#8211; <a href="https://yum.oracle.com/oracle-linux-isos.html" target="_blank">https://yum.oracle.com/oracle-linux-isos.html</a>, вибираємо FullISO Release 8.10 &#8211; <a href="https://yum.oracle.com/ISOS/OracleLinux/OL8/u10/x86_64/OracleLinux-R8-U10-x86_64-dvd.iso" target="_blank">link</a>. Я використовую VMware Workstation 16 Player. Підключаємо і встановлюємо.</p>
<p>Документація &#8211; <a href="https://docs.oracle.com/en/operating-systems/oracle-linux/8/install/index.html" target="_blank">link</a>.  Мінімальні вимоги до апаратних ресурсів: 2 ядра, 3 Гб опративної пам&#8217;яті, 20Гб диска. Після  встановлення оновлюємо усі пакети.</p>
<p><strong><span style="text-decoration: underline;"># sudo dnf update -y</span></strong></p>
<p>або<span id="more-1128"></span></p>
<p><strong>[root@localhost ~]# sudo yum update -y</strong><br />
Last metadata expiration check: 2:11:21 ago on Fri 07 Mar 2025 02:25:06 PM EET.<br />
Dependencies resolved.<br />
Nothing to do.<br />
Complete!</p>
<p>Налаштування локалі:</p>
<p><strong>root@localhost ~]# cat /etc/locale.conf</strong><br />
LANG=&#8221;en_US.UTF-8&#8243;</p>
<p>Подивитися версію ОС</p>
<p><strong>root@localhost ~]# cat /etc/oracle-release</strong><br />
Oracle Linux Server release 8.10</p>
<p>Дивимося які репозиторії встановлені:</p>
<p><strong>mick@localhost ~]$ yum repolist</strong><br />
repo id repo name<br />
ol8_UEKR7 Latest Unbreakable Enterprise Kernel Release 7 for Oracle Linux 8 (x86_64)<br />
ol8_appstream Oracle Linux 8 Application Stream (x86_64)<br />
ol8_baseos_latest Oracle Linux 8 BaseOS Latest (x86_64)</p>
<p>Файли конфігурації знаходяться тут</p>
<p><strong>mick@localhost:~$ cd /etc/yum.repos.d/</strong><br />
<strong>mick@localhost:/etc/yum.repos.d$ ll</strong><br />
total 16<br />
-rw-r&#8211;r&#8211;. 1 root root 4107 May 22 2024 oracle-linux-ol8.repo<br />
-rw-r&#8211;r&#8211;. 1 root root 941 Feb 14 16:37 uek-ol8.repo<br />
-rw-r&#8211;r&#8211;. 1 root root 243 May 23 2024 virt-ol8.repo</p>
<h3><strong> Установка PHP.</strong></h3>
<p>Перевірка які репозиторії стоять:</p>
<p><strong> [mick@localhost ~]$ rpm -qa|grep release</strong><br />
oraclelinux-release-el8-1.0-38.el8.x86_64<br />
oraclelinux-release-8.10-1.0.7.el8.x86_64<br />
redhat-release-8.10-0.2.0.1.el8.x86_64</p>
<p>Перевіряємо які можливі версії PHP можливі для інсталяції:</p>
<p>[mick@localhost ~]$ <strong>dnf module list php</strong><br />
Oracle Linux 8 BaseOS Latest (x86_64)                                        26 MB/s | 91 MB 00:03<br />
Oracle Linux 8 Application Stream (x86_64)                               29 MB/s | 68 MB 00:02<br />
Latest Unbreakable Enterprise Kernel Release 7 for Oracle L    30 MB/s | 57 MB 00:01<br />
^TLast metadata expiration check: 0:00:10 ago on Wed 19 Mar 2025 05:04:02 PM EET.<br />
Oracle Linux 8 Application Stream (x86_64)<br />
Name  Stream       Profiles                                            Summary<br />
php    7.2 [d]       common [d], devel, minimal     PHP scripting language<br />
php    7.3             common [d], devel, minimal     PHP scripting language<br />
php    7.4             common [d], devel, minimal     PHP scripting language<br />
php    8.0            common [d], devel, minimal     PHP scripting language<br />
php    8.2            common [d], devel, minimal     PHP scripting language</p>
<p>Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled</p>
<p>7.2[d] &#8211; означає, що за замовченням буде встановлена версія 7.2. Якщо нам треба встановити іншу версію, нам треба скинути це значення за замовченням і встановити іншу версію. Якщо php ніяка не встановлена, то скидувати не треба, але якщо скинули &#8211; нічого страшного.</p>
<p><strong>mick@localhost ~]$ sudo dnf module reset php</strong><br />
[sudo] password for mick:<br />
Last metadata expiration check: 3:11:27 ago on Tue 25 Mar 2025 03:37:12 PM EET.<br />
Dependencies resolved.<br />
Nothing to do.<br />
Complete!</p>
<p>Активуємо версію за замовчуванням php:8.2.</p>
<p><strong>[mick@localhost ~]$ sudo dnf module enable php:8.2</strong><br />
[sudo] password for mick:<br />
Last metadata expiration check: 3:48:22 ago on Tue 25 Mar 2025 03:37:12 PM EET.<br />
Dependencies resolved.<br />
============================================================================================<br />
Package Architecture Version Repository Size<br />
============================================================================================<br />
Enabling module streams:<br />
httpd 2.4<br />
nginx 1.14<br />
php 8.2</p>
<p>Transaction Summary<br />
============================================================================================</p>
<p>Is this ok [y/N]: y<br />
Complete!<br />
[mick@localhost ~]$</p>
<p>Перевіряємо зміни і бачимо навпроти версії 8.2 значок [e]- активовано.</p>
<p><strong>[mick@localhost ~]$ dnf module list php</strong><br />
Last metadata expiration check: 0:40:31 ago on Tue 25 Mar 2025 06:47:40 PM EET.<br />
Oracle Linux 8 Application Stream (x86_64)<br />
Name Stream Profiles Summary<br />
php 7.2 [d] common [d], devel, minimal PHP scripting language<br />
php 7.3 common [d], devel, minimal PHP scripting language<br />
php 7.4 common [d], devel, minimal PHP scripting language<br />
php 8.0 common [d], devel, minimal PHP scripting language<br />
php 8.2 [e] common [d], devel, minimal PHP scripting language</p>
<p>Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled</p>
<p>Інсталюємо PHP і бачимо, що будуть встановлені 18 пакетів</p>
<p>[mick@localhost ~]$ sudo dnf install php<br />
Last metadata expiration check: 3:54:46 ago on Tue 25 Mar 2025 03:37:12 PM EET.<br />
Dependencies resolved.<br />
=======================================================================================================================<br />
Package                    Arch              Version                                                                                Repository              Size<br />
=======================================================================================================================<br />
Installing:<br />
<span style="color: #339966;">php </span>                            x86_64    8.2.25-1.module+el8.10.0+90469+8883f508               ol8_appstream   1.8 M<br />
Installing dependencies:<br />
<span style="color: #339966;">apr </span>                             x86_64   1.6.3-12.el8                                                                             ol8_appstream    129 k<br />
<span style="color: #339966;">apr-uti</span>l                     x86_64   1.6.1-9.el8 ol8_appstream                                                                                    106 k<br />
<span style="color: #339966;">httpd</span>                         x86_64   2.4.37-65.0.1.module+el8.10.0+90523+b5e5f9e4.3     ol8_appstream     1.4 M<br />
<span style="color: #339966;">httpd-filesystem</span>     noarch     2.4.37-65.0.1.module+el8.10.0+90523+b5e5f9e4.3    ol8_appstream      44 k<br />
<span style="color: #339966;">httpd-tools</span>               x86_64   2.4.37-65.0.1.module+el8.10.0+90523+b5e5f9e4.3    ol8_appstream      112 k<br />
<span style="color: #339966;">mod_http2</span>              x86_64   1.15.7-10.module+el8.10.0+90523+b5e5f9e4.3            ol8_appstream      155 k<br />
<span style="color: #339966;">nginx-filesystem    </span>noarch     1:1.14.1-9.0.1.module+el8.0.0+5347+9282027e          ol8_appstream       25 k<br />
<span style="color: #339966;">oracle-logos-httpd</span> noarch    84.5-1.0.2.el8                                                                        ol8_baseos_latest  28 k<br />
<span style="color: #339966;">php-common</span>        x86_64    8.2.25-1.module+el8.10.0+90469+8883f508               ol8_appstream     746 k<br />
Installing weak dependencies:<br />
<span style="color: #339966;">apr-util-bdb</span>         x86_64    1.6.1-9.el8                                                                                ol8_appstream      25 k<br />
<span style="color: #339966;">apr-util-openssl</span>  x86_64    1.6.1-9.el8 ol8_appstream 27 k<br />
<span style="color: #339966;">php-cli</span>                  x86_64    8.2.25-1.module+el8.10.0+90469+8883f508               ol8_appstream     3.6 M<br />
<span style="color: #339966;">php-fpm</span>               x86_64   8.2.25-1.module+el8.10.0+90469+8883f508               ol8_appstream     1.9 M<br />
<span style="color: #339966;">php-mbstring</span>      x86_64   8.2.25-1.module+el8.10.0+90469+8883f508               ol8_appstream     528 k<br />
<span style="color: #339966;">php-opcache</span>       x86_64   8.2.25-1.module+el8.10.0+90469+8883f508                ol8_appstream     415 k<br />
<span style="color: #339966;">php-pdo</span>               x86_64   8.2.25-1.module+el8.10.0+90469+8883f508               ol8_appstream     133 k<br />
<span style="color: #339966;">php-xml</span>               x86_64   8.2.25-1.module+el8.10.0+90469+8883f508               ol8_appstream    189 k</p>
<p>Transaction Summary<br />
=======================================================================================================================<br />
Install 18 Packages</p>
<p>Total download size: 11 M<br />
Installed size: 40 M<br />
Is this ok [y/N]:</p>
<p>Downloading Packages:<br />
(1/18): oracle-logos-httpd-84.5-1.0.2.el8.noarch.rpm 134 kB/s | 28 kB 00:00<br />
(2/18): apr-util-bdb-1.6.1-9.el8.x86_64.rpm 348 kB/s | 25 kB 00:00<br />
(3/18): apr-util-1.6.1-9.el8.x86_64.rpm 368 kB/s | 106 kB 00:00<br />
(4/18): apr-1.6.3-12.el8.x86_64.rpm 446 kB/s | 129 kB 00:00<br />
(5/18): apr-util-openssl-1.6.1-9.el8.x86_64.rpm 457 kB/s | 27 kB 00:00<br />
(6/18): httpd-filesystem-2.4.37-65.0.1.module+el8.10.0+90523+b5e5f9e4.3.noarch.rpm 799 kB/s | 44 kB 00:00<br />
(7/18): mod_http2-1.15.7-10.module+el8.10.0+90523+b5e5f9e4.3.x86_64.rpm 1.7 MB/s | 155 kB 00:00<br />
(8/18): httpd-tools-2.4.37-65.0.1.module+el8.10.0+90523+b5e5f9e4.3.x86_64.rpm 1.0 MB/s | 112 kB 00:00<br />
(9/18): nginx-filesystem-1.14.1-9.0.1.module+el8.0.0+5347+9282027e.noarch.rpm 444 kB/s | 25 kB 00:00<br />
(10/18): httpd-2.4.37-65.0.1.module+el8.10.0+90523+b5e5f9e4.3.x86_64.rpm 6.5 MB/s | 1.4 MB 00:00<br />
(11/18): php-common-8.2.25-1.module+el8.10.0+90469+8883f508.x86_64.rpm 10 MB/s | 746 kB 00:00<br />
(12/18): php-fpm-8.2.25-1.module+el8.10.0+90469+8883f508.x86_64.rpm 15 MB/s | 1.9 MB 00:00<br />
(13/18): php-8.2.25-1.module+el8.10.0+90469+8883f508.x86_64.rpm 5.8 MB/s | 1.8 MB 00:00<br />
(14/18): php-mbstring-8.2.25-1.module+el8.10.0+90469+8883f508.x86_64.rpm 7.0 MB/s | 528 kB 00:00<br />
(15/18): php-pdo-8.2.25-1.module+el8.10.0+90469+8883f508.x86_64.rpm 2.2 MB/s | 133 kB 00:00<br />
(16/18): php-cli-8.2.25-1.module+el8.10.0+90469+8883f508.x86_64.rpm 10 MB/s | 3.6 MB 00:00<br />
(17/18): php-opcache-8.2.25-1.module+el8.10.0+90469+8883f508.x86_64.rpm 4.4 MB/s | 415 kB 00:00<br />
(18/18): php-xml-8.2.25-1.module+el8.10.0+90469+8883f508.x86_64.rpm 3.5 MB/s | 189 kB 00:00<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
Total 12 MB/s | 11 MB 00:00<br />
Running transaction check<br />
Transaction check succeeded.<br />
Running transaction test<br />
Transaction test succeeded.<br />
Running transaction<br />
Preparing : 1/1<br />
Installing : php-common-8.2.25-1.module+el8.10.0+90469+8883f508.x86_64 1/18<br />
Running scriptlet: httpd-filesystem-2.4.37-65.0.1.module+el8.10.0+90523+b5e5f9e4.3.noarch 2/18<br />
Installing : httpd-filesystem-2.4.37-65.0.1.module+el8.10.0+90523+b5e5f9e4.3.noarch 2/18<br />
Installing : apr-1.6.3-12.el8.x86_64 3/18<br />
Running scriptlet: apr-1.6.3-12.el8.x86_64 3/18<br />
Installing : apr-util-bdb-1.6.1-9.el8.x86_64 4/18<br />
Installing : apr-util-openssl-1.6.1-9.el8.x86_64 5/18<br />
Installing : apr-util-1.6.1-9.el8.x86_64 6/18<br />
Running scriptlet: apr-util-1.6.1-9.el8.x86_64 6/18<br />
Installing : httpd-tools-2.4.37-65.0.1.module+el8.10.0+90523+b5e5f9e4.3.x86_64 7/18<br />
Installing : php-cli-8.2.25-1.module+el8.10.0+90469+8883f508.x86_64 8/18<br />
Installing : php-mbstring-8.2.25-1.module+el8.10.0+90469+8883f508.x86_64 9/18<br />
Installing : php-opcache-8.2.25-1.module+el8.10.0+90469+8883f508.x86_64 10/18<br />
Installing : php-pdo-8.2.25-1.module+el8.10.0+90469+8883f508.x86_64 11/18<br />
Installing : php-xml-8.2.25-1.module+el8.10.0+90469+8883f508.x86_64 12/18<br />
Running scriptlet: nginx-filesystem-1:1.14.1-9.0.1.module+el8.0.0+5347+9282027e.noarch 13/18<br />
Installing : nginx-filesystem-1:1.14.1-9.0.1.module+el8.0.0+5347+9282027e.noarch 13/18<br />
Installing : php-fpm-8.2.25-1.module+el8.10.0+90469+8883f508.x86_64 14/18<br />
Running scriptlet: php-fpm-8.2.25-1.module+el8.10.0+90469+8883f508.x86_64 14/18<br />
Installing : oracle-logos-httpd-84.5-1.0.2.el8.noarch 15/18<br />
Installing : mod_http2-1.15.7-10.module+el8.10.0+90523+b5e5f9e4.3.x86_64 16/18<br />
Installing : httpd-2.4.37-65.0.1.module+el8.10.0+90523+b5e5f9e4.3.x86_64 17/18<br />
Running scriptlet: httpd-2.4.37-65.0.1.module+el8.10.0+90523+b5e5f9e4.3.x86_64 17/18<br />
Installing : php-8.2.25-1.module+el8.10.0+90469+8883f508.x86_64 18/18<br />
Running scriptlet: httpd-2.4.37-65.0.1.module+el8.10.0+90523+b5e5f9e4.3.x86_64 18/18<br />
Running scriptlet: php-8.2.25-1.module+el8.10.0+90469+8883f508.x86_64 18/18<br />
Running scriptlet: php-fpm-8.2.25-1.module+el8.10.0+90469+8883f508.x86_64 18/18<br />
Verifying : oracle-logos-httpd-84.5-1.0.2.el8.noarch 1/18<br />
Verifying : apr-1.6.3-12.el8.x86_64 2/18<br />
Verifying : apr-util-1.6.1-9.el8.x86_64 3/18<br />
Verifying : apr-util-bdb-1.6.1-9.el8.x86_64 4/18<br />
Verifying : apr-util-openssl-1.6.1-9.el8.x86_64 5/18<br />
Verifying : httpd-2.4.37-65.0.1.module+el8.10.0+90523+b5e5f9e4.3.x86_64 6/18<br />
Verifying : httpd-filesystem-2.4.37-65.0.1.module+el8.10.0+90523+b5e5f9e4.3.noarch 7/18<br />
Verifying : httpd-tools-2.4.37-65.0.1.module+el8.10.0+90523+b5e5f9e4.3.x86_64 8/18<br />
Verifying : mod_http2-1.15.7-10.module+el8.10.0+90523+b5e5f9e4.3.x86_64 9/18<br />
Verifying : nginx-filesystem-1:1.14.1-9.0.1.module+el8.0.0+5347+9282027e.noarch 10/18<br />
Verifying : php-8.2.25-1.module+el8.10.0+90469+8883f508.x86_64 11/18<br />
Verifying : php-cli-8.2.25-1.module+el8.10.0+90469+8883f508.x86_64 12/18<br />
Verifying : php-common-8.2.25-1.module+el8.10.0+90469+8883f508.x86_64 13/18<br />
Verifying : php-fpm-8.2.25-1.module+el8.10.0+90469+8883f508.x86_64 14/18<br />
Verifying : php-mbstring-8.2.25-1.module+el8.10.0+90469+8883f508.x86_64 15/18<br />
Verifying : php-opcache-8.2.25-1.module+el8.10.0+90469+8883f508.x86_64 16/18<br />
Verifying : php-pdo-8.2.25-1.module+el8.10.0+90469+8883f508.x86_64 17/18<br />
Verifying : php-xml-8.2.25-1.module+el8.10.0+90469+8883f508.x86_64 18/18</p>
<p>Installed:<br />
apr-1.6.3-12.el8.x86_64<br />
apr-util-1.6.1-9.el8.x86_64<br />
apr-util-bdb-1.6.1-9.el8.x86_64<br />
apr-util-openssl-1.6.1-9.el8.x86_64<br />
httpd-2.4.37-65.0.1.module+el8.10.0+90523+b5e5f9e4.3.x86_64<br />
httpd-filesystem-2.4.37-65.0.1.module+el8.10.0+90523+b5e5f9e4.3.noarch<br />
httpd-tools-2.4.37-65.0.1.module+el8.10.0+90523+b5e5f9e4.3.x86_64<br />
mod_http2-1.15.7-10.module+el8.10.0+90523+b5e5f9e4.3.x86_64<br />
nginx-filesystem-1:1.14.1-9.0.1.module+el8.0.0+5347+9282027e.noarch<br />
oracle-logos-httpd-84.5-1.0.2.el8.noarch<br />
php-8.2.25-1.module+el8.10.0+90469+8883f508.x86_64<br />
php-cli-8.2.25-1.module+el8.10.0+90469+8883f508.x86_64<br />
php-common-8.2.25-1.module+el8.10.0+90469+8883f508.x86_64<br />
php-fpm-8.2.25-1.module+el8.10.0+90469+8883f508.x86_64<br />
php-mbstring-8.2.25-1.module+el8.10.0+90469+8883f508.x86_64<br />
php-opcache-8.2.25-1.module+el8.10.0+90469+8883f508.x86_64<br />
php-pdo-8.2.25-1.module+el8.10.0+90469+8883f508.x86_64<br />
php-xml-8.2.25-1.module+el8.10.0+90469+8883f508.x86_64</p>
<p>Complete!</p>
<p>&nbsp;</p>
<p>Перевіряємо встановлену весрсію</p>
<p><strong>mick@localhost ~]$ php -v</strong><br />
PHP 8.2.25 (cli) (built: Oct 22 2024 15:12:03) (NTS gcc x86_64)<br />
Copyright (c) The PHP Group<br />
Zend Engine v4.2.25, Copyright (c) Zend Technologies<br />
with Zend OPcache v8.2.25, Copyright (c), by Zend Technologies</p>
<p>&nbsp;</p>
<p>Дивимося які пакети інстальовано і берігаємо   їх у файл packages.txt.</p>
<p><strong>mick@localhost ~]$ sudo dnf list installed | grep php | tee packages.txt</strong><br />
[sudo] password for mick:<br />
php.x86_64                    8.2.25-1.module+el8.10.0+90469+8883f508 @ol8_appstream<br />
php-cli.x86_64              8.2.25-1.module+el8.10.0+90469+8883f508 @ol8_appstream<br />
php-common.x86_64  8.2.25-1.module+el8.10.0+90469+8883f508 @ol8_appstream<br />
php-fpm.x86_64           8.2.25-1.module+el8.10.0+90469+8883f508 @ol8_appstream<br />
php-mbstring.x86_64  8.2.25-1.module+el8.10.0+90469+8883f508 @ol8_appstream<br />
php-opcache.x86_64   8.2.25-1.module+el8.10.0+90469+8883f508 @ol8_appstream<br />
php-pdo.x86_64          8.2.25-1.module+el8.10.0+90469+8883f508 @ol8_appstream<br />
php-xml.x86_64         8.2.25-1.module+el8.10.0+90469+8883f508 @ol8_appstream</p>
<p>&nbsp;</p>
<p><strong>Встановлення PHP OCI8 на Oracle Linux 8</strong></p>
<p>Документація:</p>
<p><a href="https://docs.oracle.com/en/database/oracle/oracle-database/21/lacli/install-instant-client-using-rpm.html" target="_blank">https://docs.oracle.com/en/database/oracle/oracle-database/21/lacli/install-instant-client-using-rpm.html</a></p>
<p><a href="https://yum.oracle.com/oracle-linux-php.html#php-oci8" target="_blank">https://yum.oracle.com/oracle-linux-php.html#php-oci8</a></p>
<p><a href="https://martincarstenbach.com/2021/05/21/installing-instant-clients-on-oracle-linux-8-in-oracle-cloud-infrastructure/" target="_blank">https://martincarstenbach.com/2021/05/21/installing-instant-clients-on-oracle-linux-8-in-oracle-cloud-infrastructure/</a></p>
<p>Модуль PHP-OCI потрібен для взаємодії PHP і БД і входить в склад  Oracle Client.</p>
<p>PHP-OCI знаходиться в репозиторії Oracle Linux 8 (x86_64) Development, спочатку підключаємо його.</p>
<p><strong>[mick@localhost ~]$ sudo dnf install oraclelinux-developer-release-el8</strong><br />
[sudo] password for mick:<br />
Last metadata expiration check: 1:06:23 ago on Tue 13 May 2025 03:19:30 PM EEST.<br />
Dependencies resolved.<br />
===============================================================================================================================================<br />
Package Architecture Version Repository Size<br />
===============================================================================================================================================<br />
Installing:<br />
oraclelinux-developer-release-el8 x86_64 1.0-7.el8 ol8_baseos_latest 16 k</p>
<p>Transaction Summary<br />
===============================================================================================================================================<br />
Install 1 Package</p>
<p>Total download size: 16 k<br />
Installed size: 18 k<br />
Is this ok [y/N]: y<br />
Downloading Packages:<br />
oraclelinux-developer-release-el8-1.0-7.el8.x86_64.rpm 141 kB/s | 16 kB 00:00<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
Total 124 kB/s | 16 kB 00:00<br />
Running transaction check<br />
Transaction check succeeded.<br />
Running transaction test<br />
Transaction test succeeded.<br />
Running transaction<br />
Preparing : 1/1<br />
Installing : oraclelinux-developer-release-el8-1.0-7.el8.x86_64 1/1<br />
Verifying : oraclelinux-developer-release-el8-1.0-7.el8.x86_64 1/1</p>
<p>Installed:<br />
oraclelinux-developer-release-el8-1.0-7.el8.x86_64</p>
<p>Complete!</p>
<p>Перевірямо чи з&#8217;явився він. Він є, також можна запустити команду <strong><span style="color: #0000ff;">yum repolist<span style="color: #000000;"> </span></span></strong><span style="color: #000000;">і подивитися в папці  /etc/yum.repos.d/ створився новий файл репозиторію <span style="color: #0000ff;">oraclelinux-developer-ol8.repo.</span><br />
</span></p>
<p><span style="color: #0000ff;"><strong>mick@localhost:~$ rpm -qa |grep release</strong></span><br />
oraclelinux-release-el8-1.0-38.el8.x86_64<br />
<strong><span style="color: #0000ff;">oraclelinux-developer-release-el8-1.0-7.el8.x86_64</span></strong><br />
oraclelinux-release-8.10-1.0.7.el8.x86_64<br />
redhat-release-8.10-0.2.0.1.el8.x86_64</p>
<p>Дивимся на сайті Оракл яка остання версія Оракл клієнта -<a href="https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html" target="_blank"> https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html</a>. Остання версія &#8211; Version 23.8.0.0.0.</p>
<p>Згідно з офіційного сайту <a href="https://yum.oracle.com/oracle-instant-client.html" target="_blank">https://yum.oracle.com/oracle-instant-client.html</a> зараз актуальні версії 19, 21с, 23ai.</p>
<p>Перевіряємо чи встановлений Клієнт чи ні.</p>
<p><span style="color: #0000ff;"><strong>mick@localhost:~$ dnf search instantclient</strong></span><br />
Last metadata expiration check: 0:32:40 ago on Tue 13 May 2025 04:42:01 PM EEST.<br />
=============================================== Name Matched: instantclient ===============================================<br />
oracle-instantclient-release-23ai-el8.src : Oracle Software yum repository configuration<br />
oracle-instantclient-release-23ai-el8.x86_64 : Oracle Software yum repository configuration<br />
oracle-instantclient-release-el8.src : Oracle Instant Client yum repository configuration<br />
oracle-instantclient-release-el8.x86_64 : Oracle Instant Client yum repository configuration</p>
<p>Тут ми бачимо, що знайдено 2 файла репозиторію, які не встановлено. Для 23-ї версії пакет репозиторію &#8211; <span style="color: #0000ff;"><strong>oracle-instantclient-release-23ai-el8</strong></span>, для 21с &#8211; пакет <span style="color: #0000ff;"><strong>oracle-instantclient-release-el8</strong></span>, для 19 &#8211; <span style="color: #0000ff;"><strong>oracle-release-el8</strong></span>.</p>
<p>Встановлюємо репозиторій для 23-версії.</p>
<p><span style="color: #0000ff;"><strong>mick@localhost:~$ sudo dnf install oracle-instantclient-release-23ai-el8</strong></span><br />
[sudo] password for mick:<br />
Oracle Linux 8 Development Packages (x86_64) 28 MB/s | 202 MB 00:07<br />
Last metadata expiration check: 0:00:55 ago on Tue 13 May 2025 05:42:52 PM EEST.<br />
Dependencies resolved.<br />
===========================================================================================================================<br />
Package Architecture Version Repository Size<br />
===========================================================================================================================<br />
Installing:<br />
oracle-instantclient-release-23ai-el8 x86_64 1.0-4.el8 ol8_baseos_latest 17 k<br />
Installing dependencies:<br />
yum-utils noarch 4.0.21-25.0.1.el8 ol8_baseos_latest 75 k</p>
<p>Transaction Summary<br />
===========================================================================================================================<br />
Install 2 Packages</p>
<p>Total download size: 92 k<br />
Installed size: 41 k<br />
Is this ok [y/N]: y<br />
Downloading Packages:<br />
(1/2): oracle-instantclient-release-23ai-el8-1.0-4.el8.x86_64.rpm 171 kB/s | 17 kB 00:00<br />
(2/2): yum-utils-4.0.21-25.0.1.el8.noarch.rpm 551 kB/s | 75 kB 00:00<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
Total 643 kB/s | 92 kB 00:00<br />
Running transaction check<br />
Transaction check succeeded.<br />
Running transaction test<br />
Transaction test succeeded.<br />
Running transaction<br />
Preparing : 1/1<br />
Installing : yum-utils-4.0.21-25.0.1.el8.noarch 1/2<br />
Installing : oracle-instantclient-release-23ai-el8-1.0-4.el8.x86_64 2/2<br />
Running scriptlet: oracle-instantclient-release-23ai-el8-1.0-4.el8.x86_64 2/2<br />
Verifying : oracle-instantclient-release-23ai-el8-1.0-4.el8.x86_64 1/2<br />
Verifying : yum-utils-4.0.21-25.0.1.el8.noarch 2/2</p>
<p>Installed:<br />
oracle-instantclient-release-23ai-el8-1.0-4.el8.x86_64 yum-utils-4.0.21-25.0.1.el8.noarch</p>
<p>Complete!</p>
<p>Перевіряємо чи встановився пакет репозиторію &#8211; все успішно.</p>
<p><strong><span style="color: #0000ff;">mick@localhost:~$ sudo dnf list installed | grep instantclient</span></strong><br />
oracle-instantclient-release-23ai-el8.x86_64 1.0-4.el8 @ol8_baseos_latest</p>
<p>Перенвіряємо чи зявився файл репозиторію в каталозі реопозиторіїв &#8211; є файл <strong>oracle-instantclient-23ai-ol8.repo.</strong></p>
<p>mick@localhost:~$ ll /etc/yum.repos.d/<br />
total 24<br />
-rw-r&#8211;r&#8211;. 1 root root 286 Jun 20 2024 <span style="color: #0000ff;"><strong>oracle-instantclient-23ai-ol8.repo</strong></span><br />
-rw-r&#8211;r&#8211;. 1 root root 694 Jan 15 2022 oraclelinux-developer-ol8.repo<br />
-rw-r&#8211;r&#8211;. 1 root root 4107 May 22 2024 oracle-linux-ol8.repo<br />
-rw-r&#8211;r&#8211;. 1 root root 941 Feb 14 16:37 uek-ol8.repo<br />
-rw-r&#8211;r&#8211;. 1 root root 243 May 23 2024 virt-ol8.repo</p>
<p>Встановлюємо Оракл Клієнт oracle-instantclient-basic з попередньо встановленого репозиторію. Згідно документації майбутні оновлення оракл клієнта будуть витягуватися саме з цього репозиторію для цієї 23 версії. Якщо в майбутньому вийде наприклад 24 версія, то треба переключати на новий репозиторій, щоб встановити 24 версію.</p>
<p><span style="color: #0000ff;"><strong>mick@localhost:~$ sudo dnf install oracle-instantclient-basic</strong></span><br />
Last metadata expiration check: 0:00:28 ago on Tue 13 May 2025 05:52:48 PM EEST.<br />
Dependencies resolved.<br />
==================================================================================================================================<br />
Package Architecture Version Repository Size<br />
==================================================================================================================================<br />
Installing:<br />
oracle-instantclient-basic x86_64 23.7.0.25.01-1.el8 ol8_oracle_instantclient23 79 M</p>
<p>Transaction Summary<br />
==================================================================================================================================<br />
Install 1 Package</p>
<p>Total download size: 79 M<br />
Installed size: 318 M<br />
Is this ok [y/N]: y<br />
Downloading Packages:<br />
oracle-instantclient-basic-23.7.0.25.01-1.el8.x86_64.rpm 26 MB/s | 79 MB 00:03<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
Total 26 MB/s | 79 MB 00:03<br />
Running transaction check<br />
Transaction check succeeded.<br />
Running transaction test<br />
Transaction test succeeded.<br />
Running transaction<br />
Preparing : 1/1<br />
Installing : oracle-instantclient-basic-23.7.0.25.01-1.el8.x86_64 1/1<br />
Running scriptlet: oracle-instantclient-basic-23.7.0.25.01-1.el8.x86_64 1/1<br />
Verifying : oracle-instantclient-basic-23.7.0.25.01-1.el8.x86_64 1/1</p>
<p>Installed:<br />
oracle-instantclient-basic-23.7.0.25.01-1.el8.x86_64</p>
<p>Complete!</p>
<p>&nbsp;</p>
<p>Корисні відео:</p>
<p><a href="https://www.youtube.com/watch?v=akJJjp8j91Y&amp;t=312s" target="_blank">https://www.youtube.com/watch?v=akJJjp8j91Y&amp;t=312s</a></p>
]]></content:encoded>
			<wfw:commentRss>http://mick.in.ua/2025-03-07/oraclelinux810/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Оновлення безкоштовного сертифікату letsencrypt на 90 днів.</title>
		<link>http://mick.in.ua/2023-08-05/letsencrypt/</link>
		<comments>http://mick.in.ua/2023-08-05/letsencrypt/#comments</comments>
		<pubDate>Sat, 05 Aug 2023 09:16:04 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Моя работа]]></category>

		<guid isPermaLink="false">http://mick.in.ua/?p=1070</guid>
		<description><![CDATA[Безкоштовний сервіс https://letsencrypt.org/ru/ дає безкоштовно на 90 днів сертифікат для веб сервера, по закінченню сроку його треба оновлювати. Для оновлення використовується команда certbot з параметром renew. Якщо використовується фаервол, то обов&#8217;язково треба відкрити сервіс http або порт 80 для вільного доступу, оскільки при подовженні генерується певний файл,який має бути доступний з нашого сайту для серверів letsencrypt. Перевіряємо фаєрвол: # firewall-cmd &#8211;permanent [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Безкоштовний сервіс <a href="https://letsencrypt.org/ru/">https://letsencrypt.org/ru/</a> дає безкоштовно на 90 днів сертифікат для веб сервера, по закінченню сроку його треба оновлювати.</p>
<p>Для оновлення використовується команда <strong>certbot</strong> з параметром <strong>renew. </strong>Якщо використовується фаервол, то обов&#8217;язково треба відкрити сервіс<strong> http</strong> або <strong>порт 80</strong> для вільного доступу, оскільки при подовженні генерується певний файл,який має бути доступний з нашого сайту для серверів letsencrypt.</p>
<p><span id="more-1070"></span>Перевіряємо фаєрвол:</p>
<p># firewall-cmd &#8211;permanent &#8211;list-all</p>
<p style="text-align: left;"> <a href="http://mick.in.ua/wp-content/uploads/firew1.jpg"><img class="alignnone wp-image-1073 size-full" src="http://mick.in.ua/wp-content/uploads/firew1.jpg" alt="firew1" width="1066" height="295" /></a></p>
<p style="text-align: left;">В services немає http, додаємо його:</p>
<p style="text-align: left;"># firewall-cmd &#8211;permanent &#8211;zone=public &#8211;add-service=http</p>
<p style="text-align: left;"><a href="http://mick.in.ua/wp-content/uploads/firew2.jpg"><img class="alignnone wp-image-1075 size-large" src="http://mick.in.ua/wp-content/uploads/firew2-1024x43.jpg" alt="firew2" width="1024" height="43" /></a></p>
<p style="text-align: left;"># firewall-cmd &#8211;reload</p>
<p style="text-align: left;"><a href="http://mick.in.ua/wp-content/uploads/firew3.jpg"><img class="alignnone wp-image-1076 size-full" src="http://mick.in.ua/wp-content/uploads/firew3.jpg" alt="firew3" width="676" height="46" /></a></p>
<p style="text-align: left;">І знову перевіряємо чи дозволений сервіс<strong> http</strong>:</p>
<p style="text-align: left;"># firewall-cmd &#8211;permanent &#8211;list-all</p>
<p style="text-align: left;"><a href="http://mick.in.ua/wp-content/uploads/firew4.jpg"><img class="alignnone wp-image-1077 size-full" src="http://mick.in.ua/wp-content/uploads/firew4.jpg" alt="firew4" width="1009" height="327" /></a></p>
<p style="text-align: left;">Якщо не відкривати сервіс http , то будемо мати таку помилку:</p>
<p style="text-align: left;"><a href="http://mick.in.ua/wp-content/uploads/error.jpg"><img class="alignnone wp-image-1080 size-full" src="http://mick.in.ua/wp-content/uploads/error.jpg" alt="error" width="823" height="406" /></a></p>
<p style="text-align: left;">Оновлюємо сертифікат командою <strong>certbot renew:</strong></p>
<p style="text-align: left;"><a href="http://mick.in.ua/wp-content/uploads/done_lets.jpg"><img class="alignnone wp-image-1091 size-full" src="http://mick.in.ua/wp-content/uploads/done_lets.jpg" alt="done_lets" width="814" height="384" /></a></p>
<p style="text-align: left;">Сертифікат успішно оновлений, через 90 днів повторюємо процедуру. Оновлення можна автоматизувати, але для цього порт 80 має бути відкритий постійно ,це зменшує безпеку сервера.</p>
<p style="text-align: left;">Вимикаємо доступність сервісу http:</p>
<p style="text-align: left;">#firewall-cmd &#8211;permanent &#8211;zone=public &#8211;remove-service=http</p>
<p style="text-align: left;">#firewall-cmd &#8211;reload</p>
<p style="text-align: left;"><a href="http://mick.in.ua/wp-content/uploads/firew5.jpg"><img class="alignnone wp-image-1093 size-full" src="http://mick.in.ua/wp-content/uploads/firew5.jpg" alt="firew5" width="1004" height="327" /></a></p>
<p style="text-align: left;"><strong>© mick, 2023.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://mick.in.ua/2023-08-05/letsencrypt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Обновление Centos 8 до CentOS 8 Stream и установка Zabbix 6.2</title>
		<link>http://mick.in.ua/2022-10-28/centos-8-stream-zabbix-6-2/</link>
		<comments>http://mick.in.ua/2022-10-28/centos-8-stream-zabbix-6-2/#comments</comments>
		<pubDate>Fri, 28 Oct 2022 07:01:05 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[FreeBSD]]></category>

		<guid isPermaLink="false">http://mick.in.ua/?p=957</guid>
		<description><![CDATA[Обновление Centos Имеем Centos 8.4. Поддержка CentOS 8 заканчивается в 2021 году. После того, как Red Hat выкупили CentOS, было объявлено о создании нового релиза. Релиз был назван CentOS Stream.Вскоре Red Hat объявили о прекращении финансовой поддержки CentOS, и стало ясно, что её закрывают, оставляя CentOS Stream. Наши  приложения размещены на сервере CentOS 8, а выпуски обновлений операционной [&#8230;]]]></description>
				<content:encoded><![CDATA[<h2>Обновление Centos</h2>
<p>Имеем Centos 8.4. Поддержка CentOS 8 заканчивается в 2021 году. После того, как Red Hat выкупили CentOS, было объявлено о создании нового релиза. Релиз был назван CentOS Stream.Вскоре Red Hat объявили о прекращении финансовой поддержки CentOS, и стало ясно, что её закрывают, оставляя CentOS Stream. Наши  приложения размещены на сервере CentOS 8, а выпуски обновлений операционной системы прекратились. И значит, пришло время обновить свой сервер до CentOS Stream release 8.<span id="more-957"></span></p>
<p>Проверяем какая версия ОС установлена.</p>
<blockquote><p>cat /etc/centos-release или cat /etc/os-release</p></blockquote>
<p>Результат вывода = <strong>Centos Linux release 8.4</strong>.</p>
<p>Обновляем пакеты <strong><span style="color: #3366ff;">dnf update </span></strong>и видим  ошибку в консоли.</p>
<p><a href="http://mick.in.ua/wp-content/uploads/8.4_dnf_update_error.jpg"><img class="aligncenter wp-image-969 size-large" src="http://mick.in.ua/wp-content/uploads/8.4_dnf_update_error-1024x258.jpg" alt="8.4_dnf_update_error" width="1024" height="258" /></a></p>
<p>Это означает, что система не может установить обновения из устаревшего репозитория 8.4, т.к. последний версия репозитория 8.6, которой нет в системе. Чтобы обновиться до ветки Stream нам нужно закачать новые репозитории ветки Stream. Кроме того в логах /var/log/dnf.log:</p>
<blockquote><p>dnf.exceptions.RepoError: Failed to download metadata for repo &#8216;appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist<br />
2022-10-10T08:11:43+0300 CRITICAL Error: Failed to download metadata for repo &#8216;appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist</p></blockquote>
<p>Это означает, что по  путям, где находятся репозитарии, уже ничего не находится, поскольку текущая версия уже не поддерживается. Нам нужно поменять URL на актуальные.</p>
<blockquote><p><span style="color: #3366ff;"><strong>sudo sed -i -e &#8220;s|mirrorlist=|#mirrorlist=|g&#8221; /etc/yum.repos.d/CentOS-*</strong></span><br />
<span style="color: #3366ff;"><strong> sudo sed -i -e &#8220;s|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g&#8221; /etc/yum.repos.d/CentOS-*</strong></span></p></blockquote>
<p>Проверяем, заходим /etc/yum.repos.d,открываем любой файл с названием CentOS и видим, что URL изменился.</p>
<blockquote><p>[baseos]<br />
name=CentOS Linux $releasever &#8211; BaseOS<br />
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&amp;arch=$basearch&amp;repo=BaseOS&amp;infra=$infra<br />
baseurl=http://vault.centos.org/$contentdir/$releasever/BaseOS/$basearch/os/</p></blockquote>
<p>Теперь качаем и устанавливаем новые репозитории</p>
<blockquote><p><strong><span style="color: #3366ff;">dnf swap centos-{linux,stream}-repos</span></strong></p></blockquote>
<p>Указываем системе использовать новые репозитории</p>
<blockquote><p><span style="color: #3366ff;"><strong>dnf swap centos-{linux,stream}-repos</strong></span></p></blockquote>
<p>Синхронизируемся с новым репозиторием.</p>
<blockquote><p><span style="color: #3366ff;"><strong>dnf distro-sync</strong></span></p></blockquote>
<p>После успешного выполнения проверяем cat /etc/centos-release или cat /etc/os-release версию ОС = CentOS Stream release 8</p>
<p>Делаем ребут.  Если в логам не видим ошибок .</p>
<p>Шпаргалка по использованию dnf:</p>
<p><span style="color: #3366ff;"># dnf &#8211;version</span>            Проверка версии DNF<br />
<span style="color: #3366ff;"># dnf repolist</span>               Вывод списка включенных репозиториев DNF<br />
<span style="color: #3366ff;"># dnf repolist all</span>         Просмотр всех включенных и отключенных репозиториев DNF<br />
<span style="color: #3366ff;"># dnf lis</span>t                  Вывод списка всех доступных и установленных пакетов, используя DNF<br />
<span style="color: #3366ff;"># dnf list installed</span>       Вывод списка всех установленных пакетов<br />
<span style="color: #3366ff;"># dnf list available</span>      Вывод списка всех доступных пакетов<br />
<span style="color: #3366ff;"># dnf search nano</span>        Поиск пакета с использованием DNF<br />
<span style="color: #3366ff;"># dnf provides</span>               /bin/bash Просмотр описание файл/субпакет, к какому пакету принадлежит файл, что он делает?<br />
<span style="color: #3366ff;"># dnf info nano</span>              Просмотр деталей пакета<br />
<span style="color: #3366ff;"># dnf install nano</span>          Установка пакета с DNF<br />
<span style="color: #3366ff;"># dnf update systemd</span>  Обновление пакета с использованием DNF<br />
<span style="color: #3366ff;"># dnf check-update</span>      Проверка наличия обновлений системы с помощью DNF.<br />
<span style="color: #3366ff;"># dnf update или</span> <span style="color: #3366ff;"># dnf upgrade</span> Обновление всех системных пакетов</p>
<p>Некоторые источники URL:</p>
<p><a href="https://ruvds.com/ru/helpcenter/kak-zaupdeitit-centos-8-do-centos-stream/" target="_blank">https://ruvds.com/ru/helpcenter/kak-zaupdeitit-centos-8-do-centos-stream/</a></p>
<p><a href="https://stackoverflow.com/questions/70926799/centos-through-a-vm-no-urls-in-mirrorlist" target="_blank">https://stackoverflow.com/questions/70926799/centos-through-a-vm-no-urls-in-mirrorlist</a></p>
<h2>Установка Zabbix</h2>
<p>Заходим на официальный сайт Zabbix, на котором есть краткая инструкция по установке <a href="https://www.zabbix.com/ru/download?zabbix=6.2&amp;os_distribution=centos&amp;os_version=8&amp;components=server_frontend_agent&amp;db=mysql&amp;ws=apache" target="_blank">https://www.zabbix.com/ru/download?zabbix=6.2&amp;os_distribution=centos&amp;os_version=8&amp;components=server_frontend_agent&amp;db=mysql&amp;ws=apache</a></p>
<p>Выбираем версию 6.2, дистрибутив <span style="color: #3366ff;">Centos</span>,версия ОС <span style="color: #3366ff;">8Stream</span>, компонент Заббикс <span style="color: #3366ff;">Server,Frontend,Agent</span>, база данных<span style="color: #3366ff;"> MySQL</span>,веб сервер <span style="color: #3366ff;">Apache</span>.</p>
<p>Далее следуем инструкции с оф.сайта, скачиваем репозиторий Zabbix</p>
<blockquote><p><span style="color: #3366ff;"># rpm -Uvh https://repo.zabbix.com/zabbix/6.2/rhel/8/x86_64/zabbix-release-6.2-3.el8.noarch.rpm</span><br />
<span style="color: #3366ff;"> # dnf clean all</span></p></blockquote>
<p>После выполнения заходим в <strong>/etc/yum.repos.d </strong>и видим текстовый файл zabbix.repo , в котором прописан URL на офф. ресурсы Забикса.</p>
<p>Версия 6.2 Забикса работает на PHP 7.4, смотрим какая у нас версия PHP:</p>
<blockquote><p><span style="color: #3366ff;">#dnf module list php</span></p></blockquote>
<p><a href="http://mick.in.ua/wp-content/uploads/php_old.jpg" target="_blank"><img class="aligncenter wp-image-1008 size-full" src="http://mick.in.ua/wp-content/uploads/php_old.jpg" alt="php_old" width="995" height="307" /></a></p>
<p>В системе версия 7.2. Переключаемся на 7.4.</p>
<blockquote><p><span style="color: #3366ff;"># dnf module switch-to php:7.4</span></p></blockquote>
<p><img class="aligncenter wp-image-1013 size-large" src="http://mick.in.ua/wp-content/uploads/php_new-1024x770.jpg" alt="php_new" width="1024" height="770" /></p>
<p><img class="aligncenter wp-image-1016 size-large" src="http://mick.in.ua/wp-content/uploads/php7.4upgrade2-1022x1024.jpg" alt="php7.4upgrade2" width="1022" height="1024" /></p>
<p>Проверяем и видим, что  PHP 7.4 присутствует.</p>
<p><a href="http://mick.in.ua/wp-content/uploads/PHP7.4_done.jpg" target="_blank"><img class="aligncenter wp-image-1020 size-large" src="http://mick.in.ua/wp-content/uploads/PHP7.4_done-1024x267.jpg" alt="PHP7.4_done" width="1024" height="267" /></a></p>
<p>Переходим к установке Забикс сервера, веб интерфейса и агента, все по инструкции:</p>
<blockquote><p><span style="color: #3366ff;"># dnf install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent</span></p></blockquote>
<p><img class="aligncenter wp-image-1028 size-large" src="http://mick.in.ua/wp-content/uploads/zabix1-2-1024x487.jpg" alt="zabix1-2" width="1024" height="487" /></p>
<p><a href="http://mick.in.ua/wp-content/uploads/zabix3.jpg" target="_blank"><img class="aligncenter wp-image-1032 size-large" src="http://mick.in.ua/wp-content/uploads/zabix3-1024x491.jpg" alt="zabix3" width="1024" height="491" /></a></p>
<p>Забикс будет работать на БД MySQL. Если на сервере БД нет, ее нужно установить. Потом создаем БД zabbix, пользователя zabbix, даем пользователю zabbix все привелегии на БД zabbix.</p>
<blockquote><p><span style="color: #3366ff;"># mysql -uroot -p</span><br />
<span class="red" style="color: #3366ff;">password</span><br />
<span style="color: #3366ff;">mysql&gt; create database zabbix character set utf8mb4 collate utf8mb4_bin;</span><br />
<span style="color: #3366ff;">mysql&gt; create user zabbix@localhost identified by &#8216;password';</span><br />
<span style="color: #3366ff;">mysql&gt; grant all privileges on zabbix.* to zabbix@localhost;</span><br />
<span style="color: #3366ff;">mysql&gt; set global log_bin_trust_function_creators = 1;</span><br />
<span style="color: #3366ff;">mysql&gt; quit;</span></p></blockquote>
<p>Пароль на БД password нужно установить свой, потом его нужно будет прописать в конфиг забикс -сервера.</p>
<p>Некоторые команды для работы с MySQL:</p>
<blockquote><p>SELECT user FROM mysql.user;                                                                                    # Список пользователей БД<br />
SELECT user,host FROM mysql.user;                                                                           # Список пользователей БД+ с каких IP подключения<br />
show databases;                                                                                                                     # Показать существующие БД<br />
CREATE USER &#8216;new_user&#8217;@&#8217;localhost&#8217; IDENTIFIED BY &#8216;password';                  #Создание пользователя<br />
GRANT ALL PRIVILEGES ON database_name.* TO &#8216;new_user&#8217;@&#8217;localhost'; # Назначение привелегий пользователю на БД</p>
<p>Создание пользователя в БД. %=любой IP. Вместо % можно вписать конкретный IP, тогда, доступ будет только из него.</p>
<p>mysql&gt; CREATE USER &#8216;root&#8217;@&#8217;%&#8217; IDENTIFIED BY &#8216;PASSWORD';<br />
mysql&gt; GRANT ALL PRIVILEGES ON *.* TO &#8216;root&#8217;@&#8217;%&#8217; WITH GRANT OPTION;<br />
mysql&gt; FLUSH PRIVILEGES;</p></blockquote>
<p>Импортируем дефолтную БД в в нашу созданную БД zabbix, нужно будет ввести созданный пароль на БД zabbix.</p>
<blockquote><p><span style="color: #3366ff;"># zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql &#8211;default-character-set=utf8mb4 -uzabbix -p zabbix</span></p></blockquote>
<p>После выполнения отключаем опцию log_bin_trust_function_creators:</p>
<blockquote><p><span style="color: #3366ff;"># mysql -uroot -p</span><br />
<span class="red" style="color: #3366ff;">password</span><br />
<span style="color: #3366ff;">mysql&gt; set global log_bin_trust_function_creators = 0;</span><br />
<span style="color: #3366ff;">mysql&gt; quit;</span></p></blockquote>
<p>Заходим в конфиг сервера забикс <strong>/etc/zabbix/zabbix_server.conf </strong>и вводим пароль  БД.</p>
<blockquote><p>DBPassword=<span class="red">password</span></p></blockquote>
<p>Запускаем сервер и агент Забикса, рестартуем appache и активируем автозагрузку.</p>
<blockquote><p><span style="color: #3366ff;"># systemctl restart zabbix-server zabbix-agent httpd php-fpm</span><br />
<span style="color: #3366ff;"># systemctl enable zabbix-server zabbix-agent httpd php-fpm</span></p></blockquote>
<p><img class="aligncenter wp-image-1042 size-large" src="http://mick.in.ua/wp-content/uploads/zabix4run1-1024x91.jpg" alt="zabix4run" width="1024" height="91" /></p>
<p>Проверяем статус работы забикс -сервера.</p>
<blockquote>
<p class="line-numbers language-shell"><span style="color: #3366ff;">sudo systemctl status zabbix-server</span></p>
</blockquote>
<p><img class="aligncenter wp-image-1046 size-large" src="http://mick.in.ua/wp-content/uploads/status_zabbix-1024x232.jpg" alt="status_zabbix" width="1024" height="232" /></p>
<p>Сервер использует 10051 порт, агент 10050 порт.</p>
<p><a href="http://mick.in.ua/wp-content/uploads/netstat.jpg" target="_blank"><img class="aligncenter wp-image-1058 size-full" src="http://mick.in.ua/wp-content/uploads/netstat.jpg" alt="netstat" width="867" height="244" /></a></p>
<p>они должны быть разрешены в фаерволе.</p>
<blockquote>
<p class="line-numbers language-shell"><span style="color: #3366ff;">sudo firewall-cmd &#8211;permanent &#8211;zone=public &#8211;add-port=10050/tcp<br />
sudo firewall-cmd &#8211;permanent &#8211;zone=public &#8211;add-port=10051/tcp<br />
sudo firewall-cmd &#8211;reload<br />
</span></p>
</blockquote>
<p class="line-numbers language-shell"><span style="color: #3366ff;"><span style="color: #000000;">Проверяем внесение изменений.</span></span></p>
<blockquote>
<p class="line-numbers language-shell"><span style="color: #3366ff;"> firewall-cmd &#8211;permanent &#8211;list-all </span></p>
</blockquote>
<p><img class="aligncenter wp-image-1050 size-full" src="http://mick.in.ua/wp-content/uploads/firewall.jpg" alt="firewall" width="916" height="260" /></p>
<p>При установке забикса создается файл конфигурации  /etc/httd/conf.d/zabbix.conf в котором прописывается алиас /zabbix. При открытии http://YouIP/zabbix увидим отображение веб страницы Забикса. Если у нас есть доменное имя, можем сконфигурировать Virtualhost:</p>
<blockquote><p><strong>&lt;VirtualHost *:80&gt;</strong><br />
<strong> ServerName your_domain</strong><br />
<strong> ServerAlias your_IP</strong><br />
<strong> DocumentRoot /usr/share/zabbix</strong><br />
<strong> ErrorLog /var/log/zabbix/error.log</strong><br />
<strong> CustomLog /var/log/zabbix/access.log combined</strong><br />
<strong>&lt;/VirtualHost&gt;</strong></p></blockquote>
<p>При первом открытии страницы в браузере вводим логин <strong>Admin</strong>, пароль  <strong>zabbix</strong>, далее  увидим используемые параметры PHP, потом нужно ввести пароль в БД MySQL для пользователя zabbix.</p>
<p>Источники:</p>
<p><a href="https://uh.ua/kb/vps/software-installation/zabbix.html" target="_blank">https://uh.ua/kb/vps/software-installation/zabbix.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://mick.in.ua/2022-10-28/centos-8-stream-zabbix-6-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Некоторые настройки Apache</title>
		<link>http://mick.in.ua/2021-03-02/apache_2021/</link>
		<comments>http://mick.in.ua/2021-03-02/apache_2021/#comments</comments>
		<pubDate>Tue, 02 Mar 2021 15:56:12 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[FreeBSD]]></category>

		<guid isPermaLink="false">http://mick.in.ua/?p=894</guid>
		<description><![CDATA[Конверирование сертификатов для работы с  Apache. &#160; В Apache под Linux применяются формат сертификатов PEM. Они могут иметь расширение .pem, .crt, .cer, и .key (файл приватного ключа). Это ASCII файлы, закодированные по схеме Base64. Текст кода файла сертификата начинается с тега &#8220;&#8212;&#8211; BEGIN CERTIFICATE &#8212;&#8211;&#8221; и заканчивая тегом &#8220;&#8212;&#8211; END CERTIFICATE &#8212;&#8211;&#8220;.Для установки SSL сертификата на Apache, [&#8230;]]]></description>
				<content:encoded><![CDATA[<h3><strong>Конверирование сертификатов для работы с  Apache.</strong></h3>
<p>&nbsp;</p>
<p>В Apache под Linux применяются формат сертификатов <strong>PEM</strong>. Они могут иметь расширение <strong>.pem, .crt, .cer, и .key</strong> (файл приватного ключа). Это ASCII файлы, закодированные по схеме Base64. Текст кода файла сертификата начинается с тега &#8220;&#8212;&#8211; BEGIN CERTIFICATE &#8212;&#8211;&#8221; и заканчивая тегом &#8220;&#8212;&#8211; END CERTIFICATE &#8212;&#8211;&#8220;.Для установки SSL сертификата на Apache, сертификаты и приватный ключ должны быть в разных файлах.<span id="more-894"></span></p>
<p>Если нам выдан PXS сертификат, имющий расширение <strong>.pfx или .p12, </strong>то<strong> </strong>для работы в Apache нам его нужно конвертировать в<strong>  PEM </strong>сертификат. Формат SSL сертификата <strong>PKCS 12</strong> или, он же <strong>PFX</strong> сертификат &#8211; бинарный формат, в котором в одном зашифрованном файле хранится не только наш личный сертификат сервера,  промежуточные сертификаты центра сертификации, но и наш закрытый ключ.  Файлы формата PFX используются на Windows серверах для импорта и экспорта файлов сертификатов и нашего приватного ключа.</p>
<ul>
<li>Используем утилиту <em>openssl</em>, чтобы вытащить <strong>открытую часть</strong> pfx-сертификата, после ввода нужно будет ввести пароль к сертификату:</li>
</ul>
<p style="text-align: left;"><span class="crayon-e">                <strong>openssl </strong></span><strong><span class="crayon-v">pkcs12</span> <span class="crayon-o">-</span><span class="crayon-st">in</span> mysert<span class="crayon-e">.p12</span> <span class="crayon-o">-</span><span class="crayon-v">clcerts</span> <span class="crayon-o">-</span><span class="crayon-v">nokeys</span> <span class="crayon-o">-</span><span class="crayon-e">out mysert</span><span class="crayon-e">.crt</span></strong></p>
<ul>
<li style="text-align: left;">Извлекаем <strong>закрытую часть </strong>сертификата, поместив её в отдельный запароленный файл:</li>
</ul>
<p style="text-align: left;"><span class="crayon-e">               <strong>openssl </strong></span><strong><span class="crayon-v">pkcs12</span> <span class="crayon-o">-</span><span class="crayon-st">in</span> mysert<span class="crayon-e">.p12</span> <span class="crayon-o">-</span><span class="crayon-v">nocerts</span> <span class="crayon-o">-</span><span class="crayon-e">out </span><span class="crayon-v">key</span><span class="crayon-o">-</span><span class="crayon-v">encrypted</span><span class="crayon-e">.key</span></strong></p>
<p style="text-align: left;">После выполнения команды вводим  пароль для .p12-сертификата, потом  новый пароль для защиты .key-файла.  Наличие <strong><span class="crayon-e">mysert</span><span class="crayon-e">.crt </span></strong><span class="crayon-e">и</span><strong><span class="crayon-e"> <span class="crayon-v">key</span><span class="crayon-o">-</span><span class="crayon-v">encrypted</span><span class="crayon-e">.key </span></span></strong><span class="crayon-e"><span class="crayon-e">достаточно для настройки веб-сервера.</span></span></p>
<ul>
<li style="text-align: left;">Закрытый ключ сертификата <strong><span class="crayon-e"><span class="crayon-v">key</span><span class="crayon-o">-</span><span class="crayon-v">encrypted</span>.key </span></strong>с парольной защитой не удобно использовать, т.к. Apache будет спрашивать пароль при каждом рестарте сервиса. Обойти проблему можно, сняв пароль с закрытого ключа:</li>
</ul>
<p style="text-align: left;"><strong><span class="crayon-e">             openssl </span><span class="crayon-v">rsa</span> <span class="crayon-o">-</span><span class="crayon-st">in</span> <span class="crayon-v">key</span><span class="crayon-o">-</span><span class="crayon-v">encrypted</span><span class="crayon-e">.key</span> <span class="crayon-o">-</span><span class="crayon-e">out </span><span class="crayon-v">key</span><span class="crayon-o">-</span><span class="crayon-v">decrypted</span><span class="crayon-e">.key</span></strong></p>
<p style="text-align: left;">Конфиг Apache  находится здесь /etc/httpd/conf/httpd.conf, в нем должна быть строчка, которая подключает папку для конфигов Virtualhost:</p>
<p style="text-align: left;"><strong>IncludeOptional conf.d/*.conf</strong></p>
<p style="text-align: left;">Заходим в настройки  VirtualHost нашего сайта (/etc/httpd/conf.d/dpiweb.conf):</p>
<p style="text-align: left;">&lt;VirtualHost *:443&gt;<br />
ServerName isexperts.vodafone.ua<br />
ServerAlias isexperts.vodafone.ua<br />
LogLevel warn<br />
SSLEngine on<br />
SSLProtocol all -SSLv2 -SSLv3 +TLSv1.2<br />
SSLCipherSuite HIGH:3DES:!aNULL:!MD5:!SEED:!IDEA<br />
SSLCertificateFile /home/dpiweb/sert_isexperts/certificate.crt<br />
SSLCertificateKeyFile /home/dpiweb/sert_isexperts/key-decrypted.key<br />
DocumentRoot &#8220;/opt/http/dpiweb/isexperts&#8221;<br />
&lt;Directory &#8220;/opt/http/dpiweb/isexperts&#8221;&gt;<br />
order allow,deny<br />
#deny from 172.20.7.<br />
allow from all<br />
AllowOverride all<br />
Require all granted<br />
#Options None<br />
&lt;/Directory&gt;<br />
&lt;/VirtualHost&gt;</p>
<p style="text-align: left;">После внесения изменений рестартуем Апач <strong>/usr/bin/systemctl restart httpd</strong> под root или если есть права sudo: <strong>sudo /usr/bin/systemctl restart httpd</strong></p>
<p style="text-align: left;"><strong>Проверка с консоли установленного сертификата.</strong></p>
<p style="font-weight: 400;"><strong> openssl s_client -purpose sslclient -connect sblmweb1.corp.vodafone.ua:8443|openssl x509 -noout –text</strong></p>
<p style="font-weight: 400;"> Ответ:</p>
<p style="font-weight: 400;">depth=2 C = US, ST = New Jersey, L = Jersey City, O = The USERTRUST Network, CN = USERTrust RSA Certification Authority<br />
verify return:1<br />
depth=1 C = GB, ST = Greater Manchester, L = Salford, O = Sectigo Limited, CN = Sectigo RSA Domain Validation Secure Server CA<br />
verify return:1<br />
depth=0 CN = my.vodafone.ua<br />
verify return:1<br />
Certificate:<br />
Data:<br />
Version: 3 (0x2)<br />
Serial Number:<br />
69:7f:da:2d:30:b7:83:10:f3:fb:7e:30:c3:a5:7d:02<br />
Signature Algorithm: sha256WithRSAEncryption<br />
Issuer: C=GB, ST=Greater Manchester, L=Salford, O=Sectigo Limited, CN=Sectigo RSA Domain Validation Secure Server CA<br />
Validity<br />
Not Before: Apr 19 00:00:00 2022 GMT<br />
Not After : May 19 23:59:59 2023 GMT<br />
Subject: CN=my.vodafone.ua<br />
Subject Public Key Info:<br />
Public Key Algorithm: rsaEncryption<br />
Public-Key: (2048 bit)</p>
<h3 style="text-align: left;"><strong>Проверка работы клиента TimesTen на сервере Linux.</strong></h3>
<p>&nbsp;</p>
<p style="text-align: left;">Клиент TemesTen лежит здесь <strong>/opt/oracle/timesten/</strong>. После инсталяции бинарник лежит тут: <strong>/opt/oracle/timesten/tt1122/bin/ttlqslcs</strong>. При инсталяции в <strong>.bash_profile</strong> прописываются переменные:</p>
<p>PATH=$PATH:$HOME/.local/bin:$HOME/bin<br />
LD_LIBRARY_PATH=/opt/oracle/timesten/TimesTen/tt1122/lib:/opt/oracle/timesten/TimesTen/tt1122/ttoracle_home/instantclient_11_2:$LD_LIBRARY_PATH<br />
ANT_HOME=/opt/oracle/timesten/TimesTen/tt1122/3rdparty/ant<br />
ODBCINI=/opt/oracle/timesten/TimesTen/tt1122/network/admin/odbc.ini<br />
SYSTTCONNECTINI=/opt/oracle/timesten/TimesTen/tt1122/network/admin/ttconnect.ini<br />
export PATH=$PATH:/opt/oracle/timesten/TimesTen/tt1122/bin/</p>
<p>export PATH LD_LIBRARY_PATH ANT_HOME ODBCINI SYSTTCONNECTINI</p>
<p>Параметры подключения прописываются в <strong>/opt/oracle/timesten/TimesTen/tt1122/network/admin.odbc.ini:</strong></p>
<p>[sprcachedb1]<br />
TTC_SERVER=172.20.136.133<br />
TTC_SERVER_DSN=sprcachedb<br />
UID=user<br />
PWD=****<br />
[sprcachedb2]<br />
TTC_SERVER=172.20.136.134<br />
TTC_SERVER_DSN=sprcachedb<br />
UID=user<br />
PWD=****<br />
[sprcachedb3]<br />
TTC_SERVER=172.20.136.135<br />
TTC_SERVER_DSN=sprcachedb<br />
UID=user<br />
PWD=****<br />
[sprcachedb4]<br />
TTC_SERVER=172.20.126.27<br />
TTC_SERVER_DSN=sprcachedb<br />
UID=user<br />
PWD=****<br />
[<strong>sprcachedb_test1</strong>]<br />
TTC_SERVER=172.20.136.39<br />
TTC_SERVER_DSN=sprcachedb_test1<br />
UID=user<br />
PWD=****</p>
<p>Проверяем:</p>
<p>[]$ ttIsqlCS</p>
<p>Copyright (c) 1996, 2015, Oracle and/or its affiliates. All rights reserved.<br />
Type ? or &#8220;help&#8221; for help, type &#8220;exit&#8221; to quit ttIsql.</p>
<p>Command&gt;<strong> connect sprcachedb_test1;</strong><br />
Connection successful: DSN=sprcachedb_test1;TTC_SERVER=172.20.136.39;TTC_SERVER_DSN=sprcachedb_test1;UID=user;DATASTORE=/var/timestendata/sprcachedb_test1;DATABASECHARACTERSET=UTF8;CONNECTIONCHARACTERSET=US7ASCII;LOGFILESIZE=1024;LOGBUFMB=1024;LOGBUFPARALLELISM=32;LOGDIR=/var/timestenlog;PERMSIZE=50000;TEMPSIZE=4096;CONNECTIONS=1000;CKPTFREQUENCY=2400;CKPTLOGVOLUME=50;RECOVERYTHREADS=10;PLSQL_MEMORY_SIZE=115;QUERYTHRESHOLD=1;ORACLENETSERVICENAME=SPR;<br />
(Default setting AutoCommit=1)<br />
Command&gt; quit<br />
Disconnecting&#8230;<br />
Done.<br />
[]$</p>
<p>Коннект успешный.</p>
<h4 style="text-align: left;">Создание  самоподписных сертификатов для веб-сервера</h4>
<p><strong>openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/pki/tls/private/apache-selfsigned.key -out /etc/pki/tls/certs/apache-selfsigned.crt</strong></p>
<h4 style="text-align: left;">Рестарт Apache</h4>
<p><strong>systemctl restart httpd</strong></p>
<h4 style="text-align: left;">Проверка синтаксиса конфига веб-сервера</h4>
<p><strong>apachectl configtest</strong></p>
<h4 style="text-align: left;">Переадресация HTTP на HTTPS</h4>
<p>&lt;VirtualHost *:80&gt;<br />
ServerName your_domain_or_ip<br />
Redirect / https://your_domain_or_ip/<br />
&lt;/VirtualHost&gt;</p>
<h4 style="text-align: left;">Проверка ошибок при старте или изменения конфига</h4>
<p><strong>systemctl status httpd.service</strong></p>
<p class="prettyprint"><span class="pln"><strong>Добавление в автозагрузку Apache</strong><br />
sudo systemctl enable httpd</span></p>
]]></content:encoded>
			<wfw:commentRss>http://mick.in.ua/2021-03-02/apache_2021/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Вопросы на собеседовании в дежурную смену ИТ.</title>
		<link>http://mick.in.ua/2015-06-01/ip/</link>
		<comments>http://mick.in.ua/2015-06-01/ip/#comments</comments>
		<pubDate>Mon, 01 Jun 2015 16:42:06 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Моя работа]]></category>

		<guid isPermaLink="false">http://mick.in.ua/?p=694</guid>
		<description><![CDATA[1. Расчет количества IP в сети Для расчета количества IP в сети есть все возможные on-line калькуляторы (http://ip-calculator.ru/ и др), под unix системы есть команда ipcalc. Возможностей получить требуемую информацию много, однако стоит знать как высчитать вручную. Имеем сеть 192.168.1.7/30. IP-адрес состоит из 4 октетов, каждый из которых состоит из 8 бит. Всего 4*8=32 бит. Каждый октет [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><strong>1. Расчет количества IP в сети</strong></p>
<p>Для расчета количества IP в сети есть все возможные on-line калькуляторы (http://ip-calculator.ru/ и др), под unix системы есть команда <strong>ipcalc.</strong> Возможностей получить требуемую информацию много, однако стоит знать как высчитать вручную. Имеем сеть 192.168.1.7/30.</p>
<p><strong>IP-адрес</strong> состоит из 4 октетов, каждый из которых состоит из 8 бит. Всего 4*8=32 бит. Каждый октет состоящий из 8 бит имеет максимальное значение 255 (2 в 0-й степени+ 2 в 1-й степени+ 2 во 2-й степени+ &#8230;2 в 7-й степени=255).<strong>  </strong>Отсчет начинается не с единицы, а с нуля.<span id="more-694"></span></p>
<p><strong>/30 &#8211; </strong>это маска подсети, в которой задействовано 30 из 32 битов. В числовом значении это 255.255.255.252. 30 бит это 8+8+8+6, 6 бит &#8211; это 2 в 7-й степени + 2 в 6-й степени + 2 в 5-й степени + 2 в 4-й степени + 2 в 3-й степени+ 2 во 2-й степени = 252.</p>
<p>Маска /29 &#8211; это 8+8+8+5 = 255.255.255.248.</p>
<p>Количество IP адресов в сети /30 = 2 во 2-й степени = 4 (2 бита), для сети /29 = 2 в 3-й степени =8 IP(3 бита), для сети /28 &#8211; 2 в 4-й степени = 16 IP(4 бита) и т.д.</p>
<p>Для определения IP адресов в сети необходимо IP сети и маску перевести в двоичнй вид.</p>
<p><strong>11000000.10101000.00000001.000001<span style="color: #ff0000;">11 <span style="color: #000000;">IP</span></span></strong></p>
<p><strong>11111111.11111111.11111111.111111<span style="color: #ff0000;">00</span> Маска</strong></p>
<p>Поскольку маска имеет 2 бита (выделено красным), то в IP меняем 2 последних бита и пишем всевозможные варианты. Под название сети выделяется IP  с наименьшим значением двух последних бит ( 2 последних бита заменяются нулями), под широковещательные пакеты используется максимальное значение двух последних бит(2 последних бита заменяются единицами) :</p>
<p><strong>11000000.10101000.00000001.000001<span style="color: #ff0000;">00 &#8211; 192.168.1.4 Название сети.</span></strong></p>
<p>Далее возможные варианты изменения последних 2-х битов в порядке возрастания : 01,10,11, получаем:</p>
<p><strong>11000000.10101000.00000001.000001<span style="color: #ff0000;">01 &#8211; 192.168.1.5 (IP min, он же IP клиентского ПК).</span></strong></p>
<p><strong>11000000.10101000.00000001.000001<span style="color: #ff0000;">10</span><span style="color: #ff0000;"> &#8211; 192.168.1.6 (IP max, он же IP шлюза).</span></strong></p>
<p><strong>11000000.10101000.00000001.000001<span style="color: #ff0000;">11</span><span style="color: #ff0000;"> &#8211; 192.168.1.7 (IP широковещательный).</span></strong></p>
<p>Итого: данная подсеть 192.168.1.7/30 имеет 4 IP адреса, один задействован под номер сети, второй под широковещательные пакеты, третий под адрес шлюза, четвертый &#8211; для клиентского ПК. В данной подсети может работать только 1 клиентский ПК.</p>
<p><strong>2.  Этапы прохождения e-mail от отправителя к получателю.</strong></p>
<p>Прохождение писем происходит по SMTP протоколу ( Simple Mail Transport Protocol). Предположим мы отправляем письмо с почтового клиента (например Outlook) с адреса <strong>user1@i.ua</strong> на <strong>user2@yandex.ua. </strong> В почтовом клиенте обычно прописывается почтовый сервер интернет-провайдера, его адрес предоставляет провайдер. Создав письмо и нажав кнопку &#8220;Отправить&#8221; почтовая программа по протоколу SMTP обращается на почтовый сервер интернет-провайдера, а тот аналлизирует адрес получателя <strong>user2@yandex.ua, </strong>разбивает его на 2 части : до @ и после. Далее наш почтовый сервер  обращается в ДНС и спрашивает &#8211; дай список <strong>mx-записей для yandex.ua. ДНС ему отвечает:</strong></p>
<p>yandex.ua   MX preference = 10,  mail exchanger = <strong>mx.yandex.ru</strong></p>
<p>Эта запись означает, что всю почту для @yandex.ua обслуживает единственный сервер сервер mx.yandex.ru. Если бы было 2 записи, то запросы идут на тот, у которого значение MX preference наименьшее. Под Windows есть команда <strong>nslookup -q=any yandex.ua</strong> , она выдаст вышеуказанную строчку (если вместо mx указать any ДНС выдаст всю информацию по yandex.ua.</p>
<p>Получив сервер получателя наш почтовый сервер по 25 порту по SMTP обращается к <strong>mx.yandex.ru </strong>(узнает у ДНС его IP) и передает сообщение. Сервер получателя забирает письмо и ложит его в папку <strong>user2.</strong></p>
<p><strong>Определения.</strong></p>
<p><strong>ДНС (DNS)</strong> &#8211; Domain Name Server &#8211; сервер доменных имен. Служит для предоставлении информации о соответствии символьного названия домена и его IP адреса, а также для определения почтовых серверов, обслуживающих почту для указанных доменов.</p>
<p>Пример.</p>
<p>nslookup -q=a yandex.ua</p>
<p>Name:yandex.ua</p>
<p>Addresses:87.250.251.11, 93.158.134.8, 77.88.21.11, 87.250.250.8</p>
<p>Видим, что yandex.ua работает на 4-х IP в связи с большой популярностью ресурса.</p>
<p><strong>NAT</strong> &#8211; Network Address Translation &#8211; механизм преобразования IP-адресов. Применяется на маршрутизаторах. При отправке пакета NAT изменяет IP и порт отправителя на IP и порт маршрутизатора, при получении ответа NAT делает обратное преобразование. Применяется для организации работы нескольких рабочих станций из серого диапазона IP при ограниченном количестве белых IP.</p>
<p><strong>DHCP &#8211; </strong>Dynamic Host Configuration Protocol. Протокол, позволяющий компьютерам автоматически получать IP адреса, маску, шлюз, ДНС. Облегчает работу системных администраторов.</p>
<p><strong style="color: #444444;">mick, 2015.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://mick.in.ua/2015-06-01/ip/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>В Установка, настройка небольшого интернет сервера на FreeBSD 9.2</title>
		<link>http://mick.in.ua/2013-09-11/freebsd_server/</link>
		<comments>http://mick.in.ua/2013-09-11/freebsd_server/#comments</comments>
		<pubDate>Wed, 11 Sep 2013 13:18:00 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Моя работа]]></category>
		<category><![CDATA[freebsd]]></category>
		<category><![CDATA[kernel]]></category>

		<guid isPermaLink="false">http://mick.in.ua/?p=577</guid>
		<description><![CDATA[В прошлых статьях я описал по отдельность настройки некоторого софта для конкретных целей. Статьи касались 5 и 6 версии FreeBSD, сейчас уже выпущена 9-я и 10-я версия.  Поэтому я решил собрать всю информацию вместе и систематизировать. ТЗ. Нам нужен сервер, который будет выступать интернет шлюзом.  В сервере 2 сетевых карты, к первой подключен эзернет от [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>В прошлых статьях я описал по отдельность настройки некоторого софта для конкретных целей. Статьи касались 5 и 6 версии FreeBSD, сейчас уже выпущена 9-я и 10-я версия.  Поэтому я решил собрать всю информацию вместе и систематизировать. <span id="more-577"></span><strong>ТЗ.</strong> Нам нужен сервер, который будет выступать интернет шлюзом.  В сервере 2 сетевых карты, к первой подключен эзернет от модема провайдера, вторая соединена со свичем, к которому подключены пользователи. Сервер будет выдавать динамически ip-адреса, на нем будет установлен фаервол, котрый будет резать ненужный входящий и исходящий трафик по просьбе руководства( world of tanks, countre strike,&#8230;).  Весь веб трафик будет завернут на веб-сервер и на основании его логов будет построена статистика кто какие ресурсы посещал. Также сервер будет выполнять несколько несвойственным ему функций, нужных именно мне <img src="http://mick.in.ua/wp-includes/images/smilies/icon_smile.gif" alt=":-)" class="wp-smiley" /></p>
<h3><strong>1. Установка и обновление системы.</strong></h3>
<p>Скачиваем установочный образ FreeBSD-9.2-RC3-i386 с ftp7.ua.freebsd.org, устанавливаем. Описывать установку не буду, т.к. она подробно описана в хенбуке. В приведенных ниже ссылках указаны лишь параметры, которые нужно добавить, все остальное убрано для компактности. Для начала проверяем ДНС сервера, если пусто &#8211; вводим:</p>
<blockquote><p><strong>root@inet:/usr/home/mick # cat /etc/resolv.conf</strong><br />
<strong> nameserver 195.64.225.197</strong><br />
<strong> nameserver 195.64.225.199</strong></p></blockquote>
<p>При установке какого-либо софта из портов запросы на дистрибутив идет по умолчанию на freebsd.org, мы же укажем системе пусть сначала ищет на украинских зеркалах, находящихся в сети ua-ix. Ранее когда инет по ua-ix был бесплатен, а за зарубежный трафик платили за мегабайты, эта опция была актуальна, сейчас трафик неограниченный, выиграш разве что в скорости.</p>
<blockquote><p><strong>root@inet:/usr/home/mick # cat /etc/make.conf</strong><strong></strong><strong></strong><br />
<strong>MASTER_SITE_BACKUP?= \</strong><br />
<strong>ftp://ftp7.ua.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/ \</strong><br />
<strong>ftp://ftp5.ua.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/ \</strong><br />
<strong>ftp://ftp3.ua.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/ \</strong><br />
<strong>ftp://ftp.freebsd.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/</strong><br />
<strong>MASTER_SITE_OVERRIDE?= ${MASTER_SITE_BACKUP}</strong></p></blockquote>
<p>Теперь сделаем локализацию системы, укажем системе, что язык наш русский и кодировка по умолчанию KOI8-R. Локализацию можно делать на уровне всей системы или только для конкретного юзера. Делаем для всей системы. Устанавливаем переменные окружения <strong>LANG</strong> и <strong>MM_CHARSET</strong> в инициализационных файлах оболочки.</p>
<blockquote><p><strong>root@inet:/usr/home/mick # cat /etc/profile</strong><br />
<strong> LANG=ru_RU.KOI8-R; export LANG</strong><br />
<strong> MM_CHARSET=KOI8-R; export MM_CHARSET</strong></p>
<p><strong>root@inet:/usr/home/mick # cat /etc//usr/share/skel/dot.profile</strong><br />
<strong> LANG=ru_RU.KOI8-R; export LANG</strong><br />
<strong> MM_CHARSET=KOI8-R; export MM_CHARSET</strong></p></blockquote>
<p>Или:</p>
<blockquote><p><strong>root@inet:/usr/home/mick # cat /etc/csh.login</strong><br />
<strong>setenv LANG ru_RU.KOI8-R</strong><br />
<strong>setenv MM_CHARSET KOI8-R</strong></p>
<p><strong>root@inet:/usr/home/mick # cat /usr/share/skel/dot.login</strong><br />
<strong>setenv LANG ru_RU.KOI8-R</strong><br />
<strong>setenv MM_CHARSET KOI8-R</strong></p></blockquote>
<p>Добавляем в /etc/rc.conf  указываем местоположение кодовой таблицы (keymaps), консольных шрифтов для русского языка и кнопки переключения языка клавиатуры (правый shift):</p>
<blockquote><p><strong>root@inet:/usr/share/syscons/fonts # cat /etc/rc.conf</strong><br />
<strong>#RU</strong><br />
<strong>keymap=&#8221;/usr/share/syscons/keymaps/ru.koi8-r&#8221;</strong><br />
<strong>keychange=&#8221;61 ^[[K&#8221;</strong><br />
<strong>scrnmap=&#8221;koi8-r2cp866&#8243;</strong><br />
<strong>font8x8=&#8221;/usr/share/syscons/fonts/cp866-8.8.fnt&#8221;</strong><br />
<strong>font8x14=&#8221;/usr/share/syscons/fonts/cp866-8.14.fnt&#8221;</strong><br />
<strong>font8x16=&#8221;/usr/share/syscons/fonts/cp866-8.16.fnt&#8221;</strong><br />
<strong>root@inet:/usr/share/syscons/fonts #</strong></p></blockquote>
<p>Еще нужно установить тип терминала вместо xtrem &#8211; cons25r:</p>
<blockquote><p><strong>root@inet:/usr/home/mick # cat /etc/ttys </strong><br />
<strong>ttyv0   &#8220;/usr/libexec/getty Pc&#8221;         cons25r on  secure</strong></p></blockquote>
<p>Перелогиниваемся, нажимаем паравый Shift и в консоли можем писать по русски. Для наглядости запустим <strong>mc </strong>(у кого нет ставим из портов /usr/ports/misc/mc) и видим, что менюшки все на русском языке.</p>
<p>Ну вот сделали небольшой тюнинг, перейдем к обновлению системы (мир и ядро).  После выхода релиза накапливаются некоторые патчи, изменения, которые со временем входят в следующий релиз. Обновление мира состоит закачке исходников, компиляции и установки из них свежих бинарных файлов пользовательских програм (grep, cat, vi,..). Поскольку  релиз 9.2 вышел 2 недели назад, то мне нет смысла пересобирать мир, но я ниже укажу порядок действий как это делать. Для начала нужно закачать исходники. Можно использовать <strong>CVS</strong> или <strong>SVN </strong>репозитории. SVN более новая разработки, которая имеет широкие возможности, но я буду использовать CVS, т.к. он не требует установить большое количество дополнительного ПО как SVN и для небольшого сервера он вполне подойдет. В системе установлена программа <strong>csup</strong>, можно установить из портов <strong>cvsup: net cvsup-without-gui</strong> (без GUI интерфейса, консольная версия). Принцип действия у их одинаковый, разница в том, что csup написана на C. Конфиг берем отсюда /usr/share/examples/cvsup/ и редактируем под собственные потребности. Директива <strong>*default release=cvs tag=RELENG_9</strong> говорит о том, что исходники будут обновлены до 9-й версии STABLE.<code></code></p>
<blockquote><p><strong>root@inet:/etc/my_config # cat stable-supfile</strong><br />
<strong> *default host=cvsup6.ua.FreeBSD.org</strong><br />
<strong> *default base=/var/db</strong><br />
<strong> *default prefix=/usr</strong><br />
<strong> *default release=cvs tag=RELENG_9</strong><br />
<strong> *default delete use-rel-suffix</strong><br />
<strong> *default compress</strong><br />
<strong> src-all</strong></p></blockquote>
<p>Конфиг готов, я положил его в /etc/my_my_config, запускаем. Ключ -g указывает запускать без GUI, L2 &#8211; максимальный уровень вывода на экран &#8211; будет выводиться все действия:</p>
<p><strong>root@inet:~ #  csup -g -L 2 /etc/my_config/stable-supfile</strong></p>
<p>После запуска мы увидим процесс закачки обновлений, займет около получаса при хорошей скорости Интернета. Смотрим размер du -h /usr/src 820M. Исходники закачались.</p>
<p><strong>Собираем World (мир).</strong> Рекомендуется вернуть дефолтный /etc/make.conf. Порядок действий:</p>
<ol>
<li><strong>cd /usr/src</strong></li>
<li><strong>rm -R /usr/obj ( удаляем все /usr/obj &#8211; тут хранятся компиллированные файлы из которых потом инсталлирует мир)</strong></li>
<li><strong>make cleandir &amp;&amp; make cleandir ( рекмендуют делать именно 2 раза)</strong></li>
<li><strong>make -sj4 buildworld</strong></li>
</ol>
<p>Перед сборкой желательно зайти в однопользовательский режим.</p>
<ol>
<li><strong>mount -u /</strong></li>
<li><strong>mount -a</strong></li>
<li><strong>/usr/src/usr.sbin/mergemaster -p</strong></li>
<li><strong>cd /usr/src</strong></li>
<li><strong>make installworld</strong></li>
<li><strong>mergemaster</strong></li>
<li><strong>reboot</strong></li>
<li><strong>cd /usr/src</strong></li>
<li><strong>make delete-old</strong></li>
</ol>
<p>В процессе инсталляции рекомендуется запускать программу mergemaster. Она сравнивает текущие конфигурационные файлы /etc с /usr/src/etc и если есть разница предлагает на выбор или оставить старый или новый или объединить. Желательно использовать новые файлы, но если работает какое-либо ПО, то нужно проанализировать новые изменения на предмет работоспособности.  По хорошему старый /etc желательно  сохранить.</p>
<p><strong>Сборка ядра.</strong> В ядре хранятся модули программ и поддержка аппаратных устройств. Программы, встроенные в ядро работают быстрее, чем подгружаемые модули. По умолчанию в системе используется ядро GENERIC, местоположение /usr/src/sys/i386/conf. Но хранить там собственное ядро нежелательно, поскольку может быть удалено при последующих обновлениях. Мы создадим свою папку с файлами конфигураций/etc/my_config , скопируем сюда GENERIC, переименуем его и добавим нужные нам опции.</p>
<p><strong>#mkdir /etc/my_config</strong><br />
<strong> # cd /usr/src/sys/i386/conf</strong><br />
<strong> #cp GENERIC /etc/my_config/</strong><br />
<strong> # mv /etc/my_config/GENERIC /etc/my_config/MICKIPFW</strong><br />
<strong> #ln -s /etc/my_config/MICKIPFW </strong>(создаем символическую ссылку на файл /etc/my_config/MICKIPFW)</p>
<p>В файл ядра добавляем следующие опции:</p>
<p><strong>ident           MICKIPFW</strong><br />
<strong>#</strong><br />
<strong>options IPFIREWALL</strong><br />
<strong>options IPFIREWALL_VERBOSE</strong><br />
<strong>options IPFIREWALL_VERBOSE_LIMIT=100</strong><br />
<strong>options IPFIREWALL_DEFAULT_TO_ACCEPT</strong><br />
<strong>options IPFIREWALL_FORWARD</strong><br />
<strong>options IPDIVERT</strong><br />
<strong>options DUMMYNET</strong><br />
<strong>options IPFILTER</strong><br />
<strong>options IPFILTER_LOG</strong><br />
<strong></strong></p>
<p>Эти опции для работы нужны для работы фаервола, о котором речь пойдет позже.</p>
<ol>
<li><strong>cd /usr/src</strong></li>
<li><strong>rm -R /usr/obj<br />
</strong></li>
<li><strong>make cleandir &amp;&amp; make cleandir<br />
</strong></li>
<li><strong>make -sj4 builkernel KERNCONF=MICKIPFW<br />
</strong></li>
<li><strong>make  installkernel KERNCONF=MICKIPFW</strong></li>
<li><strong>reboot</strong></li>
</ol>
<p>Если в процессе сборки и установки никаких ошибок не возникло после ребута командой uname -a увидим, что новое ядро работает. При инсталяции /boot/kernel переименовывается в /boot/kernel.old. Если после инсталяции система не грузится можно при загрузке указать грузиться с /boot/kernel.old и стартанет старое ядро.</p>
<p><strong>Обновление портов.</strong></p>
<p>Обновлять порты можно с пмощью <strong>cvsup </strong>или <strong>portsnap. </strong>Будем использовать второй вариант, поскольку cvsup утсаревшее ПО. При первом запуске:</p>
<blockquote><p><strong>root@inet:/usr/home/mick # portsnap fetch</strong><br />
Looking up portsnap.FreeBSD.org mirrors&#8230; 7 mirrors found.<br />
Fetching public key from ec2-eu-west-1.portsnap.freebsd.org&#8230; done.<br />
Fetching snapshot tag from ec2-eu-west-1.portsnap.freebsd.org&#8230; done.<br />
Fetching snapshot metadata&#8230; done.<br />
Fetching snapshot generated at Fri Sep 13 03:04:34 EEST 2013:<br />
ced2dfabe1a0a7ca68bedad7f042f8d1c0a9ac7882e963 26% of   69 MB  181 kBps 05m47s<br />
<strong>root@inet:/usr/home/mick # portsnap extract</strong></p></blockquote>
<p>В дальнейшем:</p>
<blockquote><p><strong>root@inet:/usr/home/mick # portsnap fetch</strong><br />
<strong> root@inet:/usr/home/mick # portsnap update</strong></p></blockquote>
<p>Можно в крондобавить раз в неделю запускать portsnap fetch &amp;&amp; portsnap update. Есть еще хорошая програмка <strong>portupgrade(/usr/ports/ports-mgmt/portupgrade)</strong>, которая может обновлять порты до последних версий.</p>
<p>Команда <strong>pkg_version -v</strong> показывает какие установлены программы и нужно ли их обновлять.</p>
<p><strong><code>portupgrade -nr port_name</code></strong> &#8211; информация о будущей установки пакета и какие зависимости будут установлены.</p>
<p><strong><code>portupgrade -ir port_name</code></strong> &#8211; опция -i &#8211; указывает спрашивать пользователя, если есть выбор при установке, опция -r &#8211; обновлять все зависимости при установке.</p>
<p>Есть еще интерессная программа portdowngrade, которая позволяет инсталлировать прошлые версии программ.</p>
<h3><strong>2.Установка и настройка DHCP-сервера.</strong></h3>
<p>Наш сервер будет выдавать динамически IP-адреса для пользователей. Для этих целей устанавливает порт /usr/ports/net/isc-dhcp42-server/. Дефолтный конфиг нам не подходит, там много лишнего, вот мой конфиг, лежит /usr/local/etc/dhcp.conf:</p>
<p>option domain-name-servers 195.64.225.197,195.64.225.199; # определяем ДНС сервера провайдера<br />
default-lease-time 43200;#время аренд ip адреса<br />
max-lease-time 43200;#максимальное время аренд ip адреса<br />
authoritative; # наш сервер является авторизованных главным сервером для нашей сети<br />
log-facility local7; # куда пишем логи<br />
subnet 192.168.210.0 netmask 255.255.255.0 {<br />
range 192.168.210.100 192.168.210.200;<br />
option routers 192.168.210.1;<br />
option broadcast-address 192.168.210.255;<br />
}#Тут определяем нашу подсети, диапазон выделяемых ip,щлюз, бродкаст, эти все данные сервер будет выдавать пользователям.<br />
host Xerox_sekretar {hardware ethernet 9c:93:4e:08:1b:83; fixed-address 192.168.210.2;}<br />
host dlink2 {hardware ethernet 00:17:9a:83:3f:5e; fixed-address 192.168.210.3;}<br />
host 1C {hardware ethernet 20:cf:30:8a:d5:2c; fixed-address 192.168.210.6;}<br />
host icc-bd {hardware ethernet 8c:89:a5:68:85:13; fixed-address 192.168.210.7;}<br />
host Admin {hardware ethernet 48:5b:39:d2:a7:58; fixed-address 192.168.210.8;}<br />
host Sekretar {hardware ethernet 00:0d:87:d4:c9:2f; fixed-address 192.168.210.10;}<br />
host Kosiuk {hardware ethernet 00:22:15:8e:72:1f; fixed-address 192.168.210.11;}<br />
host Lytkina {hardware ethernet 00:1e:68:fb:7a:4a;fixed-address 192.168.210.12;}<br />
host Suprunyuk {hardware ethernet 00:30:67:3e:c6:11;fixed-address 192.168.210.13;}<br />
host Novohatska {hardware ethernet c8:60:00:d0:0a:dd;fixed-address 192.168.210.14;}<br />
host Tarnavska {hardware ethernet 00:0a:48:0d:33:5a;fixed-address 192.168.210.15;}<br />
host Xerox_lytkina {hardware ethernet 00:00:aa:cc:91:74;fixed-address 192.168.210.16;}<br />
host Xerox_bugalt {hardware ethernet 00:00:aa:cc:26:22;fixed-address 192.168.210.17;}<br />
host Pasechnik {hardware ethernet 00:23:08:b7:57:47;fixed-address 192.168.210.18;}<br />
host Zavhoz {hardware ethernet 00:50:8d:68:cc:3b;fixed-address 192.168.210.19;}<br />
host Tereshkovich {hardware ethernet 20:16:d8:85:61:c5;fixed-address 192.168.210.20;}<br />
host Khalak {hardware ethernet 8c:89:a5:d9:ca:a7;fixed-address 192.168.210.21;}<br />
host Dlink1 {hardware ethernet 00:17:9a:75:a0:f5;fixed-address 192.168.210.22;}<br />
host Stepnyk {hardware ethernet 00:15:af:45:5a:11;fixed-address 192.168.210.23;}<br />
host Suhareva {hardware ethernet 50:46:5d:73:4f:dd;fixed-address 192.168.210.25;}<br />
host Gorbatsevich {hardware ethernet 00:15:af:59:a7:40;fixed-address 192.168.210.26;}<br />
host Kabanets {hardware ethernet c8:60:00:d0:09:da;fixed-address 192.168.210.27;}</p>
<p>В директиве host указывается какой ip назачать для конкретного mac-адреса сетевой. Это нам нужно в дальнейшем, когда будет строиться статистика по использованию веб-траффика по каждому сотруднику. Конфин настроили, добавляем в /etc/rc.conf:</p>
<blockquote><p><strong>#DHCP</strong><br />
<strong>#ifconfig_re1=&#8221;DHCP&#8221;</strong><br />
<strong>dhcpd_enable=&#8221;YES&#8221;                          # dhcpd enabled?</strong><br />
<strong>dhcpd_flags=&#8221;-q&#8221;                            # command option(s)</strong><br />
<strong>dhcpd_conf=&#8221;/usr/local/etc/dhcpd.conf&#8221;      # configuration file</strong><br />
<strong>dhcpd_ifaces=&#8221;re1&#8243;                             # ethernet interface(s)</strong><br />
<strong>dhcpd_withumask=&#8221;022&#8243;                       # file creation mask</strong></p></blockquote>
<p>Добавляем в /etc/syslog.conf нижеуказанные строчки и создаем файл var/log/dhcpd.log.</p>
<blockquote><p><strong>local7.*                                         /var/log/dhcpd.log</strong></p></blockquote>
<p><strong></strong>Ребутим машину или рестартим службу /etc/syslogd restart &amp;&amp; /usr/local/etc/rc.d/isc-dhcpd start. На клиентах должен повиться ip, в логах /var/log/dhcp.log:</p>
<blockquote><p>Sep 13 22:36:17 inet dhcpd: DHCPREQUEST for 192.168.210.11 from 00:22:15:8e:72:1f via re1<br />
Sep 13 22:36:17 inet dhcpd: DHCPACK on 192.168.210.11 to 00:22:15:8e:72:1f via re1<br />
Sep 13 22:37:53 inet dhcpd: DHCPINFORM from 192.168.210.11 via re1<br />
Sep 13 22:37:53 inet dhcpd: DHCPACK to 192.168.210.11 (00:22:15:8e:72:1f) via re1</p></blockquote>
<p>В /var/db/dhcpd/dhcpd.leases:</p>
<blockquote><p>lease 192.168.210.11 {<br />
starts 2 2013/09/10 11:48:41;<br />
ends 2 2013/09/10 14:12:41;<br />
cltt 2 2013/09/10 11:48:41;<br />
binding state active;<br />
next binding state free;<br />
rewind binding state free;<br />
hardware ethernet 00:22:15:8e:72:1f;<br />
uid &#8220;\001\310`\000\320\012\335&#8243;;<br />
client-hostname &#8220;Novohatska&#8221;;</p></blockquote>
<h3>3<strong>. Настройка IPNAT и IPFW.</strong></h3>
<p>Ранее, когда мы обирали вое ядро были включены в ядро IPFW и IPFILTER. Ели этого не делать работать будет как модуль, но скорость будет ниже. Итак, что мы включили в ядро:</p>
<p>PFIREWALL – включение в ядро ipfw;<br />
IPFIREWALL_VERBOSE – ведение логов ipfw;<br />
IPFIREWALL_VERBOSE_LIMIT=100 – максимальное количество записей в секунду в логах;<br />
IPFIREWALL_DEFAULT_TO_ACCEPT – если нет правил – пакеты все проходят;<br />
IPFIREWALL_FORWARD – для настройки форварда пакетов (необходим для transparent squid);<br />
IPDIVERT – включение natd в ядро;<br />
DUMMYNET – системное средство применяется для регулирования трафика, шейпера;<br />
IPFILTER – включение в ядро ipfilter;<br />
options IPFILTER_LOG – включение записи логов.</p>
<p>Для того, чтобы пользователь смогли выходить в интернет нужно пробрасывать пакеты с внутреннего интерфейса на внешний. Сделать это можно посредством опции DIVERT демона NATD или IPNAT. Я использую IPNAT. Прописываем в /etc/rc.conf следующее:</p>
<blockquote><p>gateway_enable=&#8221;YES&#8221;<br />
firewall_enable=&#8221;YES&#8221;<br />
firewall_script=&#8221;/etc/my_config/ipfw.rules&#8221;<br />
firewall_quiet=&#8221;NO&#8221;<br />
firewall_logging=&#8221;YES&#8221;<br />
ipnat_enable=&#8221;YES&#8221;<br />
ipnat_rules=&#8221;/etc/ipnat.rules&#8221;<br />
ipmon_enable=&#8221;YES&#8221;<br />
ipmon_flags=&#8221;-Dva /var/log/ipmon.log&#8221;<br />
#natd_enable=&#8221;YES&#8221;<br />
#natd_interface=&#8221;re0&#8243;<br />
#natd_flags=&#8221;&#8221;</p></blockquote>
<p>Тут gateway_enable=&#8221;YES&#8221; указывает серверу быть шлюзом интернета, эта запись меня меняет значение с 0 на 1 параметра  ip.fw net.inet.ip.fw.enable.</p>
<blockquote><p>root@inet:/var/log # sysctl -a | grep net.inet.ip.fw.enable:<br />
net.inet.ip.fw.enable: 1</p></blockquote>
<p>Далее в rc.conf прописан запуск IPFW со списком правил /etc/my_config/ipfw.rules. Стартует IPNAT с конфигом /etc/ipnat.rules, IPMON, который пишет логи в /var/log/ipmon.log (нужно создать вкучную). В /etc/ipnat.rules прописаны правила:</p>
<blockquote><p>root@inet:/var/log # cat /etc/ipnat.rules<br />
map re0 192.168.210.0/24 -&gt; 195.64.226.196/32 portmap tcp/udp 40000:60000</p></blockquote>
<p>Тут указано, что пакеты пришедшие на внешний интерфейс re0 с подсети внутренней сети 192.168.210.0/24 перенаправлять на внешний ip при этом порты подменяются на высокие в диапазоне 40000-60000. Если пользователь в браузере введет какой-либо сайт его запрос обратиться на шлюз по умолчанию ,IPNAT увидит, что пакет хочет на внешний интерфейс, подменит адрес внутренний ip отправителя на внешний ip сервера и подменит порт на из высокого диапазона. IPMON все эти действия запишет в   /var/log/ipmon.log. Если использовать natd, то нужно раскомментировать его в /etc/rc.cong и добавить в правилах фаервола директивой DIVERT форвард пакетов на внешний интерфейс.</p>
<p>Теперь рассмотрим правила /etc/my_config/ipfw.rules. Идея следующая &#8211; сначала разрешаем нужные нам сервисы, все остальное запрещаем.</p>
<blockquote><p>#!/bin/sh<br />
#Назначаем переменные, путь к ipfw, внешний,внутренний интерфейс,  внешний,внутренний ip, список ip, которым разрешен доступ на SSH.<br />
cmd=&#8221;/sbin/ipfw&#8221;<br />
if_ext=&#8221;re0&#8243;<br />
if_int=&#8221;re1&#8243;<br />
ip_ext=&#8221;195.64.226.196&#8243;<br />
ip_int=&#8221;192.168.210.1&#8243;<br />
sshpass=&#8221;178.137.X.X,195.238.X.X&#8221;</p>
<p>${cmd} 1 add allow ip from 178.137.X.X to any<br />
${cmd} 2 add allow ip from any to 178.137.X.X</p>
<p># Проверяем &#8211; соответствует ли пакет динамическим правилам:<br />
${cmd} 3 add check-state</p>
<p># Разрешаем весь траффик по внутреннему интерфейсу (петле)<br />
${cmd} 10 add allow ip from any to any via lo0<br />
${cmd} 11 add deny ip from any to 127.0.0.0/8<br />
${cmd} 12 add deny ip from 127.0.0.0/8 to any</p>
<p># запреты:<br />
# режем частные сети на внешнем интерфейсе<br />
${cmd} 20 add deny ip from any to 10.0.0.0/8 in via ${if_ext}<br />
${cmd} 21 add deny ip from any to 172.16.0.0/12 in via ${if_ext}<br />
${cmd} 22 add deny ip from any to 192.168.0.0/16 in via ${if_ext}<br />
${cmd} 23 add deny ip from any to 0.0.0.0/8 in via ${if_ext}<br />
# рубим траффик к частным сетям через внешний интерфейс<br />
# заметтьте &#8211; эти правила отличаются от тех что были выше!<br />
${cmd} 24 add deny ip from 10.0.0.0/8 to any out via ${if_ext}<br />
${cmd} 25 add deny ip from 172.16.0.0/12 to any out via ${if_ext}<br />
${cmd} 26add deny ip from 192.168.0.0/16 to any out via ${if_ext}<br />
${cmd} 27 add deny ip from 0.0.0.0/8 to any out via ${if_ext}</p>
<p># рубим автоконфигуреную частную сеть<br />
${cmd} 30 add deny ip from any to 169.254.0.0/16 in via ${if_ext}<br />
${cmd} 31 add deny ip from 169.254.0.0/16 to any out via ${if_ext}</p>
<p># рубаем мультикастовые рассылки<br />
${cmd} 40 add deny ip from any to 240.0.0.0/4 in via ${if_ext}<br />
${cmd} 41 add deny ip from 224.0.0.0/4 to any out via ${if_extt}</p>
<p># рубим фрагментированные icmp<br />
${cmd} 50 add deny icmp from any to any frag<br />
# рубим широковещательные icmp на внешнем интерфейсе<br />
${cmd} 51 add deny log icmp from any to 255.255.255.255 in via ${if_ext}<br />
${cmd} 52 add deny log icmp from any to 255.255.255.255 out via ${if_ext}</p>
<p># разрешаем все установленные соединения (если они установились &#8211;<br />
# значит по каким-то правилам они проходили:)<br />
${cmd} 60 add allow tcp from any to any established</p>
<p># разрешаем весь исходящий траффик (серверу-то в инет можно? :))<br />
${cmd} 70 add allow ip from ${ip_ext} to any out xmit ${if_ext}</p>
<p># разрешаем DNS снаружи (нам же надо узнавать IP по именам машин?)<br />
${cmd} 80 add allow udp from any 53 to any via ${if_ext}</p>
<p># разрешаем UDP (для синхронизации времени &#8211; 123 порт)<br />
${cmd} 90 add allow udp from any to any 123 via ${if_ext}</p>
<p># разрешаем ftp снаружи (оба правила &#8211; для пасивного режима)<br />
# для узнавания портранджа по которому будет работать, лезем в<br />
#/usr/home/lissyara/&gt;sysctl net.inet.ip.portrange.first<br />
# net.inet.ip.portrange.first: 49152<br />
# /usr/home/lissyara/&gt;sysctl net.inet.ip.portrange.last<br />
# net.inet.ip.portrange.last: 65535<br />
${cmd} 100 add allow tcp from any to ${ip_ext} 21 via ${if_ext}</p>
<p># разрешаем некоторые типы ICMP траффика &#8211; эхо-запрос,<br />
# эхо-ответ и время жизни пакета истекло<br />
${cmd} 110 add allow icmp from any to any icmptypes 0,8,11</p>
<p># открываем снаружи SSH порт &#8211; если надо будет ходить на машину по ssh<br />
${cmd} 120 add allow tcp from ${sshpass} to ${ip_ext} 443 via ${if_ext}</p>
<p>#Разрешено все внутри сети<br />
${cmd} 130 add allow ip from any to any via ${if_int}</p>
<p>#Запрещено весь отальной траффик<br />
${cmd} 900 add deny ip from any to any 137,138,30311<br />
${cmd} 901 add deny udp tcp from any to any<br />
${cmd} 902 add deny log logamount 10000 tcp from any to any</p></blockquote>
<p>В самом конфиге все прозрачно описано, был взят с сайта <a href="http://www.lissyara.su/" target="_blank">www.lissyara.su</a>.  В первом правиле я разрешил все для своего домашнего ip. Далее режем на внешнем интерфейсе что не должно появиться, разрешаем все внутри сети, снаружи ДНС, сиснхронизацию времени, FTP, SSH. В 900 правиле режутся порты,137,139,30311, в 901 udp пакеты &#8211; те, которые я не хочу видеть в логах. Все остальное пишется в логи, при этом игнорируется значение, указанное в ядре IPFIREWALL_VERBOSE_LIMIT=100 &#8211; 100 строк в логе. Опция logamount 10000разрешает 10000 записей. Когда идет атака на сервер записи в логах могу разростись до больших значений и когда достигнут значения 100( указано в ядре) данные не пишутся. В кроне прописываем:</p>
<blockquote><p>root@inet:/var/log # cat /etc/crontab | grep ipfw<br />
*     */3       *       *       *       root    &#8220;/sbin/ipfw zero&#8221;</p></blockquote>
<p>Опция zero обнулит счетчик ipfw, тогда в логи снова будут писать данные. Сделано на всякий случай, если количество записей после последнего обнуления достигнут 10000.   Пропишем ротацию логов:</p>
<blockquote><p>root@inet:/var/log # cat /etc/newsyslog.conf  | grep security<br />
/var/log/security                       600  10    500  *     JC</p></blockquote>
<p>Логи ipfw пишутся в /var/log/security, в  /etc/newsyslog.conf указываем, что хранить не 10 файлов, при достижении размера файла 500 кб архивировать. Рестартуем сервер или службы /etc/rc.d/ipfw restart, /etc/rc.d/syslogd restart, /etc/rc.d/syslogd restart. Влогах может появиться запись <code>last <span style="color: teal;">message</span> repeated <b><span style="color: darkblue;">45</span></b> times</code>. Это определяется строкой в ядре IPFIREWALL_VERBOSE_LIMIT=100. При получении одинаковых 145 сообщений 100 запишется и в конце <code>last message repeated <b>45</b> times.</code></p>
<h3><strong>4.Установка и настройка прокси-сервера SQUID.</strong></h3>
<p>Для того, чтобы собирать статистику по веб-трафику пользователей, нужно все запросы на 80 и 443 порт пропускать через прокси-сервер, далее анализатором логом парсить данные в таблицы и черз http просматривать. В качестве прокси используем /usr/ports/www/squid. При установке выбираем с какими опциями собран порт.  Мы используем IPNAT для редиректа портов, поэтому обязательно нужно собирать с опцией IPFILTER. У меня собрано с такими опциями:</p>
<blockquote><p>root@inet:/usr/ports/www/squid # make showconfig<br />
===&gt; The following configuration options are available for squid-2.7.9_4:<br />
ARP_ACL=off: Enable ACLs based on ethernet address<br />
AUFS=off: Enable the aufs storage scheme<br />
CACHE_DIGESTS=off: Enable cache digests<br />
CARP=on: Enable CARP support<br />
COSS=off: Enable the COSS storage scheme<br />
DELAY_POOLS=on: Enable delay pools<br />
DNS_HELPER=off: Use the old &#8216;dnsserver&#8217; helper<br />
FOLLOW_XFF=off: Follow X-Forwarded-For headers<br />
HTCP=on: Enable HTCP support<br />
IDENT=on: Enable ident (RFC 931) lookups<br />
IPFILTER=on: Enable transp. proxying with IPFilter<br />
KERB_AUTH=on: Install Kerberos authentication helpers<br />
KQUEUE=on: Use kqueue(2) instead of poll(2)<br />
LARGEFILE=off: Support log and cache files &gt;2GB<br />
LDAP_AUTH=off: Install LDAP authentication helpers<br />
NIS_AUTH=on: Install NIS/YP authentication helpers<br />
PF=off: Enable transparent proxying with PF<br />
PINGER=on: Install the icmp helper<br />
REFERER_LOG=off: Enable Referer-header logging<br />
SASL_AUTH=on: Install SASL authentication helpers<br />
SNMP=off: Enable SNMP support<br />
SSL=off: Enable SSL support for reverse proxies<br />
STACKTRACES=off: Create backtraces on fatal errors<br />
STRUCT_HTTP=off<br />
USERAGENT_LOG=off: Enable User-Agent-header logging<br />
VIA_DB=off: Enable forward/via database<br />
WCCP=on: Enable Web Cache Coordination Prot. v1<br />
WCCPV2=off: Enable Web Cache Coordination Prot. v2<br />
===&gt; Use &#8216;make config&#8217; to modify these settings</p></blockquote>
<p>Опции сборки порта также можно посмотреть в файле /var/db/ports/www_squid/options или /usr/ports/www/squid сделать make config. Добавляем squid_enable=&#8221;YES&#8221; в /etc/rc.conf. Настраиваем конфиг /usr/local/etc/squid/squid.conf:</p>
<blockquote><p> #2013-09-18_http://www.lissyara.su/articles/freebsd/programms/squid+ad/<br />
http_port 192.168.210.1:8080 transparent<br />
error_directory /usr/local/etc/squid/errors/Russian-1251<br />
# список слов, которые будучи обнаруженными в URL вызывают обработку без кэширования<br />
hierarchy_stoplist cgi-bin ?<br />
# список ACL которые вызывают несовпадение с кэшем,<br />
# и, запрос с ответом кэшироваться не будут<br />
acl QUERY urlpath_regex cgi-bin \?<br />
# собственно &#8211; правило что не кэшируем<br />
no_cache deny QUERY<br />
# сколько отдаём ему памяти (реально пожрёт втрое больше)<br />
cache_mem 512 MB<br />
# Директория для кэша, числа &#8211; размер кэша в Mb,<br />
# число директорий первого уровня, число директорий второго уровня в каждой директории первого.<br />
cache_dir ufs /var/squid/cache 3000 16 256<br />
# лог доступа<br />
cache_access_log /var/squid/logs/access.log squid<br />
cache_log /var/squid/logs/cache.log<br />
# лог активности менеджера хранилища. Показывает, какие<br />
# объекты были сохранениы/удалены из кэша и как долго.<br />
# мне он не нужен, а места занимает прилично.<br />
cache_store_log none<br />
pinger_program /usr/local/libexec/squid/pinger<br />
cache_swap_high 95<br />
cache_swap_low 90<br />
maximum_object_size 4096 KB<br />
minimum_object_size 0 KB<br />
cache_mgr admin@medigran.com.ua<br />
visible_hostname medigran.com.ua<br />
tcp_outgoing_address 195.64.226.196<br />
udp_outgoing_address 195.64.226.196<br />
#ACL<br />
acl all src 0.0.0.0/0.0.0.0<br />
acl localhost src 127.0.0.1/255.255.255.255<br />
acl office src 192.168.210.0/24<br />
acl manager proto cache_object<br />
acl shaper src 192.168.210.200<br />
acl admins src 192.168.210.8<br />
acl SSL_ports port 443 563 5190<br />
acl Safe_ports port 80 # http<br />
acl Safe_ports port 21 # ftp<br />
acl Safe_ports port 443 563 # https, snews<br />
acl Safe_ports port 70 # gopher<br />
acl Safe_ports port 210 # wais<br />
acl Safe_ports port 1025-65535 # unregistered ports<br />
acl Safe_ports port 280 # http-mgmt<br />
acl Safe_ports port 488 # gss-http<br />
acl Safe_ports port 591 # filemaker<br />
acl Safe_ports port 777 # multiling http<br />
acl CONNECT method CONNECT<br />
acl access_denied dstdomain &#8220;/usr/local/etc/squid/access_denied&#8221;<br />
http_access deny access_denied all<br />
http_access allow manager localhost<br />
http_access deny manager<br />
http_access deny !Safe_ports<br />
http_access deny CONNECT !SSL_ports<br />
http_access allow admins all<br />
http_access allow office all<br />
http_access deny all<br />
#<br />
#Delay Pool<br />
#Задаем количество пулов -2<br />
delay_pools 2<br />
# задется сначала номер пула(2), потом клас его клас 1<br />
delay_class 1 1<br />
#первое значение &#8211; сколько байт скачается на максимальной скорости,второе &#8211; скорость последующая в байтах 1Мбит=128кбайт=131072 байт<br />
#delay_parameters 1 -1/-1 снятие всех ограничений<br />
#Класы: 1. Ограничение общей скорости для всех хостов из группы.Самій распространенный, его и используем.<br />
#2.Общая скорсоть для всей сети и конкретно по каждому пользователю<br />
#3. Ограничивает общая скорость для сети, для группы ipи на конкретный ip<br />
delay_parameters 1 1000/131072<br />
#доступ или запрет по конкретному пулу<br />
delay_access 1 allow shaper<br />
delay_access 1 deny all<br />
#<br />
delay_class 2 1<br />
delay_parameters 2 1310720/1310720<br />
delay_access 2 allow office<br />
delay_access 2 deny all</p></blockquote>
<p>В конфиге указано, что логи будут складываться в /var/squid/logs/access.log , через прокси разрешен доступ на некоторые порты (safe_ports), в файле /usr/local/etc/squid/access_denied описывается список запрещенных сайтов, создано 2 пула для ограничения скорости для конкретных пользователей. Для создания кеша в консоли выполняем <strong>squid -z . </strong>В /etc/rc.conf пишем squid_enable=&#8221;YES&#8221;. Ребутаем или стартуем /usr/local/etc/rc.d/squid start. Если мы в свойствах обозревателя укажем наш прокси мы попадем в интернет и в логах отобразится запись. Но нам нужно сделать прозрачный без прописывания прокси, для этого IPNAT будет форвардить весть http траффик  на 8080 порт нашего прокси сервера:</p>
<blockquote><p><strong>root@inet:/ # cat /etc/ipnat.rules</strong><br />
<strong>map re0 192.168.210.0/24 -&gt; 195.64.226.196/32 portmap tcp/udp 40000:60000</strong><br />
<strong>rdr re1 0/0 port 80 -&gt; 192.168.210.1 port 8080 tcp</strong><br />
<strong>root@inet:/ # /etc/rc.d/ipnat reload</strong><br />
<strong> 787 entries flushed from NAT table</strong><br />
<strong> 2 entries flushed from NAT list</strong></p></blockquote>
<h3><strong>5.Установка и настройка анализатора логов Lightsquid и веб-сервера  Apache.</strong></h3>
<p>Для анализа логов устанавливаем /usr/ports/www/lightsquid/. Порт не собирался и выдавал ошибку. Смотрим в .usr/ports/UPDATING, там указано &#8220;20130612:Please rebuild all Perl ports and all ports that depend on it&#8221;. Поменялась конфигурация perl, его нужно переустановить. Делаем portupgrade -rf perl, после чего lightsquid успешно установился.Открываем конфиг /usr/local/etc/lightsquid/lightsquid.cfg и правим:</p>
<blockquote><p>#!/usr/bin/perl<br />
# &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; GLOBAL VARIABLES  &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>#где находятся cfg<br />
$cfgpath             =&#8221;/usr/local/etc/lightsquid&#8221;;<br />
#где находятся шаблоны<br />
$tplpath             =&#8221;/usr/local/www/lightsquid/tpl&#8221;;<br />
#где смотреть языки<br />
$langpath            =&#8221;/usr/local/share/lightsquid/lang&#8221;;<br />
#куда будет слаживаться статистика<br />
$reportpath          =&#8221;/usr/local/www/lightsquid/report&#8221;;<br />
#откуда парсить<br />
$logpath             =&#8221;/var/squid/logs&#8221;;<br />
#где брать данные о предобразовании ip в имена<br />
$ip2namepath         =&#8221;/usr/local/libexec/lightsquid&#8221;;</p>
<p>#path to `lockfile` <img src="http://mick.in.ua/wp-includes/images/smilies/icon_wink.gif" alt=";-)" class="wp-smiley" /><br />
$lockpath            =$reportpath;</p>
<p>#удалить старый лок-файл, если он старше $maxlocktime second<br />
$maxlocktime         = 30*60;</p>
<p>#if 1 &#8211; lightparser generate some statistic<br />
$debug               = 0;<br />
#if 1 &#8211; lightparser generate skip details, 2 &#8230;, 3 &#8230;, &#8230;.<br />
$debug2              = 0;</p>
<p># &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; LightParser VARIABLES  &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
#тип логов, 0 -родной, 1 &#8211; httpd<br />
$squidlogtype        = 0;</p>
<p>#не учитывать указанные сайты в статистике<br />
#$skipurl             = &#8216;zdd\.com|192\.168\.1\.|cnn\.com';<br />
$skipurl             = &#8216;zzz\.zzz';</p>
<p>#ip2name использовать шаблон /usr/local/libexec/lightsquid/ip2name.list. В єтом файле указываем my $ipfile = &#8220;/etc/hosts&#8221;.Преобразовывать ip в имена<br />
$ip2name=&#8221;list&#8221;;</p>
<p>#Если нужно &#8211; преобразование text в число<br />
%month2dec = ( Jan =&gt; 1, Feb =&gt; 2, Mar =&gt; 3, Apr =&gt; 4, May =&gt; 5,Jun =&gt; 6,<br />
Jul =&gt; 7, Aug =&gt; 8, Sep =&gt; 9, Oct =&gt; 10, Nov =&gt; 11,Dec =&gt; 12);</p>
<p># &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; Common (Parser &amp; Web) VARIABLES  &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
#create &amp; use time report statistic (logsize = logsize*2) ;-))<br />
$timereport          = 1;</p>
<p># &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; WEB VARIABLES  &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>#язык интерфейса &#8211; bg,eng,fr,hu,it,pt_br,ru,sp<br />
$lang                =&#8221;ru&#8221;;</p>
<p>#имя шаблона, смотреть `tpl/$templatename/`<br />
$templatename        =&#8221;base&#8221;;<br />
#$templatename        =&#8221;ric&#8221;;<br />
#$templatename        =&#8221;base.css&#8221;;</p>
<p>#define type of decimal output<br />
#fine  123456789 -&gt; 123,456,789<br />
#class 123456789 -&gt;       117.7 G<br />
$DecOutType=&#8221;class&#8221;;</p>
<p># define delimiter for thousands (in `fine` mode)<br />
# = &#8221; &#8221; -&gt; 12 345 678<br />
# = &#8220;,&#8221; -&gt; 12,345,678<br />
# = &#8220;&#8221;  -&gt;   12345678<br />
$decdelimiter        = &#8221; &#8220;;</p>
<p>#if you dont need Group mode, do =0<br />
$showgrouplink       = 1;</p>
<p>#if not zero, groups look like &#8220;01. Group1&#8243;, if zero &#8211; &#8220;Group1&#8243;<br />
$showgroupid         = 1;<br />
$showoversizelink    = 1;</p>
<p>#show how many data user send to internet<br />
$showputpost         = 0;<br />
#if putpost higer this variable (in percent), highlight it<br />
$putpostwarninglevel =15;</p>
<p>#использование .realname files<br />
$userealname         = 1;</p>
<p>#большие файлы 2Mб<br />
$bigfilelimit        = 2*1024*1024;</p>
<p>#Лимит трафик для пользователя( в статистике показано &#8211; превысил)<br />
$perusertrafficlimit = 1000*1024*1024;</p>
<p># недельный режим отображения<br />
$weekendmode=&#8221;both&#8221;;</p>
<p>#сколько сайтов показывать в Top<br />
$topsiteslimit       = 500;</p>
<p>#сколько сайтов показывать в .pthcrjq cnfnbcnbrt<br />
$usertimelimit       = 200;</p>
<p>#if you want user traffic GRAPHIC report, set it in 1<br />
#WARNING !!!, need libgd, GD.PM &amp; other external modules !!!<br />
#please run check-setup.pl for check library !!!!<br />
$graphreport         = 1;</p>
<p>#Максимальное значение в графическом отчете<br />
# for user month report (0.05*(&#8230;) = 50mb)<br />
$graphmaxuser=0.05*(1024*1024*1024);<br />
# for all user month report (1.05*(&#8230;) = 1 Gb)<br />
$graphmaxall =0.80*(1024*1024*1024);</p>
<p>#Тема для графиков, бывает &#8220;orange&#8221;,&#8221;blue&#8221;,&#8221;green&#8221;,&#8221;yellow&#8221;,&#8221;brown&#8221;,&#8221;red&#8221;<br />
$barcolor=&#8221;orange&#8221;;</p></blockquote>
<p>После всех изменений парсим:</p>
<blockquote><p>14:25 mick@[/usr/ports]# /usr/local/www/lightsquid/lightparser.pl<br />
14:25 mick@[/usr/ports]# cd /usr/local/www/lightsquid/ &amp;&amp; ./check-setup.pl<br />
LightSquid Config Checker, (c) 2005-9 Sergey Erokhin GNU GPL</p>
<p>LogPath   : /var/squid/logs<br />
reportpath: /usr/local/www/lightsquid/report<br />
Lang      : /usr/local/share/lightsquid/lang/ru<br />
Template  : /usr/local/www/lightsquid/tpl/base<br />
Ip2Name   : /usr/local/libexec/lightsquid/ip2name.list</p>
<p>all check passed, now try access to cgi part in browser</p></blockquote>
<p>Заносим в /etc/crontab:</p>
<blockquote><p>14:27 mick@[/usr/local/www/lightsquid]# cat /etc/crontab | grep light<br />
#Squid &amp; lightsquid<br />
*/10    *       *       *       *       root    /usr/local/www/lightsquid/lightparser.pl<br />
1       0       *       *       *       root    /usr/local/www/lightsquid/lightparser.pl &amp;&amp; /usr/local/sbin/squid -k rotate</p></blockquote>
<p>Тут каждые 10 минут lightparser.pl парсит лог сквида, в 00:01 парсится лог сквида, создается новый файл текущего дня и заносится статистика за период 00:00-00:01 после выполнения ротируется лог сквида. Если ротацию производить например утром в 08.00, то парсер увидит, что в логе данные начинаются с 08:00 и старые данные затрет и статистика начнется с 08.00, т.е. потеряем данные. Статистика у нас есть, теперь мы должны ее визуально увидеть черед браузер. Для этого установим веб-сервер /usr/ports/www/apache22. В /etc/rc.conf добавляем apache22_enable=&#8221;YES&#8221;. Открываем конфиг апача  /usr/local/etc/apache22/httpd.conf и правим конфиг. Ниже укажу только те строки которые меняем, остальное остается по умолчанию без изменений:</p>
<blockquote><p>Listen *:80 &#8211; слушать 80 порт на всех интерфейсах, если нужно на конкретном , то пишем IP:80</p>
<p>ServerName www.stat.medigran.com:80 &#8211; указываем имя сервера, без этого служба не стартует</p>
<p>&lt;Directory /&gt;<br />
AllowOverride None<br />
Order deny,allow<br />
#    Deny from all                  # комментируем мы, строка по умолчанию раскомментирована.<br />
&lt;/Directory&gt;</p>
<p>Alias /lightsquid/ &#8220;/usr/local/www/lightsquid/&#8221;<br />
&lt;Directory &#8220;/usr/local/www/lightsquid&#8221;&gt;<br />
AddHandler cgi-script .cgi<br />
AllowOverride All<br />
&lt;/Directory&gt;</p></blockquote>
<p>Последний блок &#8211; мы прописываем алиас /lightsquid по которому будет доступна статистика.Стартуем веб-сервер, открываем в браузере http://IP/lightsquid и смотрим статистику.</p>
<p><strong>© mick, 2013.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://mick.in.ua/2013-09-11/freebsd_server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Настройка OpenVpn.</title>
		<link>http://mick.in.ua/2012-03-20/openvpn/</link>
		<comments>http://mick.in.ua/2012-03-20/openvpn/#comments</comments>
		<pubDate>Tue, 20 Mar 2012 14:14:28 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Моя работа]]></category>
		<category><![CDATA[freebsd]]></category>
		<category><![CDATA[openvpn]]></category>

		<guid isPermaLink="false">http://mick.icc-ukraine.com.ua/?p=426</guid>
		<description><![CDATA[За основу взята статья mak_v_ по первой ссылке. Задача &#8211; организовать доступ по защищенному шифрованному каналу к серверу. Сервер &#8211; FreeBSD 6.3-RELEASE-p3, два интерфейса: ed0 &#8211; внешний, смотрящий к провайдеру IP 111.111.111.111/30; em0 &#8211; внутренний, смотрящий в локальную сеть IP 192.168.210.1/24. Удаленные клиенты &#8211; Windows XP. Схема работы &#8211; любой сетевой трафик, принимаемый и посылаемый [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>За основу взята статья mak_v_ по первой ссылке. Задача &#8211; организовать доступ по защищенному шифрованному каналу к серверу. Сервер &#8211; FreeBSD 6.3-RELEASE-p3, два интерфейса:<br />
ed0 &#8211; внешний, смотрящий к провайдеру IP 111.111.111.111/30;<br />
em0 &#8211; внутренний, смотрящий в локальную сеть IP 192.168.210.1/24.<br />
Удаленные клиенты &#8211; Windows XP.<span id="more-426"></span><br />
Схема работы &#8211; любой сетевой трафик, принимаемый и посылаемый сетевухой инкапсулируется в зашифрованый пакет и доставляется получателю, у него он инкапсулируется и доставляется в локальную сеть. Почему OpenVPN &#8211; есть похожий порт /usr/ports/net/mpd5 с помощью которого можно организовать защищенный канал, но он работает на протоколе <a href="http://www.ciscolab.ru/tcpip/156-gre.html">GRE</a>, который не имеет понятия о портах, посему организовать тунель из под NAT невозможно, только с честных IP.<br />
Основные плюсы OpenVPN:<br />
&#8211; кроссплатформенный, работает Windows 2000/XP/2003/Vista, Linux, Free/Net/OpenBSD, Mac OS X и Solaris;<br />
&#8211; поддержка режимов маршрутизации (routed) и мостов (bridged), т.е. тунелирует и IP-пакеты и Ethernet-фреймы;<br />
&#8211; для транспорта использует tcp или udp &#8211; может работать поверх Nat.<br />
&#8211; клиентам по умолчанию назначают динамические IP-номера, но можно и прописать по каждому статически;<br />
&#8211; ассиметрическое шифрование с использованием статических ключей SSL/TLS-сертификатов.</p>
<p>Устанавливаем из портов:<br />
# cd /usr/ports/security/openvpn<br />
# make install clean<br />
В make.conf нужно проследить, чтобы не стояла опция NOPORTDOCS=true(по умолчанию ее нет). Создаем папку /usr/local/etc/openvpn и туда копируем комплект скриптов для создания cертификатов /usr/local/share/doc/openvpn/easy-rsa:<br />
# mkdir /usr/local/etc/openvpn<br />
# cp /usr/local/share/doc/openvpn/easy-rsa /usr/local/etc/openvpn<br />
Теперь нам нужно изменить файлик vars, в котором определяются переменные, необходимые для создания скриптов, я изменил только следующие параметры:</p>
<p>export KEY_COUNTRY=Ua<br />
export KEY_PROVINCE=none<br />
export KEY_CITY=Kiev<br />
export KEY_ORG=&#8221;OpenVPN-Firmaname&#8221;<br />
export KEY_EMAIL=&#8221;admin@firma.com.ua&#8221;</p>
<p>В дальнейшем все команды будем выполнять в шеле sh. Определяем переменные оболочки:<br />
# sh<br />
# cd /usr/local/etc/openvpn/easy-rsa<br />
# . ./vars<br />
NOTE: when you run ./clean-all, I will be doing a rm -rf on /usr/local/etc/openvpn/easy-rsa/keys<br />
# sh clean-all<br />
Скрипт clean-all проверяет наличие папки /usr/local/etc/openvpn/easy-rsa/keys, если ее нет &#8211; она создается, если есть &#8211; очищается от содержимого. Теперь создаем корневой и серверный (X.509) сертификат:<br />
# sh build-ca<br />
# sh build-key-server server<br />
На все вопросы отвечаем enter-ом, кроме поля Common Name &#8211; пишем server. При создании серверного сертификата указываем пароль и подписываем этот сертификат корневым &#8211; два раза отвечаем yes.</p>
<p>Создаем сертификат и ключ для клиента:<br />
# sh build-key user1<br />
# sh build-key user2 &#8230;<br />
Ответы на вопросы &#8211; аналогично ответам при создании серверного сертификата, только поле Common Name для user1 указываем user1, для user2 указываем user2 и т.д. Этих ключей можно создавать столько сколько клиентов. !!! Если ключ создается позже, по мере необходимости, то перед созданием нужно запускать . ./vars для того ,чтобы определить переменные.</p>
<p>Для более надежной защиты данных при установке соединения клиента с сервером создаем ключ Диффи-Хельмана:<br />
# sh build-dh</p>
<p>Создаем статический ключ HMAC (shared secret) &#8211; применяется клиентом и сервером для снижения вероятности проведения DoS-атаки на сервер:<br />
# openvpn &#8211;genkey &#8211;secret keys/ta.key<br />
# exit</p>
<p>Ключи и сертификаты создали. Теперь определим что нужно серверу, а что клиенту</p>
<table width="80%" border="1">
<tbody>
<tr>
<th scope="col" width="57%">Серверу</th>
<th scope="col" width="43%">Клиенту</th>
</tr>
<tr>
<td>ca.crt &#8211; главный сертификат</td>
<td></td>
</tr>
<tr>
<td>dh1024.pem &#8211; ключ Диффи Хельмана</td>
<td></td>
</tr>
<tr>
<td>server.crt &#8211; сертификат сервера</td>
<td>user1.crt &#8211; сертификат клиента</td>
</tr>
<tr>
<td>server.key &#8211; ключ сервера</td>
<td>user1.key &#8211; ключ клиента</td>
</tr>
<tr>
<td>ta.key &#8211; TLS-ключ</td>
<td>ta.key &#8211; TLS-ключ</td>
</tr>
</tbody>
</table>
<p>Теперь настроим сервер. Берем дефолтный конфиг, копируем его в нашу созданную папку openvpn и правим.<br />
# cp /usr/local/share/doc/openvpn/sample-config-files/server.conf /usr/local/etc/openvpn/server.conf<br />
# ee server.conf</p>
<p># На каком IP будет открыт порт для подключенияч клиентов к серверу, если не указывать слушается порт на всех интерфейсах.<br />
;local a.b.c.d</p>
<p># Какой порт.<br />
port 2000</p>
<p># Тип пакета tcp или udp.<br />
proto tcp</p>
<p># Указание типа девайса: tun используется для постоения маршрутизированного ip-тунеля, tap &#8211; для ethernet тунеля, используется для режима моста, когда объединяются 2 сети. В нам случае использем tun, т.к. наш сервер будет принимать подключения от многих клиентов, которых нужно зароутить в локальную сеть, при этом отображаться компьютеры в пределах рабочей группы не будут, т.к. запросы по ходят по бродкастах, которые не могут быть зароучены, открыть сетевые папки можно будет только по IP. Для отображения компов рабочей группы нужно использовать режим моста.<br />
dev tun</p>
<p># Для Window можно задать название TAP-Win32-адаптера, если он у Вас не один, например, в сетевых подключения обычно адаптер называется &#8220;Подключение по локальной сети 2(3,4,&#8230;)&#8221;, меняем название на VPN1, в конфиге указываем dev-node VPN1 и именно этот адаптер будет использоваться при подключениях. Мне это не нужно.<br />
;dev-node MyTap</p>
<p># Указание размещения SSL/TLS корневого сертификата, сертификата сервера и его ключ, ключ Диффи-Хельмана.<br />
ca /usr/local/etc/openvpn/easy-rsa/keys/ca.crt<br />
cert /usr/local/etc/openvpn/easy-rsa/keys/server.crt<br />
key /usr/local/etc/openvpn/easy-rsa/keys/server.key<br />
dh /usr/local/etc/openvpn/easy-rsa/keys/dh1024.pem</p>
<p># Задаем виртуальную подсеть, из которой будут выделять IP клиентам, только для режима routed, если режим bridged &#8211; нужно закоментировать. Сервер берет из себе первый IP-номер &#8211; 192.168.210.1.<br />
server 192.168.220.0 255.255.255.0</p>
<p># Файлик(кеш), в котором будет храниться соответствие клиент &lt;-&gt; виртуальный IP, в случае, когда VPN-сервер временно недоступен, чтобы потом, когда он появится, клиенты смогли получить тот же IP, а не из диапазона 192.168.220.0/24. Дальше по конфигу у меня каждый клиент будет иметь свой собственный IP, поэтому опция для меня безполезна.<br />
ifconfig-pool-persist ipp.txt</p>
<p># эта опция для режима bridged, если routed &#8211; закоментировать. Задание IP/mask на мост и указание диапазона IP, которые будут выдаваться кдиентам.<br />
;server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.10</p>
<p># Сеть за VPN 192.168.210.0/24, сеть VPN 192.168.220.1, чтобы клиенты VPN видели сеть локальной сети нужно им задать маршрут, push &#8211; команда передается на выполнение клиенту.<br />
push &#8220;route 192.168.210.0 255.255.255.0&#8243;</p>
<p># Задание директории для дополнительных настроек для определенных клиентов, предварительно нужно создать папку /usr/local/etc/openvpn/client. У нас есть сертификат с именем user1, создаем в этой папке файлик с таким же названием user1 и в нем прописываем привязку к определенному IP :ifconfig-push 192.168.220.6 192.168.220.5. Помним, что каждому клиенту выдается не один IP, а подсеть /30, имеющая 4 адреса. Сервер имеет 192.168.210.1, посему занята сеть 192.168.210.1-192.168.210.4, следующий клиент будет иметь диапазон 192.168.210.5-192.168.210.8. Вышеуказанной строчкой клиенту присваивается 6-й, серверу 5-й номер.<br />
client-config-dir client</p>
<p># Задание маршрута сервер-клиент &#8211; чтобы сервер видел клиентов.<br />
route 192.168.220.0 255.255.255.252</p>
<p># Эта опция меняет клиентам маршрут по умолчанию на IP VPN-сервера, весь IP-трафик пойдет через VPN-сервер, что не очень мне хочется.<br />
;push &#8220;redirect-gateway&#8221;</p>
<p># Опция передает некие сетевые параметры клиентам<br />
;push &#8220;dhcp-option DNS 10.8.0.1&#8243;<br />
;push &#8220;dhcp-option WINS 10.8.0.1&#8243;</p>
<p># По умолчанию клиенты видят только сервер, опция позволяет клиентам видеть друг друга.<br />
client-to-client</p>
<p># Эта опция позволяет подключаться по одному ключу и сертификату многим клиентам &#8211; считаю это непривильным, каждый клиент должен иметь свой ключ и сертификат,но для тестирования можно использовать.<br />
;duplicate-cn</p>
<p># Опция keepalive посылает ping каждые 10 сек., если через 120 секун ответ не получен считается хост недоступен.<br />
keepalive 10 120</p>
<p># Дополнительная защита (можно и без нее). Создается так называемый &#8220;HMAC firewall&#8221; для защиты от Dos-атак и флуда udp-порта. Генерируется ключ, который прописывается у клиента и сервера. Определяем TLS аутентификацию для сервер (на клиенте &#8211; tls-client).<br />
tls-server</p>
<p># Указываем местоположение ключа с цифрой 0 для сервера и 1 для клиента.<br />
tls-auth /usr/local/etc/openvpn/easy-rsa/keys/ta.key 0</p>
<p># Указание используемого криптографического сертификата(нужно указать также и на клиенте)<br />
cipher BF-CBC</p>
<p># Дополнительная опция &#8211; в конфиге нет. Таймаут до реконекта 120 секунд.<br />
tls-timeout 120</p>
<p>#Аутентификация MD5 (в конфиге опции нет).<br />
auth MD5</p>
<p># Использование сжатия в VPN-канале(нужно также указать и на клиенте).<br />
comp-lzo</p>
<p># Максимальное число одновременно подключенных клиентов.<br />
max-clients 100</p>
<p># Запуск не от root, а от nobody.<br />
user nobody<br />
group nobody</p>
<p># Не перечитывать ключи и не переоткрывать TUN/TAP интерфейсы после рестара<br />
persist-key<br />
persist-tun</p>
<p># Логирование &#8211; предварительно нужно создать эту директорию и файлы.<br />
status /var/log/openvpn/openvpn-status.log<br />
log /var/log/openvpn/openvpn.log</p>
<p># Уровень логов, 0 &#8211; ничего не писать, только фатальные ошибки, 4 &#8211; общие сведения, 5 и 6 &#8211; для отладки соединения, 9 &#8211; все логи.<br />
verb 5</p>
<p># Если идут в логи 20 однотипных сообщений &#8211; в лог пишется только одно.<br />
;mute 20</p>
<p>&nbsp;</p>
<p>Лог подключения:<br />
Mon Dec 01 12:39:01 2008 OpenVPN 2.0.9 Win32-MinGW [SSL] [LZO] built on Oct 1 2006<br />
Mon Dec 01 12:39:01 2008 Control Channel Authentication: using &#8216;ta.key&#8217; as a OpenVPN static key file<br />
Mon Dec 01 12:39:01 2008 Outgoing Control Channel Authentication: Using 128 bit message hash &#8216;MD5&#8242; for HMAC authentication<br />
Mon Dec 01 12:39:01 2008 Incoming Control Channel Authentication: Using 128 bit message hash &#8216;MD5&#8242; for HMAC authentication<br />
Mon Dec 01 12:39:01 2008 LZO compression initialized<br />
Mon Dec 01 12:39:01 2008 Control Channel MTU parms [ L:1538 D:162 EF:62 EB:0 ET:0 EL:0 ]<br />
Mon Dec 01 12:39:01 2008 Data Channel MTU parms [ L:1538 D:1450 EF:38 EB:135 ET:0 EL:0 AF:3/1 ]<br />
Mon Dec 01 12:39:01 2008 Local Options hash (VER=V4): &#8217;03fa487d&#8217;<br />
Mon Dec 01 12:39:01 2008 Expected Remote Options hash (VER=V4): &#8216;1056bce3&#8242;<br />
Mon Dec 01 12:39:01 2008 UDPv4 link local (bound): [undef]:2000<br />
Mon Dec 01 12:39:01 2008 UDPv4 link remote: 62.244.4.14:2000<br />
Mon Dec 01 12:39:01 2008 TLS: Initial packet from 62.244.4.14:2000, sid=6d5eaf80 41eea419<br />
Mon Dec 01 12:40:01 2008 TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)<br />
Mon Dec 01 12:40:01 2008 TLS Error: TLS handshake failed<br />
Mon Dec 01 12:40:01 2008 TCP/UDP: Closing socket<br />
Mon Dec 01 12:40:01 2008 SIGUSR1[soft,tls-error] received, process restarting<br />
Mon Dec 01 12:40:01 2008 Restart pause, 2 second(s)<br />
Mon Dec 01 12:40:03 2008 Re-using SSL/TLS context<br />
Mon Dec 01 12:40:03 2008 LZO compression initialized<br />
Mon Dec 01 12:40:03 2008 Control Channel MTU parms [ L:1538 D:162 EF:62 EB:0 ET:0 EL:0 ]<br />
Mon Dec 01 12:40:03 2008 Data Channel MTU parms [ L:1538 D:1450 EF:38 EB:135 ET:0 EL:0 AF:3/1 ]<br />
Mon Dec 01 12:40:03 2008 Local Options hash (VER=V4): &#8217;03fa487d&#8217;<br />
Mon Dec 01 12:40:03 2008 Expected Remote Options hash (VER=V4): &#8216;1056bce3&#8242;<br />
Mon Dec 01 12:40:03 2008 UDPv4 link local (bound): [undef]:2000<br />
Mon Dec 01 12:40:03 2008 UDPv4 link remote: 62.244.4.14:2000<br />
Mon Dec 01 12:40:03 2008 TLS: Initial packet from 62.244.4.14:2000, sid=f53d1cb3 edf5f0b2<br />
Mon Dec 01 12:40:03 2008 VERIFY OK: depth=1, /C=Ua/ST=none/L=Kiev/O=OpenVPN-Firma/CN=server/emailAddress=admin@firma.com.ua<br />
Mon Dec 01 12:40:03 2008 VERIFY OK: nsCertType=SERVER<br />
Mon Dec 01 12:40:03 2008 VERIFY OK: depth=0, /C=Ua/ST=none/O=OpenVPN-Icc/CN=server/emailAddress=admin@icc.ukraine.com.ua<br />
Mon Dec 01 12:40:06 2008 Data Channel Encrypt: Cipher &#8216;BF-CBC&#8217; initialized with 128 bit key<br />
Mon Dec 01 12:40:06 2008 Data Channel Encrypt: Using 128 bit message hash &#8216;MD5&#8242; for HMAC authentication<br />
Mon Dec 01 12:40:06 2008 Data Channel Decrypt: Cipher &#8216;BF-CBC&#8217; initialized with 128 bit key<br />
Mon Dec 01 12:40:06 2008 Data Channel Decrypt: Using 128 bit message hash &#8216;MD5&#8242; for HMAC authentication<br />
Mon Dec 01 12:40:06 2008 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 1024 bit RSA<br />
Mon Dec 01 12:40:06 2008 [server] Peer Connection Initiated with 62.244.4.14:2000<br />
Mon Dec 01 12:40:07 2008 SENT CONTROL [server]: &#8216;PUSH_REQUEST&#8217; (status=1)<br />
Mon Dec 01 12:40:07 2008 PUSH: Received control message: &#8216;PUSH_REPLY,route 192.168.210.0 255.255.255.0,route 192.168.220.1,ping 10,ping-restart 120,ifconfig 192.168.220.5 192.168.220.6&#8242;<br />
Mon Dec 01 12:40:07 2008 OPTIONS IMPORT: timers and/or timeouts modified<br />
Mon Dec 01 12:40:07 2008 OPTIONS IMPORT: &#8211;ifconfig/up options modified<br />
Mon Dec 01 12:40:07 2008 OPTIONS IMPORT: route options modified<br />
Mon Dec 01 12:40:07 2008 TAP-WIN32 device [Подключение по локальной сети 3] opened: \\.\Global\{7ED2932F-F6C8-4B84-843E-8A26FA3D85D0}.tap<br />
Mon Dec 01 12:40:07 2008 TAP-Win32 Driver Version 8.4<br />
Mon Dec 01 12:40:07 2008 TAP-Win32 MTU=1500<br />
Mon Dec 01 12:40:07 2008 Notified TAP-Win32 driver to set a DHCP IP/netmask of 192.168.220.5/255.255.255.252 on interface {7ED2932F-F6C8-4B84-843E-8A26FA3D85D0} [DHCP-serv: 192.168.220.6, lease-time: 31536000]<br />
Mon Dec 01 12:40:07 2008 Successful ARP Flush on interface [3] {7ED2932F-F6C8-4B84-843E-8A26FA3D85D0}<br />
Mon Dec 01 12:40:07 2008 TEST ROUTES: 0/0 succeeded len=2 ret=0 a=0 u/d=down<br />
Mon Dec 01 12:40:07 2008 Route: Waiting for TUN/TAP interface to come up&#8230;<br />
Mon Dec 01 12:40:08 2008 TEST ROUTES: 0/0 succeeded len=2 ret=0 a=0 u/d=down<br />
Mon Dec 01 12:40:08 2008 Route: Waiting for TUN/TAP interface to come up&#8230;<br />
Mon Dec 01 12:40:09 2008 TEST ROUTES: 0/0 succeeded len=2 ret=0 a=0 u/d=down<br />
Mon Dec 01 12:40:09 2008 Route: Waiting for TUN/TAP interface to come up&#8230;<br />
Mon Dec 01 12:40:10 2008 TEST ROUTES: 0/0 succeeded len=2 ret=0 a=0 u/d=down<br />
Mon Dec 01 12:40:10 2008 Route: Waiting for TUN/TAP interface to come up&#8230;<br />
Mon Dec 01 12:40:11 2008 TEST ROUTES: 0/0 succeeded len=2 ret=0 a=0 u/d=down<br />
Mon Dec 01 12:40:11 2008 Route: Waiting for TUN/TAP interface to come up&#8230;<br />
Mon Dec 01 12:40:12 2008 TEST ROUTES: 2/2 succeeded len=2 ret=1 a=0 u/d=up<br />
Mon Dec 01 12:40:12 2008 route ADD 192.168.210.0 MASK 255.255.255.0 192.168.220.6<br />
Mon Dec 01 12:40:12 2008 Route addition via IPAPI succeeded<br />
Mon Dec 01 12:40:12 2008 route ADD 192.168.220.1 MASK 255.255.255.255 192.168.220.6<br />
Mon Dec 01 12:40:12 2008 Route addition via IPAPI succeeded<br />
Mon Dec 01 12:40:12 2008 Initialization Sequence Completed</p>
<p>Источник информации:<br />
1. <a href="http://www.lissyara.su/?id=1549">http://www.lissyara.su/?id=1549</a><br />
2. <a href="http://amhost.net/doc/openvpn/">http://amhost.net/doc/openvpn/</a><br />
3. <a href="http://bozza.ru/?c=340&amp;p=content">http://bozza.ru/?c=340&amp;p=content</a></p>
<p align="right"><strong>© Mau, 2008</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://mick.in.ua/2012-03-20/openvpn/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Настройка удаленного доступа к серверу через терминал.</title>
		<link>http://mick.in.ua/2012-03-20/terminal/</link>
		<comments>http://mick.in.ua/2012-03-20/terminal/#comments</comments>
		<pubDate>Tue, 20 Mar 2012 14:13:15 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Моя работа]]></category>
		<category><![CDATA[freebsd]]></category>

		<guid isPermaLink="false">http://mick.icc-ukraine.com.ua/?p=424</guid>
		<description><![CDATA[Как то раз после неудачного правила ipfw потерял я ssh, вот и надумал сделать удаленный доступ через модем к серверу. На сервере через порт COM1 подключен модем GVC R21 Vector на чипе Rockwell, на клиенской машине Windows XP и модем IDC 2814BXL+. Сначала делаем необходимые настройки на сервере &#8211; открываем /etc/ttys и смотрим в serial [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Как то раз после неудачного правила ipfw потерял я ssh, вот и надумал сделать удаленный доступ через модем к серверу. На сервере через порт COM1 подключен модем GVC R21 Vector на чипе Rockwell, на клиенской машине Windows XP и модем IDC 2814BXL+. Сначала делаем необходимые настройки на сервере &#8211; открываем /etc/ttys и смотрим в serial terminals &#8211; меняем строку 1 на 2<br />
ttyd0 &#8220;/usr/libexec/getty std.9600&#8243; dialup on secure #1<br />
ttyd0 &#8220;/usr/libexec/getty std.115200&#8243; xterm on secure #2<span id="more-424"></span><br />
Тут указано название терминального устройства (/dev/ttyd0), запускается процесс getty, который отвечает за чтение имени пользователя и запуск программы login. Скорость устанавливается 115200 кбит/сек. Тип терминала &#8211; xterm, можно указать dialup , но при этом не будет работать mc. On &#8211; порт включен. Secure &#8211; безопасный порт &#8211; дает возможность подключаться под root. Если поставить insecure &#8211; залогиниться можно будет только под обычным пользователем. После внесения изменений необходимо их применить &#8211; перезапустить процес init &#8211; отвечает за контроль над всеми процессами и инициализацию системы при загрузке в том числе и за чтение /etc/ttys и запуск getty на доступных терминалах:<br />
# kill -HUP 1 ( kill -1 1)<br />
У init pid всегда 1 &#8211; это первый процесс. -HUP и -1 это одно и то же. Для проверки что init перечитал конфигурацию необходимо перед и после измением запустить ps ax|grep getty посмотреть какой pid соответствует ttydo &#8211; они должны отличаться.</p>
<p>Теперь переходим к настройке модема &#8211; подключаемся на COM-порт:<br />
# cu -l /dev/cuad0 -s 115200<br />
Connected<br />
atz<br />
OK<br />
ate1<br />
OK<br />
atl1m1s0=3+ms=v34<br />
OK<br />
at&amp;w<br />
OK<br />
~~.<br />
[EOT]<br />
CU &#8211; команда подключения к удаленным девайсам &#8211; в данном сдучае /dev/cuad0 &#8211; COM1. Опцией -s 115200 задана скорость по порту, если ее не указать скорость будет 9600 по умолчанию. Изначально командой atz сбросили модем в настройки по умолчанию, в некоторых модемах не видно какие команды в консоли пишешь &#8211; для их отображения используется команда ate1. Далее командой l1 устанавливаем минимальный уровень громкости динамика (допустимые значения 0-минимум, 1 &#8211; минимум, 2 &#8211; средняя, 3 &#8211; максимум) и m1 &#8211; включение звука до обнаружения несущей (0 &#8211; звук откл, 2 &#8211; звук всегда включен, 3 &#8211; звук выкл во время набора и вкл до обнаружения несущей, есть еще 4,5,6 см.мануал) и протокол передачи данных V34 (+ms=11) &#8211; он более предпочтителен на плохих и шумных АТС. s0=3 &#8211; поднять трубку после 3-х гудков. Командой at&amp;w записываем изменения, если этого не сделать &#8211; то после пропадания питания все настройки обнулятся. ~~. &#8211; выход из cu &#8211; если по ssh, ~. &#8211; выход из cu &#8211; если непосредственно с сервера.</p>
<p>Теперь на виндовом клиенте &#8211; я использую putty (версия 0.60, в версии 0.58 нет возможности связываться по COM-порту), но можно и под Гипертерминалом (Пуск &#8211; Стандартные &#8211; Связь &#8211; гипертерминал. Подключаем можем на COM-порт, ставим драйвера и проверяем видет ли он в системе &#8211; кнопка &#8220;Опросить модем&#8221; в свойствах драйвера модема Далее открываем putty и заполняем поля:<br />
&#8211; устанавливаем галочку Serial;<br />
&#8211; Serial line &#8211; COM1 или COM2;<br />
&#8211; Saved sesions &#8211; что угодно, напимер modem;<br />
Жмем save и 2 раза кликаем на modem &#8211; получем консоль на модем, пишем:<br />
ate1<br />
OK<br />
atl1m1+ms=11<br />
OK<br />
at&amp;w<br />
atdt2000000<br />
Ну и далее после соединения вводим логин-пароль и мы на сервере. Полезные команды (проверены на IDC 2814BXL+):<br />
<strong>ata/</strong> &#8211; отобразить последнюю введенную команду;<br />
<strong>+++</strong> &#8211; переход в командный режим &#8211; когда получили доступ к сервеу этой кандой можем перейти в режим ввода AT-команд без прерывания связи;<br />
<strong>ato</strong> &#8211; выход из режима команд обратно в режим передачи данных;<br />
<strong>ato1</strong> &#8211; выход из режима команд обратно в режим передачи данных с тестированием линии и оптимизацией параметров;<br />
<strong>at%S0</strong> &#8211; информация о скорости подключения, протоколах,&#8230;<br />
ath &#8211; положить трубку &#8211; разрыв связи.<br />
В модемах IDC можно сохранить 2 профиля настроек, для этого в командном режиме вводим команды и в конце at&amp;w0 &#8211; запись 1-го профиля, at&amp;w1 &#8211; запись 2-го профиля. Однажды записанный профиль будет устанавливаться модемом всякий раз при включении питания. Для указания какой из 2-х профилей необходимо загружить вводим команду at&amp;Yn, гле n &#8211; номер профиля 0 или 1. Для сброса параметров с вызовом профиля 0 используется команда<strong> atz0</strong>. <strong>at&amp;F</strong> &#8211; вернуться к стандартному профилю. Заводские установки пишутся в оба профиля 0 и 1.<br />
<strong>at&amp;V0</strong> &#8211; для просмотра сохраненнго профиля 0 .<br />
<strong>&amp;Yn</strong> &#8211; выбор автоматические загружаемого профиля.<br />
<strong>at%R</strong> &#8211; вывод содержимое всех S-регистров.<br />
S-регистры:<br />
<strong>S7</strong> &#8211; по умолчанию 30 сек &#8211; время ожидания несущей. Время, в течении которого модем ожидает ответного сигнала удаленного модема. Время отсчитывается после набора последней цифры (рекомендуемое значение 60 сек;<br />
<strong>S9</strong> &#8211; по умолчанию 6*0,1 сек &#8211; время реакции на обнаружение несущей. Время, в течении которого должна присутствовать несущая, после которого модем переходит к процедуре установления соединения ( рекомендуемое значение 200);<br />
<strong>S10</strong> &#8211; по умолчанию 14*0,1 сек &#8211; аремя ожидания несущей, в случае ее потери. Максимальное время от потери несущей до отключения модема (рекомендуемое значение 255).</p>
<p>Источник информации:<br />
1. <a href="http://www.freebsd.org/doc/ru_RU.KOI8-R/books/handbook/term.html">http://www.freebsd.org/doc/ru_RU.KOI8-R/books/handbook/term.html</a></p>
<p align="right"><strong>© Mau, 2008</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://mick.in.ua/2012-03-20/terminal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Настройка Samba.</title>
		<link>http://mick.in.ua/2012-03-20/samb/</link>
		<comments>http://mick.in.ua/2012-03-20/samb/#comments</comments>
		<pubDate>Tue, 20 Mar 2012 14:11:14 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Моя работа]]></category>
		<category><![CDATA[freebsd]]></category>
		<category><![CDATA[samba]]></category>

		<guid isPermaLink="false">http://mick.icc-ukraine.com.ua/?p=422</guid>
		<description><![CDATA[Задача &#8211; сделать файловый сервер, к которому будут иметь доступ все клиенты из локалки, при этом в логи нужно писать кто что удалил и проверять трафик на лету на вирусы. Маны на английском языке можно посмотреть в архиве дистрибутива в директории doc. Заходим в /usr/ports/net/samba3 и инсталируем порт. В окошке конфигурации нужно выбрать с какими [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Задача &#8211; сделать файловый сервер, к которому будут иметь доступ все клиенты из локалки, при этом в логи нужно писать кто что удалил и проверять трафик на лету на вирусы. Маны на английском языке можно посмотреть в архиве дистрибутива в директории doc. Заходим в /usr/ports/net/samba3 и инсталируем порт. В окошке конфигурации нужно выбрать с какими опциями собираем, тут нужно поставить галочку на Syslog, т.к. нам интересно логгировать кто что делает с папками. Текущая версия 3.0.32. Добавляем /etc/rc.conf автозагрузку samba.<span id="more-422"></span></p>
<p># cd /usr/ports/net/samba3<br />
# make install clean<br />
# echo &#8216;samba_enable=&#8221;YES&#8221;&#8216; &gt;&gt;/etc/rc.conf</p>
<p>После установки дефолтный конфиг будет находиться /usr/local/etc/smb.conf. Конфиг состоит из двух секций [global] &#8211; глобальные настройки, [homes] &#8211; расшаренные папки. Ниже приведен мой конфиг:</p>
<p>[global]<br />
interfaces = 192.168.210.0/24<br />
workgroup = ICC_GROUP<br />
netbios name = Icc_Ukraine<br />
server string = Icc Ukraine<br />
security = share<br />
log file = /var/log/samba/log.%m<br />
log level = 0 vfs:2<br />
max log size = 0<br />
os level = 65<br />
domain master = yes<br />
local master = yes<br />
preferred master = yes<br />
load printers = No<br />
dns proxy = No<br />
unix charset = koi8-u<br />
dos charset = cp866<br />
display charset = cp866<br />
preserve case=yes<br />
short preserve case=yes<br />
wins support = yes</p>
<p>[Test_vscan_clamav]</p>
<p>path = /mnt/share1<br />
vfs object = vscan-clamav<br />
vscan-clamav: config-file = /usr/local/etc/samba-vscan/vscan-clamav.conf<br />
guest ok = yes<br />
writable = yes<br />
create mask = 0644<br />
directory mask = 0755</p>
<p>[Temp2_full_audit ]</p>
<p>path = /mnt/da1s/server<br />
guest ok = yes<br />
writable = yes<br />
create mask = 0644<br />
directory mask = 0755<br />
vfs objects = full_audit<br />
full_audit:failure = mkdir rmdir open close read pread write pwrite rename unlink<br />
full_audit:success = mkdir rmdir open close read pread write pwrite rename unlink<br />
full_audit:prefix = %m|%I|%U</p>
<p>Ну а теперь подробнее:<br />
interfaces = 192.168.210.0/24 &#8211; на каком интерфейсе слушается, у меня стоит на сервере, где имеется 2 сетевухи, с этим параметром samba будет работать на внутреннем;<br />
workgroup, netbios name, server string &#8211; название рабочей группы, имя компа в сети и его описание;<br />
security = share &#8211; режим доступа к папкам -открытый, без ограничения, бывают режимы user, domen, ADS, server &#8211; об этом можно почитать в HOWTO;<br />
log file = /var/log/samba/log.%m &#8211; местоположение отладочной информации,%m &#8211; по каждому пользователю будет отдельный файл;<br />
log level = 0 vfs:2(синоним debuglevel) &#8211; тут указывается уровень отладки 0 (только ошибки), для vfs модуля -2 &#8211; что отвечает значению 2 не знаю, 1 &#8211; это ошибки и предупреждения;<br />
max log size = 0 &#8211; тут указывает размер в килобайтах отладочных файлов, 0 &#8211; размер не ограничивается;<br />
os level = 65<br />
domain master = yes Основной мастер просмотра;<br />
local master = yes # Локальный мастер просмотра;<br />
preferred master = yes # Предпочитаемый сервер просмотра;<br />
Существует служба просмотра Windows, которая определяет какие шары есть в сети. Вместо того, чтобы каждый клиент производил просмотр самостоятельно в Windows сетях есть имеется основной сервер просмотра (master browsers) и дополнительный (backup browsers), которые предоставляет список просмотра клиентам. Samba может выступать как основным, так и дополнительным сервером просмотра. В конфиге включается основной серевер просмотра (domain master), его функции &#8211; собирать списки просмотра с локальных мастеров просмора. <strong>Для одной рабочей группы только один сервер Samba может быть мастер просмотра.</strong> Доменный мастер просмотра предпочтитильно должен быть и локальным мастером просмотра (local master). Если предпочитаемый сервер просмотра включен (preferred master), то после запуска nmbd иницирует выборы сервера просмотра. Тот у кого значение os level больше выиграет, при значении 65 Samba выигрывает у любых Windows-машин.<br />
dns proxy = No &#8211; отключение перенаправление в ДНС, если имя не найдено в базе WINS, кроме того при перенаправлении в ДНС порождается еще один процесс nmbd, а это не очень хорошо;<br />
unix charset = koi8-u<br />
dos charset = cp866<br />
display charset = cp866 # Кодировки взависимости от клиента;<br />
preserve case=yes<br />
short preserve case=yes # эти 2 параметры определяют сохранение регистра в названии файлов при записи новых файлов;<br />
wins support = yes # Samba будет выступать еще и WINS-сервером</p>
<p>На этом глобальные параметры заканчиваются, дальше идут описания шар. Тут применяются так называемые <strong>vfs objects</strong> (Virtual File System) &#8211; модули, которые отвечают за определенную работу системы ввода-вывода. В этом примере используем модуль full_audit для логирования действий пользователя с сетевой папкой и vscan-clamav для проверки на вирусы антивирусом Clamav сетевых папок. Сами модули находятся в /usr/local/lib/samba. Но тут есть один минус &#8211; к Samba-шарам можно подключать несколько модулей, их можно перечислить через проблел в vfs objects, но модуль vscan-clamav работает только тогда, когда он один прописан или же стоит последним, при этом модули, перечисленные до него не работают. Устанавливаем порт /usr/ports/security/samba_vscan. Текущая версия 0.3.6_c2. Также ставим Clamav /usr/ports/securiyu/clamav. Текущая версия 0.94_1. Добавляем в /etc/rc.conf:<br />
clamav_freshclam_enable=&#8221;YES&#8221;<br />
clamav_clamd_enable=&#8221;YES&#8221;<br />
Сначала смотрим в конфиг антивируса /usr/local/etc/clamd.conf &#8211; он вполне работоспособный без изменений, я изменил только следующее:<br />
#LogFile /var/log/clamav/clamd.log<br />
LogSyslog yes<br />
LogFacility LOG_LOCAL1<br />
LogVerbose yes<br />
LocalSocket /var/run/clamav/clamd<br />
Смотрим конфиг /usr/local/etc/samba-vscan/vscan-clamav.conf &#8211; тоже конфиг рабочий, поменял только следующее:<br />
infected file action = quarantine<br />
quarantine directory = /tmp/smb_infected<br />
clamd socket name = /var/run/clamav/clamd<br />
Тут задано действие &#8211; переместить зараженные файлы в /tmp/smb_infected. Все остальные опции можно таже поменять, но это дело вкуса. Тут важно, чтобы <strong>LocalSocket</strong> и <strong>clamd socket name</strong> совпадали. Тут еще минус у samba-vscan, что он не понимает LogFacility, пишет в логи в /var/log/messages через уровень *.notice. Сделано так в /etc/syslog.conf:<br />
local1.* /var /log/clama/clamd.log<strong><br />
</strong>*.notice убрано из /var/log/messages<br />
*.notice;local0.none;local2.none;local3.none /var/log/notice.log<br />
!smbd_vscan-clamav<br />
*.* /var/log/clamav/ smbd-vscan.log<br />
В /etc/newsyslog.conf:<br />
/var/log/clamav/clamd.log 644 5 5000 * ZC<br />
/var/log/clamav/smbd-vscan.log 644 5 5000 * ZC<br />
/var/log/notice.log 644 5 5000 * ZC</p>
<p>И не забываем предварительно создать файлы логов, делаем рестарт:<br />
# /etc/rc.d/syslogd restart<br />
# /usr/local/etc/rc.d/samba restart</p>
<p>Смотрим в логи и наблюдаем что пишется:<br />
Oct 15 12:29:49 server smbd_vscan-clamav[65225]: samba-vscan (vscan-clamav 0.3.6c beta5) connected (Samba 3<br />
.0), (c) by Rainer Link, OpenAntiVirus.org<br />
Oct 15 12:29:49 icc smbd_vscan-clamav[65225]: INFO: connect to service Test_vscan_clamav by user nobody</p>
<p>В рассмотренном примере при заходе в папку Test_vscan_clamav весь трафик с папкой будет проверяться на вирусы. В описании шары:<br />
[Test_vscan_clamav] &#8211; так будет отображаться название шары в рабочей группе;<br />
patch &#8211; физческое расположение разшаренной папки;<br />
guest ok = yes &#8211; доступ разрешен для всех;<br />
writable = yes &#8211; разрешена запись;<br />
create mask = 0644 &#8211; маска для записываемых файлов;<br />
directory mask = 0755 &#8211; маска для записываемых директорий.</p>
<p>Теперь рассмотрим как работает модуль full_audit. Читаем мануал <strong>man vfs_full_audit</strong>, как видно мониторить им можно очень много параметров, но нам столько не нужно, поэтому, ограничимся теми, что указаны в конфиге:<br />
full_audit:failure &#8211; параметры мониторинга ошибок;<br />
full_audit:success &#8211; параметры мониторинга удачных действий;<br />
mkdir &#8211; создание директории;<br />
rmdir &#8211; удаление директории;<br />
open &#8211; в какую папку заходили или открывали файл;<br />
close &#8211; с какой папки вышли или закрыли файл;<br />
read, pread &#8211; чтение(открытие) файла;<br />
write,pwrite &#8211; запись (изменение) файла/папки;<br />
rename &#8211; переименование файла/папки;<br />
unlink &#8211; удаление.<br />
full_audit:prefix = %m|%I|%U &#8211; переменные, используемые в samba &#8211; о них можно почитать в мане <strong>man smb.conf</strong>.<br />
%m &#8211; NetBios-имя клиентской машины;<br />
%I &#8211; IP-номер клиентской машины;<br />
%U &#8211; пользователь, под которым залогинился на локальную машину;<br />
full_audit: facility = local4 &#8211; пишем в LOCAL4 syslog;<br />
full_audit: priority = INFO &#8211; приоритет INFO.<br />
Лирическое отсупление &#8211; в Syslog пишутся логи от источников, которые имеют категорию(facility) и приоритет (priority). Категория &#8211; ряд определенных значений от разных источников (почта, ядро, крон,&#8230;). Существуют зарезервированые категории local0-local7, которые ни к какому сервису не прикручены, а сделаны для нужд администраторов. Приоритет &#8211; уровень важности события, есть 8 уровней &#8211; debug, info, notice, warning, err, crit, alert, emerg.</p>
<p>Теперь пишем в /etc/syslog.conf:<br />
local4.info /var/log/audit.log<br />
Рестартуем syslog и смотрим в логи:<br />
#/etc/rc.d/syslogd restart<br />
# tail -f /etc/syslog.conf<br />
Oct 17 11:46:26 icc smbd_audit: adm|192.168.210.8|admin|close|ok|01-July-2008/var_named_etc/namedb/putty<br />
.exe<br />
Oct 17 11:46:26 icc smbd_audit: adm|192.168.210.8|admin|open|ok|r|01-July-2008/var_named_etc/namedb/putty.exe<br />
Oct 17 11:46:26 icc smbd_audit: adm|192.168.210.8|admin|pread|ok|01-July-2008/var_named_etc/namedb/putty.exe<br />
Oct 17 11:46:26 icc smbd_audit: adm|192.168.210.8|admin|pread|ok|01-July-2008/var_named_etc/namedb/putty.exe<br />
Oct 17 11:46:41 icc smbd_audit: adm|192.168.210.8|admin|close|ok|01-July-2008/var_named_etc/namedb/putty.exe<br />
Oct 17 11:46:41 icc smbd_audit: INFO: disconnected</p>
<p>Источник информации:<br />
1. <a href="http://www.opennet.ru/base/net/samba_full_audit.txt.html">http://www.opennet.ru/base/net/samba_full_audit.txt.html </a><br />
2. <a href="http://www.security-teams.net/board/index.php?showtopic=4707">http://www.security-teams.net/board/index.php?showtopic=4707</a><br />
3. <a href="http://www.debryansk.ru/%7Etereshin/sambadoc/BROWSING.koi8-r.html">http://www.debryansk.ru/~tereshin/sambadoc/BROWSING.koi8-r.html</a></p>
<p align="right"><strong>© Mau, 2008</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://mick.in.ua/2012-03-20/samb/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apache + PHP .</title>
		<link>http://mick.in.ua/2012-03-20/apache/</link>
		<comments>http://mick.in.ua/2012-03-20/apache/#comments</comments>
		<pubDate>Tue, 20 Mar 2012 14:09:51 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Моя работа]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[freebsd]]></category>

		<guid isPermaLink="false">http://mick.icc-ukraine.com.ua/?p=419</guid>
		<description><![CDATA[Ставим веб-сервер /usr/ports/www/apache22 (текущая версия apache-2.2.9), ставится без проблем, в меню выбра я убрал только IPV6. # cd /usr/ports/www/apache22 # make install clean (или portinstall apache22) Далее ставим PHP5 /usr/ports/lang/php5 (текущая версия php-5.2.6), в меню выбора убираем IPV6 и устанавливаем галочку напротив APACHE &#8211; Build Apache module. # cd /usr/ports/lang/php5 # make install clean Теперь [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Ставим веб-сервер /usr/ports/www/apache22 (текущая версия apache-2.2.9), ставится без проблем, в меню выбра я убрал только IPV6.</p>
<p># cd /usr/ports/www/apache22<br />
# make install clean (или portinstall apache22)<span id="more-419"></span></p>
<p>Далее ставим PHP5 /usr/ports/lang/php5 (текущая версия php-5.2.6), в меню выбора убираем IPV6 и устанавливаем галочку напротив APACHE &#8211; Build Apache module.</p>
<p># cd /usr/ports/lang/php5<br />
# make install clean</p>
<p>Теперь открываем конфиг апача /usr/local/etc/apache22/httpd.conf и проверяем, там должнен быть прописан модель php &#8211; LoadModule php5_module libexec/apache22/libphp5.so. Также сюда добавляем обработчик PHP:</p>
<p>AddType application/x-httpd-php .php<br />
AddType application/x-httpd-php-source .phps</p>
<p>Добавляем в rc.conf автозапуск апача &#8211; apache22_enable=&#8221;YES&#8221;, перегружаемся или запускаем скрипт запуска &#8211; /usr/local/etc/rc.d/apache22 start. Если никаких ошибок нет, то проверим работает ли PHP. Для этого создаем файл info.php такого содержания:<br />
&lt;?php<br />
phpinfo();<br />
?&gt;<br />
и ложим его директорию где лежит index.html &#8211; по умолчанию /usr/local/www/apache22/data. Теперь в браузере вводим http://ip/php.info и если видим страничку параметров PHP &#8211; значит все успешно установилось.</p>
<p align="right"><strong>© Mau, 2008</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://mick.in.ua/2012-03-20/apache/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
