networking.html 64 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636
  1. <!DOCTYPE html>
  2. <html lang="ru">
  3. <head>
  4. <meta charset="utf-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
  6. <title>Сетевое администрирование &#8212; Неофициальный FAQ по Fedora (версия 2023.05.30)</title>
  7. <link rel="stylesheet" type="text/css" href="_static/pygments.css" />
  8. <link rel="stylesheet" type="text/css" href="_static/alabaster.css" />
  9. <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css" />
  10. <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
  11. <script src="_static/doctools.js"></script>
  12. <script src="_static/sphinx_highlight.js"></script>
  13. <script src="_static/translations.js"></script>
  14. <script defer="defer" src="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js"></script>
  15. <script defer="defer" src="_static/search.js"></script>
  16. <link rel="icon" href="_static/faq-icon.ico"/>
  17. <link rel="index" title="Алфавитный указатель" href="genindex.html" />
  18. <link rel="search" title="Поиск" href="search.html" />
  19. <link rel="next" title="Виртуализация" href="virtualization.html" />
  20. <link rel="prev" title="Системное администрирование" href="administration.html" />
  21. <link rel="stylesheet" href="_static/custom.css" type="text/css" />
  22. <link rel="apple-touch-icon" href="_static/faq-icon.png" />
  23. <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
  24. </head><body>
  25. <div class="document">
  26. <div class="documentwrapper">
  27. <div class="bodywrapper">
  28. <div class="body" role="main">
  29. <section id="networking">
  30. <span id="id1"></span><h1>Сетевое администрирование<a class="headerlink" href="#networking" title="Permalink to this heading">¶</a></h1>
  31. <section id="vpn">
  32. <span id="vpn-selection"></span><span id="index-0"></span><h2>Хочу обезопасить свой Интернет-трафик. Какую реализацию VPN выбрать?<a class="headerlink" href="#vpn" title="Permalink to this heading">¶</a></h2>
  33. <section id="wireguard">
  34. <h3>WireGuard<a class="headerlink" href="#wireguard" title="Permalink to this heading">¶</a></h3>
  35. <p><a class="reference internal" href="#using-wireguard"><span class="std std-ref">WireGuard</span></a> – самый современный и актуальный протокол для VPN. Обеспечивает максимальную скорость работы за счёт реализации в виде модуля ядра Linux и надёжную криптографическую защиту от прослушивания.</p>
  36. </section>
  37. <section id="openvpn">
  38. <h3>OpenVPN<a class="headerlink" href="#openvpn" title="Permalink to this heading">¶</a></h3>
  39. <p><a class="reference internal" href="#using-openvpn"><span class="std std-ref">OpenVPN</span></a> – cамая популярная и стабильная в настоящее время реализация VPN. Способен работать как через UDP, так и TCP, имеет плагины маскировки под TLS, обеспечивает высокую защищённость, но имеет низкую производительность из-за постоянных переключений между режимами пользователя и ядра.</p>
  40. </section>
  41. <section id="l2tp-ipsec">
  42. <h3>L2TP/IPSec<a class="headerlink" href="#l2tp-ipsec" title="Permalink to this heading">¶</a></h3>
  43. <p>Поддерживается большинством роутеров «из коробки», но является устаревшим. Изначально создавался для Windows, поэтому многие серверы заточены под соответствующие реализации клиентов.</p>
  44. </section>
  45. <section id="pptp">
  46. <h3>PPTP<a class="headerlink" href="#pptp" title="Permalink to this heading">¶</a></h3>
  47. <p>Устаревший, <a class="reference external" href="https://xakep.ru/2012/07/30/59067/">уязвимый by design</a> протокол. Трафик, проходящий через сеть, использующую данный протокол, может быть легко расшифрован за несколько часов. Категорически не рекомендуется к применению даже на устаревшем оборудовании.</p>
  48. </section>
  49. </section>
  50. <section id="ssh">
  51. <span id="ssh-keys-error"></span><span id="index-1"></span><h2>При использовании SSH появляется ошибка доступа к ключам. Как исправить?<a class="headerlink" href="#ssh" title="Permalink to this heading">¶</a></h2>
  52. <p>См. <a class="reference external" href="https://www.easycoding.org/2016/07/31/reshaem-problemu-s-ssh-klyuchami-v-fedora-24.html">здесь</a>.</p>
  53. </section>
  54. <section id="vpn-pptp">
  55. <span id="pptp-connection-error"></span><span id="index-2"></span><h2>При установке VPN-соединения по протоколу PPTP появляется ошибка. Как исправить?<a class="headerlink" href="#vpn-pptp" title="Permalink to this heading">¶</a></h2>
  56. <p>Если продключение к VPN по протоколу <a class="reference internal" href="#vpn-selection"><span class="std std-ref">PPTP</span></a> не проходит из-за ошибки, включим поддержку <a class="reference external" href="https://ru.wikipedia.org/wiki/GRE_(%D0%BF%D1%80%D0%BE%D1%82%D0%BE%D0%BA%D0%BE%D0%BB)">GRE</a> в настройках <a class="reference internal" href="security.html#firewalld-about"><span class="std std-ref">межсетевого экрана</span></a>.</p>
  57. <p>Для этого выполним следующее:</p>
  58. <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>sudo firewall-cmd --permanent --add-protocol=gre
  59. sudo firewall-cmd --reload
  60. </pre></div>
  61. </div>
  62. <p>Изменения вступят в силу немедленно.</p>
  63. <p><strong>Важно:</strong> Некоторые интернет-провайдеры и большая часть операторов сотовой связи ограничивают передачу данных по протоколу GRE. В случае, если вы уверены, что поставщик услуг связи здесь не при чем, обратите внимание на маршрутизатор: некоторые модели бюджетных устройств также могут ограничивать трафик.</p>
  64. </section>
  65. <section id="firewalld-port-forwarding">
  66. <span id="index-3"></span><span id="id2"></span><h2>Как пробросить локальный порт на удалённый хост?<a class="headerlink" href="#firewalld-port-forwarding" title="Permalink to this heading">¶</a></h2>
  67. <p>См. <a class="reference external" href="https://www.easycoding.org/2017/05/23/probrasyvaem-lokalnyj-port-na-udalyonnyj-xost.html">здесь</a>.</p>
  68. </section>
  69. <section id="openvpn-fedora">
  70. <span id="using-openvpn"></span><span id="index-4"></span><h2>Как поднять OpenVPN сервер в Fedora?<a class="headerlink" href="#openvpn-fedora" title="Permalink to this heading">¶</a></h2>
  71. <p>См. <a class="reference external" href="https://www.easycoding.org/2017/07/24/podnimaem-ovn-server-na-fedora.html">здесь</a>. В данной статье вместо <strong>ovn</strong> следует использовать <strong>openvpn</strong> во всех путях и именах юнитов.</p>
  72. </section>
  73. <section id="wireguard-fedora">
  74. <span id="using-wireguard"></span><span id="index-5"></span><h2>Как поднять WireGuard сервер в Fedora?<a class="headerlink" href="#wireguard-fedora" title="Permalink to this heading">¶</a></h2>
  75. <p>См. <a class="reference external" href="https://www.easycoding.org/2019/02/28/podnimaem-wireguard-server-na-fedora.html">здесь</a>.</p>
  76. </section>
  77. <section id="matrix-fedora">
  78. <span id="matrix-server"></span><span id="index-6"></span><h2>Как поднять свой сервер Matrix в Fedora?<a class="headerlink" href="#matrix-fedora" title="Permalink to this heading">¶</a></h2>
  79. <p>См. <a class="reference external" href="https://www.easycoding.org/2018/04/15/podnimaem-sobstvennyj-matrix-server-v-fedora.html">здесь</a>.</p>
  80. </section>
  81. <section id="fedora">
  82. <span id="simple-web-server"></span><span id="index-7"></span><h2>Как запустить простейший веб-сервер в Fedora?<a class="headerlink" href="#fedora" title="Permalink to this heading">¶</a></h2>
  83. <p>Для запуска простейшего веб-сервера можно использовать Python и модуль, входящий в состав базового пакета:</p>
  84. <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>python3 -m http.server 8080
  85. </pre></div>
  86. </div>
  87. <p>Веб-сервер будет запущен на порту <strong>8080</strong>. В качестве webroot будет использоваться текущий рабочий каталог.</p>
  88. </section>
  89. <section id="network-configuration">
  90. <span id="index-8"></span><span id="id3"></span><h2>Как лучше настраивать сетевые подключения?<a class="headerlink" href="#network-configuration" title="Permalink to this heading">¶</a></h2>
  91. <p>В Fedora для настройки сети используется Network Manager. Для работы с ним доступны как графические менеджеры (встроены в каждую DE), так и консольный <strong>nm-cli</strong>.</p>
  92. </section>
  93. <section id="dlna">
  94. <span id="dlna-server"></span><span id="index-9"></span><h2>Как поднять DLNA сервер в локальной сети?<a class="headerlink" href="#dlna" title="Permalink to this heading">¶</a></h2>
  95. <p>См. <a class="reference external" href="https://www.easycoding.org/2018/09/08/podnimaem-dlna-server-v-fedora.html">здесь</a>.</p>
  96. </section>
  97. <section id="fedora-iperf">
  98. <span id="index-10"></span><span id="id4"></span><h2>Как сделать замеры скорости локальной или беспроводной сети?<a class="headerlink" href="#fedora-iperf" title="Permalink to this heading">¶</a></h2>
  99. <p>Для точных замеров производительности сети нам потребуется как минимум два компьютера (либо компьютер и мобильное устройство), а также утилита <strong>iperf3</strong>, присутствующая в репозиториях Fedora. Установим её:</p>
  100. <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>sudo dnf install iperf3
  101. </pre></div>
  102. </div>
  103. <p>На первом устройстве запустим сервер:</p>
  104. <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>iperf3 -s
  105. </pre></div>
  106. </div>
  107. <p>По умолчанию iperf прослушивает порт <strong>5001/tcp</strong> на всех доступных сетевых соединениях.</p>
  108. <p>Теперь временно разрешим входящие соединения на данный порт посредством <a class="reference internal" href="security.html#firewalld-about"><span class="std std-ref">Firewalld</span></a> (правило будет действовать до перезагрузки):</p>
  109. <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>sudo firewall-cmd --add-port=5001/tcp
  110. </pre></div>
  111. </div>
  112. <p>На втором устройстве запустим клиент и подключимся к серверу:</p>
  113. <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>iperf3 -c 192.168.1.2
  114. </pre></div>
  115. </div>
  116. <p>В качестве клиента может выступать и мобильное устройство на базе ОС Android с установленным <a class="reference external" href="https://play.google.com/store/apps/details?id=net.he.networktools">Network Tools</a>. В этом случае в главном меню программы следует выбрать пункт <strong>Iperf3</strong>, а в окне подключения ввести:</p>
  117. <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>-c 192.168.1.2
  118. </pre></div>
  119. </div>
  120. <p>Параметр <strong>-c</strong> обязателен. Если он не указан, программа выдаст ошибку.</p>
  121. <p><strong>192.168.1.2</strong> – это внутренний IP-адрес устройства в ЛВС, на котором запущен сервер. Номер порта указывать не требуется.</p>
  122. </section>
  123. <section id="rsync-remote">
  124. <span id="index-11"></span><span id="id5"></span><h2>Как передать содержимое каталога на удалённый сервер?<a class="headerlink" href="#rsync-remote" title="Permalink to this heading">¶</a></h2>
  125. <p>Передача содержимого локального каталога на удалённый сервер посредством rsync:</p>
  126. <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>rsync -chavzP --delete --stats /path/to/local user@example.org:/path/to/remote
  127. </pre></div>
  128. </div>
  129. <p>Здесь <strong>user&#64;example.org</strong> – данные для подключения к серверу, т.е. имя пользователя на удалённом сервере и хост.</p>
  130. </section>
  131. <section id="rsync-local">
  132. <span id="index-12"></span><span id="id6"></span><h2>Как получить содержимое каталога с удалённого сервера?<a class="headerlink" href="#rsync-local" title="Permalink to this heading">¶</a></h2>
  133. <p>Получение содержимого каталога с удалённого сервера посредством rsync:</p>
  134. <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>rsync -chavzP --delete --stats user@example.org:/path/to/remote /path/to/local
  135. </pre></div>
  136. </div>
  137. <p>Здесь <strong>user&#64;example.org</strong> – данные для подключения к серверу, т.е. имя пользователя на удалённом сервере и хост.</p>
  138. </section>
  139. <section id="dns-fedora">
  140. <span id="change-dns"></span><span id="index-13"></span><h2>Как правильно указать DNS серверы в Fedora?<a class="headerlink" href="#dns-fedora" title="Permalink to this heading">¶</a></h2>
  141. <p>Для того, чтобы указать другие DNS серверы, необходимо использовать Network Manager (графический или консольный): <strong>свойства соединения</strong> -&gt; страница <strong>IPv4</strong> -&gt; <strong>другие DNS серверы</strong>.</p>
  142. </section>
  143. <section id="etc-resolv-conf-fedora">
  144. <span id="dns-resolv"></span><span id="index-14"></span><h2>Можно ли править файл /etc/resolv.conf в Fedora?<a class="headerlink" href="#etc-resolv-conf-fedora" title="Permalink to this heading">¶</a></h2>
  145. <p>Нет, т.к. этот файл целиком управляется Network Manager и перезаписывается при каждом изменении статуса подключения (активация-деактивация соединений, перезапуск сервиса и т.д.).</p>
  146. <p>Если необходимо указать другие DNS серверы, это следует производить через <a class="reference internal" href="#change-dns"><span class="std std-ref">свойства</span></a> соответствующего соединения.</p>
  147. </section>
  148. <section id="firewalld-icmp">
  149. <span id="disable-icmp"></span><span id="index-15"></span><h2>Как можно средствами Firewalld запретить ICMP?<a class="headerlink" href="#firewalld-icmp" title="Permalink to this heading">¶</a></h2>
  150. <p>По умолчанию ICMP трафик разрешён для большей части зон, поэтому запретить его можно вручную:</p>
  151. <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>sudo firewall-cmd --zone=public --add-icmp-block={echo-request,echo-reply,timestamp-reply,timestamp-request} --permanent
  152. </pre></div>
  153. </div>
  154. <p>Применим новые правила:</p>
  155. <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>sudo firewall-cmd --reload
  156. </pre></div>
  157. </div>
  158. <p>В данном примере для зоны <strong>public</strong> блокируются как входящие, так и исходящие ICMP ECHO и ICMP TIMESTAMP.</p>
  159. </section>
  160. <section id="firewalld-openvpn-ip">
  161. <span id="openvpn-allowed-ips"></span><span id="index-16"></span><h2>Как средствами Firewalld разрешить подключение к OpenVPN серверу только с разрешённых IP адресов?<a class="headerlink" href="#firewalld-openvpn-ip" title="Permalink to this heading">¶</a></h2>
  162. <p>Сначала отключим правило по умолчанию для <a class="reference internal" href="#using-openvpn"><span class="std std-ref">OpenVPN</span></a>, разрешающее доступ к серверу с любых IP адресов:</p>
  163. <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>sudo firewall-cmd --zone=public --remove-service openvpn --permanent
  164. </pre></div>
  165. </div>
  166. <p>Теперь создадим rich rule, разрешающее доступ с указанных IP-адресов (или подсетей):</p>
  167. <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>sudo firewall-cmd --zone=public --add-rich-rule=&#39;rule family=ipv4 source address=&quot;1.2.3.4&quot; service name=&quot;openvpn&quot; accept&#39; --permanent
  168. sudo firewall-cmd --zone=public --add-rich-rule=&#39;rule family=ipv4 source address=&quot;5.6.7.0/24&quot; service name=&quot;openvpn&quot; accept&#39; --permanent
  169. </pre></div>
  170. </div>
  171. <p>Применим новые правила:</p>
  172. <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>sudo firewall-cmd --reload
  173. </pre></div>
  174. </div>
  175. <p>Здесь <strong>public</strong> – имя зоны для публичного интерфейса, <strong>1.2.3.4</strong> – IP-адрес, а <strong>5.6.7.0/24</strong> – подсеть, доступ для адресов из которой следует разрешить.</p>
  176. </section>
  177. <section id="firewalld-wireguard-ip">
  178. <span id="wireguard-allowed-ips"></span><span id="index-17"></span><h2>Как средствами Firewalld разрешить подключение к WireGuard серверу только с разрешённых IP адресов?<a class="headerlink" href="#firewalld-wireguard-ip" title="Permalink to this heading">¶</a></h2>
  179. <p>Сначала отключим правило по умолчанию для <a class="reference internal" href="#using-wireguard"><span class="std std-ref">WireGuard</span></a>, разрешающее доступ к серверу с любых IP адресов:</p>
  180. <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>sudo firewall-cmd --zone=public --remove-port=27015/udp --permanent
  181. </pre></div>
  182. </div>
  183. <p>Теперь создадим rich rule, разрешающее доступ с указанных IP-адресов (или подсетей):</p>
  184. <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>sudo firewall-cmd --zone=public --add-rich-rule=&#39;rule family=ipv4 source address=&quot;1.2.3.4&quot; port port=27015 protocol=udp accept&#39; --permanent
  185. sudo firewall-cmd --zone=public --add-rich-rule=&#39;rule family=ipv4 source address=&quot;5.6.7.0/24&quot; port port=27015 protocol=udp accept&#39; --permanent
  186. </pre></div>
  187. </div>
  188. <p>Применим новые правила:</p>
  189. <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>sudo firewall-cmd --reload
  190. </pre></div>
  191. </div>
  192. <p>Здесь <strong>27015</strong> – порт сервера WireGuard, <strong>public</strong> – имя зоны для публичного интерфейса, <strong>1.2.3.4</strong> – IP-адрес, а <strong>5.6.7.0/24</strong> – подсеть, доступ для адресов из которой следует разрешить.</p>
  193. </section>
  194. <section id="ip-nat">
  195. <span id="get-external-ip"></span><span id="index-18"></span><h2>Как узнать внешний IP адрес за NAT провайдера?<a class="headerlink" href="#ip-nat" title="Permalink to this heading">¶</a></h2>
  196. <p>Для этой цели можно использовать внешний сервис, возвращающий только внешний IP и утилиту <strong>curl</strong>:</p>
  197. <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>curl https://ifconfig.me
  198. </pre></div>
  199. </div>
  200. </section>
  201. <section id="firewalld-ip-cloudflare">
  202. <span id="firewalld-cloudflare"></span><span id="index-19"></span><h2>Как средствами Firewalld разрешить подключение к веб-серверу только с IP адресов CloudFlare?<a class="headerlink" href="#firewalld-ip-cloudflare" title="Permalink to this heading">¶</a></h2>
  203. <p>При использовании CloudFlare в качестве системы защиты от DDoS атак, а также WAF, возникает необходимость разрешать входящие подключения исключительно с IP адресов данного сервиса.</p>
  204. <p>Сначала отключим правило по умолчанию для веб-сервера, разрешающее доступ с любых IP адресов:</p>
  205. <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>sudo firewall-cmd --zone=public --remove-service http --permanent
  206. sudo firewall-cmd --zone=public --remove-service https --permanent
  207. </pre></div>
  208. </div>
  209. <p>Напишем небольшой скрипт <code class="docutils literal notranslate"><span class="pre">foo-bar.sh</span></code>, который получит актуальные пулы IP-адресов и создаст rich rule, разрешающие доступ лишь с подсетей CloudFlare (<a class="reference external" href="https://www.cloudflare.com/ips-v4">IPv4</a>, <a class="reference external" href="https://www.cloudflare.com/ips-v6">IPv6</a>):</p>
  210. <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="ch">#!/bin/bash</span>
  211. <span class="nb">set</span><span class="w"> </span>-ef
  212. <span class="nv">API</span><span class="o">=</span>https://www.cloudflare.com/ips-v
  213. <span class="nv">ZONE</span><span class="o">=</span>public
  214. <span class="k">function</span><span class="w"> </span>fw_add<span class="w"> </span><span class="o">{</span>
  215. <span class="w"> </span><span class="nb">local</span><span class="w"> </span><span class="nv">IFS</span><span class="o">=</span><span class="s1">$&#39;\n&#39;</span>
  216. <span class="w"> </span><span class="nb">local</span><span class="w"> </span><span class="nv">lines</span><span class="o">=(</span><span class="k">$(</span>curl<span class="w"> </span>-sS<span class="w"> </span><span class="nv">$API$1</span><span class="k">)</span><span class="o">)</span>
  217. <span class="w"> </span><span class="k">for</span><span class="w"> </span>i<span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="s2">&quot;</span><span class="si">${</span><span class="nv">lines</span><span class="p">[@]</span><span class="si">}</span><span class="s2">&quot;</span>
  218. <span class="w"> </span><span class="k">do</span>
  219. <span class="w"> </span>firewall-cmd<span class="w"> </span>--zone<span class="o">=</span><span class="nv">$ZONE</span><span class="w"> </span>--add-rich-rule<span class="o">=</span><span class="s2">&quot;rule family=ipv</span><span class="nv">$1</span><span class="s2"> source address=\&quot;</span><span class="nv">$i</span><span class="s2">\&quot; service name=\&quot;http\&quot; accept&quot;</span><span class="w"> </span>--permanent
  220. <span class="w"> </span>firewall-cmd<span class="w"> </span>--zone<span class="o">=</span><span class="nv">$ZONE</span><span class="w"> </span>--add-rich-rule<span class="o">=</span><span class="s2">&quot;rule family=ipv</span><span class="nv">$1</span><span class="s2"> source address=\&quot;</span><span class="nv">$i</span><span class="s2">\&quot; service name=\&quot;https\&quot; accept&quot;</span><span class="w"> </span>--permanent
  221. <span class="w"> </span><span class="k">done</span>
  222. <span class="o">}</span>
  223. fw_add<span class="w"> </span><span class="m">4</span>
  224. fw_add<span class="w"> </span><span class="m">6</span>
  225. </pre></div>
  226. </div>
  227. <p>Запустим наш скрипт:</p>
  228. <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>sudo ./foo-bar.sh
  229. </pre></div>
  230. </div>
  231. <p>Применим новые правила файрвола:</p>
  232. <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>sudo firewall-cmd --reload
  233. </pre></div>
  234. </div>
  235. <p>Здесь <strong>public</strong> – имя зоны для публичного сетевого интерфейса.</p>
  236. </section>
  237. <section id="ip-cloudflare">
  238. <span id="cloudflare-forwarding"></span><span id="index-20"></span><h2>Как пробросить IP адреса клиентов за CloudFlare?<a class="headerlink" href="#ip-cloudflare" title="Permalink to this heading">¶</a></h2>
  239. <p>См. <a class="reference external" href="https://www.easycoding.org/2013/08/12/nastraivaem-probros-ip-klientov-za-cloudflare.html">здесь</a>.</p>
  240. </section>
  241. <section id="using-mtr">
  242. <span id="index-21"></span><span id="id7"></span><h2>Как проверить наличие или отсутствие потерь пакетов до узла?<a class="headerlink" href="#using-mtr" title="Permalink to this heading">¶</a></h2>
  243. <p>Для проверки работоспособности сети и наличия, либо отсутствия потерь пакетов между узлами маршрута, широко используется утилита <strong>mtr</strong>:</p>
  244. <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>sudo dnf install mtr
  245. </pre></div>
  246. </div>
  247. <p>Запустим проверку маршрута до узла <strong>example.org</strong>:</p>
  248. <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>mtr example.org
  249. </pre></div>
  250. </div>
  251. <p>Приостановить работу можно нажатием клавиши <strong>P</strong>, для возобновить – <strong>пробел</strong>, а для выхода – <strong>Q</strong>.</p>
  252. </section>
  253. <section id="ss-established">
  254. <span id="index-22"></span><span id="id8"></span><h2>Как получить список установленных сетевых соединений?<a class="headerlink" href="#ss-established" title="Permalink to this heading">¶</a></h2>
  255. <p>Воспользуемся утилитой <strong>ss</strong> для вывода списка установленных сетевых соединений:</p>
  256. <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>ss -tupn
  257. </pre></div>
  258. </div>
  259. </section>
  260. <section id="ss-listening">
  261. <span id="index-23"></span><span id="id9"></span><h2>Как получить список открытых портов?<a class="headerlink" href="#ss-listening" title="Permalink to this heading">¶</a></h2>
  262. <p>Воспользуемся утилитой <strong>ss</strong> для вывода открытых портов, ожидающих входящих соединений:</p>
  263. <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>ss -tulpn
  264. </pre></div>
  265. </div>
  266. <p>Статус <strong>LISTEN</strong> означает, что TCP-порт открыт и ожидает входящих соединений. В то же время для UDP-портов будет отображаться статус <strong>UNCONN</strong>, т.к. этот протокол не подразумевает предварительное открытие подключений.</p>
  267. </section>
  268. <section id="transient-hostname">
  269. <span id="index-24"></span><span id="id10"></span><h2>Почему при подключении к сети имя хоста машины изменяется?<a class="headerlink" href="#transient-hostname" title="Permalink to this heading">¶</a></h2>
  270. <p>DHCP сервер провайдера способен выдавать помимо IP-адресов и DNS-серверов ещё и нестандартное имя хоста. Полученное таким способом значение называется <em>transient hostname</em>. Оно будет применимо с компьютеру с момента установки соединения и до отключения от соответствующей сети.</p>
  271. <p>Если на компьютере имеется несколько сетевых подключений, каждое из которых предоставляет свой hostname, основным будет считаться то, чьё соединение было установлено последним.</p>
  272. </section>
  273. <section id="transient-disable">
  274. <span id="index-25"></span><span id="id11"></span><h2>Как запретить использование полученного от провайдера имени хоста?<a class="headerlink" href="#transient-disable" title="Permalink to this heading">¶</a></h2>
  275. <p>Для того, чтобы запретить использование полученного от DHCP сервера <a class="reference internal" href="#transient-hostname"><span class="std std-ref">transient hostname</span></a>, установим <a class="reference internal" href="administration.html#change-hostname"><span class="std std-ref">статическое имя хоста</span></a>.</p>
  276. </section>
  277. <section id="network-manager-systemd-resolved">
  278. <span id="resolved-nm"></span><span id="index-26"></span><h2>Как переключить Network Manager на использование systemd-resolved?<a class="headerlink" href="#network-manager-systemd-resolved" title="Permalink to this heading">¶</a></h2>
  279. <p>Начиная с Fedora 30, в комплект базовой системы входит systemd-resolved, который занимается преобразованием имён DNS в IP-адреса, имеет встроенный DNS-кэш и активирован по умолчанию.</p>
  280. <p>В то же время, Network Manager с настройками по умолчанию использует собственный виртуальный файл конфигурации <a class="reference internal" href="#dns-resolv"><span class="std std-ref">resolv.conf</span></a>, игнорирующий присутствие systemd-resolved.</p>
  281. <p>Для исправления этой ситуации, убедимся, что systemd-neworkd запущен и функционирует:</p>
  282. <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>sudo systemctl enable --now systemd-resolved.service
  283. </pre></div>
  284. </div>
  285. <p>Создадим в каталоге <code class="docutils literal notranslate"><span class="pre">/etc/NetworkManager/conf.d</span></code> файл <code class="docutils literal notranslate"><span class="pre">99-resolved.conf</span></code> следующего содержания:</p>
  286. <div class="highlight-ini notranslate"><div class="highlight"><pre><span></span><span class="k">[main]</span>
  287. <span class="na">dns</span><span class="o">=</span><span class="s">systemd-resolved</span>
  288. </pre></div>
  289. </div>
  290. <p>Убедимся, что файл <code class="docutils literal notranslate"><span class="pre">/etc/resolv.conf</span></code> является символической ссылкой на <code class="docutils literal notranslate"><span class="pre">/run/NetworkManager/resolv.conf</span></code>:</p>
  291. <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>file /etc/resolv.conf
  292. </pre></div>
  293. </div>
  294. <p>Если по какой-то причине это не так, то внесём соответствующие правки:</p>
  295. <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>sudo rm -f /etc/resolv.conf
  296. sudo ln -sf /run/NetworkManager/resolv.conf /etc/resolv.conf
  297. </pre></div>
  298. </div>
  299. <p>Перезапустим затронутые сервисы:</p>
  300. <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>sudo systemctl restart NetworkManager.service
  301. sudo systemctl restart systemd-resolved.service
  302. </pre></div>
  303. </div>
  304. <p>Проверим, что в качестве основного сервера DNS применяется виртуальная заглушка:</p>
  305. <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>cat /etc/resolv.conf
  306. </pre></div>
  307. </div>
  308. <p>Если в выводе присутствует строка <code class="docutils literal notranslate"><span class="pre">nameserver</span> <span class="pre">127.0.0.53</span></code>, значит всё настроено верно.</p>
  309. </section>
  310. <section id="systemd-resolved">
  311. <span id="resolved-status"></span><span id="index-27"></span><h2>Как проверить статус работы systemd-resolved?<a class="headerlink" href="#systemd-resolved" title="Permalink to this heading">¶</a></h2>
  312. <p>Выведем статус systemd-resolved, включающий список используемых DNS серверов и общие параметры конфигурации:</p>
  313. <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>resolvectl status
  314. </pre></div>
  315. </div>
  316. <p>Выведем статистические данные об использовании systemd-resolved (состояние кэша, количество запросов и т.д.):</p>
  317. <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>resolvectl statistics
  318. </pre></div>
  319. </div>
  320. </section>
  321. <section id="resolved-default">
  322. <span id="index-28"></span><span id="id12"></span><h2>Как сделать systemd-resolved основным резолвером?<a class="headerlink" href="#resolved-default" title="Permalink to this heading">¶</a></h2>
  323. <p><strong>Важно:</strong> Начиная с Fedora 33, systemd-resolved уже используется в качестве основного системного DNS-резолвера.</p>
  324. <p>Удалим существующую символическую ссылку, указывающую на Network Manager:</p>
  325. <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>sudo rm -f /etc/resolv.conf
  326. </pre></div>
  327. </div>
  328. <p>Установим systemd-resolved основным резолвером:</p>
  329. <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
  330. </pre></div>
  331. </div>
  332. <p>Изменения вступят в силу немедленно.</p>
  333. </section>
  334. <section id="resolved-disable">
  335. <span id="index-29"></span><span id="id13"></span><h2>Как отключить systemd-resolved и вернуться к прежней реализации?<a class="headerlink" href="#resolved-disable" title="Permalink to this heading">¶</a></h2>
  336. <p>Удалим существующую символическую ссылку, указывающую на <a class="reference internal" href="#resolved-default"><span class="std std-ref">systemd-resolved</span></a>:</p>
  337. <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>sudo rm -f /etc/resolv.conf
  338. </pre></div>
  339. </div>
  340. <p>Установим Network Manager основным <a class="reference internal" href="#dns-resolv"><span class="std std-ref">генератором</span></a> файла <code class="docutils literal notranslate"><span class="pre">/etc/resolv.conf</span></code>:</p>
  341. <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>sudo ln -sf /run/NetworkManager/resolv.conf /etc/resolv.conf
  342. </pre></div>
  343. </div>
  344. <p>Остановим и заблокируем сервис:</p>
  345. <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>sudo systemctl disable --now systemd-resolved.service
  346. sudo systemctl mask systemd-resolved.service
  347. </pre></div>
  348. </div>
  349. <p>Изменения вступят в силу немедленно.</p>
  350. </section>
  351. <section id="dns-tls">
  352. <span id="dns-crypt"></span><span id="index-30"></span><h2>Можно ли зашифровать DNS при помощи TLS?<a class="headerlink" href="#dns-tls" title="Permalink to this heading">¶</a></h2>
  353. <p>Да, systemd-resolved, входящий в поставку системы начиная с Fedora 30, полностью поддерживает технологию <a class="reference external" href="https://ru.wikipedia.org/wiki/DNS_%D0%BF%D0%BE%D0%B2%D0%B5%D1%80%D1%85_TLS">DNS-over-TLS</a>, позволяющую зашифровать весь DNS трафик устройства.</p>
  354. <p>Настроим систему на использование systemd-resolved либо <a class="reference internal" href="#resolved-nm"><span class="std std-ref">совместно с Network Manager</span></a>, либо в <a class="reference internal" href="#resolved-default"><span class="std std-ref">монопольном режиме</span></a>, затем откроем файл конфигурации <code class="docutils literal notranslate"><span class="pre">/etc/systemd/resolved.conf</span></code>:</p>
  355. <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>sudoedit /etc/systemd/resolved.conf
  356. </pre></div>
  357. </div>
  358. <p>Внесём следующие правки:</p>
  359. <div class="highlight-ini notranslate"><div class="highlight"><pre><span></span><span class="k">[Resolve]</span>
  360. <span class="na">DNS</span><span class="o">=</span><span class="s">1.1.1.1 1.0.0.1 2606:4700:4700::1111 2606:4700:4700::1001</span>
  361. <span class="na">FallbackDNS</span><span class="o">=</span><span class="s">8.8.8.8 8.8.4.4 2001:4860:4860::8888 2001:4860:4860::8844</span>
  362. <span class="c1">#Domains=</span>
  363. <span class="c1">#LLMNR=yes</span>
  364. <span class="na">MulticastDNS</span><span class="o">=</span><span class="s">yes</span>
  365. <span class="na">DNSSEC</span><span class="o">=</span><span class="s">allow-downgrade</span>
  366. <span class="na">DNSOverTLS</span><span class="o">=</span><span class="s">opportunistic</span>
  367. <span class="na">Cache</span><span class="o">=</span><span class="s">yes</span>
  368. <span class="na">DNSStubListener</span><span class="o">=</span><span class="s">yes</span>
  369. <span class="na">ReadEtcHosts</span><span class="o">=</span><span class="s">yes</span>
  370. </pre></div>
  371. </div>
  372. <p>Здесь используются серверы <a class="reference external" href="https://cloudflare-dns.com/dns/">CloudFlare</a> с поддержкой DNS-over-TLS.</p>
  373. <p>Сохраним изменения в файле и перезапустим systemd-resolved:</p>
  374. <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>sudo systemctl restart systemd-resolved.service
  375. </pre></div>
  376. </div>
  377. <p>Теперь в <a class="reference internal" href="#resolved-status"><span class="std std-ref">информации об используемых DNS</span></a> должна отображаться информация об использовании этой технологии.</p>
  378. </section>
  379. <section id="resolved-flush">
  380. <span id="index-31"></span><span id="id14"></span><h2>Как очистить кэши systemd-resolved?<a class="headerlink" href="#resolved-flush" title="Permalink to this heading">¶</a></h2>
  381. <p>Очистим кэш systemd-resolved:</p>
  382. <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>resolvectl flush-caches
  383. </pre></div>
  384. </div>
  385. </section>
  386. <section id="firewalld">
  387. <span id="firewalld-services"></span><span id="index-32"></span><h2>Где расположены файлы конфигурации доступных сервисов Firewalld?<a class="headerlink" href="#firewalld" title="Permalink to this heading">¶</a></h2>
  388. <p>Предустановленные файлы конфигурации служб Firewalld находятся в каталоге <code class="docutils literal notranslate"><span class="pre">/usr/lib/firewalld/services</span></code>.</p>
  389. <p>Настоятельно не рекомендуется что-либо изменять в нём ибо при следующем обновлении пакета все изменения будут потеряны. Вместо этого следует создать <a class="reference internal" href="#firewalld-override"><span class="std std-ref">пользовательское переопределение</span></a>.</p>
  390. </section>
  391. <section id="firewalld-override">
  392. <span id="index-33"></span><span id="id15"></span><h2>Как переопределить предустановленный сервис в Firewalld?<a class="headerlink" href="#firewalld-override" title="Permalink to this heading">¶</a></h2>
  393. <p>Пользовательские переопределения должны храниться в каталоге <code class="docutils literal notranslate"><span class="pre">/etc/firewalld/services</span></code>.</p>
  394. <p>В качестве примера создадим оверрайд для сервиса SSH на базе настроек по умолчанию:</p>
  395. <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>sudo cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/ssh.xml
  396. </pre></div>
  397. </div>
  398. <p>Откроем скопированный файл в текстовом редакторе:</p>
  399. <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>sudoedit /etc/firewalld/services/ssh.xml
  400. </pre></div>
  401. </div>
  402. <p>Внесём правки, добавив возможность использования порта <strong>2222/tcp</strong>:</p>
  403. <div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="cp">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;</span>
  404. <span class="nt">&lt;service&gt;</span>
  405. <span class="w"> </span><span class="nt">&lt;short&gt;</span>SSH<span class="nt">&lt;/short&gt;</span>
  406. <span class="w"> </span><span class="nt">&lt;description&gt;</span>Secure<span class="w"> </span>Shell<span class="w"> </span>(SSH)<span class="w"> </span>is<span class="w"> </span>a<span class="w"> </span>protocol.<span class="nt">&lt;/description&gt;</span>
  407. <span class="w"> </span><span class="nt">&lt;port</span><span class="w"> </span><span class="na">protocol=</span><span class="s">&quot;tcp&quot;</span><span class="w"> </span><span class="na">port=</span><span class="s">&quot;22&quot;</span><span class="nt">/&gt;</span>
  408. <span class="w"> </span><span class="nt">&lt;port</span><span class="w"> </span><span class="na">protocol=</span><span class="s">&quot;tcp&quot;</span><span class="w"> </span><span class="na">port=</span><span class="s">&quot;2222&quot;</span><span class="nt">/&gt;</span>
  409. <span class="nt">&lt;/service&gt;</span>
  410. </pre></div>
  411. </div>
  412. <p>Перезагрузим настройки Firewalld для вступления изменений в силу:</p>
  413. <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>sudo firewall-cmd --reload
  414. </pre></div>
  415. </div>
  416. </section>
  417. <section id="ovpn">
  418. <span id="ovpn-import"></span><span id="index-34"></span><h2>Как правильно импортировать подключение из OVPN файла?<a class="headerlink" href="#ovpn" title="Permalink to this heading">¶</a></h2>
  419. <p>Воспользуемся консольной утилитой <strong>nmcli</strong> для быстрого импортирования подключения из OVPN файла:</p>
  420. <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>nmcli connection import file /path/to/foo-bar.ovpn type openvpn
  421. </pre></div>
  422. </div>
  423. <p>Здесь <strong>/path/to/foo-bar.ovpn</strong> – путь к OVPN файлу на диске.</p>
  424. <p>Встроенные сертификаты и ключи будут автоматически импортированы и сохранены в каталоге <code class="docutils literal notranslate"><span class="pre">~/.cert/nm-openvpn</span></code>, что не вызовет <a class="reference internal" href="security.html#openvpn-selinux"><span class="std std-ref">проблем с SELinux</span></a>.</p>
  425. </section>
  426. <section id="check-port">
  427. <span id="index-35"></span><span id="id16"></span><h2>Как проверить открыт ли порт на удалённом сервере?<a class="headerlink" href="#check-port" title="Permalink to this heading">¶</a></h2>
  428. <p>Воспользуемся утилитой <strong>nc</strong> для непосредственного осуществления проверки без полного сканирования портов.</p>
  429. <p>Проверим доступность сервиса на IP <strong>1.2.3.4</strong> с номером порта <strong>443/tcp</strong>:</p>
  430. <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>nc -z -v 1.2.3.4 443
  431. </pre></div>
  432. </div>
  433. <p>Проверим доступность сервиса на IP <strong>1.2.3.4</strong> с номером порта <strong>27015/udp</strong>:</p>
  434. <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>nc -z -v -u 1.2.3.4 27015
  435. </pre></div>
  436. </div>
  437. </section>
  438. <section id="wireguard-lan">
  439. <span id="index-36"></span><span id="id17"></span><h2>Как открыть доступ к локальной сети через WireGuard?<a class="headerlink" href="#wireguard-lan" title="Permalink to this heading">¶</a></h2>
  440. <p>Для того, чтобы через VPN была также доступна локальная сеть, внесём ряд изменений в файлы конфигурации сервера и клиента <a class="reference internal" href="#using-wireguard"><span class="std std-ref">WireGuard</span></a>.</p>
  441. <p>Отредактируем файл <code class="docutils literal notranslate"><span class="pre">/etc/wireguard/wg0.conf</span></code> сервера:</p>
  442. <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>sudoedit /etc/wireguard/wg0.conf
  443. </pre></div>
  444. </div>
  445. <p>В директиве <code class="docutils literal notranslate"><span class="pre">AllowedIPs</span></code> через запятую добавим адрес локальной подсети клиента, например <strong>192.168.1.0/24</strong>:</p>
  446. <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>[Peer]
  447. PublicKey = CLIENT_PUBLIC_KEY
  448. AllowedIPs = 10.9.0.2/32, 192.168.1.0/24
  449. </pre></div>
  450. </div>
  451. <p>Перезапустим сервис WireGuard на сервере:</p>
  452. <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>sudo systemctl restart wg-quick@wg0.service
  453. </pre></div>
  454. </div>
  455. <p>На клиенте, к локальной сети которого требуется получить доступ, разрешим перенаправление трафика и включим маскарадинг в <a class="reference internal" href="security.html#firewalld-about"><span class="std std-ref">Firewalld</span></a>:</p>
  456. <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>sudo sysctl -w net.ipv4.conf.all.forwarding=1
  457. sudo sysctl -w net.ipv6.conf.all.forwarding=1
  458. sudo firewall-cmd --zone=public --add-masquerade
  459. sudo firewall-cmd --zone public --add-forward
  460. </pre></div>
  461. </div>
  462. <p>Отредактируем файл конфигурации данного клиента, дописав в <code class="docutils literal notranslate"><span class="pre">AllowedIPs</span></code> подсеть через запятую (однако если там уже указано <strong>0.0.0.0/0</strong>, то ничего более делать не требуется).</p>
  463. <p>Проверим доступность компьютеров из локальной сети со стороны других клиентов WireGuard:</p>
  464. <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>ping 192.168.1.2
  465. </pre></div>
  466. </div>
  467. <p>Здесь вместо <strong>192.168.1.2</strong> укажем реально существующий адрес в локальной сети.</p>
  468. <p>Если всё работает корректно, сделаем изменения на клиенте с LAN постоянными:</p>
  469. <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>sudo bash -c &quot;echo -e \&quot;net.ipv4.conf.all.forwarding=1\nnet.ipv6.conf.all.forwarding=1\&quot; &gt; /etc/sysctl.d/99-wireguard.conf&quot;
  470. sudo firewall-cmd --zone=public --add-masquerade --permanent
  471. sudo firewall-cmd --permanent --zone public --add-forward
  472. </pre></div>
  473. </div>
  474. <p>Перезагрузим настройки Firewalld:</p>
  475. <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>sudo firewall-cmd --reload
  476. </pre></div>
  477. </div>
  478. </section>
  479. <section id="chroot-dns">
  480. <span id="index-37"></span><span id="id18"></span><h2>В chroot окружении не работает DNS. Как исправить?<a class="headerlink" href="#chroot-dns" title="Permalink to this heading">¶</a></h2>
  481. <p>Из-за использования <a class="reference internal" href="#resolved-default"><span class="std std-ref">systemd-resolved</span></a> в <a class="reference internal" href="administration.html#chroot"><span class="std std-ref">chroot-окружениях</span></a> Fedora не работает преобразование имён DNS, т.е. фактически отсутствует доступ к Интернету.</p>
  482. <p>Для решения этой проблемы настроим классическую временную конфигурацию:</p>
  483. <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>mv /etc/resolv.conf /etc/resolv.conf.orig
  484. echo &quot;nameserver 8.8.8.8&quot; &gt; /etc/resolv.conf
  485. chown root:root /etc/resolv.conf
  486. chmod 0644 /etc/resolv.conf
  487. </pre></div>
  488. </div>
  489. <p>С этого момента DNS начнёт работать корректно.</p>
  490. <p>По окончании работы обязательно восстановим предыдущие настройки:</p>
  491. <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>rm -f /etc/resolv.conf
  492. mv /etc/resolv.conf.orig /etc/resolv.conf
  493. </pre></div>
  494. </div>
  495. </section>
  496. <section id="dns">
  497. <span id="dns-server"></span><span id="index-38"></span><h2>Как установить и запустить собственный DNS-сервер?<a class="headerlink" href="#dns" title="Permalink to this heading">¶</a></h2>
  498. <p>См. <a class="reference external" href="https://www.easycoding.org/2021/05/03/podnimaem-dns-server-dnsmasq.html">здесь</a>.</p>
  499. </section>
  500. <section id="fedoraproject-org-5">
  501. <span id="nm-connectivity-check"></span><span id="index-39"></span><h2>Почему система обращается к fedoraproject.org каждые 5 минут?<a class="headerlink" href="#fedoraproject-org-5" title="Permalink to this heading">¶</a></h2>
  502. <p>С настройками по умолчанию, предустановленными пакетом <strong>NetworkManager-config-connectivity-fedora</strong>, NetworkManager проверяет доступность Интернета по таймеру каждые 5 минут посредством обращения к файлу <strong>hotspot.txt</strong> по протоколу HTTP и анализируя ответ сервера.</p>
  503. <p>Подключение считается полнофункциональным после получения строки <strong>OK</strong>. При любом другом ответе – ограниченным.</p>
  504. <p>С целью сохранения приватности возможно <a class="reference internal" href="#nm-connectivity-disable"><span class="std std-ref">отключить это поведение</span></a>.</p>
  505. </section>
  506. <section id="nm-connectivity-disable">
  507. <span id="index-40"></span><span id="id19"></span><h2>Как отключить автоматические запросы с целью проверки соединения?<a class="headerlink" href="#nm-connectivity-disable" title="Permalink to this heading">¶</a></h2>
  508. <p>Для отключения <a class="reference internal" href="#nm-connectivity-check"><span class="std std-ref">автоматических запросов</span></a> к домену <strong>fedoraproject.org</strong>, удалим пакет <strong>NetworkManager-config-connectivity-fedora</strong>:</p>
  509. <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>sudo dnf remove NetworkManager-config-connectivity-fedora
  510. </pre></div>
  511. </div>
  512. <p>Перезапустим NetworkManager:</p>
  513. <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>sudo systemctl restart NetworkManager.service
  514. </pre></div>
  515. </div>
  516. </section>
  517. </section>
  518. </div>
  519. </div>
  520. </div>
  521. <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
  522. <div class="sphinxsidebarwrapper">
  523. <div id="searchbox" style="display: none" role="search">
  524. <h3 id="searchlabel">Быстрый поиск</h3>
  525. <div class="searchformwrapper">
  526. <form class="search" action="search.html" method="get">
  527. <input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
  528. <input type="submit" value="Искать" />
  529. </form>
  530. </div>
  531. </div>
  532. <script>document.getElementById('searchbox').style.display = "block"</script><h3>Навигация</h3>
  533. <ul class="current">
  534. <li class="toctree-l1"><a class="reference internal" href="generic-info.html">Основная информация</a></li>
  535. <li class="toctree-l1"><a class="reference internal" href="installation.html">Установка системы</a></li>
  536. <li class="toctree-l1"><a class="reference internal" href="package-manager.html">Пакетный менеджер и установка пакетов</a></li>
  537. <li class="toctree-l1"><a class="reference internal" href="administration.html">Системное администрирование</a></li>
  538. <li class="toctree-l1 current"><a class="current reference internal" href="#">Сетевое администрирование</a><ul>
  539. <li class="toctree-l2"><a class="reference internal" href="#vpn">Хочу обезопасить свой Интернет-трафик. Какую реализацию VPN выбрать?</a></li>
  540. <li class="toctree-l2"><a class="reference internal" href="#ssh">При использовании SSH появляется ошибка доступа к ключам. Как исправить?</a></li>
  541. <li class="toctree-l2"><a class="reference internal" href="#vpn-pptp">При установке VPN-соединения по протоколу PPTP появляется ошибка. Как исправить?</a></li>
  542. <li class="toctree-l2"><a class="reference internal" href="#firewalld-port-forwarding">Как пробросить локальный порт на удалённый хост?</a></li>
  543. <li class="toctree-l2"><a class="reference internal" href="#openvpn-fedora">Как поднять OpenVPN сервер в Fedora?</a></li>
  544. <li class="toctree-l2"><a class="reference internal" href="#wireguard-fedora">Как поднять WireGuard сервер в Fedora?</a></li>
  545. <li class="toctree-l2"><a class="reference internal" href="#matrix-fedora">Как поднять свой сервер Matrix в Fedora?</a></li>
  546. <li class="toctree-l2"><a class="reference internal" href="#fedora">Как запустить простейший веб-сервер в Fedora?</a></li>
  547. <li class="toctree-l2"><a class="reference internal" href="#network-configuration">Как лучше настраивать сетевые подключения?</a></li>
  548. <li class="toctree-l2"><a class="reference internal" href="#dlna">Как поднять DLNA сервер в локальной сети?</a></li>
  549. <li class="toctree-l2"><a class="reference internal" href="#fedora-iperf">Как сделать замеры скорости локальной или беспроводной сети?</a></li>
  550. <li class="toctree-l2"><a class="reference internal" href="#rsync-remote">Как передать содержимое каталога на удалённый сервер?</a></li>
  551. <li class="toctree-l2"><a class="reference internal" href="#rsync-local">Как получить содержимое каталога с удалённого сервера?</a></li>
  552. <li class="toctree-l2"><a class="reference internal" href="#dns-fedora">Как правильно указать DNS серверы в Fedora?</a></li>
  553. <li class="toctree-l2"><a class="reference internal" href="#etc-resolv-conf-fedora">Можно ли править файл /etc/resolv.conf в Fedora?</a></li>
  554. <li class="toctree-l2"><a class="reference internal" href="#firewalld-icmp">Как можно средствами Firewalld запретить ICMP?</a></li>
  555. <li class="toctree-l2"><a class="reference internal" href="#firewalld-openvpn-ip">Как средствами Firewalld разрешить подключение к OpenVPN серверу только с разрешённых IP адресов?</a></li>
  556. <li class="toctree-l2"><a class="reference internal" href="#firewalld-wireguard-ip">Как средствами Firewalld разрешить подключение к WireGuard серверу только с разрешённых IP адресов?</a></li>
  557. <li class="toctree-l2"><a class="reference internal" href="#ip-nat">Как узнать внешний IP адрес за NAT провайдера?</a></li>
  558. <li class="toctree-l2"><a class="reference internal" href="#firewalld-ip-cloudflare">Как средствами Firewalld разрешить подключение к веб-серверу только с IP адресов CloudFlare?</a></li>
  559. <li class="toctree-l2"><a class="reference internal" href="#ip-cloudflare">Как пробросить IP адреса клиентов за CloudFlare?</a></li>
  560. <li class="toctree-l2"><a class="reference internal" href="#using-mtr">Как проверить наличие или отсутствие потерь пакетов до узла?</a></li>
  561. <li class="toctree-l2"><a class="reference internal" href="#ss-established">Как получить список установленных сетевых соединений?</a></li>
  562. <li class="toctree-l2"><a class="reference internal" href="#ss-listening">Как получить список открытых портов?</a></li>
  563. <li class="toctree-l2"><a class="reference internal" href="#transient-hostname">Почему при подключении к сети имя хоста машины изменяется?</a></li>
  564. <li class="toctree-l2"><a class="reference internal" href="#transient-disable">Как запретить использование полученного от провайдера имени хоста?</a></li>
  565. <li class="toctree-l2"><a class="reference internal" href="#network-manager-systemd-resolved">Как переключить Network Manager на использование systemd-resolved?</a></li>
  566. <li class="toctree-l2"><a class="reference internal" href="#systemd-resolved">Как проверить статус работы systemd-resolved?</a></li>
  567. <li class="toctree-l2"><a class="reference internal" href="#resolved-default">Как сделать systemd-resolved основным резолвером?</a></li>
  568. <li class="toctree-l2"><a class="reference internal" href="#resolved-disable">Как отключить systemd-resolved и вернуться к прежней реализации?</a></li>
  569. <li class="toctree-l2"><a class="reference internal" href="#dns-tls">Можно ли зашифровать DNS при помощи TLS?</a></li>
  570. <li class="toctree-l2"><a class="reference internal" href="#resolved-flush">Как очистить кэши systemd-resolved?</a></li>
  571. <li class="toctree-l2"><a class="reference internal" href="#firewalld">Где расположены файлы конфигурации доступных сервисов Firewalld?</a></li>
  572. <li class="toctree-l2"><a class="reference internal" href="#firewalld-override">Как переопределить предустановленный сервис в Firewalld?</a></li>
  573. <li class="toctree-l2"><a class="reference internal" href="#ovpn">Как правильно импортировать подключение из OVPN файла?</a></li>
  574. <li class="toctree-l2"><a class="reference internal" href="#check-port">Как проверить открыт ли порт на удалённом сервере?</a></li>
  575. <li class="toctree-l2"><a class="reference internal" href="#wireguard-lan">Как открыть доступ к локальной сети через WireGuard?</a></li>
  576. <li class="toctree-l2"><a class="reference internal" href="#chroot-dns">В chroot окружении не работает DNS. Как исправить?</a></li>
  577. <li class="toctree-l2"><a class="reference internal" href="#dns">Как установить и запустить собственный DNS-сервер?</a></li>
  578. <li class="toctree-l2"><a class="reference internal" href="#fedoraproject-org-5">Почему система обращается к fedoraproject.org каждые 5 минут?</a></li>
  579. <li class="toctree-l2"><a class="reference internal" href="#nm-connectivity-disable">Как отключить автоматические запросы с целью проверки соединения?</a></li>
  580. </ul>
  581. </li>
  582. <li class="toctree-l1"><a class="reference internal" href="virtualization.html">Виртуализация</a></li>
  583. <li class="toctree-l1"><a class="reference internal" href="security.html">Безопасность</a></li>
  584. <li class="toctree-l1"><a class="reference internal" href="using-system.html">Работа в системе</a></li>
  585. <li class="toctree-l1"><a class="reference internal" href="using-applications.html">Сторонние приложения</a></li>
  586. <li class="toctree-l1"><a class="reference internal" href="hardware.html">Оборудование</a></li>
  587. <li class="toctree-l1"><a class="reference internal" href="development.html">Разработка и сборка пакетов</a></li>
  588. <li class="toctree-l1"><a class="reference internal" href="tips-and-tricks.html">Оптимизация и тонкая настройка</a></li>
  589. <li class="toctree-l1"><a class="reference internal" href="legal-info.html">Правовая информация</a></li>
  590. </ul>
  591. <div class="relations">
  592. <h3>Related Topics</h3>
  593. <ul>
  594. <li><a href="index.html">Documentation overview</a><ul>
  595. <li>Previous: <a href="administration.html" title="предыдущая глава">Системное администрирование</a></li>
  596. <li>Next: <a href="virtualization.html" title="следующая глава">Виртуализация</a></li>
  597. </ul></li>
  598. </ul>
  599. </div>
  600. </div>
  601. </div>
  602. <div class="clearer"></div>
  603. </div>
  604. <div class="footer">
  605. &copy;2018 - 2023, EasyCoding Team and contributors.
  606. </div>
  607. <a href="https://github.com/RussianFedora/FAQ" class="github">
  608. <img style="position: absolute; top: 0; right: 0; border: 0;" src="_static/forkme_right_green.png" alt="Fork me on GitHub" class="github"/>
  609. </a>
  610. </body>
  611. </html>