<?xml version="1.0" encoding="utf-8"?> 
<rss version="2.0"
  xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
  xmlns:atom="http://www.w3.org/2005/Atom">

<channel>

<title>IT science: заметки с тегом pfsense</title>
<link>https://itscience.pro/tags/pfsense/</link>
<description>IT science — статьи и инструкции из мира IT</description>
<author></author>
<language>ru</language>
<generator>Aegea 11.4 (v4171)</generator>

<itunes:subtitle>IT science — статьи и инструкции из мира IT</itunes:subtitle>
<itunes:image href="" />
<itunes:explicit></itunes:explicit>

<item>
<title>отслеживаем подключения по vpn на pfsense</title>
<guid isPermaLink="false">33</guid>
<link>https://itscience.pro/all/otslezhivaem-podklyucheniya-po-vpn-na-pfsense/</link>
<pubDate>Wed, 21 Apr 2021 12:01:04 +0300</pubDate>
<author></author>
<comments>https://itscience.pro/all/otslezhivaem-podklyucheniya-po-vpn-na-pfsense/</comments>
<description>
&lt;p&gt;Пандемия 2020 дала свои плоды: удаленная работа, массовое использование VPN. Конечно, любое руководство захочет контролировать удаленное подключение/отключение сотрудников. У себя в компании мы интегрировали VPN в пропускную систему создав виртуальный контроллер. Теперь отдел кадров видит кто посещал рабочее место зайдя в офис или подключался удаленно. Полностью расписывать весь механизм я не стану, лишь опубликую как можно организовать получение событий со шлюза на pfsense.&lt;/p&gt;
&lt;p&gt;Для начала создаём сервер на ubuntu, например, виртуальный. Требования минимальны: 1 CPU, 256Мб памяти, 10Гб диск. Я щедро выделил 1Гб памяти и 100 Гб диска, вот что реально потребляет система:&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://itscience.pro/pictures/izobrazhenie_2021-04-21_112612.png" width="644" height="90" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://itscience.pro/pictures/izobrazhenie_2021-04-21_120015.png" width="569" height="164" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Качаем минимальный дистрибутив в 74Мб &lt;a href="http://archive.ubuntu.com/ubuntu/dists/focal/main/installer-amd64/current/legacy-images/netboot/mini.iso"&gt;http://archive.ubuntu.com/ubuntu/dists/focal/main/installer-amd64/current/legacy-images/netboot/mini.iso&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;устанавливаем syslog-ng&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo apt update
sudo apt install syslog-ng&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;создаем конфиг /etc/syslog-ng/conf.d/external_log.conf&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;source s_udp {
    udp(port(514));
};
destination d_PFSENSE_VPN {
     program(&amp;quot;/usr/bin/php /home/user/pfsense_vpn.php&amp;quot; );
};
filter f_PFSENSE_VPN {
    host(&amp;quot;192.168.#.#&amp;quot;);
    match(&amp;quot;,l2tp,&amp;quot; value (&amp;quot;MESSAGE&amp;quot;));
};
log {
    source(s_udp);
    filter(f_PFSENSE_VPN);
    destination(d_PFSENSE_VPN);
};
destination d_PFSENSE_OPENVPN {
     program(&amp;quot;/usr/bin/php /home/user/pfsense_vpn.php&amp;quot; );
};
filter f_PFSENSE_OPENVPN {
    host(&amp;quot;192.168.#.#&amp;quot;);
    program(&amp;quot;openvpn&amp;quot;);
};
log {
    source(s_udp);
    filter(f_PFSENSE_OPENVPN);
    destination(d_PFSENSE_OPENVPN);
};&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;где 192.168.#.# — ip-адрес pfsense&lt;/p&gt;
&lt;p&gt;перенаправим логи с pfsense на наш маленький сервер, здесь мы их будем парсить и обрабатывать как нам нужно&lt;/p&gt;
&lt;p&gt;в моём примере, мы создаем два фильтра &lt;b&gt;f_PFSENSE_VPN&lt;/b&gt; и &lt;b&gt;f_PFSENSE_OPENVPN&lt;/b&gt; для того чтобы скриптом обрабатывать только события связанные с подключением и отключением по протоколам l2tp и OpenVPN (актуально для формата логов pfsense версии 2.5.1&lt;/p&gt;
&lt;p&gt;есть два destination, но по сути они ссылаются на один и тот же скрипт &lt;b&gt;d_PFSENSE_VPN&lt;/b&gt; и &lt;b&gt;d_PFSENSE_OPENVPN&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;со стороны pfsense настраиваем пересылку логов на наш сервер&lt;/p&gt;
&lt;p&gt;Status -&gt; System Logs -&gt; Settings&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://itscience.pro/pictures/izobrazhenie_2021-04-21_114737.png" width="800" height="504.92957746479" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;указываем ip-адрес и порт нашего сервера и ставим галочку «VPN Events (IPsec, OpenVPN, L2TP, PPPoE Server)», т. к. нам нужны только события удаленных подключений&lt;/p&gt;
&lt;p&gt;с парсером, я думаю, вы справитесь, приведу пример логов для OpenVPN:&lt;br /&gt;
подключение&lt;/p&gt;
&lt;/code&gt;&lt;p&gt;Jun 25 18:29:57 192.168.#.# openvpn: user ’user_name’ authenticated&lt;/p&gt;
&lt;/code&gt;&lt;p&gt;отключение&lt;/p&gt;
&lt;/code&gt;&lt;p&gt;Jun 25 18:57:34 192.168.#.# openvpn[16766]: user_name/132.252.198.166:6182 Connection reset, restarting [-1]&lt;/p&gt;
&lt;/code&gt;&lt;p&gt;С l2tp еще проще:&lt;br /&gt;
подключение&lt;/p&gt;
&lt;/code&gt;&lt;p&gt;Jun 25 18:29:57 192.168.#.# root: login,l2tp,192.168.111.#,user_name&lt;/p&gt;
&lt;/code&gt;&lt;p&gt;отключение&lt;/p&gt;
&lt;/code&gt;&lt;p&gt;Jun 25 18:57:34 192.168.#.# root: logout,l2tp,192.168.111.#,user_name&lt;/p&gt;
&lt;/code&gt;</description>
</item>


</channel>
</rss>