<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE article
  PUBLIC '-//OASIS//DTD DocBook XML V4.4//EN'
  'http://www.docbook.org/xml/4.4/docbookx.dtd'>
<article><articleinfo><title>FreedomBox/Manual/DynamicDNS</title><revhistory><revision><revnumber>15</revnumber><date>2019-02-26 03:20:16</date><authorinitials>JamesValleroy</authorinitials><revremark>spelling</revremark></revision><revision><revnumber>14</revnumber><date>2018-03-11 03:11:04</date><authorinitials>JosephNuthalapati</authorinitials><revremark>Fix oversized image</revremark></revision><revision><revnumber>13</revnumber><date>2017-03-31 20:35:42</date><authorinitials>Drahtseil</authorinitials><revremark>updated screenshot</revremark></revision><revision><revnumber>12</revnumber><date>2016-09-09 15:40:08</date><authorinitials>SunilMohanAdapa</authorinitials><revremark>Minor indentation fix with screenshot</revremark></revision><revision><revnumber>11</revnumber><date>2016-09-01 19:18:48</date><authorinitials>Drahtseil</authorinitials><revremark>adapted title to Plinth wording</revremark></revision><revision><revnumber>10</revnumber><date>2016-08-15 18:46:51</date><authorinitials>Drahtseil</authorinitials><revremark>Screenshot GNU-DIP</revremark></revision><revision><revnumber>9</revnumber><date>2016-04-14 14:22:41</date><authorinitials>PhilippeBaret</authorinitials><revremark>Added accurate How to create a DNS name with GnuDIP</revremark></revision><revision><revnumber>8</revnumber><date>2016-04-10 07:15:47</date><authorinitials>PhilippeBaret</authorinitials><revremark>Added bottom navigation link</revremark></revision><revision><revnumber>7</revnumber><date>2016-01-11 06:28:36</date><authorinitials>PhilippeBaret</authorinitials><revremark>Correction</revremark></revision><revision><revnumber>6</revnumber><date>2015-12-15 18:48:25</date><authorinitials>PhilippeBaret</authorinitials><revremark>Added definition title to Dynamic DNS page</revremark></revision><revision><revnumber>5</revnumber><date>2015-09-13 15:02:37</date><authorinitials>SunilMohanAdapa</authorinitials><revremark>Demote headings one level for inclusion into manual</revremark></revision><revision><revnumber>4</revnumber><date>2015-09-13 13:14:41</date><authorinitials>SunilMohanAdapa</authorinitials><revremark>Move DynamicDNS page to manual</revremark></revision><revision><revnumber>3</revnumber><date>2015-08-13 13:03:13</date><authorinitials>SunilMohanAdapa</authorinitials><revremark>Add more introduction and re-organize.</revremark></revision><revision><revnumber>2</revnumber><date>2015-08-09 21:38:52</date><authorinitials>DanielSteglich</authorinitials></revision><revision><revnumber>1</revnumber><date>2015-08-09 21:23:48</date><authorinitials>DanielSteglich</authorinitials></revision></revhistory></articleinfo><section><title>Dynamic DNS Client</title><section><title>What is Dynamic DNS?</title><para>In order to reach a server on the Internet, the server needs to have permanent address also know as the static IP address.  Many Internet service providers don't provide home users with a static IP address or they charge more providing a static IP address.  Instead they provide the home user with an IP address that changes every time the user connects to the Internet.  Clients wishing to contact the server will have difficulty reaching the server. </para><para>Dynamic DNS service providers assist in working around a problem.  First they provide you with a domain name, such as 'myhost.example.org'.  Then they associate your IP address, whenever it changes, with this domain name.  Then anyone intending to reach the server will be to contact the server using the domain name 'myhost.example.org' which always points to the latest IP address of the server. </para><para>For this to work, every time you connect to the Internet, you will have to tell your Dynamic DNS provider what your current IP address is.  Hence you need special software on your server to perform this operation. The Dynamic DNS function in FreedomBox will allow users without a static public IP address to push the current public IP address to a Dynamic DNS Server.  This allows you to expose services on FreedomBox, such as ownCloud, to the Internet. </para></section><section><title>GnuDIP vs. Update URL</title><para>There are two main mechanism to notify the Dynamic DNS server of your new IP address; using the <emphasis>GnuDIP</emphasis> protocol and using the <emphasis>Update URL</emphasis> mechanism. </para><para>If a service provided using update URL is not properly secured using HTTPS, your credentials may be visible to an adversary.  Once an adversary gains your credentials, they will be able to replay your request your server and hijack your domain. </para><para>On the other hand, the GnuDIP protocol will only transport a salted MD5 value of your password, in a way that is secure against replay attacks.  </para></section><section><title>Using the GnuDIP protocol</title><orderedlist numeration="arabic"><listitem><para>Register an account with any Dynamic DNS service provider.  A free service provided by the FreedomBox community is available at <ulink url="https://gnudip.datasystems24.net"/> . </para></listitem><listitem><para>In FreedomBox UI, enable the Dynamic DNS Service. </para></listitem><listitem><para>Select <emphasis>GnuDIP</emphasis> as <emphasis>Service type</emphasis>, enter your Dynamic DNS service provider address (for example, gnudip.datasystems24.net) into <emphasis>GnuDIP Server Address</emphasis> field. </para><para><inlinemediaobject><imageobject><imagedata fileref="https://wiki.debian.org/FreedomBox/Manual/DynamicDNS?action=AttachFile&amp;do=get&amp;target=DynamicDNS-Settings.png" width="800"/></imageobject><textobject><phrase>Dynamic DNS Settings</phrase></textobject></inlinemediaobject> </para></listitem><listitem><para>Fill <emphasis>Domain Name</emphasis>, <emphasis>Username</emphasis>, <emphasis>Password</emphasis> information given by your provider into the corresponding fields. </para></listitem></orderedlist></section><section><title>Using an Update URL</title><para>This feature is implemented because the most popular Dynamic DNS providers are using Update URLs mechanism. </para><orderedlist numeration="arabic"><listitem><para>Register an account with a Dynamic DNS service provider providing their service using Update URL mechanism.  Some example providers are listed in the configuration page itself. </para></listitem><listitem><para>In FreedomBox UI, enable the Dynamic DNS service. </para></listitem><listitem><para>Select <emphasis>other Update URL</emphasis> as <emphasis>Service type</emphasis>, enter the update URL given by your provider into <emphasis>Update URL</emphasis> field. </para></listitem><listitem><para>If you browse the update URL with your Internet browser and a warning message about untrusted certificate appears, then enable <emphasis>accept all SSL certificates</emphasis>.  WARNING: your credentials may be readable here because man-in-the-middle attacks are possible!  Consider choosing a better service provider instead. </para></listitem><listitem><para>If you browse the update URL with your Internet browser and the username/password box appears, enable <emphasis>use HTTP basic authentication</emphasis> checkbox and provide the <emphasis>Username</emphasis> and <emphasis>Password</emphasis>.  </para></listitem><listitem><para>If the update URL contains your current IP address, replace the IP address with the string <emphasis>&lt;Ip&gt;</emphasis>. </para></listitem></orderedlist></section><section><title>Checking If It Works</title><orderedlist numeration="arabic"><listitem><para>Make sure that external services you have enabled such as /jwchat, /roundcube and /ikiwiki are available on your domain address. </para></listitem><listitem><para>Go to the <emphasis>Status</emphasis> page, make sure that the NAT type is detected correctly. If your FreedomBox is behind a NAT device, this should be detected over there (Text: <emphasis>Behind NAT</emphasis>).  If your FreedomBox has a public IP address assigned, the text should be &quot;Direct connection to the Internet&quot;. </para></listitem><listitem><para>Check that the last update status is not <emphasis>failed</emphasis>. </para></listitem></orderedlist></section><section><title>Recap: How to create a DNS name with GnuDIP</title><para><remark>to delete or to replace the old text</remark> </para><orderedlist numeration="arabic"><listitem><para>Access to <ulink url="https://gnudip.datasystems24.net">GnuIP login page</ulink> (answer Yes to all pop ups) </para></listitem><listitem><para>Click on &quot;Self Register&quot; </para></listitem><listitem><para>Fill the registration form (Username and domain will form the public IP address [username.domain]) </para></listitem><listitem><para>Take note of the username/hostname and password that will be used on the FreedomBox app. </para></listitem><listitem><para>Save and return to the GnuDIP login page to verify your username, domain and password (enter the datas, click login). </para></listitem><listitem><para>Login output should display your new domain name along with your current public IP address (this is a unique address provided by your router for all your local devices). </para></listitem><listitem><para>Leave the GnuDIP interface and open the Dynamic DNS Client app page in your FreedomBox. </para></listitem><listitem><para>Click on &quot;Set Up&quot; in the top menu. </para></listitem><listitem><para>Activate Dynamic DNS </para></listitem><listitem><para>Choose GnuDIP service. </para></listitem><listitem><para>Add server address (gnudip.datasystems24.net) </para></listitem><listitem><para>Add your fresh domain name (username.domain, ie [username].freedombox.rocks) </para></listitem><listitem><para>Add your fresh username (the one used in your new IP address) and password </para></listitem><listitem><para>Add your GnuDIP password </para></listitem><listitem><para>Fill the option with <ulink url="http://myip.datasystems24.de"/> (try this url in your browser, you will figure out immediately) </para></listitem></orderedlist><para>Back to <ulink url="https://wiki.debian.org/FreedomBox/Manual/DynamicDNS/FreedomBox/Features#">Features introduction</ulink> or <ulink url="https://wiki.debian.org/FreedomBox/Manual/DynamicDNS/FreedomBox/Manual#">manual</ulink> pages. </para><!--rule (<hr>) is not applicable to DocBook--><informaltable><tgroup cols="8"><colspec colname="col_0"/><colspec colname="col_1"/><colspec colname="col_2"/><colspec colname="col_3"/><colspec colname="col_4"/><colspec colname="col_5"/><colspec colname="col_6"/><colspec colname="col_7"/><tbody><row rowsep="1"><entry colsep="1" rowsep="1"><para><emphasis role="strong">Information</emphasis></para></entry><entry colsep="1" rowsep="1"/><entry colsep="1" rowsep="1"/><entry colsep="1" rowsep="1"><para><emphasis role="strong">Support</emphasis></para></entry><entry colsep="1" rowsep="1"><para><emphasis role="strong">Contribute</emphasis></para></entry><entry colsep="1" rowsep="1"/><entry colsep="1" rowsep="1"><para><emphasis role="strong">Reports</emphasis></para></entry><entry colsep="1" rowsep="1"><para><emphasis role="strong">Promote</emphasis></para></entry></row><row rowsep="1"><entry colsep="1" rowsep="1"><para><ulink url="https://wiki.debian.org/FreedomBox/Manual/DynamicDNS/FreedomBox/Introduction#">Overview</ulink>      </para></entry><entry colsep="1" rowsep="1"><para><ulink url="https://wiki.debian.org/FreedomBox/Manual/DynamicDNS/FreedomBox/Hardware#">Hardware</ulink>      </para></entry><entry colsep="1" rowsep="1"><para><emphasis role="strong"> </emphasis></para></entry><entry colsep="1" rowsep="1"><para><ulink url="https://wiki.debian.org/FreedomBox/Manual/DynamicDNS/FreedomBox/Support#">Live Help</ulink>     </para></entry><entry colsep="1" rowsep="1"><para><ulink url="https://wiki.debian.org/FreedomBox/Manual/DynamicDNS/FreedomBox/Contribute#">Where To Start</ulink>     </para></entry><entry colsep="1" rowsep="1"><para><ulink url="https://wiki.debian.org/FreedomBox/Manual/DynamicDNS/FreedomBox/Translate#">Translate</ulink>    </para></entry><entry colsep="1" rowsep="1"><para><ulink url="https://wiki.debian.org/FreedomBox/Manual/DynamicDNS/FreedomBox/ProgressCalls#">Calls</ulink>      </para></entry><entry colsep="1" rowsep="1"><para><ulink url="https://wiki.debian.org/FreedomBox/Manual/DynamicDNS/FreedomBox/TalksAndPresentations#">Talks</ulink>     </para></entry></row><row rowsep="1"><entry colsep="1" rowsep="1"><para><ulink url="https://wiki.debian.org/FreedomBox/Manual/DynamicDNS/FreedomBox/Features#">Features</ulink>     </para></entry><entry colsep="1" rowsep="1"><para><ulink url="https://wiki.debian.org/FreedomBox/Manual/DynamicDNS/FreedomBox/Vision#">Vision</ulink>     </para></entry><entry colsep="1" rowsep="1"><para><emphasis role="strong"> </emphasis></para></entry><entry colsep="1" rowsep="1"><para><ulink url="https://wiki.debian.org/FreedomBox/Manual/DynamicDNS/FreedomBox/QuestionsAndAnswers#">Q&amp;A</ulink>      </para></entry><entry colsep="1" rowsep="1"><para><ulink url="https://wiki.debian.org/FreedomBox/Manual/DynamicDNS/FreedomBox/Design#">Design</ulink>      </para></entry><entry colsep="1" rowsep="1"><para><ulink url="https://wiki.debian.org/FreedomBox/Manual/DynamicDNS/FreedomBox/TODO#">To Do</ulink>      </para></entry><entry colsep="1" rowsep="1"><para><ulink url="https://wiki.debian.org/FreedomBox/Manual/DynamicDNS/FreedomBox/ReleaseNotes#">Releases</ulink>       </para></entry><entry colsep="1" rowsep="1"><para><ulink url="https://wiki.debian.org/FreedomBox/Manual/DynamicDNS/FreedomBox/Press#">Press</ulink>     </para></entry></row><row rowsep="1"><entry colsep="1" rowsep="1"><para><ulink url="https://wiki.debian.org/FreedomBox/Manual/DynamicDNS/FreedomBox/Download#">Download</ulink>     </para></entry><entry colsep="1" rowsep="1"><para><ulink url="https://wiki.debian.org/FreedomBox/Manual/DynamicDNS/FreedomBox/Manual#">Manual</ulink>      </para></entry><entry colsep="1" rowsep="1"><para><emphasis role="strong"> </emphasis></para></entry><entry colsep="1" rowsep="1"/><entry colsep="1" rowsep="1"><para><ulink url="https://wiki.debian.org/FreedomBox/Manual/DynamicDNS/FreedomBox/Contribute/Code#">Code</ulink>      </para></entry><entry colsep="1" rowsep="1"><para><ulink url="https://wiki.debian.org/FreedomBox/Manual/DynamicDNS/FreedomBox/Contributors#">Contributors</ulink>      </para></entry><entry colsep="1" rowsep="1"/><entry colsep="1" rowsep="1"><para><ulink url="https://wiki.debian.org/FreedomBox/Manual/DynamicDNS/FreedomBox/Blog#">Blog</ulink>     </para></entry></row></tbody></tgroup></informaltable><para><!--"~-smaller-~" is not applicable to DocBook-->HELP &amp; DISCUSSIONS: <ulink url="https://discuss.freedombox.org">Discussion Forum</ulink> - <ulink url="https://lists.alioth.debian.org/mailman/listinfo/freedombox-discuss">Mailing List</ulink> - <ulink url="irc://irc.debian.org/freedombox">#freedombox irc.debian.org</ulink> | CONTACT <ulink url="https://freedomboxfoundation.org/">Foundation</ulink> | JOIN <ulink url="https://salsa.debian.org/freedombox-team/">Project</ulink>  </para><para><link linkend="">Next call</link>: Sunday, June 23rd at 17:00 UTC </para><para><link linkend="">Latest news</link>: Announcing Pioneer FreedomBox Kits - 2019-03-26 </para><para>This page is copyright its contributors and is licensed under the <ulink url="https://creativecommons.org/licenses/by-sa/4.0/">Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)</ulink> license. </para><!--rule (<hr>) is not applicable to DocBook--><para> <ulink url="https://wiki.debian.org/FreedomBox/Manual/DynamicDNS/CategoryFreedomBox#">CategoryFreedomBox</ulink> </para></section></section></article>