<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="uk">
	<id>https:///index.php?action=history&amp;feed=atom&amp;title=%D0%9A%D0%BE%D0%BD%D1%84%D0%B8%D0%B3_%D0%B4%D0%BB%D1%8F_Mikrotik_%D1%81_%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E_make_config</id>
	<title>Конфиг для Mikrotik с помощью make config - Історія редагувань</title>
	<link rel="self" type="application/atom+xml" href="https:///index.php?action=history&amp;feed=atom&amp;title=%D0%9A%D0%BE%D0%BD%D1%84%D0%B8%D0%B3_%D0%B4%D0%BB%D1%8F_Mikrotik_%D1%81_%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E_make_config"/>
	<link rel="alternate" type="text/html" href=""/>
	<updated>2026-05-05T13:37:56Z</updated>
	<subtitle>Історія редагувань цієї сторінки в вікі</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id></id>
		<title>Sv: /* Создание шаблона */</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2019-11-25T19:36:56Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Создание шаблона&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Нова сторінка&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==DHCP-сервер на Mikrotik без использования Radius ==&lt;br /&gt;
&lt;br /&gt;
Модуль make_config периодически формирует конфиг и загружает его на Mikrotik с помощью ssh. Авторизация по сертификату.&lt;br /&gt;
&lt;br /&gt;
===Создание сертификата===&lt;br /&gt;
&lt;br /&gt;
На сервере  NoDeny:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /usr/local/nodeny/mikdhcp/&lt;br /&gt;
ssh-keygen -t dsa&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
На вопрос &amp;quot;Enter file in which to save the key&amp;quot; отвечаем:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr/local/nodeny/mikdhcp/id_dsa&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Загружаем сертификат на Mikrotik с ip=1.2.3.4:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sftp admin@1.2.3.4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И далее в консоли sftp:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
put /usr/local/nodeny/mikdhcp/id_dsa.pub&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Импортируем сертификат. В консоли Mikrotik:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/user ssh-keys import public-key-file=id_dsa.pub&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Создание шаблона===&lt;br /&gt;
Шаблон /usr/local/nodeny/kernel/make_config/mikrotik.tmpl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh -i /usr/local/nodeny/mikdhcp/id_dsa -p22 admin@1.2.3.4 &amp;lt;&amp;lt; EOF&lt;br /&gt;
/ip dhcp-server lease remove [find comment=nodeny]&lt;br /&gt;
{% for user in users %}&lt;br /&gt;
    {% eval i = 0 %}&lt;br /&gt;
    {% for ip in user.ips %}&lt;br /&gt;
        {% if user.mac.[i] %}&lt;br /&gt;
/ip dhcp-server lease add address={{ip.ipa}} mac-address={{user.mac.[i]|pretty_mac}} address-list=goodboys comment=nodeny&lt;br /&gt;
        {% eval i = i + 1 %}&lt;br /&gt;
        {% endif %}&lt;br /&gt;
    {% endfor %}&lt;br /&gt;
{% endfor %}&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В Linux для ssh добавьте ключ &amp;quot;-T&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/usr/local/nodeny/kernel/make_config_mikrotik.cfg:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
run     =&amp;gt; 0,&lt;br /&gt;
period  =&amp;gt; 60,&lt;br /&gt;
template  =&amp;gt; {&lt;br /&gt;
            'mikrotik.tmpl' =&amp;gt; {&lt;br /&gt;
                # куда будет записан сформированный конфиг&lt;br /&gt;
                file       =&amp;gt; '/tmp/mikdhcp.sh',&lt;br /&gt;
&lt;br /&gt;
                # системная команда, которая будет выполнена перед записью конфига, можно ''&lt;br /&gt;
                cmd_before =&amp;gt; '',&lt;br /&gt;
&lt;br /&gt;
                # системная команда, которая будет выполнена после записи конфига, можно ''&lt;br /&gt;
                cmd_after  =&amp;gt; 'sh /tmp/mikdhcp.sh &amp;gt;/dev/null 2&amp;gt;/dev/null',&lt;br /&gt;
&lt;br /&gt;
                # удалять пустые строки&lt;br /&gt;
                pretty =&amp;gt; 1,&lt;br /&gt;
            },&lt;br /&gt;
},&lt;br /&gt;
subs    =&amp;gt; {&lt;br /&gt;
            pretty_mac =&amp;gt; sub {&lt;br /&gt;
                my $mac = shift;&lt;br /&gt;
                $mac =~ s/(..)/$1:/g;&lt;br /&gt;
                chop $mac;&lt;br /&gt;
                return $mac;&lt;br /&gt;
            },&lt;br /&gt;
},&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тестовый запуск:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
perl nokernel.pl -v -m=make_config -g=make_config_mikrotik&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Результат&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh -i /usr/local/nodeny/mikdhcp/id_dsa -p22 admin@1.2.3.4 &amp;lt;&amp;lt; EOF&lt;br /&gt;
/ip dhcp-server lease remove [find comment=nodeny]&lt;br /&gt;
/ip dhcp-server lease add address=10.0.0.26 mac-address=00:00:00:00:00:11 address-list=goodboys comment=nodeny&lt;br /&gt;
/ip dhcp-server lease add address=10.0.0.20 mac-address=00:00:00:00:00:22 address-list=goodboys comment=nodeny&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sv</name></author>
	</entry>
</feed>