{"id":1903,"date":"2025-05-10T12:28:44","date_gmt":"2025-05-10T10:28:44","guid":{"rendered":"https:\/\/www.stephan-lubahn.de\/?p=1903"},"modified":"2025-07-20T18:19:48","modified_gmt":"2025-07-20T16:19:48","slug":"installation-dhcp-server-pihole","status":"publish","type":"post","link":"https:\/\/www.stephan-lubahn.de\/?p=1903","title":{"rendered":"Installation DHCP Server PiHole and KEA with Gui"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">NTP Aktivieren<br>sudo nano \/etc\/systemd\/timesyncd.conf<br>NTP=ntp.uni-osnabrueck.de<br>timedatectl set-ntp 1<br>systemctl status systemd-timesyncd<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><br>sudo curl -sSL https:\/\/install.pi-hole.net | bash<br>start pi-hole http:\/\/192.168.1xx:80\/admin<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Install Kea dhcp Server<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ubuntu instalieren<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">NTP Aktivieren<br>sudo nano \/etc\/systemd\/timesyncd.conf<br>NTP=ntp.uni-osnabrueck.de<br>timedatectl set-ntp 1<br>systemctl status systemd-timesyncd<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">sudo apt install net-tools<br>ip address show <br>sudo snap install curl<br>Brave installierem curl -fsS https:\/\/dl.brave.com\/install.sh | sh<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><br>Fest IP einstellen<br>192.168.178.5<br>Gateway 192.168.178.1<br>DNS1 213.178.70.1<br>DNS2 82.97.145.3<br>hostname -I<br>ifconfig -a<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Kea DHCP<br>sudo su root<br>apt update &amp;&amp; apt upgrade -y<br>apt install kea<br>Passwort f\u00fcr den Control Agenten setzen<br>\/\/ sudo nano \/etc\/kea\/kea-dhcp4.conf<br><br><br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">sudo nano \/etc\/kea\/kea-dhcp4.conf<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Beispiel\n{\n    \"Dhcp4\": {\n        \"interfaces-config\": {\n            \"interfaces\": &#91;\"eno1\"]\n        },\n        \"control-socket\": {\n            \"socket-type\": \"unix\",\n            \"socket-name\": \"\/run\/kea\/kea4-ctrl-socket\"\n        },\n        \"lease-database\": {\n            \"type\": \"postgresql\",\n            \"name\": \"kea\",\n            \"user\": \"kea\",\n            \"password\": \"kea\",\n            \"host\": \"localhost\"\n        },\n        \"valid-lifetime\": 600,\n        \"max-valid-lifetime\": 7200,\n \/\/ Changes\n\n\n\n        \"subnet4\": &#91;{\n         \"id\": 1,\n     \"subnet\": \"192.168.178.0\/24\",\n     \"pools\": &#91; { \"pool\": \"192.168.178.10 - 192.18.178.14\" } ],\n       \n              \"option-data\": &#91;{\n                    \"name\": \"routers\",\n                    \"data\": \"192.168.178.1\"\n                },\n                {\n                    \"name\": \"domain-name-servers\",\n                    \"data\": \"213.178.70.1, 82.97.145.3\"\n                },\n                {\n                    \"name\": \"domain-name\",\n                    \"data\": \"slubahn.local\"\n                }\n            ]\n        }]\n    }\n}\n\n\n\n\n\n\nkea-shell --host 127.0.0.1 --port 8000 --auth-user kea-api --auth-password $(cat \/etc\/kea\/kea-api-password) --service dhcp4 config-reload\n\njournalctl -u kea-dhcp4-server -e\n\nsudo nano \/usr\/local\/etc\/kea\/keactrl.conf\ndhcp4=yes\ndhcp6=no\nkeactrl status\n\n\n\nsudo mv \/etc\/kea\/kea-dhcp4.conf \/etc\/kea\/kea-dhcp4.conf.bak\nsudo nano \/etc\/kea\/kea-dhcp4.conf\nsudo systemctl start kea-dhcp4\nZum Stoppen verwenden Sie: sudo systemctl stop kea-dhcp4\nZum Neustarten verwenden Sie: sudo systemctl restart kea-dhcp4\nsudo su root\nsu postgres\npsql postgres\nCREATE USER kea WITH PASSWORD 'kea';\nCREATE DATABASE kea;\nGRANT ALL PRIVILEGES ON DATABASE kea TO kea;\n\\c kea\ncreate extension pgcrypto;\nexit;\nexit\nexit\nsudo su root\nsu postgres\npsql postgres\nALTER DATABASE kea OWNER TO kea;\nexit;\nexit\n\nkea-admin db-init pgsql -u kea -p kea -n kea\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Install hook libries<br><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><br><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo su root\napt update &amp;&amp; apt upgrade -y\napt install postgresql postgresql-contrib -y\nsu postgres\npsql postgres\nCREATE USER stork WITH PASSWORD 'stork';\nCREATE DATABASE stork;\nGRANT ALL PRIVILEGES ON DATABASE stork TO stork;\n\\c stork\ncreate extension pgcrypto;\nexit;\nexit\nexit\nstrg d\nreboot\n\nsudo su root\ninstall pgAdmin\nTest the stork DB with pqAdmin\n\n\n\n\n\n\n<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>Install the Stork Server\nsudo su root\ncurl -1sLf 'https:\/\/dl.cloudsmith.io\/public\/isc\/stork\/cfg\/setup\/bash.deb.sh' | sudo bash\nsudo apt install isc-stork-server\nsudo nano \/etc\/stork\/server.env\nSTORK_DATABASE_HOST=localhost\nSTORK_DATABASE_PORT=5432\nSTORK_DATABASE_NAME=stork\nSTORK_DATABASE_USER_NAME=stork\nSTORK_DATABASE_PASSWORD=stork\n\nSTORK_REST_HOST=0.0.0.0\nSTORK_REST_PORT=8080\nSTORK_LOG_LEVEL=INFO\nreboot\ncd \/usr\/lib\/\nsudo mkdir stork-server\ncd stork-server\nsudo mkdir hooks\n\nsudo systemctl restart isc-stork-server\nsudo systemctl enable isc-stork-server\nsudo systemctl start isc-stork-server\nsudo systemctl status isc-stork-server\njournalctl -u isc-stork-server.service -e\nCannot start the Stork Server: problem initiating database: ERROR #42501 permission ...\nsudo -u postgres stork-tool db-create --db-name stork --db-user stork-server\nsudo su root\nsu postgres\npsql postgres\nALTER USER stork WITH PASSWORD 'stork';\nexit;\nsudo systemctl stop isc-stork-server   ----&gt; for debugging\nreboot\njournalctl -u isc-stork-server.service -e\nInstall the Stork agent only with no errors of the Stork Server\n--------------------------------------------------------------------------------------------\ncd \/usr\/share\/stork\/www\nassets\/pkgs\n\ncurl -o \/tmp\/isc-stork-agent.deb \"localhost:8080\/assets\/pkgs\/isc-stork-agent_1.11.0.230606131857_amd64.deb\"\n\n--------------------------------------------------------------------------------------------\n\nstork agent\nsudo curl -1sLf 'https:\/\/dl.cloudsmith.io\/public\/isc\/stork\/cfg\/setup\/bash.deb.sh' | sudo bash\nsudo apt install isc-stork-agent\n\nsudo nano \/etc\/stork\/agent.env\nSTORK_AGENT_HOST=127.0.0.1\nSTORK_AGENT_PORT=8081\nSTORK_AGENT_LISTEN_STORK_ONLY=false\nSTORK_AGENT_SERVER_URL=http:\/\/localhost:8080\nSTORK_LOG_LEVEL=INFO\nSTORK_AGENT_DB_URL=postgresql:\/\/kea:kea@localhost\/kea\n\nsudo systemctl restart isc-stork-agent\nsudo systemctl enable isc-stork-agent\nsudo systemctl start isc-stork-agent\nsudo su stork-agent -s \/bin\/sh -c 'stork-agent register --server-url http:\/\/127.0.0.1:8080'\n\nstork-agent -s \/bin\/sh -c 'stork-agent register -u http:\/\/192.168.178.5:8080'\n\nsudo systemctl status isc-stork-agent\nsudo nano \/etc\/stork\/agent.env\n\n\nhttp:&#47;&#47;localhost:8080<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Troble<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo -i -u postgres<br>psql<br>sudo systemctl status postgresql<br>sudo systemctl is-active postgresql<br>sudo systemctl is-enabled postgresql<br>sudo pg_isready<br><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">systemctl stop firewalld<br>sudo nano \/etc\/stork\/server.env<br>sudo -u postgres stork-tool db-create &#8211;db-name stork &#8211;db-user stork-server<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><br><code>journalctl -u isc-stork-server.service<\/code> -e<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>journalctl -u isc-stork-server.service<\/code><br>cd \/usr\/lib\/<br>sudo mkdir stork-server<br>cd stork-server<br>sudo mkdir hooks<br><code>curl http:\/\/127.0.0.1:8080\/api\/version<\/code><br><code>{\"date\":\"2023-01-16 11:06\",\"version\":\"1.8.0\"}<\/code><br><br><br><br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">INFO[2025-07-16 13:23:36] main.go:99 Created database and user for the server with the following credentials database_name=&#8220;stork&#8220; password=&#8220;UD13el8q4HQv9ElOeLagutFZnD+XCaso&#8220; user=&#8220;stork&#8220;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><br><br><br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><br>\/usr\/local\/sbin\/kea-dhcp4 -c \/usr\/local\/etc\/kea\/kea-dhcp4.conf<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><br><br><br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The kea-dhcp4 service can be configured by editing \/etc\/kea\/kea-dhcp4.conf<br><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"Dhcp4\": {\n\t\"interfaces-config\": {\n  \t\"interfaces\": &#91; \"eth4\" ]\n\t},\n\t\"control-socket\": {\n    \t\"socket-type\": \"unix\",\n    \t\"socket-name\": \"\/run\/kea\/kea4-ctrl-socket\"\n\t},\n\t\"lease-database\": {\n    \t\"type\": \"memfile\",\n    \t\"lfc-interval\": 3600\n\t},\n\t\"valid-lifetime\": 600,\n\t\"max-valid-lifetime\": 7200,\n\t\"subnet4\": &#91;\n  \t{\n    \t\"id\": 1,\n    \t\"subnet\": \"192.168.1.0\/24\",\n    \t\"pools\": &#91;\n      \t{\n        \t\"pool\": \"192.168.1.150 - 192.168.1.200\"\n      \t}\n    \t],\n    \t\"option-data\": &#91;\n      \t{\n        \t\"name\": \"routers\",\n        \t\"data\": \"192.168.1.254\"\n      \t},\n      \t{\n        \t\"name\": \"domain-name-servers\",\n        \t\"data\": \"192.168.1.1, 192.168.1.2\"\n      \t},\n      \t{\n        \t\"name\": \"domain-name\",\n        \t\"data\": \"mydomain.example\"\n      \t}\n    \t]\n  \t}\n\t]\n  }\n}\n\n-----------------------------------------------------------------------------------------\n\nkea-shell --host 127.0.0.1 --port 8000 --auth-user kea-api --auth-password $(cat \/etc\/kea\/kea-api-password) --service dhcp4 config-reload<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Strg &#8211; d dr\u00fccken<br><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl restart kea-dhcp4-server<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n    \"Dhcp4\": {\n        \"interfaces-config\": {\n            \"interfaces\": &#91;\"eth4\"]\n        },\n        \"control-socket\": {\n            \"socket-type\": \"unix\",\n            \"socket-name\": \"\/run\/kea\/kea4-ctrl-socket\"\n        },\n        \"lease-database\": {\n            \"type\": \"memfile\",\n            \"lfc-interval\": 3600\n        },\n        \"valid-lifetime\": 600,\n        \"max-valid-lifetime\": 7200,\n        \"subnet4\": &#91;{\n            \"id\": 1,\n            \"subnet\": \"192.168.1.0\/24\",\n            \"pools\": &#91;{\n                \"pool\": \"192.168.1.150 - 192.168.1.200\"\n            }],\n            \"option-data\": &#91;{\n                    \"name\": \"routers\",\n                    \"data\": \"192.168.1.254\"\n                },\n                {\n                    \"name\": \"domain-name-servers\",\n                    \"data\": \"192.168.1.1, 192.168.1.2\"\n                },\n                {\n                    \"name\": \"domain-name\",\n                    \"data\": \"mydomain.example\"\n                }\n            ]\n        }]\n    }\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Experimentell<br>sudo add-apt-repository ppa:isc\/bind-esv\nsudo apt update<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.veuhoff.net\/dhcp-server-kea-installation-fuer-linux-ubuntu-22-04-und-debian-11\">https:\/\/www.veuhoff.net\/dhcp-server-kea-installation-fuer-linux-ubuntu-22-04-und-debian-<\/a><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"Dhcp4\": {\n    \"interfaces-config\": {\n      \"interfaces\": &#91; \"eth0\" ]\n    },\n    \"subnet4\": &#91;\n      {\n        \"id\": 1,\n        \"subnet\": \"192.168.1.0\/24\",\n        \"range\": &#91;\n          {\n            \"start\": \"192.168.1.100\",\n            \"end\": \"192.168.1.200\"\n          }\n        ],\n        \"option-data\": &#91;\n          {\n            \"name\": \"routers\",\n            \"data\": \"192.168.1.1\"\n          },\n          {\n            \"name\": \"domain-name-servers\",\n            \"data\": \"192.168.1.1\"\n          }\n        ]\n      }\n    ],\n    \"reservations\": &#91;\n      {\n        \"hw-address\": \"f0:9e:4a:9a:b8:c5\",\n        \"ip-address\": \"192.168.178.12\",\n        \"hostname\": \"my-device\"\n      }\n    ]\n  }\n}\n-------------------------------------------------------------------------------------\nsudo nano \/etc\/kea\/kea-dhcp4.conf\nsudo systemctl restart kea-dhcp4-server\n\njournalctl -u kea-dhcp4-server -e\n<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"Dhcp4\": {\n    \"reservations-global\": &#91;\n      {\n        \"hw-address\": \"aa:bb:cc:dd:ee:ff\",\n        \"ip-address\": \"192.0.2.10\"\n      }\n    ],\n    \"reservations-in-subnet\": &#91;\n      {\n        \"subnet-id\": 1,\n        \"hw-address\": \"11:22:33:44:55:66\",\n        \"ip-address\": \"192.0.2.11\"\n      }\n    ]\n  }\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;orignale config &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n    \"Dhcp4\": {\n        \"interfaces-config\": {\n            \"interfaces\": &#91;\"eth4\"]\n        },\n        \"control-socket\": {\n            \"socket-type\": \"unix\",\n            \"socket-name\": \"\/run\/kea\/kea4-ctrl-socket\"\n        },\n        \"lease-database\": {\n            \"type\": \"memfile\",\n            \"lfc-interval\": 3600\n        },\n        \"valid-lifetime\": 600,\n        \"max-valid-lifetime\": 7200,\n        \"subnet4\": &#91;{\n            \"id\": 1,\n            \"subnet\": \"192.168.1.0\/24\",\n            \"pools\": &#91;{\n                \"pool\": \"192.168.1.150 - 192.168.1.200\"\n            }],\n            \"option-data\": &#91;{\n                    \"name\": \"routers\",\n                    \"data\": \"192.168.1.254\"\n                },\n                {\n                    \"name\": \"domain-name-servers\",\n                    \"data\": \"192.168.1.1, 192.168.1.2\"\n                },\n                {\n                    \"name\": \"domain-name\",\n                    \"data\": \"mydomain.example\"\n                }\n            ]\n        }]\n    }\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><\/h2>\n\n\n\n<h2 class=\"wp-block-heading\">Kea Host reservation in Database<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"Dhcp4\": {\n    \"server-id\": \"my-server-id\",\n    \"subnet4\": &#91;\n      {\n        \"subnet\": \"192.0.2.0\/24\",\n        \"pools\": &#91;\n          {\n            \"pools\" \"192.0.2.10-192.0.2.200\"\n          }\n        ],\n       \"option-data\": &#91;\n          {\n            \"name\": \"routers\",\n            \"data\": \"192.0.2.1\"\n          },\n          {\n            \"name\": \"domain-name-servers\",\n            \"data\": \"192.0.2.10, 192.0.2.11\"\n          }\n        ],\n        \"host-reservation-mode\": \"database\"\n      }\n    ],\n   \"host-reservation-database\": {\n      \"type\": \"postgresql\",\n      \"user\": \"kea\",\n      \"password\": \"kea\",\n      \"host\": \"localhost\",\n      \"name\": \"kea\"\n    },\n    \"host-reservation-identifiers\": &#91;\"hw-address\"]\n  }\n}<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>\"subnet4\": &#91;\n  {  \"subnet\": \"192.0.2.0\/24\",\n     \"pools\": &#91; { \"pool\": \"192.0.2.1 - 192.0.2.200\" } ],\n     \"reservations\": &#91;\n        {\n           \"hw-address\": \"52:54:00:01:5f:33\",\n           \"ip-address\": \"192.0.2.201\"\n        }\n      ]\n  }\n]\n\n\n==========================================================================================\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>NTP Aktivierensudo nano \/etc\/systemd\/timesyncd.confNTP=ntp.uni-osnabrueck.detimedatectl set-ntp 1systemctl status systemd-timesyncd sudo curl -sSL https:\/\/install.pi-hole.net | bashstart pi-hole http:\/\/192.168.1xx:80\/admin Install Kea dhcp Server Ubuntu instalieren NTP Aktivierensudo nano \/etc\/systemd\/timesyncd.confNTP=ntp.uni-osnabrueck.detimedatectl set-ntp 1systemctl status systemd-timesyncd sudo apt install net-toolsip address show sudo snap install curlBrave &hellip; <a href=\"https:\/\/www.stephan-lubahn.de\/?p=1903\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[90],"tags":[141,140,143,142],"class_list":["post-1903","post","type-post","status-publish","format-standard","hentry","category-installation","tag-dhcp-server-with-gui","tag-kea-with-gui","tag-pihole","tag-stork"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.stephan-lubahn.de\/index.php?rest_route=\/wp\/v2\/posts\/1903","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.stephan-lubahn.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.stephan-lubahn.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.stephan-lubahn.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.stephan-lubahn.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1903"}],"version-history":[{"count":161,"href":"https:\/\/www.stephan-lubahn.de\/index.php?rest_route=\/wp\/v2\/posts\/1903\/revisions"}],"predecessor-version":[{"id":2205,"href":"https:\/\/www.stephan-lubahn.de\/index.php?rest_route=\/wp\/v2\/posts\/1903\/revisions\/2205"}],"wp:attachment":[{"href":"https:\/\/www.stephan-lubahn.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1903"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.stephan-lubahn.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1903"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.stephan-lubahn.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1903"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}