Jan Ulrich Hasecke
2022-07-07 bd89e949e4557d7f44ed97636cf39dfe3f3a9b7c
Weiter geputzt
4 files added
28 files modified
1339 ■■■■ changed files
source/images/filemap-mit-tls.dot 31 ●●●●● patch | view | raw | blame | history
source/images/filemap-mit-tls.svg 161 ●●●●● patch | view | raw | blame | history
source/images/filemap-ohne-tls.dot 31 ●●●●● patch | view | raw | blame | history
source/images/filemap-ohne-tls.svg 161 ●●●●● patch | view | raw | blame | history
source/referenz/datenbanken/datenbank-webfrontend/index.md 4 ●●●● patch | view | raw | blame | history
source/referenz/datenbanken/datenbank-zugriff/index.md 14 ●●●●● patch | view | raw | blame | history
source/referenz/datenbanken/datenbanken-nutzer/index.md 11 ●●●● patch | view | raw | blame | history
source/referenz/datenbanken/index.md 19 ●●●● patch | view | raw | blame | history
source/referenz/email/autoconfig/index.md 43 ●●●● patch | view | raw | blame | history
source/referenz/email/emailalias-paketuser/index.md 9 ●●●●● patch | view | raw | blame | history
source/referenz/email/index.md 32 ●●●● patch | view | raw | blame | history
source/referenz/email/postausgangsserver/index.md 38 ●●●●● patch | view | raw | blame | history
source/referenz/email/posteingangsserver/index.md 17 ●●●●● patch | view | raw | blame | history
source/referenz/email/size-email/index.md 9 ●●●●● patch | view | raw | blame | history
source/referenz/email/webmail/index.md 7 ●●●● patch | view | raw | blame | history
source/referenz/hsadmin/domain/index.md 131 ●●●●● patch | view | raw | blame | history
source/referenz/hsadmin/index.md 77 ●●●● patch | view | raw | blame | history
source/referenz/hsadmin/mysqldb/index.md 52 ●●●●● patch | view | raw | blame | history
source/referenz/hsadmin/mysqluser/index.md 52 ●●●●● patch | view | raw | blame | history
source/referenz/hsadmin/syntax/index.md 65 ●●●●● patch | view | raw | blame | history
source/referenz/hsadmin/user/index.md 71 ●●●●● patch | view | raw | blame | history
source/referenz/tls/eigene-tls-zertifikate/index.md 19 ●●●●● patch | view | raw | blame | history
source/referenz/tls/filemap-mit-ssl/index.md 53 ●●●●● patch | view | raw | blame | history
source/referenz/tls/filemap-ohne-ssl/index.md 62 ●●●● patch | view | raw | blame | history
source/referenz/tls/index.md 22 ●●●● patch | view | raw | blame | history
source/referenz/tls/letsencrypt/index.md 49 ●●●●● patch | view | raw | blame | history
source/referenz/tls/standard/index.md 6 ●●●●● patch | view | raw | blame | history
source/referenz/tls/varianten/index.md 21 ●●●● patch | view | raw | blame | history
source/referenz/zonefile/eigenes-zonefile-deaktivieren/index.md 5 ●●●●● patch | view | raw | blame | history
source/referenz/zonefile/eigenes-zonefile/index.md 32 ●●●●● patch | view | raw | blame | history
source/referenz/zonefile/index.md 21 ●●●● patch | view | raw | blame | history
source/referenz/zonefile/kontrolle-aenderungen/index.md 14 ●●●● patch | view | raw | blame | history
source/images/filemap-mit-tls.dot
New file
@@ -0,0 +1,31 @@
digraph d  {
    node [peripheries=0, style=filled, fillcolor="grey92", font=Helvetica, fontcolor=black]
    enquire_information [shape=box, label="https://www.example.com/<path>" ]
    vh_check_fqdn [shape=record, label="Virtual Host, der FQDN am genauesten entspricht"]
    path_cgi_bin [shape=diamond, label="Start mit cgi_ssl"]
    path_fastcgi [shape=diamond, label="Start mit fastcgi-ssl"]
    root_cgi_bin [shape=record, label="root = cgi-ssl"]
    root_fastcgi [shape=record, label="root = fastcgi-ssl"]
    fqdn_matches [shape=diamond, label="FQDN-Treffer"]
    root_htdocs_ok [shape=record, label="root = htdocs-ssl"]
    root_search_in_subs [shape=diamond, label="Gibt es eine passende Sub-Domain?"]
    root_subs_ok [shape=record, label="root = subs-ssl"]
    htdocsfallback_subs [shape=diamond, label="Ist htdocs-ssl fallback aktiv?" ]
    404 [shape=record, label="Error 404"]
    vh_check_fqdn -> path_cgi_bin
    path_cgi_bin -> root_cgi_bin [headlabel="Ja"]
    path_cgi_bin -> path_fastcgi [headlabel="Nein"]
    path_fastcgi -> root_fastcgi [headlabel="Ja"]
    path_fastcgi -> fqdn_matches [headlabel="Nein"]
    fqdn_matches -> root_htdocs_ok [headlabel="Ja"]
    fqdn_matches -> root_search_in_subs [headlabel="Nein"]
    root_search_in_subs -> root_subs_ok [headlabel="Ja"]
    root_search_in_subs -> htdocsfallback_subs [headlabel="Nein"]
    htdocsfallback_subs -> root_htdocs_ok [headlabel="Ja"]
    htdocsfallback_subs -> 404 [headlabel="Nein"]
}
source/images/filemap-mit-tls.svg
New file
@@ -0,0 +1,161 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.43.0 (0)
 -->
<!-- Title: d Pages: 1 -->
<svg width="894pt" height="481pt"
 viewBox="0.00 0.00 893.88 481.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 477)">
<title>d</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-477 889.88,-477 889.88,4 -4,4"/>
<!-- enquire_information -->
<g id="node1" class="node">
<title>enquire_information</title>
<polygon fill="#ebebeb" stroke="transparent" points="261,-472.5 0,-472.5 0,-436.5 261,-436.5 261,-472.5"/>
<text text-anchor="middle" x="130.5" y="-450.8" font-family="Times,serif" font-size="14.00">https://www.example.com/&lt;path&gt;</text>
</g>
<!-- vh_check_fqdn -->
<g id="node2" class="node">
<title>vh_check_fqdn</title>
<polygon fill="#ebebeb" stroke="black" points="279,-436.5 279,-472.5 656,-472.5 656,-436.5 279,-436.5"/>
<text text-anchor="middle" x="467.5" y="-450.8" font-family="Times,serif" font-size="14.00">Virtual Host, der FQDN am genauesten entspricht</text>
</g>
<!-- path_cgi_bin -->
<g id="node3" class="node">
<title>path_cgi_bin</title>
<polygon fill="#ebebeb" stroke="transparent" points="467.5,-400 344.17,-382 467.5,-364 590.83,-382 467.5,-400"/>
<text text-anchor="middle" x="467.5" y="-378.3" font-family="Times,serif" font-size="14.00">Start mit cgi_ssl</text>
</g>
<!-- vh_check_fqdn&#45;&gt;path_cgi_bin -->
<g id="edge1" class="edge">
<title>vh_check_fqdn&#45;&gt;path_cgi_bin</title>
<path fill="none" stroke="black" d="M467.5,-436.43C467.5,-428.67 467.5,-419.28 467.5,-410.56"/>
<polygon fill="black" stroke="black" points="471,-410.4 467.5,-400.4 464,-410.4 471,-410.4"/>
</g>
<!-- path_fastcgi -->
<g id="node4" class="node">
<title>path_fastcgi</title>
<polygon fill="#ebebeb" stroke="transparent" points="358.5,-327.5 213.05,-309.5 358.5,-291.5 503.95,-309.5 358.5,-327.5"/>
<text text-anchor="middle" x="358.5" y="-305.8" font-family="Times,serif" font-size="14.00">Start mit fastcgi&#45;ssl</text>
</g>
<!-- path_cgi_bin&#45;&gt;path_fastcgi -->
<g id="edge3" class="edge">
<title>path_cgi_bin&#45;&gt;path_fastcgi</title>
<path fill="none" stroke="black" d="M445.97,-367.07C429.76,-356.59 407.32,-342.07 389.22,-330.37"/>
<polygon fill="black" stroke="black" points="391.04,-327.38 380.74,-324.88 387.23,-333.25 391.04,-327.38"/>
<text text-anchor="middle" x="397.74" y="-328.68" font-family="Times,serif" font-size="14.00">Nein</text>
</g>
<!-- root_cgi_bin -->
<g id="node5" class="node">
<title>root_cgi_bin</title>
<polygon fill="#ebebeb" stroke="black" points="521.5,-291.5 521.5,-327.5 633.5,-327.5 633.5,-291.5 521.5,-291.5"/>
<text text-anchor="middle" x="577.5" y="-305.8" font-family="Times,serif" font-size="14.00">root = cgi&#45;ssl</text>
</g>
<!-- path_cgi_bin&#45;&gt;root_cgi_bin -->
<g id="edge2" class="edge">
<title>path_cgi_bin&#45;&gt;root_cgi_bin</title>
<path fill="none" stroke="black" d="M489.23,-367.07C504.27,-357.43 524.62,-344.39 541.99,-333.26"/>
<polygon fill="black" stroke="black" points="544.23,-335.98 550.76,-327.64 540.45,-330.09 544.23,-335.98"/>
<text text-anchor="middle" x="543.76" y="-331.44" font-family="Times,serif" font-size="14.00">Ja</text>
</g>
<!-- root_fastcgi -->
<g id="node6" class="node">
<title>root_fastcgi</title>
<polygon fill="#ebebeb" stroke="black" points="193,-218.5 193,-254.5 332,-254.5 332,-218.5 193,-218.5"/>
<text text-anchor="middle" x="262.5" y="-232.8" font-family="Times,serif" font-size="14.00">root = fastcgi&#45;ssl</text>
</g>
<!-- path_fastcgi&#45;&gt;root_fastcgi -->
<g id="edge4" class="edge">
<title>path_fastcgi&#45;&gt;root_fastcgi</title>
<path fill="none" stroke="black" d="M338.61,-293.79C325.75,-284.28 308.75,-271.7 294.07,-260.85"/>
<polygon fill="black" stroke="black" points="295.87,-257.83 285.75,-254.69 291.71,-263.45 295.87,-257.83"/>
<text text-anchor="middle" x="278.75" y="-258.49" font-family="Times,serif" font-size="14.00">Ja</text>
</g>
<!-- fqdn_matches -->
<g id="node7" class="node">
<title>fqdn_matches</title>
<polygon fill="#ebebeb" stroke="transparent" points="454.5,-254.5 349.93,-236.5 454.5,-218.5 559.07,-236.5 454.5,-254.5"/>
<text text-anchor="middle" x="454.5" y="-232.8" font-family="Times,serif" font-size="14.00">FQDN&#45;Treffer</text>
</g>
<!-- path_fastcgi&#45;&gt;fqdn_matches -->
<g id="edge5" class="edge">
<title>path_fastcgi&#45;&gt;fqdn_matches</title>
<path fill="none" stroke="black" d="M378.39,-293.79C392.57,-283.3 411.8,-269.08 427.39,-257.55"/>
<polygon fill="black" stroke="black" points="429.66,-260.23 435.61,-251.47 425.49,-254.6 429.66,-260.23"/>
<text text-anchor="middle" x="418.61" y="-255.27" font-family="Times,serif" font-size="14.00">Nein</text>
</g>
<!-- root_htdocs_ok -->
<g id="node8" class="node">
<title>root_htdocs_ok</title>
<polygon fill="#ebebeb" stroke="black" points="366.5,-0.5 366.5,-36.5 504.5,-36.5 504.5,-0.5 366.5,-0.5"/>
<text text-anchor="middle" x="435.5" y="-14.8" font-family="Times,serif" font-size="14.00">root = htdocs&#45;ssl</text>
</g>
<!-- fqdn_matches&#45;&gt;root_htdocs_ok -->
<g id="edge6" class="edge">
<title>fqdn_matches&#45;&gt;root_htdocs_ok</title>
<path fill="none" stroke="black" d="M405.51,-226.86C379.69,-219.55 350.21,-206.2 334.5,-182 308.13,-141.36 309.52,-114.51 334.5,-73 342.68,-59.4 355.61,-49.08 369.52,-41.31"/>
<polygon fill="black" stroke="black" points="371.47,-44.25 378.77,-36.57 368.27,-38.02 371.47,-44.25"/>
<text text-anchor="middle" x="371.77" y="-40.37" font-family="Times,serif" font-size="14.00">Ja</text>
</g>
<!-- root_search_in_subs -->
<g id="node9" class="node">
<title>root_search_in_subs</title>
<polygon fill="#ebebeb" stroke="transparent" points="593.5,-182 343.48,-164 593.5,-146 843.52,-164 593.5,-182"/>
<text text-anchor="middle" x="593.5" y="-160.3" font-family="Times,serif" font-size="14.00">Gibt es eine passende Sub&#45;Domain?</text>
</g>
<!-- fqdn_matches&#45;&gt;root_search_in_subs -->
<g id="edge7" class="edge">
<title>fqdn_matches&#45;&gt;root_search_in_subs</title>
<path fill="none" stroke="black" d="M479.67,-222.73C500.53,-212.15 530.53,-196.94 554.5,-184.78"/>
<polygon fill="black" stroke="black" points="556.35,-187.77 563.69,-180.12 553.18,-181.52 556.35,-187.77"/>
<text text-anchor="middle" x="546.69" y="-183.92" font-family="Times,serif" font-size="14.00">Nein</text>
</g>
<!-- root_subs_ok -->
<g id="node10" class="node">
<title>root_subs_ok</title>
<polygon fill="#ebebeb" stroke="black" points="343.5,-73.5 343.5,-109.5 467.5,-109.5 467.5,-73.5 343.5,-73.5"/>
<text text-anchor="middle" x="405.5" y="-87.8" font-family="Times,serif" font-size="14.00">root = subs&#45;ssl</text>
</g>
<!-- root_search_in_subs&#45;&gt;root_subs_ok -->
<g id="edge8" class="edge">
<title>root_search_in_subs&#45;&gt;root_subs_ok</title>
<path fill="none" stroke="black" d="M555.46,-148.73C528.25,-138.53 491.21,-124.64 460.76,-113.22"/>
<polygon fill="black" stroke="black" points="461.71,-109.84 451.12,-109.61 459.25,-116.4 461.71,-109.84"/>
<text text-anchor="middle" x="444.12" y="-113.41" font-family="Times,serif" font-size="14.00">Ja</text>
</g>
<!-- htdocsfallback_subs -->
<g id="node11" class="node">
<title>htdocsfallback_subs</title>
<polygon fill="#ebebeb" stroke="transparent" points="685.5,-109.5 485.25,-91.5 685.5,-73.5 885.75,-91.5 685.5,-109.5"/>
<text text-anchor="middle" x="685.5" y="-87.8" font-family="Times,serif" font-size="14.00">Ist htdocs&#45;ssl fallback aktiv?</text>
</g>
<!-- root_search_in_subs&#45;&gt;htdocsfallback_subs -->
<g id="edge9" class="edge">
<title>root_search_in_subs&#45;&gt;htdocsfallback_subs</title>
<path fill="none" stroke="black" d="M613.92,-147.35C626.63,-137.61 643.17,-124.94 657.14,-114.23"/>
<polygon fill="black" stroke="black" points="659.65,-116.72 665.46,-107.86 655.39,-111.16 659.65,-116.72"/>
<text text-anchor="middle" x="648.46" y="-111.66" font-family="Times,serif" font-size="14.00">Nein</text>
</g>
<!-- htdocsfallback_subs&#45;&gt;root_htdocs_ok -->
<g id="edge10" class="edge">
<title>htdocsfallback_subs&#45;&gt;root_htdocs_ok</title>
<path fill="none" stroke="black" d="M639.94,-77.56C602.31,-66.87 548.28,-51.53 505.21,-39.3"/>
<polygon fill="black" stroke="black" points="505.94,-35.87 495.36,-36.5 504.02,-42.6 505.94,-35.87"/>
<text text-anchor="middle" x="502.36" y="-40.3" font-family="Times,serif" font-size="14.00">Ja</text>
</g>
<!-- 404 -->
<g id="node12" class="node">
<title>404</title>
<polygon fill="#ebebeb" stroke="black" points="642,-0.5 642,-36.5 729,-36.5 729,-0.5 642,-0.5"/>
<text text-anchor="middle" x="685.5" y="-14.8" font-family="Times,serif" font-size="14.00">Error 404</text>
</g>
<!-- htdocsfallback_subs&#45;&gt;404 -->
<g id="edge11" class="edge">
<title>htdocsfallback_subs&#45;&gt;404</title>
<path fill="none" stroke="black" d="M685.5,-73.31C685.5,-65.29 685.5,-55.55 685.5,-46.57"/>
<polygon fill="black" stroke="black" points="689,-46.53 685.5,-36.53 682,-46.53 689,-46.53"/>
<text text-anchor="middle" x="668.5" y="-40.33" font-family="Times,serif" font-size="14.00">Nein</text>
</g>
</g>
</svg>
source/images/filemap-ohne-tls.dot
New file
@@ -0,0 +1,31 @@
digraph d  {
    node [peripheries=0, style=filled, fillcolor="grey92", font=Helvetica, fontcolor=black]
    enquire_information [shape=box, label="http://www.example.com/<path>" ]
    vh_check_fqdn [shape=record, label="Virtual Host, der FQDN am genauesten entspricht"]
    path_cgi_bin [shape=diamond, label="Start mit cgi_bin"]
    path_fastcgi [shape=diamond, label="Start mit fastcgi"]
    root_cgi_bin [shape=record, label="root = cgi-bin"]
    root_fastcgi [shape=record, label="root = fastcgi"]
    fqdn_matches [shape=diamond, label="FQDN-Treffer"]
    root_htdocs_ok [shape=record, label="root = htdocs"]
    root_search_in_subs [shape=diamond, label="Gibt es eine passende Sub-Domain?"]
    root_subs_ok [shape=record, label="root = subs"]
    htdocsfallback_subs [shape=diamond, label="Ist htdocs fallback aktiv?" ]
    404 [shape=record, label="Error 404"]
    vh_check_fqdn -> path_cgi_bin
    path_cgi_bin -> root_cgi_bin [headlabel="Ja"]
    path_cgi_bin -> path_fastcgi [headlabel="Nein"]
    path_fastcgi -> root_fastcgi [headlabel="Ja"]
    path_fastcgi -> fqdn_matches [headlabel="Nein"]
    fqdn_matches -> root_htdocs_ok [headlabel="Ja"]
    fqdn_matches -> root_search_in_subs [headlabel="Nein"]
    root_search_in_subs -> root_subs_ok [headlabel="Ja"]
    root_search_in_subs -> htdocsfallback_subs [headlabel="Nein"]
    htdocsfallback_subs -> root_htdocs_ok [headlabel="Ja"]
    htdocsfallback_subs -> 404 [headlabel="Nein"]
}
source/images/filemap-ohne-tls.svg
New file
@@ -0,0 +1,161 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.43.0 (0)
 -->
<!-- Title: d Pages: 1 -->
<svg width="849pt" height="481pt"
 viewBox="0.00 0.00 849.01 481.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 477)">
<title>d</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-477 845.01,-477 845.01,4 -4,4"/>
<!-- enquire_information -->
<g id="node1" class="node">
<title>enquire_information</title>
<polygon fill="#ebebeb" stroke="transparent" points="254,-472.5 0,-472.5 0,-436.5 254,-436.5 254,-472.5"/>
<text text-anchor="middle" x="127" y="-450.8" font-family="Times,serif" font-size="14.00">http://www.example.com/&lt;path&gt;</text>
</g>
<!-- vh_check_fqdn -->
<g id="node2" class="node">
<title>vh_check_fqdn</title>
<polygon fill="#ebebeb" stroke="black" points="272.5,-436.5 272.5,-472.5 649.5,-472.5 649.5,-436.5 272.5,-436.5"/>
<text text-anchor="middle" x="461" y="-450.8" font-family="Times,serif" font-size="14.00">Virtual Host, der FQDN am genauesten entspricht</text>
</g>
<!-- path_cgi_bin -->
<g id="node3" class="node">
<title>path_cgi_bin</title>
<polygon fill="#ebebeb" stroke="transparent" points="461,-400 335.15,-382 461,-364 586.85,-382 461,-400"/>
<text text-anchor="middle" x="461" y="-378.3" font-family="Times,serif" font-size="14.00">Start mit cgi_bin</text>
</g>
<!-- vh_check_fqdn&#45;&gt;path_cgi_bin -->
<g id="edge1" class="edge">
<title>vh_check_fqdn&#45;&gt;path_cgi_bin</title>
<path fill="none" stroke="black" d="M461,-436.43C461,-428.67 461,-419.28 461,-410.56"/>
<polygon fill="black" stroke="black" points="464.5,-410.4 461,-400.4 457.5,-410.4 464.5,-410.4"/>
</g>
<!-- path_fastcgi -->
<g id="node4" class="node">
<title>path_fastcgi</title>
<polygon fill="#ebebeb" stroke="transparent" points="362,-327.5 238.67,-309.5 362,-291.5 485.33,-309.5 362,-327.5"/>
<text text-anchor="middle" x="362" y="-305.8" font-family="Times,serif" font-size="14.00">Start mit fastcgi</text>
</g>
<!-- path_cgi_bin&#45;&gt;path_fastcgi -->
<g id="edge3" class="edge">
<title>path_cgi_bin&#45;&gt;path_fastcgi</title>
<path fill="none" stroke="black" d="M440.97,-366.73C426.47,-356.41 406.68,-342.32 390.54,-330.82"/>
<polygon fill="black" stroke="black" points="392.18,-327.7 382,-324.75 388.12,-333.4 392.18,-327.7"/>
<text text-anchor="middle" x="399" y="-328.55" font-family="Times,serif" font-size="14.00">Nein</text>
</g>
<!-- root_cgi_bin -->
<g id="node5" class="node">
<title>root_cgi_bin</title>
<polygon fill="#ebebeb" stroke="black" points="503.5,-291.5 503.5,-327.5 618.5,-327.5 618.5,-291.5 503.5,-291.5"/>
<text text-anchor="middle" x="561" y="-305.8" font-family="Times,serif" font-size="14.00">root = cgi&#45;bin</text>
</g>
<!-- path_cgi_bin&#45;&gt;root_cgi_bin -->
<g id="edge2" class="edge">
<title>path_cgi_bin&#45;&gt;root_cgi_bin</title>
<path fill="none" stroke="black" d="M481.24,-366.73C494.72,-357.23 512.74,-344.52 528.24,-333.59"/>
<polygon fill="black" stroke="black" points="530.4,-336.36 536.55,-327.73 526.36,-330.64 530.4,-336.36"/>
<text text-anchor="middle" x="529.55" y="-331.53" font-family="Times,serif" font-size="14.00">Ja</text>
</g>
<!-- root_fastcgi -->
<g id="node6" class="node">
<title>root_fastcgi</title>
<polygon fill="#ebebeb" stroke="black" points="214.5,-218.5 214.5,-254.5 329.5,-254.5 329.5,-218.5 214.5,-218.5"/>
<text text-anchor="middle" x="272" y="-232.8" font-family="Times,serif" font-size="14.00">root = fastcgi</text>
</g>
<!-- path_fastcgi&#45;&gt;root_fastcgi -->
<g id="edge4" class="edge">
<title>path_fastcgi&#45;&gt;root_fastcgi</title>
<path fill="none" stroke="black" d="M343.79,-294.13C331.68,-284.58 315.5,-271.82 301.57,-260.83"/>
<polygon fill="black" stroke="black" points="303.69,-258.05 293.68,-254.6 299.36,-263.54 303.69,-258.05"/>
<text text-anchor="middle" x="286.68" y="-258.4" font-family="Times,serif" font-size="14.00">Ja</text>
</g>
<!-- fqdn_matches -->
<g id="node7" class="node">
<title>fqdn_matches</title>
<polygon fill="#ebebeb" stroke="transparent" points="452,-254.5 347.43,-236.5 452,-218.5 556.57,-236.5 452,-254.5"/>
<text text-anchor="middle" x="452" y="-232.8" font-family="Times,serif" font-size="14.00">FQDN&#45;Treffer</text>
</g>
<!-- path_fastcgi&#45;&gt;fqdn_matches -->
<g id="edge5" class="edge">
<title>path_fastcgi&#45;&gt;fqdn_matches</title>
<path fill="none" stroke="black" d="M380.21,-294.13C393.35,-283.77 411.28,-269.62 425.93,-258.06"/>
<polygon fill="black" stroke="black" points="428.44,-260.55 434.12,-251.6 424.1,-255.05 428.44,-260.55"/>
<text text-anchor="middle" x="417.12" y="-255.4" font-family="Times,serif" font-size="14.00">Nein</text>
</g>
<!-- root_htdocs_ok -->
<g id="node8" class="node">
<title>root_htdocs_ok</title>
<polygon fill="#ebebeb" stroke="black" points="359,-0.5 359,-36.5 473,-36.5 473,-0.5 359,-0.5"/>
<text text-anchor="middle" x="416" y="-14.8" font-family="Times,serif" font-size="14.00">root = htdocs</text>
</g>
<!-- fqdn_matches&#45;&gt;root_htdocs_ok -->
<g id="edge6" class="edge">
<title>fqdn_matches&#45;&gt;root_htdocs_ok</title>
<path fill="none" stroke="black" d="M403.01,-226.86C377.19,-219.55 347.71,-206.2 332,-182 305.63,-141.36 308.7,-115.47 332,-73 339.16,-59.95 351.01,-49.62 363.59,-41.66"/>
<polygon fill="black" stroke="black" points="365.5,-44.6 372.36,-36.53 361.96,-38.56 365.5,-44.6"/>
<text text-anchor="middle" x="365.36" y="-40.33" font-family="Times,serif" font-size="14.00">Ja</text>
</g>
<!-- root_search_in_subs -->
<g id="node9" class="node">
<title>root_search_in_subs</title>
<polygon fill="#ebebeb" stroke="transparent" points="591,-182 340.98,-164 591,-146 841.02,-164 591,-182"/>
<text text-anchor="middle" x="591" y="-160.3" font-family="Times,serif" font-size="14.00">Gibt es eine passende Sub&#45;Domain?</text>
</g>
<!-- fqdn_matches&#45;&gt;root_search_in_subs -->
<g id="edge7" class="edge">
<title>fqdn_matches&#45;&gt;root_search_in_subs</title>
<path fill="none" stroke="black" d="M477.17,-222.73C498.03,-212.15 528.03,-196.94 552,-184.78"/>
<polygon fill="black" stroke="black" points="553.85,-187.77 561.19,-180.12 550.68,-181.52 553.85,-187.77"/>
<text text-anchor="middle" x="544.19" y="-183.92" font-family="Times,serif" font-size="14.00">Nein</text>
</g>
<!-- root_subs_ok -->
<g id="node10" class="node">
<title>root_subs_ok</title>
<polygon fill="#ebebeb" stroke="black" points="341,-73.5 341,-109.5 441,-109.5 441,-73.5 341,-73.5"/>
<text text-anchor="middle" x="391" y="-87.8" font-family="Times,serif" font-size="14.00">root = subs</text>
</g>
<!-- root_search_in_subs&#45;&gt;root_subs_ok -->
<g id="edge8" class="edge">
<title>root_search_in_subs&#45;&gt;root_subs_ok</title>
<path fill="none" stroke="black" d="M550.53,-148.73C521.46,-138.49 481.84,-124.52 449.36,-113.07"/>
<polygon fill="black" stroke="black" points="450.12,-109.63 439.53,-109.61 447.8,-116.23 450.12,-109.63"/>
<text text-anchor="middle" x="446.53" y="-113.41" font-family="Times,serif" font-size="14.00">Ja</text>
</g>
<!-- htdocsfallback_subs -->
<g id="node11" class="node">
<title>htdocsfallback_subs</title>
<polygon fill="#ebebeb" stroke="transparent" points="637,-109.5 458.87,-91.5 637,-73.5 815.13,-91.5 637,-109.5"/>
<text text-anchor="middle" x="637" y="-87.8" font-family="Times,serif" font-size="14.00">Ist htdocs fallback aktiv?</text>
</g>
<!-- root_search_in_subs&#45;&gt;htdocsfallback_subs -->
<g id="edge9" class="edge">
<title>root_search_in_subs&#45;&gt;htdocsfallback_subs</title>
<path fill="none" stroke="black" d="M601.67,-146.65C607.36,-137.93 614.48,-127.02 620.83,-117.28"/>
<polygon fill="black" stroke="black" points="623.86,-119.05 626.39,-108.76 617.99,-115.22 623.86,-119.05"/>
<text text-anchor="middle" x="609.39" y="-112.56" font-family="Times,serif" font-size="14.00">Nein</text>
</g>
<!-- htdocsfallback_subs&#45;&gt;root_htdocs_ok -->
<g id="edge10" class="edge">
<title>htdocsfallback_subs&#45;&gt;root_htdocs_ok</title>
<path fill="none" stroke="black" d="M596.72,-77.56C563.81,-66.99 516.7,-51.85 478.83,-39.69"/>
<polygon fill="black" stroke="black" points="479.51,-36.23 468.92,-36.5 477.37,-42.89 479.51,-36.23"/>
<text text-anchor="middle" x="475.92" y="-40.3" font-family="Times,serif" font-size="14.00">Ja</text>
</g>
<!-- 404 -->
<g id="node12" class="node">
<title>404</title>
<polygon fill="#ebebeb" stroke="black" points="593.5,-0.5 593.5,-36.5 680.5,-36.5 680.5,-0.5 593.5,-0.5"/>
<text text-anchor="middle" x="637" y="-14.8" font-family="Times,serif" font-size="14.00">Error 404</text>
</g>
<!-- htdocsfallback_subs&#45;&gt;404 -->
<g id="edge11" class="edge">
<title>htdocsfallback_subs&#45;&gt;404</title>
<path fill="none" stroke="black" d="M637,-73.31C637,-65.29 637,-55.55 637,-46.57"/>
<polygon fill="black" stroke="black" points="640.5,-46.53 637,-36.53 633.5,-46.53 640.5,-46.53"/>
<text text-anchor="middle" x="620" y="-40.33" font-family="Times,serif" font-size="14.00">Nein</text>
</g>
</g>
</svg>
source/referenz/datenbanken/datenbank-webfrontend/index.md
@@ -2,6 +2,6 @@
Für angelegte Datenbanken stehen folgende Webfrontends zur Verfügung:
MySQL [phpMyAdmin](https://phpmyadmin.hostsharing.net/current).
- Für MySQL: [phpMyAdmin](https://phpmyadmin.hostsharing.net/current).
PostgreSQL [phpPgAdmin](https://phppgadmin.hostsharing.net/current).
- Für PostgreSQL: [phpPgAdmin](https://phppgadmin.hostsharing.net/current).
source/referenz/datenbanken/datenbank-zugriff/index.md
@@ -2,11 +2,9 @@
Der Zugriff erfolgt über folgende Hosts und Ports:
+-----------+-----------+------+
| Datenbank | Hostnamen | Port |
+===========+===========+======+
| > MySQL   | localhost | 3306 |
+-----------+-----------+------+
| P         | localhost | 5432 |
| ostgreSQL |           |      |
+-----------+-----------+------+
| Datenbank  | Hostnamen | Port |
|:-----------|:----------|:-----|
| MySQL      | localhost | 3306 |
| PostgreSQL | localhost | 5432 |
  : Konfiguration Datenbankzugriff
source/referenz/datenbanken/datenbanken-nutzer/index.md
@@ -1,19 +1,14 @@
# Datenbanken und Nutzer
Datenbanknutzer haben eine eigene Nutzerverwaltung und sind unabhängig
von der Vergabe von Rechten auf Betriebsystemebene.
Datenbanknutzer haben eine eigene Nutzerverwaltung und sind unabhängig von der Vergabe von Rechten auf Betriebsystemebene.
## Verwaltung der Datenbanken und Datenbanknutzer
Die Verwaltung von Datenbanken und
`Nutzern<../benutzer/index>`{.interpreted-text role="doc"} erfolgt mit
`HSAdmin`{.interpreted-text role="term"} über ein Webfrontend oder über
die `shell`{.interpreted-text role="term"}.
Die Verwaltung von Datenbanken und Nutzern erfolgt mit HSAdmin über ein Webfrontend oder über die `shell`.
## Rechte
Datenbanknutzern müssen initial die gewünschten Rechte an den
entsprechenden Datenbanken vergeben werden.
Datenbanknutzern müssen initial die gewünschten Rechte an den entsprechenden Datenbanken vergeben werden.
## Name
source/referenz/datenbanken/index.md
@@ -1,19 +1,6 @@
# Datenbanken {#kap-ref-db}
Jeder `Hive`{.interpreted-text role="term"} hat einen eigenen MySQL- und
PostgreSQL-Datenbankserver. Daraus ergibt sich, dass der jeweilige
MySQL- und PostgreSQL-Server von allen auf einem Hive eingerichteten
`Web-Paketen<../webpaket/index>`{.interpreted-text role="doc"} gemeinsam
genutzt wird.
Jeder Hive hat einen eigenen MySQL- und PostgreSQL-Datenbankserver.
Daraus ergibt sich, dass der jeweilige MySQL- und PostgreSQL-Server von allen auf einem Hive eingerichteten Web-Paketen gemeinsam genutzt wird.
Der externe Zugriff auf die Datenbanken ist über einen SSH-Tunnel
möglich.
Inhalt:
::: {.toctree maxdepth="1
datenbanken-nutzer
datenbank-zugriff
datenbank-webfrontend"}
:::
Der externe Zugriff auf die Datenbanken ist über einen SSH-Tunnel möglich.
source/referenz/email/autoconfig/index.md
@@ -1,39 +1,18 @@
# E-Mail Auto-Konfiguration {#kap-ref-mailautoconfig}
Die Domain-Option \"E-Mail Auto-Konfiguration\" ermöglicht das einfache
Konfigurieren der E-Mail-Clients mit den Daten des Posteingangs- und
Postausgangsservers. Wird diese Domain-Option für z.B. `example.com`
aktiviert, und ist der E-Mail-Adresse `fred@example.com` (evtl. nach
mehreren Weiterleitungen) bei Hostsharing genau ein Postfach zugeordnet,
dann reicht es bei den gängigsten E-Mail-Clients aus, zur Einrichtung
des Postfaches die E-Mail-Adresse und das jeweilige Passwort anzugeben.
Die restlichen Einstellungen (Server, Postfach/Benutzername, Protokoll,
Port etc.) werden automatisch durch den E-Mail-Client von Hostsharing
abgerufen und sodann automatisch konfiguriert.
Die Domain-Option *E-Mail Auto-Konfiguration* ermöglicht das einfache Konfigurieren der E-Mail-Clients mit den Daten des Posteingangs- und Postausgangsservers.
Wird diese Domain-Option für z.B. `example.com` aktiviert, und ist der E-Mail-Adresse `fred@example.com` (evtl. nach mehreren Weiterleitungen) bei Hostsharing genau ein Postfach zugeordnet, dann reicht es bei den gängigsten E-Mail-Clients aus, zur Einrichtung des Postfaches die E-Mail-Adresse und das jeweilige Passwort anzugeben.
Die restlichen Einstellungen (Server, Postfach/Benutzername, Protokoll, Port etc.) werden automatisch durch den E-Mail-Client von Hostsharing abgerufen und sodann automatisch konfiguriert.
Dies vereinfacht aus Nutzersicht die Einrichtung eines
Hostsharing-Postfaches im eigenen E-Mail-Client erheblich.
Dies vereinfacht aus Nutzersicht die Einrichtung eines Hostsharing-Postfaches im eigenen E-Mail-Client erheblich.
Das Verfahren kann aus mehreren Gründen scheitern:
-   Der E-Mail-Client des Nutzers unterstützt \"autoconfig\" und
    \"autodiscover\" nicht. Thunderbird ab Version 3.1 und Outlook ab
    Version 2007 sollten funktionieren.
-   Die Domain-Option `E-Mail Auto-Konfiguration` (siehe
    `kap-domain-optionen`{.interpreted-text role="numref"}) wurde erst
    *nach* einem gescheiterten Konfigurationsversuch gesetzt (sie sollte
    *vorher* gesetzt werden). Vor allem Microsoft-Produkte cachen das
    Abfrageergebnis für eine E-Mail-Adresse ca. zwei Wochen in einer
    Microsoft-Cloud, so dass weitere automatische Konfigurationsversuche
    erst nach Ablauf dieser (langen) Zeit erfolgreich sind. In diesem
    Fall hilft nur, die Einstellungen im E-Mail-Client per Hand
    vorzunehmen.
-   In der Domain wird ein *eigenes* Zonenfile verwendet, in dem die
    nötigen Einträge (`MAILSERVICES_RR` und `AUTODISCOVER_RR`, siehe
    `kap-ref-zonefile-platzhalter`{.interpreted-text role="numref"})
    fehlen. Dann müssen sie per Hand ergänzt werden.
-   Der E-Mail-Client des Nutzers unterstützt ›autoconfig‹ und ›autodiscover‹ nicht.
Thunderbird ab Version 3.1 und Outlook ab Version 2007 sollten funktionieren.
-   Die Domain-Option E-Mail Auto-Konfiguration wurde erst *nach* einem gescheiterten Konfigurationsversuch gesetzt (sie sollte *vorher* gesetzt werden).
Vor allem Microsoft-Produkte cachen das Abfrageergebnis für eine E-Mail-Adresse ca. zwei Wochen in einer Microsoft-Cloud, so dass weitere automatische Konfigurationsversuche erst nach Ablauf dieser (langen) Zeit erfolgreich sind.
In diesem Fall hilft nur, die Einstellungen im E-Mail-Client per Hand vorzunehmen.
-   In der Domain wird ein *eigenes* Zonenfile verwendet, in dem die nötigen Einträge (`MAILSERVICES_RR` und `AUTODISCOVER_RR`, siehe Abschnitt [Platzhalter](#kap-ref-zonefile-platzhalter) fehlen.
Dann müssen sie per Hand ergänzt werden.
::: todo
Nachträgliche Aktivierung von autoconfig/autodiscover beschreiben.
Hinweis das Outlook Versionen das nicht unterstützen.
:::
source/referenz/email/emailalias-paketuser/index.md
@@ -2,8 +2,7 @@
Ein E-Mail-Alias ist eine E-Mail-Adresse zur Weiterleitung von E-Mails.
Ein `E-Mail-Alias`{.interpreted-text role="term"} in der
E-Mail-Konfiguration hat Vorrang vor einem Paketnutzer gleichen Namens.
Implementiert der `E-Mail-Alias`{.interpreted-text role="term"} eine
Weiterleitung, gehen in diesem Fall in der Mailbox des Paketnutzers
keine E-Mails ein.
Ein E-Mail-Alias in der E-Mail-Konfiguration hat Vorrang vor einem Paketnutzer gleichen Namens.
Implementiert der E-Mail-Alias eine Weiterleitung, gehen in diesem Fall in der Mailbox des Paketnutzers keine E-Mails ein.
<!-- todo: Letzten Satz prüfen -->
source/referenz/email/index.md
@@ -1,37 +1,21 @@
# E-Mail
Jeder `Benutzer<../benutzer/index>`{.interpreted-text role="doc"} im
`Web-Paket<../webpaket/index>`{.interpreted-text role="doc"} besitzt ein
E-Mail-Konto und kann E-Mail senden und empfangen. E-Mails werden
unterhalb des Verzeichnisses `~/Maildir` abgelegt. Der Name des Ordners
`Maildir` darf nicht verändert werden.
Jeder Benutzer im Web-Paket besitzt ein E-Mail-Konto und kann E-Mail senden und empfangen.
E-Mails werden unterhalb des Verzeichnisses `~/Maildir` abgelegt.
Der Name des Ordners `Maildir` darf nicht verändert werden.
Jedes E-Mail-Konto ist POP3- und IMAP-fähig.
Hostsharing bietet folgende Konfigurationsmöglichkeiten:
-   Anlegen und Löschen von E-Mail-Adressen
-   Anlegen und Löschen von
    `E-Mail-Aliasen <E-Mail-Alias>`{.interpreted-text role="term"}
-   Anlegen und Löschen von E-Mail-Aliasen
-   Einrichtung von E-Mail-Weiterleitungen
-   Automatisches Versenden einer E-Mail-Bestätigung
    (`Vacation`{.interpreted-text role="term"})
-   Automatisches Filtern und Bearbeiten von E-Mails über
    [Managesieve](https://wiki.hostsharing.net/index.php?title=Sieve)
    oder
    [Procmail](https://wiki.hostsharing.net/index.php?title=Procmail)
-   Mit E-Mail-Aliasen kann die Zustellung von Nachrichten in die
    Postfächer der Benutzer gesteuert werden.
-   Automatisches Versenden einer E-Mail-Bestätigung (Vacation)
-   Automatisches Filtern und Bearbeiten von E-Mails über [Managesieve](https://wiki.hostsharing.net/index.php?title=Sieve) oder [Procmail](https://wiki.hostsharing.net/index.php?title=Procmail)
-   Mit E-Mail-Aliasen kann die Zustellung von Nachrichten in die Postfächer der Benutzer gesteuert werden.
-   E-Mail-Konten bei anderen Anbietern abfragen
-   Einrichtung von Mailinglisten
Der Zugriff auf das E-Mail-Konto erfolgt über einen beliebigen
E-Mail-Client oder über `Webmail <webmail>`{.interpreted-text
role="doc"}.
Der Zugriff auf das E-Mail-Konto erfolgt über einen beliebigen E-Mail-Client oder über Webmail.
Inhalt:
::: {.toctree maxdepth="1"}
posteingangsserver postausgangsserver size-email emailalias-paketuser
webmail autoconfig
:::
source/referenz/email/postausgangsserver/index.md
@@ -1,38 +1,26 @@
# Postausgangsserver {#kap-ref-mailausgang}
Für jedes Webpaket steht ein Postausgangsserver für reguäre E-Mails und
ein Postausgangsserver für den Massenversand von E-Mails bereit.
Für jedes Webpaket steht ein Postausgangsserver für reguäre E-Mails und ein Postausgangsserver für den Massenversand von E-Mails bereit.
Unter Massenversand wird der Versand von Newslettern,
Forenbenachrichtungen, der Betrieb von Mailinglisten und ähnliche
Nutzungen im Rahmen des Zulässigen verstanden. Wählen Sie bei solchen
Massenaussendungen bitte möglichst den Postausgangsserver für den
Massenversand, da Sie so mithelfen, die Reputation unserer normalen
Ausgangsserver hoch zu halten.
Unter Massenversand wird der Versand von Newslettern, Forenbenachrichtungen, der Betrieb von Mailinglisten und ähnliche Nutzungen im Rahmen des Zulässigen verstanden.
Wählen Sie bei solchen Massenaussendungen bitte möglichst den Postausgangsserver für den Massenversand, da Sie so mithelfen, die Reputation unserer normalen Ausgangsserver hoch zu halten.
Angaben für den Postausgangsserver:
  -------------------------------------------------------------------------------------
  Postausgangsserver      Postfach/Benutzername   Protokoll   Port         Port SSL/TLS
                                                              STARTTLS
  ----------------------- ----------------------- ----------- ------------ ------------
  xyz00.hostsharing.net   xyz00-mailbox           SMTP        587 oder 25  465
| Posteingangsserver    | Postfach/Benutzer | Protokoll | STARTTLS | SSL/TLS  |
|:----------------------|:------------------|:----------|:---------|:---------|
| xyz00.hostsharing.net | xyz00-mailbox     | SMTP      | Port 587 oder 25 | Port 465 |
  -------------------------------------------------------------------------------------
  : Konfiguration Ausgangsserver
Die Konfigurationsvariante SMTP über Port 587 mit STARTTLS wird
empfohlen.
Die Konfigurationsvariante SMTP über Port 587 mit STARTTLS wird empfohlen.
Angaben für den Postausgangsserver für den Massenversand:
  -------------------------------------------------------------------------------------
  Postausgangsserver      Postfach/Benutzername   Protokoll   Port         Port SSL/TLS
                                                              STARTTLS
  ----------------------- ----------------------- ----------- ------------ ------------
  xyz00.hostsharing.net   xyz00-mailbox           SMTP        4587 oder    1465
                                                              4025
| Posteingangsserver    | Postfach/Benutzer | Protokoll | STARTTLS | SSL/TLS  |
|:----------------------|:------------------|:----------|:---------|:---------|
| xyz00.hostsharing.net | xyz00-mailbox     | SMTP      | Port 4587 oder 4025 | Port 1465 |
  -------------------------------------------------------------------------------------
  : Konfiguration Ausgangsserver Massenversand
Die Konfigurationsvariante SMTP über Port 4587 mit STARTTLS wird
empfohlen.
Die Konfigurationsvariante SMTP über Port 4587 mit STARTTLS wird empfohlen.
source/referenz/email/posteingangsserver/index.md
@@ -2,14 +2,11 @@
Angaben für den Posteingangsserver:
  -------------------------------------------------------------------------------------
  Posteingangsserver      Postfach/Benutzername   Protokoll   Port         Port SSL/TLS
                                                              STARTTLS
  ----------------------- ----------------------- ----------- ------------ ------------
  xyz00.hostsharing.net   xyz00-mailbox           POP3        110          995
| Posteingangsserver    | Postfach/Benutzer | Protokoll | STARTTLS | SSL/TLS  |
|:----------------------|:------------------|:----------|:---------|:---------|
| xyz00.hostsharing.net | xyz00-mailbox     | POP3      | Port 110 | Port 995 |
| xyz00.hostsharing.net | xyz00-mailbox     | IMAP      | Port 143 | Port 993 |
  xyz00.hostsharing.net   xyz00-mailbox           IMAP        143          993
  -------------------------------------------------------------------------------------
Die Konfigurationsvariante IMAP über Port 143 mit STARTTLS wird
empfohlen.
  : Konfiguration Eingangsserver
Die Konfigurationsvariante IMAP über Port 143 mit STARTTLS wird empfohlen.
source/referenz/email/size-email/index.md
@@ -1,7 +1,6 @@
# Größenbeschränkung einer E-Mail
Die E-Mail-Server akzeptieren E-Mails bis zu einer maximalen Größe von
128 MB. Dateianhänge sollten daher die Größe von ca. 90 MB nicht
überschreiten. Allgemeine Informationen zur [Größenbeschränkung von
E-Mails](https://wiki.hostsharing.net/index.php?title=Gr%C3%B6%C3%9Fenbeschr%C3%A4nkung_von_E-Mails)
im Wiki der Hostsharing-Mitglieder.
Die E-Mail-Server akzeptieren E-Mails bis zu einer maximalen Größe von 128 MB.
Dateianhänge sollten daher die Größe von ca.
90 MB nicht überschreiten.
Allgemeine Informationen zur [Größenbeschränkung von E-Mails](https://wiki.hostsharing.net/index.php?title=Gr%C3%B6%C3%9Fenbeschr%C3%A4nkung_von_E-Mails) im Wiki der Hostsharing-Mitglieder.
source/referenz/email/webmail/index.md
@@ -1,7 +1,4 @@
# Webmail
Hostsharing betreibt eine zentrale
[Webmail-Installation](https://webmail.hostsharing.net). Informationen
zur Einrichtung sind im Wiki der Mitglieder unter
[Webmail](https://wiki.hostsharing.net/index.php?title=Webmail) zu
finden.
Hostsharing betreibt eine zentrale [Webmail-Installation](https://webmail.hostsharing.net).
Informationen zur Einrichtung sind im Wiki der Mitglieder unter [Webmail](https://wiki.hostsharing.net/index.php?title=Webmail) zu finden.
source/referenz/hsadmin/domain/index.md
@@ -2,148 +2,109 @@
## Funktionen
::: option
domain.search
`domain.search`
Suche Domain nach den im Befehlsausdruck angegebenen Feldern und Werten
:::
: Suche Domain nach den im Befehlsausdruck angegebenen Feldern und Werten
::: option
domain.add
`domain.add`
Füge eine neue Domain nach den im Befehlsausdruck angegebenen Feldern
und Werten hinzu.
:::
: Füge eine neue Domain nach den im Befehlsausdruck angegebenen Feldern und Werten hinzu.
::: option
domain.update
`domain.update`
Aktualisiere eine Domain nach den im Befehlsausdruck angegebenen Feldern
und Werten.
:::
: Aktualisiere eine Domain nach den im Befehlsausdruck angegebenen Feldern und Werten.
::: option
domain.remove
`domain.remove`
Lösche eine Domain nach den im Befehlsausdruck angegebenen Feldern und
Werten.
:::
: Lösche eine Domain nach den im Befehlsausdruck angegebenen Feldern und Werten.
## Editierbare Felder
Das HSAdmin-Modul `domain` kann entsprechend der folgenden Befehlssyntax
von `HSAdmin`{.interpreted-text role="command"} Felder setzen oder
verändern:
Das HSAdmin-Modul `domain` kann entsprechend der folgenden Befehlssyntax von `HSAdmin` Felder setzen oder verändern:
    domain.function({where:{field:'value',...}, set:{field:'value',...}})
Im Modul `domain` stehen folgende Felder zur Verfügung.
name
`name`
:   Name einer Domain
user
`user`
:   Name des Domain-Admins
validsubdomainnames
`validsubdomainnames`
:   leichtgewichtige Subdomains in diesem Virtual-Host des Webservers,
    gültige Werte: `*` für beliebige Subdomains oder eine
    kommaseparierte Liste: `www,blog,other`
:   leichtgewichtige Subdomains in diesem Virtual-Host des Webservers, gültige Werte: `*` für beliebige Subdomains oder eine kommaseparierte Liste: `www,blog,other`
greylisting
`greylisting`
:   E-Mails werden verzögert durch den Mailserver angenommen, siehe
    `Greylisting`{.interpreted-text role="term"}. Ist die Option
    deaktivert, werden E-Mails ohne Verzögerung angenommen.
:   E-Mails werden verzögert durch den Mailserver angenommen, siehe `Greylisting`.
Ist die Option deaktivert, werden E-Mails ohne Verzögerung angenommen.
multiviews
`multiviews`
:   Der Webserver berücksichtigt Einstellungen im Browser beim Abruf
    einer Domain (z.B. eine bevorzugte Sprache). Die Option kann mit
    einer `.htaccess`{.interpreted-text role="term"}-Datei für jedes
    Verzeichnis konfiguriert werden.
:   Der Webserver berücksichtigt Einstellungen im Browser beim Abruf einer Domain (z.B. eine bevorzugte Sprache).
Die Option kann mit einer `.htaccess`-Datei für jedes Verzeichnis konfiguriert werden.
indexes
`indexes`
:   Der Webserver erzeugt für Verzeichnisse, die keine eigene
    Index-Datei enthalten, eine Liste mit den im Verzeichnis enthaltenen
    Dateien. Ist die Option deaktiviert, wird ein Fehler 303 ausgegeben.
    Die Option kann mit einer .htaccess-Datei für jedes Verzeichnis
    konfiguriert werden.
:   Der Webserver erzeugt für Verzeichnisse, die keine eigene Index-Datei enthalten, eine Liste mit den im Verzeichnis enthaltenen Dateien.
Ist die Option deaktiviert, wird ein Fehler 303 ausgegeben.
Die Option kann mit einer .htaccess-Datei für jedes Verzeichnis konfiguriert werden.
htdocsfallback
`htdocsfallback`
:   Der Webserver leitet auf die Hauptdomain, wenn keine Sub-Domain
    angelegt ist. Ist die Option deaktivert, wird ein Fehler 404
    ausgegeben: Seite nicht gefunden.
:   Der Webserver leitet auf die Hauptdomain, wenn keine Sub-Domain angelegt ist.
Ist die Option deaktivert, wird ein Fehler 404 ausgegeben: Seite nicht gefunden.
includes
`includes`
:   Der Webserver erkennt `SSI`{.interpreted-text role="term"}-Komandos
    und -Dateien. Die Option kann mit einer .htaccess-Datei für jedes
    Verzeichnis konfiguriert werden.
:   Der Webserver erkennt `SSI`-Komandos und -Dateien.
Die Option kann mit einer .htaccess-Datei für jedes Verzeichnis konfiguriert werden.
backupmxforexternalmx
`backupmxforexternalmx`
:   Der Paket-Hive wird als Weiterleitung (transport) beim
    Mail-In-Server eingetragen. Ist die Option aktiv, ist der
    Hostsharing-Mail-In-Server Backup-MX. Der eigentliche Mailserver
    befindet sich außerhalb der Infrastruktur von Hostsharing (z.B.
    anderer Provider, DSL-Anschluss mit fester IP)
:   Der Paket-Hive wird als Weiterleitung (transport) beim Mail-In-Server eingetragen.
Ist die Option aktiv, ist der Hostsharing-Mail-In-Server Backup-MX.
Der eigentliche Mailserver befindet sich außerhalb der Infrastruktur von Hostsharing (z.B.
anderer Provider, DSL-Anschluss mit fester IP)
letsencrypt
`letsencrypt`
:   Es wird automatisch ein TLS Zertifikat für diese Domain und alle im
    Feld „validsubdomainnames" angegebenen Subdomains erzeugt
:   Es wird automatisch ein TLS Zertifikat für diese Domain und alle im Feld „validsubdomainnames" angegebenen Subdomains erzeugt
autoconfig
`autoconfig`
:   Eine Unterstützung für die Konfiguration von E-Mail-Programmen durch
    die Verfahren \"Autoconfig\" (Mozilla) und \"Autodiscover\"
    (Microsoft) wird für die Domain eingeschaltet
:   Eine Unterstützung für die Konfiguration von E-Mail-Programmen durch die Verfahren \"Autoconfig\" (Mozilla) und \"Autodiscover\" (Microsoft) wird für die Domain eingeschaltet
::: note
::: title
Note
:::
Die Option `backupmxforexternalmx` erfordert Änderungen am
`Zonefile<../zonefile/index>`{.interpreted-text role="doc"} einer
Domain.
:::
::: note
Die Option `backupmxforexternalmx` erfordert Änderungen am `Zonefile<../zonefile/index>`{.interpreted-text role="doc"} einer Domain. :::
## Beispiele
Mit dem folgenden Befehl schalten wir die Domain `hs-example.de` auf und
ordnen Sie dem Domain-Admin `xyz00-hsexample` zu.
Mit dem folgenden Befehl schalten wir die Domain `hs-example.de` auf und ordnen Sie dem Domain-Admin `xyz00-hsexample` zu.
``` console
xyz00@hsadmin> domain.add({set:{name:'hs-example.de',user:'xyz00-hsexample'}})
```
Mit dem Befehl `domain.search`{.interpreted-text role="option"} werden
alle Informationen zu einer Domain angezeigt. Die gesuchte Domain wird
mit dem Befehlsausdruck `where` ausgewählt.
Mit dem Befehl `domain.search` werden alle Informationen zu einer Domain angezeigt.
Die gesuchte Domain wird mit dem Befehlsausdruck `where` ausgewählt.
``` console
xyz00@hsadmin> domain.search({where:{name:'hs-example.de'}})
```
Und mit dem Befehl `domain.remove`{.interpreted-text role="option"}
können wir eine Domain entfernen.
Und mit dem Befehl `domain.remove` können wir eine Domain entfernen.
``` console
xyz00@hsadmin> domain.remove({where:{name:'hs-example.de'}})
```
Mit dem Befehl `domain.update`{.interpreted-text role="option"} lassen
sich die Einstellungen für eine Domain verändern. Bei einer Änderung der
Domain-Optionen, wie im folgenden Beispiel, müssen immer alle Optionen
angegeben werden, die gesetzt sein sollen, da der Befehl die bereits
gesetzten Domain-Optionen komplett überschreibt.
Mit dem Befehl `domain.update` lassen sich die Einstellungen für eine Domain verändern.
Bei einer Änderung der Domain-Optionen, wie im folgenden Beispiel, müssen immer alle Optionen angegeben werden, die gesetzt sein sollen, da der Befehl die bereits gesetzten Domain-Optionen komplett überschreibt.
``` console
xyz00@hsadmin> domain.update({where:{name:'hs-example.de'},set:{domainoptions:['htdocsfallback','indexes','greylisting','letsencrypt','autoconfig']}})
source/referenz/hsadmin/index.md
@@ -1,66 +1,33 @@
# HSAdmin {#kap-hsadmin}
HSAdmin ist ein Werkzeug zur Verwaltung von Nutzern, E-Mail-Adressen,
E-Mail-Aliases, Domains, Datenbanken und Datenbank-Nutzern. Die
Bedienung erfolgt über ein Webfrontend, das in
`kap-hsadmin-einstieg`{.interpreted-text role="numref"} vorgestellt
wird.
HSAdmin ist ein Werkzeug zur Verwaltung von Nutzern, E-Mail-Adressen, E-Mail-Aliases, Domains, Datenbanken und Datenbank-Nutzern.
Die Bedienung erfolgt über ein Webfrontend, das in `kap-hsadmin-einstieg`{.interpreted-text role="numref"} vorgestellt wird.
In diesem Kapitel geht es um den HSAdmin-Client
`hsscript`{.interpreted-text role="command"}, der in der Konsole benutzt
wird.
::: program
hsscript
:::
In diesem Kapitel geht es um den HSAdmin-Client `hsscript`{.interpreted-text role="command"}, der in der Konsole benutzt wird.
HSAdmin verfügt über folgende Module:
  ----------------------------------------------------------------------------------------------
  Modul                                                Erläuterung
  ---------------------------------------------------- -----------------------------------------
  `user<user>`{.interpreted-text role="doc"}           Modul zur Nutzerverwaltung
| Modul            | Erläuterung                                          |
|:-----------------|:-----------------------------------------------------|
| `user`           | Modul zur Nutzerverwaltung                           |
| `mysqldb`        | Modul zur Verwaltung von MySQL-Datenbanken           |
| `mysqluser`      | Modul zur Verwaltung vom MySQL-Datenbanknutzern      |
| `postgresqldb`   | Modul zur Verwaltung von PostgreSQL-Datenbanken      |
| `postgresqluser` | Modul zur Verwaltung von PostgreSQL-Datenbanknutzern |
| `emailaddress`   | Modul zur Verwaltung von E-Mail-Adressen             |
| `emailalias`     | Modul zur Verwaltung von E-Mail-Aliasen              |
| `domain`         | Modul zur Verwaltung von Domains in einem Web-Paket  |
| `q`              | Modul zur Suche von Systemaufträgen von HSAdmin      |
  `mysqldb<mysqldb>`{.interpreted-text role="doc"}     Modul zur Verwaltung von
                                                       MySQL-Datenbanken
  `mysqluser<mysqluser>`{.interpreted-text role="doc"} Modul zur Verwaltung vom
                                                       MySQL-Datenbanknutzern
  `postgresqldb<postgresqldb>`{.interpreted-text       Modul zur Verwaltung von
  role="doc"}                                          PostgreSQL-Datenbanken
  `postgresqluser<postgresqluser>`{.interpreted-text   Modul zur Verwaltung von
  role="doc"}                                          PostgreSQL-Datenbanknutzern
  `emailaddress<emailaddress>`{.interpreted-text       Modul zur Verwaltung von E-Mail-Adressen
  role="doc"}
  `emailalias<emailaliases>`{.interpreted-text         Modul zur Verwaltung von E-Mail-Aliasen
  role="doc"}
  `domain<domain>`{.interpreted-text role="doc"}       Modul zur Verwaltung von Domains in einem
                                                       Web-Paket
  `q<q>`{.interpreted-text role="doc"}                 Modul zur Suche von Systemaufträgen von
                                                       HSAdmin
  ----------------------------------------------------------------------------------------------
  : Die Module von HSAdmin
Die HSAdmin-Module verfügen über folgenden Funktionen:
  ---------------------------------
  Funktion         Erläuterung
  ---------------- ----------------
  search           suchen
| Funktion | Erläuterung   |
|:---------|:--------------|
| search   | suchen        |
| add      | hinzufügen    |
| update   | aktualisieren |
| remove   | löschen       |
  add              hinzufügen
  update           aktualisieren
  remove           löschen
  ---------------------------------
::: {.toctree maxdepth="1"}
syntax user domain mysqldb mysqluser postgresqldb postgresqluser
emailaddress emailaliases q skript webfrontend
:::
  : Die Funktionen von HSAdmin
source/referenz/hsadmin/mysqldb/index.md
@@ -2,77 +2,59 @@
## Funktionen
::: option
mysqldb.search
`mysqldb.search`
Suche Datenbank nach den im Befehlsausdruck angegebenen Feldern und
Werten
:::
: Suche Datenbank nach den im Befehlsausdruck angegebenen Feldern und Werten
::: option
mysqldb.add
`mysqldb.add`
Füge eine neue Datenbank nach den im Befehlsausdruck angegebenen Feldern
und Werten hinzu.
:::
: Füge eine neue Datenbank nach den im Befehlsausdruck angegebenen Feldern und Werten hinzu.
::: option
mysqldb.update
`mysqldb.update`
Aktualisiere eine Datenbank nach den im Befehlsausdruck angegebenen
Feldern und Werten.
:::
: Aktualisiere eine Datenbank nach den im Befehlsausdruck angegebenen Feldern und Werten.
::: option
mysqldb.remove
`mysqldb.remove`
Lösche eine Datenbank nach den im Befehlsausdruck angegebenen Feldern
und Werten.
:::
: Lösche eine Datenbank nach den im Befehlsausdruck angegebenen Feldern und Werten.
## Editierbare Felder
Das HSAdmin-Modul `mysqldb` kann entsprechend der folgenden
Befehlssyntax von `HSAdmin`{.interpreted-text role="command"} Felder
setzen oder verändern:
Das HSAdmin-Modul `mysqldb` kann entsprechend der folgenden Befehlssyntax von `HSAdmin` Felder setzen oder verändern:
    mysqldb.function({where:{field:'value',...}, set:{field:'value',...}})
Im Modul `mysqldb` stehen folgende Felder zur Verfügung.
name
`name`
:   Datenbankname (z.B. xyz00_abc)
owner
`owner`
:   Datenbanknutzer (z.B. xyz00_owner)
encoding
`encoding`
:   Zeichensatz der Datenbank (Standard ist UTF-8)
## Beispiele
Im ersten Beispiel erzeugen wir eine Datenbank mit dem Namen `xyz00_abc`
und legen als Besitzer den Datenbanknutzer `xyz00_owner` fest.
Im ersten Beispiel erzeugen wir eine Datenbank mit dem Namen `xyz00_abc` und legen als Besitzer den Datenbanknutzer `xyz00_owner` fest.
``` console
xyz00@hsadmin> mysqldb.add ({set:{name:'xyz00_abc',owner:'xyz00_owner'}})
```
Bevor man Änderungen an einem Datensatz vornimmt, kann man sich alle
Eigenschaften einer Datenbank mit dem Befehl
`mysqldb.search`{.interpreted-text role="option"} anzeigen lassen. Die
gewünschte Datenbank wird mit dem Befehlsausdruck `where` ausgewählt.
Bevor man Änderungen an einem Datensatz vornimmt, kann man sich alle Eigenschaften einer Datenbank mit dem Befehl `mysqldb.search` anzeigen lassen.
Die gewünschte Datenbank wird mit dem Befehlsausdruck `where` ausgewählt.
``` console
xyz00@hsadmin> mysqldb.search ({where:{name:'xyz00_abc'}})
```
Und mit dem Befehl `mysqldb.remove`{.interpreted-text role="option"}
können Datenbanken gelöscht werden. Die gewünschte Datenbank wird erneut
mit dem Befehlsausdruck `where` ausgewählt.
Und mit dem Befehl `mysqldb.remove` können Datenbanken gelöscht werden.
Die gewünschte Datenbank wird erneut mit dem Befehlsausdruck `where` ausgewählt.
``` console
xyz00@hsadmin> mysqldb.remove ({where:{name:'xyz00_abc'}})
source/referenz/hsadmin/mysqluser/index.md
@@ -2,77 +2,57 @@
## Funktionen
::: option
mysqluser.search
`mysqluser.search`
Suche Datenbank-Benutzer nach den im Befehlsausdruck angegebenen Feldern
und Werten
:::
: Suche Datenbank-Benutzer nach den im Befehlsausdruck angegebenen Feldern und Werten
::: option
mysqluser.add
`mysqluser.add`
Füge einen neuen Datenbank-Benutzer nach den im Befehlsausdruck
angegebenen Feldern und Werten hinzu.
:::
: Füge einen neuen Datenbank-Benutzer nach den im Befehlsausdruck angegebenen Feldern und Werten hinzu.
::: option
mysqluser.update
`mysqluser.update`
Aktualisiere einen Datenbank-Benutzer nach den im Befehlsausdruck
: Aktualisiere einen Datenbank-Benutzer nach den im Befehlsausdruck
angegebenen Feldern und Werten.
:::
::: option
mysqluser.remove
`mysqluser.remove´
Lösche einen Datenbank-Benutzer nach den im Befehlsausdruck angegebenen
Feldern und Werten.
:::
: Lösche einen Datenbank-Benutzer nach den im Befehlsausdruck angegebenen Feldern und Werten.
## Editierbare Felder
Das HSAdmin-Modul `mysqluser` kann entsprechend der folgenden
Befehlssyntax von `HSAdmin`{.interpreted-text role="command"} Felder
setzen oder verändern:
Das HSAdmin-Modul `mysqluser` kann entsprechend der folgenden Befehlssyntax von `HSAdmin` Felder setzen oder verändern:
    mysqluser.function({where:{field:'value',...}, set:{field:'value',...}})
Im Modul `mysqluser` stehen folgende Felder zur Verfügung.
name
`name`
:   Name des Datenbank-Benutzers (z.B. `xyz00_owner`)
password
`password`
:   Passwort des Datenbank-Benutzers
## Beispiele
Im ersten Beispiel fügen wir dem System den Datenbank-Benutzer
`xyz00_owner` hinzu und geben ihm ein Passwort.
Im ersten Beispiel fügen wir dem System den Datenbank-Benutzer `xyz00_owner` hinzu und geben ihm ein Passwort.
``` console
xyz00@hsadmin> mysqluser.add({set:{name:'xyz00_owner',password:'!1?2-3aBc'}})
```
In den folgenden beiden Beispielen lassen wir uns zunächst mit dem
Befehl `mysqluser.search`{.interpreted-text role="option"} die
Informationen zu einem Benutzer anzeigen, den wir mit dem
Befehlsausdruck `where` auswählen. Anschließend entfernen wir diesen
Nutzer mit dem Befehl `mysqluser.remove`{.interpreted-text
role="option"}.
In den folgenden beiden Beispielen lassen wir uns zunächst mit dem Befehl `mysqluser.search` die Informationen zu einem Benutzer anzeigen, den wir mit dem Befehlsausdruck `where` auswählen.
Anschließend entfernen wir diesen Nutzer mit dem Befehl `mysqluser.remove`.
``` console
xyz00@hsadmin> mysqluser.search({where:{name:'xyz00_owner'}})
xyz00@hsadmin> mysqluser.remove({where:{name:'xyz00_owner'}})
```
Im letzten Beispiel aktualieren wir einen Benutzereintrag mit dem Befehl
`mysqluser.update`{.interpreted-text role="option"}. Der Benutzer wird
mit `where` ausgesucht, anschließend bekommt er mit `set` ein neues
Passwort.
Im letzten Beispiel aktualieren wir einen Benutzereintrag mit dem Befehl `mysqluser.update`.
Der Benutzer wird mit `where` ausgesucht, anschließend bekommt er mit `set` ein neues Passwort.
``` console
xyz00@hsadmin> mysqluser.update({where:{name:'xyz00_owner'},set:{password:'neues-passwort'}})
source/referenz/hsadmin/syntax/index.md
@@ -1,9 +1,7 @@
# Syntax {#kap-hsadmin-syntax}
Die Funktionen von HSAdmin können über das Kommandozeilenprogramm
`hsscript`{.interpreted-text role="command"} aufgerufen werden, welches
Befehle per Parameter, Dateiübergabe oder interaktiv entgegennimmt. Der
Aufruf erfolgt nach folgender Syntax:
Die Funktionen von HSAdmin können über das Kommandozeilenprogramm `hsscript` aufgerufen werden, welches Befehle per Parameter, Dateiübergabe oder interaktiv entgegennimmt.
Der Aufruf erfolgt nach folgender Syntax:
``` console
$ hsscript -u <Benutzer> -e <Befehl>...
@@ -11,55 +9,42 @@
Die folgenden Optionen können übergeben werden.
::: option
-u \--user
`-u \--user`
Benutzer, welcher zur Authentifizierung und Autorisierung verwendet
werden soll, zum Beispiel `xyz00`.
:::
:  Benutzer, welcher zur Authentifizierung und Autorisierung verwendet werden soll, zum Beispiel `xyz00`.
::: option
-r \--runas
`-r \--runas`
Benutzer, mit dessen Rechten der Befehl ausgeführt werden soll, zum
Beispiel `xzy00-doms`.
:::
:  Benutzer, mit dessen Rechten der Befehl ausgeführt werden soll, zum Beispiel `xzy00-doms`.
::: option
-e \--expr
`-e \--expr`
Der Befehl, der ausgeführt werden soll. Er setzt sich aus einer Reihe
von Parametern zusammen. Der Befehl hat folgende Syntax:
:  Der Befehl, der ausgeführt werden soll.
Er setzt sich aus einer Reihe von Parametern zusammen.
Der Befehl hat folgende Syntax:
    module.function({where:{field:'value',...}, set:{field:'value',...}}) 
  --------------------------------------------------------------------------
  Parameter   Erläuterung
  ----------- --------------------------------------------------------------
  module      Modul, dessen Funktion aufgerufen werden soll (z.B. `user`
              oder `mysqldb`)
  function    Funktion, welche aufgerufen werden soll (`search`, `add`,
              `update`, `remove`)
| Parameter | Erläuterung                                                                   |
|:-------------------|:------------------------------------------------------------------------------|
| module    | Modul, dessen Funktion aufgerufen werden soll (z.B. `user`   oder `mysqldb`)  |
| function  | Funktion, welche aufgerufen werden soll (`search`, `add`, `update`, `remove`) |
| where     | selektiert nach Wert eines oder mehrerer Felder                               |
| set       | setzt oder aktualisiert den Wert eines oder mehrerer Felder                   |
  where       selektiert nach Wert eines oder mehrerer Felder
  set         setzt oder aktualisiert den Wert eines oder mehrerer Felder
  --------------------------------------------------------------------------
  : Die Parameter
Die Module und Funktionen werden in den folgenden Kapiteln erklärt.
:::
::: option
-f \--file
`-f \--file`
Datei, aus welcher Befehle gelesen und ausgeführt werden sollen. Lesen
Sie dazu `kap-hsscript-skript`{.interpreted-text role="numref"}.
:::
: Datei, aus welcher Befehle gelesen und ausgeführt werden sollen.
Lesen Sie dazu `kap-hsscript-skript`{.interpreted-text role="numref"}.
::: option
-i \--interactive
`-i \--interactive`
Das Programm startet im interaktiven Modus. Die Befehle können am
Kommandozeilen-Prompt eingegeben werden.
:::
: Das Programm startet im interaktiven Modus.
Die Befehle können am Kommandozeilen-Prompt eingegeben werden.
source/referenz/hsadmin/user/index.md
@@ -2,74 +2,59 @@
## Funktionen
::: option
user.search
`user.search`
Suche Benutzer nach den im Befehlsausdruck angegebenen Feldern und
Werten
:::
: Suche Benutzer nach den im Befehlsausdruck angegebenen Feldern und Werten
::: option
user.add
`user.add`
Füge einen neuen Benutzer nach den im Befehlsausdruck angegebenen
Feldern und Werten hinzu.
:::
: Füge einen neuen Benutzer nach den im Befehlsausdruck angegebenen Feldern und Werten hinzu.
::: option
user.update
`user.update`
Aktualisiere einen Benutzer nach den im Befehlsausdruck angegebenen
Feldern und Werten.
:::
: Aktualisiere einen Benutzer nach den im Befehlsausdruck angegebenen Feldern und Werten.
::: option
user.remove
`user.remove`
Lösche einen Benutzer nach den im Befehlsausdruck angegebenen Feldern
und Werten.
:::
: Lösche einen Benutzer nach den im Befehlsausdruck angegebenen Feldern und Werten.
## Editierbare Felder
Das HSAdmin-Modul `user` kann entsprechend der folgenden Befehlssyntax
von `HSAdmin`{.interpreted-text role="command"} Felder setzen oder
verändern:
Das HSAdmin-Modul `user` kann entsprechend der folgenden Befehlssyntax von `HSAdmin` Felder setzen oder verändern:
    user.function({where:{field:'value',...}, set:{field:'value',...}})
Im Modul `user` stehen folgende Felder zur Verfügung.
name
`name`
:   Benutzerkennung (z.B. xyz00-abc)
comment
`comment`
:   Kommentar, in dem zum Beispiel die Funktion des Benutzers
    beschrieben werden kann
password
`password`
:   Das Passwort
shell
`shell`
:   Die zugewiesene Shell (z.B. `/bin/bash`)
quota_softlimit
`quota_softlimit`
:   Das zugewiesene `Quota`{.interpreted-text role="term"} in Megabyte
:   Das zugewiesene Quota in Megabyte
quote_hardlimit
`quote_hardlimit`
:   Grenze der `Grace Period`{.interpreted-text role="term"}, bis zu der
    Überschreitungen des Softlimit toleriert werden. Angabe in Megabyte
:   Grenze der Grace Period, bis zu der Überschreitungen des Softlimit toleriert werden.
Angabe in Megabyte
## Beispiele
In einer interaktiven Sitzung wird mit folgendem Befehl der neue
Benutzer `xyz00-mustermann` angelegt.
In einer interaktiven Sitzung wird mit folgendem Befehl der neue Benutzer `xyz00-mustermann` angelegt.
``` console
xyz00@hsadmin> user.add ({set:{name:'xyz00-mustermann',comment:'Max Mustermann',password:'!1?2-3aBc',shell:'/bin/bash'}})
@@ -81,13 +66,11 @@
xyz00@hsadmin> user.search ({where:{name:'xyz00-mustermann'}})
```
Einstellungen können nachträglich verändert werden. Dafür wird der
Befehl `user.update`{.interpreted-text role="option"} benutzt. Im
Befehlsausdruck wird zunächst mit `where` nach einem Datensatz gesucht,
auf den mit `set` die Veränderung angewendet wird. Im ersten Beispiel
wird für den Benutzer `xyz00-mustermann` ein neues Passwort gesetzt. Im
zweiten Beispiel bekommt der Benutzer eine andere Shell zugewiesen und
im dritten wird ein Quota gesetzt.
Einstellungen können nachträglich verändert werden.
Dafür wird der Befehl `user.update` benutzt.
Im Befehlsausdruck wird zunächst mit `where` nach einem Datensatz gesucht, auf den mit `set` die Veränderung angewendet wird.
Im ersten Beispiel wird für den Benutzer `xyz00-mustermann` ein neues Passwort gesetzt.
Im zweiten Beispiel bekommt der Benutzer eine andere Shell zugewiesen und im dritten wird ein Quota gesetzt.
``` console
xyz00@hsadmin> user.update ({where:{name:'xyz00-mustermann'},set:{password:'neues-passwort'}})
@@ -95,10 +78,8 @@
xyz00@hsadmin> user.update ({where:{name:'xyz00-mustermann'},set:{quota_softlimit:'50',quota_hardlimit:'75'}})
```
Natürlich können wir Benutzer mit Hilfe des Kommandozeilen-Tools auch
wieder entfernen. Im folgenden Beispiel wird der Benutzer
`xyz00-mustermann` mit dem Befehl `user.remove`{.interpreted-text
role="option"} gelöscht.
Natürlich können wir Benutzer mit Hilfe des Kommandozeilen-Tools auch wieder entfernen.
Im folgenden Beispiel wird der Benutzer `xyz00-mustermann` mit dem Befehl `user.remove` gelöscht.
``` console
xyz00@hsadmin> user.remove ({where:{name:'xyz00-mustermann'}})
source/referenz/tls/eigene-tls-zertifikate/index.md
@@ -1,17 +1,10 @@
# Zertifikate einer Zertifizierungsstelle
Für die Installation eines Zertifikate einer Zertifizierungsstelle muss
der `Paket-Admin`{.interpreted-text role="role"} einen ›Private Key‹ und
einen CSR (Certificate Signing Request) erzeugen. Die Vorgehensweise ist
in der Regel auf den Webseiten der Zertifizierungsstelle beschrieben.
Weitere Hinweise sind im Hostsharing Wiki unter
[TLS/SSL](https://wiki.hostsharing.net/index.php?title=TLS_/_SSL)
beschrieben.
Für die Installation eines Zertifikate einer Zertifizierungsstelle muss der Paket-Admin einen ›Private Key‹ und einen CSR (Certificate Signing Request) erzeugen.
Die Vorgehensweise ist in der Regel auf den Webseiten der Zertifizierungsstelle beschrieben.
Weitere Hinweise sind im Hostsharing Wiki unter [TLS/SSL](https://wiki.hostsharing.net/index.php?title=TLS_/_SSL) beschrieben.
Für die Aktivierung des Zertifikates wird ein Auftrag an
<service@hostsharing.net> gesendet. Die Aktivierung des Zertifikats
durch den Service ist kostenpflichtig.
Für die Aktivierung des Zertifikates wird ein Auftrag an <service@hostsharing.net> gesendet.
Die Aktivierung des Zertifikats durch den Service ist kostenpflichtig.
::: todo
Evtl. ausführlich beschreiben und aus Wiki übernehmen.
:::
<!-- Evtl. ausführlich beschreiben und aus Wiki übernehmen. -->
source/referenz/tls/filemap-mit-ssl/index.md
@@ -1,49 +1,36 @@
# Filemapping mit TLS
In der folgenden Grafik ist der Entscheidungsweg beschrieben, der
durchlaufen wird, um einem anfragenden Browser die richtige Datei
auszuliefern. Die Website wird über `https` aufgerufen, sodass TLS aktiv
ist.
In der folgenden Grafik ist der Entscheidungsweg beschrieben, der durchlaufen wird, um einem anfragenden Browser die richtige Datei auszuliefern.
Die Website wird über `https` aufgerufen, sodass TLS aktiv ist.
::: graphviz
filemap-mit-tls.dot
:::
![Mapping mit TLS](images/filemap-mit-tls.svg){width="100%"}
Zunächst wird für die Anfrage
`https://www.example.com/<path>`{.interpreted-text role="file"} der
Virtual Host gesucht, der zum FQDN (Fully Qualified Domain Name) passt.
Anschließend entscheiden folgende Fragen über den weiteren Verlauf des
Entscheidungswegs.
Zunächst wird für die Anfrage `https://www.example.com/<path>` der Virtual Host gesucht, der zum FQDN (Fully Qualified Domain Name) passt.
Anschließend entscheiden folgende Fragen über den weiteren Verlauf des Entscheidungswegs.
1.  Starten wir mit cgi-ssl?
    > a.  Ja: Das Verzeichnis `cgi-ssl`{.interpreted-text role="file"}
    >     wird zum Wurzelverzeichnis und eine passende Datei daraus wird
    >     ausgeliefert.
    > b.  Nein: Weiter zu Frage 2
    a. Ja: Das Verzeichnis `cgi-ssl` wird zum Wurzelverzeichnis und eine passende Datei daraus wird ausgeliefert.
    b.  Nein: Weiter zu Frage 2
2.  Starten wir mit fastcgi-ssl?
    > a.  Ja: Das Verzeichnis `fastcgi-ssl`{.interpreted-text
    >     role="file"} wird zum Wurzelverzeichnis und eine passende
    >     Datei daraus wird ausgeliefert.
    > b.  Nein aber es gibt einen FQDN-Treffer, deshalb wird
    >     `htdocs-ssl`{.interpreted-text role="file"} zum
    >     Wurzelverzeichnis und eine passende Datei daraus ausgeliefert.
    >     Ist das nicht der Fall geht es weiter zu Frage 3.
     a. Ja: Das Verzeichnis `fastcgi-ssl` wird zum Wurzelverzeichnis und eine passende Datei daraus wird ausgeliefert.
    b. Nein aber es gibt einen FQDN-Treffer, deshalb wird `htdocs-ssl` zum Wurzelverzeichnis und eine passende Datei daraus ausgeliefert.
Ist das nicht der Fall geht es weiter zu Frage 3.
3.  Gibt es eine passende Sub-Domain?
    > a.  Ja: Das Verzeichnis `subs-ssl`{.interpreted-text role="file"}
    >     wird zum Wurzelverzeichnis und eine passende Datei daraus wird
    >     ausgeliefert.
    > b.  Nein: Weiter zu Frage 4
    a. Ja: Das Verzeichnis `subs-ssl` wird zum Wurzelverzeichnis und eine passende Datei daraus wird ausgeliefert.
4.  Ist das Verzeichnis `htdocs-ssl`{.interpreted-text role="file"} als
    b.  Nein: Weiter zu Frage 4
4.  Ist das Verzeichnis `htdocs-ssl` als
    Fallback konfiguriert?
    > a.  Ja: Das Verzeichnis `htdocs-ssl`{.interpreted-text
    >     role="file"} wird zum Wurzelverzeichnis und eine passende
    >     Datei daraus ausgeliefert.
    > b.  Nein: Es wurde nichts gefunden. Wir liefern die Fehlermeldung
    >     404 aus.
    a. Ja: Das Verzeichnis `htdocs-ssl` wird zum Wurzelverzeichnis und eine passende Datei daraus ausgeliefert.
    b. Nein: Es wurde nichts gefunden.
Wir liefern die Fehlermeldung 404 aus.
source/referenz/tls/filemap-ohne-ssl/index.md
@@ -1,48 +1,44 @@
# Filemapping ohne TLS
In der folgenden Grafik ist der Entscheidungsweg beschrieben, der
durchlaufen wird, um einem anfragenden Browser die richtige Datei
auszuliefern. TLS ist nicht aktiv.
In der folgenden Grafik ist der Entscheidungsweg beschrieben, der durchlaufen wird, um einem anfragenden Browser die richtige Datei auszuliefern.
TLS ist nicht aktiv.
::: graphviz
filemap-ohne-tls.dot
:::
![Mapping ohne TLS](images/filemap-ohne-tls.svg){width="100%"}
Zunächst wird für die Anfrage
`http://www.example.com/<path>`{.interpreted-text role="file"} der
Virtual Host gesucht, der zum FQDN (Fully Qualified Domain Name) passt.
Anschließend entscheiden folgende Fragen über den weiteren Verlauf des
Entscheidungswegs.
Zunächst wird für die Anfrage `http://www.example.com/<path>` der Virtual Host gesucht, der zum FQDN (Fully Qualified Domain Name) passt.
Anschließend entscheiden folgende Fragen über den weiteren Verlauf des Entscheidungswegs.
1.  Starten wir mit cgi-bin?
1. Starten wir mit cgi-bin?
    > a.  Ja: Das Verzeichnis `cgi-bin`{.interpreted-text role="file"}
    >     wird zum Wurzelverzeichnis und eine passende Datei daraus wird
    >     ausgeliefert.
    > b.  Nein: Weiter zu Frage 2
    a.  Ja: Das Verzeichnis `cgi-bin`
    wird zum Wurzelverzeichnis und eine passende Datei daraus wird
    ausgeliefert.
    b.  Nein: Weiter zu Frage 2
2.  Starten wir mit fastcgi?
    > a.  Ja: Das Verzeichnis `fastcgi`{.interpreted-text role="file"}
    >     wird zum Wurzelverzeichnis und eine passende Datei daraus wird
    >     ausgeliefert.
    > b.  Nein aber es gibt einen FQDN-Treffer, deshalb wird
    >     `htdocs`{.interpreted-text role="file"} zum Wurzelverzeichnis
    >     und eine passende Datei daraus ausgeliefert. Ist das nicht der
    >     Fall geht es weiter zu Frage 3.
    a. Ja: Das Verzeichnis `fastcgi`
     wird zum Wurzelverzeichnis und eine passende Datei daraus wird
     ausgeliefert.
    b. Nein aber es gibt einen FQDN-Treffer, deshalb wird `htdocs` zum Wurzelverzeichnis und eine passende Datei daraus ausgeliefert.
Ist das nicht der Fall geht es weiter zu Frage 3.
3.  Gibt es eine passende Sub-Domain?
    > a.  Ja: Das Verzeichnis `subs`{.interpreted-text role="file"} wird
    >     zum Wurzelverzeichnis und eine passende Datei daraus wird
    >     ausgeliefert.
    > b.  Nein: Weiter zu Frage 4
    a.  Ja: Das Verzeichnis `subs` wird
    zum Wurzelverzeichnis und eine passende Datei daraus wird
    ausgeliefert.
4.  Ist das Verzeichnis `htdocs`{.interpreted-text role="file"} als
    b.  Nein: Weiter zu Frage 4
4.  Ist das Verzeichnis `htdocs` als
    Fallback konfiguriert?
    > a.  Ja: Das Verzeichnis `htdocs`{.interpreted-text role="file"}
    >     wird zum Wurzelverzeichnis und eine passende Datei daraus
    >     ausgeliefert.
    > b.  Nein: Es wurde nichts gefunden. Wir liefern die Fehlermeldung
    >     404 aus.
    a.  Ja: Das Verzeichnis `htdocs`
    wird zum Wurzelverzeichnis und eine passende Datei daraus
    ausgeliefert.
    b.  Nein: Es wurde nichts gefunden. Wir liefern die Fehlermeldung
    404 aus.
source/referenz/tls/index.md
@@ -1,21 +1,9 @@
# TLS Zertifikate
Transport Layer Security (TLS) ist ein Verschlüsselungsprotokoll zur
sicheren Datenübertragung im Internet. Die Vorgängerbezeichnung lautete
Secure Sockets Layer (SSL).
Transport Layer Security (TLS) ist ein Verschlüsselungsprotokoll zur sicheren Datenübertragung im Internet.
Die Vorgängerbezeichnung lautete Secure Sockets Layer (SSL).
Beim Anlegen einer Domain in HSAdmin kann als Domain-Option ein
Let\'s-Encrypt-Zertifikat erstellt werden (vgl. dazu
`kap-hsadmin-domain-anlegen`{.interpreted-text role="numref"} und
`kap-domain-optionen`{.interpreted-text role="numref"}). Daten können so
ohne weitere Vorbereitung über HTTPS ausgeliefert werden.
Beim Anlegen einer Domain in HSAdmin kann als Domain-Option ein Let's-Encrypt-Zertifikat erstellt werden (vgl.
dazu die Abschnitte [Domain in HSAdmin anlegen](#kap-hsadmin-domain-anlegen) und [Domain-Optionen ](#kap-domain-optionen).
Daten können so ohne weitere Vorbereitung über HTTPS ausgeliefert werden.
::: {.toctree maxdepth="1
standard
varianten
eigene-tls-zertifikate
letsencrypt
filemap-ohne-ssl
filemap-mit-ssl"}
:::
source/referenz/tls/letsencrypt/index.md
@@ -1,45 +1,26 @@
# Let´s Encrypt einrichten {#kap-le-einrichten}
Wenn Sie bei der Aufschaltung der Domain noch kein Let\'s Encrypt
Wenn Sie bei der Aufschaltung der Domain noch kein Let's Encrypt
Zertifikat eingerichtet haben, können Sie dies nachträglich erledigen.
Melden Sie sich mit dem Benutzernamen Ihres
`Paket-Admin`{.interpreted-text role="role"} beim Webfrontend von
HSAdmin unter <https://admin.hostsharing.net> an. Wählen Sie im linken
Feld den Eintrag `Web-Paket`{.interpreted-text role="guilabel"} aus. Im
rechten Feld aktivieren Sie den Reiter `Domain`{.interpreted-text
role="guilabel"} und wählen anschließend die Domain aus, für die Sie
Let\'s Encrypt einrichten möchten.
Melden Sie sich mit dem Benutzernamen Ihres Paket-Admin beim Webfrontend von HSAdmin unter <https://admin.hostsharing.net> an.
Wählen Sie im linken Feld den Eintrag `Web-Paket` aus.
Im rechten Feld aktivieren Sie den Reiter `Domain` und wählen anschließend die Domain aus, für die Sie Let\'s Encrypt einrichten möchten.
Klicken Sie anschließend das Editier-Symbol
`Ausgewählten Eintrag bearbeiten`{.interpreted-text role="guilabel"}, um
das Bearbeitungsmenü zu öffnen:
Klicken Sie anschließend das Editier-Symbol `Ausgewählten Eintrag bearbeiten`, um das Bearbeitungsmenü zu öffnen:
![](images/hsadmin-domain-anlegen-2.jpg)
![Domain in HSAdmin auswählen](images/hsadmin-domain-anlegen-2.jpg)
Setzen Sie anschließend im Feld `Domain-Optionen`{.interpreted-text
role="guilabel"} das Häkchen bei
`Let's Encrypt-Zertifikat`{.interpreted-text role="guilabel"}. Speichern
Sie die Einstellung mit einem Klick auf den Button
`OK`{.interpreted-text role="guilabel"}.
Setzen Sie anschließend im Feld `Domain-Optionen` das Häkchen bei `Let's Encrypt-Zertifikat`.
Speichern Sie die Einstellung mit einem Klick auf den Button `OK`.
![](images/hsadmin-domain-bearbeiten.jpg)
![Das Bearbeitungsformular einer Domain](images/hsadmin-domain-bearbeiten.jpg)
Sie können jede Subdomain, für die ein Let\'s-Encrypt-Zertifikat
erstellt werden soll, einzeln in der Liste
`gültige Subdomains`{.interpreted-text role="guilabel"} eintragen.
Alternativ können Sie das Wildcard-Symbol `*` benutzen; dann wird ein
Wildcard-Zertifikat ausgestellt, das für jede leichtgewichtige Subdomain
gültig ist. Für einzeln aufgeschaltete Subdomains müssen Sie Let\'s
Encrypt gesondert aktivieren.
Sie können jede Subdomain, für die ein Let's-Encrypt-Zertifikat erstellt werden soll, einzeln in der Liste `gültige Subdomains` eintragen.
Alternativ können Sie das Wildcard-Symbol `*` benutzen; dann wird ein Wildcard-Zertifikat ausgestellt, das für jede leichtgewichtige Subdomain gültig ist.
Für einzeln aufgeschaltete Subdomains müssen Sie Let's Encrypt gesondert aktivieren.
Bis zur Zertifizierung vergehen normalerweise nur 2-3 Minuten, es kann
jedoch auch bis zu 36 Std dauern.
Bis zur Zertifizierung vergehen normalerweise nur 2-3 Minuten, es kann jedoch auch bis zu 36 Std dauern.
Wenn die Domain oder Subdomain nicht bei Hostsharing verwaltet wird,
muss beim Domainverwalter eine Nameserver-Delegation auf die drei
DNS-Server von Hostsharing eingerichtet sein, damit
Let\'s-Encrypt-Zertifikate genutzt werden können. Die Nameserver, die an
der entsprechenden Stelle eingetragen werden müssen, heißen
`dns1.hostsharing.net`, `dns2.hostsharing.net` und
`dns3.hostsharing.net`.
Wenn die Domain oder Subdomain nicht bei Hostsharing verwaltet wird, muss beim Domainverwalter eine Nameserver-Delegation auf die drei DNS-Server von Hostsharing eingerichtet sein, damit Let's-Encrypt-Zertifikate genutzt werden können.
Die Nameserver, die an der entsprechenden Stelle eingetragen werden müssen, heißen `dns1.hostsharing.net`, `dns2.hostsharing.net` und `dns3.hostsharing.net`.
source/referenz/tls/standard/index.md
@@ -8,7 +8,5 @@
-   fastcgi-ssl
-   htdocs-ssl
von Nicht-TLS-Inhalten getrennt. Die Ordnerstruktur im Verzeichnis eines
`Domain-Admin`{.interpreted-text role="role"} wird in
`kap-einstieg-ordnerstruktur`{.interpreted-text role="numref"}
beschrieben.
von Nicht-TLS-Inhalten getrennt.
Die Ordnerstruktur im Verzeichnis eines Domain-Admin wird in Abschnitt  [Ordnerstruktur](#kap-einstieg-ordnerstruktur) beschrieben.
source/referenz/tls/varianten/index.md
@@ -2,23 +2,14 @@
## TLS-Seiten und Nicht-TLS-Seiten in einem Verzeichnis
Sollen TLS- und Nicht-TLS-Seiten innerhalb eines Verzeichnis verwaltet
werden, können die TLS-Verzeichnisse gelöscht und symbolische Links auf
Nicht-TLS Verzeichnisse angelegt werden. Dies gilt selektiv auch für
Unterverzeichnisse. Symbolische Links erlauben es, Seiten mit und ohne
TLS abzurufen.
Sollen TLS- und Nicht-TLS-Seiten innerhalb eines Verzeichnis verwaltet werden, können die TLS-Verzeichnisse gelöscht und symbolische Links auf Nicht-TLS Verzeichnisse angelegt werden.
Dies gilt selektiv auch für Unterverzeichnisse.
Symbolische Links erlauben es, Seiten mit und ohne TLS abzurufen.
::: todo
Mit einem Beispiel erklären
:::
<!-- todo: Mit einem Beispiel erklären -->
## Automatisch auf TLS
Soll nur auf bestimmten Seiten der Zugriff mit TLS erlaubt und
automatisch auf TLS umgeschaltet werden, muss dies in einer
entsprechenden .htaccess-Datei für die betroffenen Verzeichnisse
konfiguriert werden.
Soll nur auf bestimmten Seiten der Zugriff mit TLS erlaubt und automatisch auf TLS umgeschaltet werden, muss dies in einer entsprechenden .htaccess-Datei für die betroffenen Verzeichnisse konfiguriert werden.
::: todo
Mit einem Beispiel erklären
:::
<!-- todo: Mit einem Beispiel erklären -->
source/referenz/zonefile/eigenes-zonefile-deaktivieren/index.md
@@ -1,5 +1,4 @@
# Eigenes Zonefile deaktivieren
Im Verzeichnis `~/doms/example.com/etc/` das vorhandene Zonefile
(pri.example.com) leeren (0 Bytes). Das leere Zonefile wird durch einen
Robot gelöscht und es gilt das Standardzonefile.
Im Verzeichnis `~/doms/example.com/etc/` das vorhandene Zonefile (pri.example.com) leeren (0 Bytes).
Das leere Zonefile wird durch einen Robot gelöscht und es gilt das Standardzonefile.
source/referenz/zonefile/eigenes-zonefile/index.md
@@ -1,29 +1,17 @@
# Eigenes Zonefile
Es kann für jede aufgeschaltete
`Domain<../domain/index>`{.interpreted-text role="doc"} jeweils ein
eigenes Zonefiles angelegt werden. In der Regel ist dies nur bei
folgenden Anforderungen notwendig:
Es kann für jede aufgeschaltete Domain jeweils ein eigenes Zonefiles angelegt werden.
In der Regel ist dies nur bei folgenden Anforderungen notwendig:
-   Webseiten zu einer Domain oder Sub-Domain bei einem anderen Hoster
    oder auf einem eigenen Server anbieten
-   Webseiten zu einer Domain oder Sub-Domain bei einem anderen Hoster oder auf einem eigenen Server anbieten
-   Dienste (z.B. E-Mail) bei einem anderen Anbieter betreiben
In eigenen Zonefiles sollten Platzhalter verwendet werden. Diese
Platzhalter ermöglichen das Ändern der DNS-Konfiguration seitens
Hostsharing, ohne dass der Domain-Admin sein Zonefile anpassen muss. Das
Zonefile für die Domain `example.com` wird als im Verzeichnis
`~/doms/example.com/etc/` als Datei `pri.example.com` abgelegt und
einige Minuten nach dem Speichern automatisch aktiv.
In eigenen Zonefiles sollten Platzhalter verwendet werden.
Diese Platzhalter ermöglichen das Ändern der DNS-Konfiguration seitens Hostsharing, ohne dass der Domain-Admin sein Zonefile anpassen muss.
Das Zonefile für die Domain `example.com` wird als im Verzeichnis `~/doms/example.com/etc/` als Datei `pri.example.com` abgelegt und einige Minuten nach dem Speichern automatisch aktiv.
> ::: warning
> ::: title
> Warning
> :::
>
> Das unsachgemäße Erstellen oder Fehler im eigenen Zonefile können zur
> Nichterreichbarkeit der Domain und zum Verlust von E-Mails führen!
> :::
::: warning
Das unsachgemäße Erstellen oder Fehler im eigenen Zonefile können zur Nichterreichbarkeit der Domain und zum Verlust von E-Mails führen!
:::
Im Wiki der Mitglieder finden sich [Beispiele für eigene
Zonefiles](https://wiki.hostsharing.net/index.php?title=Simple_Zonefile_Howto).
Im Wiki der Mitglieder finden sich [Beispiele für eigene Zonefiles](https://wiki.hostsharing.net/index.php?title=Simple_Zonefile_Howto).
source/referenz/zonefile/index.md
@@ -1,20 +1,9 @@
# Zonefile {#kap-ref-zonefile}
Das Zonefile enthält die Konfiguration des Domain Name Service (DNS)
einer Domain. Im Zonefile wird hinterlegt, welche Hostnamen innerhalb
einer Domain existieren, auf welche IP-Adressen diese zeigen und welches
Mailsystem für eine Domain zuständig ist. Das Standardzonefile ist für
jede Domain unter `/etc/bind/pri.example.com` zu finden.
Das Zonefile enthält die Konfiguration des Domain Name Service (DNS) einer Domain.
Im Zonefile wird hinterlegt, welche Hostnamen innerhalb einer Domain existieren, auf welche IP-Adressen diese zeigen und welches Mailsystem für eine Domain zuständig ist.
Das Standardzonefile ist für jede Domain unter `/etc/bind/pri.example.com` zu finden.
Es ist möglich, ein
`eigenes Zonefile<eigenes-zonefile>`{.interpreted-text role="doc"} für
eine Domain einzusetzen. Dabei können und sollen Platzhalter verwendet
werden, die es ermöglichen, einen jeweils spezifischen Teil eines
Zonefile zu ändern.
Es ist möglich, ein eigenes Zonefile für eine Domain einzusetzen.
Dabei können und sollen Platzhalter verwendet werden, die es ermöglichen, einen jeweils spezifischen Teil eines Zonefile zu ändern.
Inhalt:
::: {.toctree maxdepth="1"}
expandiertes-standard-zonefile platzhalter expansion-platzhalter
eigenes-zonefile kontrolle-aenderungen eigenes-zonefile-deaktivieren
:::
source/referenz/zonefile/kontrolle-aenderungen/index.md
@@ -1,16 +1,13 @@
# Kontrolle der Änderungen
Durchgeführte Änderungen am Zonefile können mit Hilfe der Logdatei
named.log überprüft werden:
Durchgeführte Änderungen am Zonefile können mit Hilfe der Logdatei named.log überprüft werden:
``` console
$ tail -f /var/log/named/named.log 
$ tail -f /var/log/named/named.log | grep example.com
```
Nach einer erfolgreichen Übertragung der DNS Zone zu den drei
DNS-Servern finden sich in der Log-Datei etwa die folgenden sechs
Zeilen:
Nach einer erfolgreichen Übertragung der DNS Zone zu den drei DNS-Servern finden sich in der Log-Datei etwa die folgenden sechs Zeilen:
``` console
18-Dec-2019 12:06:27.997 info: client 83.223.95.201#53191 (example.com): transfer of 'example.com/IN': AXFR-style IXFR started (serial 1576667187)
@@ -21,14 +18,11 @@
18-Dec-2019 12:06:28.569 info: client 176.9.242.51#40371 (example.com): transfer of 'example.com/IN': AXFR-style IXFR ended
```
Zur Überprüfung von Änderungen am Zonefile kann zusätzlich die
Seriennummer in den DNS-Servern mit der aktuellen Seriennummer im
Zonefile verglichen werden:
Zur Überprüfung von Änderungen am Zonefile kann zusätzlich die Seriennummer in den DNS-Servern mit der aktuellen Seriennummer im Zonefile verglichen werden:
``` console
$ dig -t SOA @dns1.hostsharing.net example.com 
$ cat /etc/bind/pri.example.com
```
Es findet sich jeweils die Seriennummer (im obigen Log-Auszug die
\'1576667187\') im SOA Record.
Es findet sich jeweils die Seriennummer (im obigen Log-Auszug die \'1576667187\') im SOA Record.