1
0
mirror of https://github.com/Mailu/Mailu.git synced 2024-12-16 10:59:53 +02:00
Mailu/docs/mailu-network-diagram.ipynb
Florent Daigniere 79e6957be3 Update network graph
(cherry picked from commit 3e8e8cef8e)
2024-08-11 16:43:16 +00:00

615 lines
39 KiB
Plaintext

{
"cells": [
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Title: mailu Pages: 1 -->\n",
"<svg width=\"727pt\" height=\"634pt\"\n",
" viewBox=\"0.00 0.00 727.00 634.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 630)\">\n",
"<title>mailu</title>\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-630 723,-630 723,4 -4,4\"/>\n",
"<text text-anchor=\"middle\" x=\"359.5\" y=\"-7.8\" font-family=\"arial\" font-size=\"14.00\">Mailu</text>\n",
"<!-- internet -->\n",
"<g id=\"node1\" class=\"node\">\n",
"<title>internet</title>\n",
"<polygon fill=\"#d3edea\" stroke=\"#d3edea\" points=\"310,-626 256,-626 256,-590 310,-590 310,-626\"/>\n",
"<text text-anchor=\"middle\" x=\"283\" y=\"-606.1\" font-family=\"arial\" font-size=\"8.00\">Internet</text>\n",
"</g>\n",
"<!-- proxy -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>proxy</title>\n",
"<polygon fill=\"#d3edea\" stroke=\"#d3edea\" points=\"317,-545 249,-545 249,-509 317,-509 317,-545\"/>\n",
"<text text-anchor=\"middle\" x=\"283\" y=\"-525.1\" font-family=\"arial\" font-size=\"8.00\">Optional proxy</text>\n",
"</g>\n",
"<!-- internet&#45;&gt;proxy -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>internet&#45;&gt;proxy</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M255.93,-602.99C193.94,-593.79 47,-572 47,-572 47,-572 47,-563 47,-563 47,-563 170.57,-544.67 238.88,-534.54\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"239.56,-537.98 248.94,-533.05 238.53,-531.06 239.56,-537.98\"/>\n",
"<text text-anchor=\"middle\" x=\"60.5\" y=\"-565.6\" font-family=\"Times,serif\" font-size=\"8.00\">25/tcp</text>\n",
"</g>\n",
"<!-- internet&#45;&gt;proxy -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>internet&#45;&gt;proxy</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M255.95,-601.91C204.37,-592.2 97,-572 97,-572 97,-572 97,-563 97,-563 97,-563 184.02,-546.63 239.02,-536.28\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"239.7,-539.71 248.88,-534.42 238.41,-532.83 239.7,-539.71\"/>\n",
"<text text-anchor=\"middle\" x=\"110.5\" y=\"-565.6\" font-family=\"Times,serif\" font-size=\"8.00\">80/tcp</text>\n",
"</g>\n",
"<!-- internet&#45;&gt;proxy -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>internet&#45;&gt;proxy</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M255.81,-600C216.12,-589.79 147,-572 147,-572 147,-572 147,-563 147,-563 147,-563 199.17,-549.57 238.89,-539.35\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"239.87,-542.71 248.68,-536.83 238.12,-535.93 239.87,-542.71\"/>\n",
"<text text-anchor=\"middle\" x=\"163\" y=\"-565.6\" font-family=\"Times,serif\" font-size=\"8.00\">443/tcp</text>\n",
"</g>\n",
"<!-- internet&#45;&gt;proxy -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>internet&#45;&gt;proxy</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M255.58,-595.15C232.08,-585 202,-572 202,-572 202,-572 202,-563 202,-563 202,-563 220.15,-555.16 239.26,-546.9\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"240.86,-550.02 248.65,-542.84 238.08,-543.6 240.86,-550.02\"/>\n",
"<text text-anchor=\"middle\" x=\"218\" y=\"-565.6\" font-family=\"Times,serif\" font-size=\"8.00\">465/tcp</text>\n",
"</g>\n",
"<!-- internet&#45;&gt;proxy -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>internet&#45;&gt;proxy</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M270.3,-589.91C263.7,-581.03 257,-572 257,-572 257,-572 257,-563 257,-563 257,-563 260.17,-558.73 264.29,-553.18\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"267.15,-555.2 270.3,-545.09 261.53,-551.03 267.15,-555.2\"/>\n",
"<text text-anchor=\"middle\" x=\"273\" y=\"-565.6\" font-family=\"Times,serif\" font-size=\"8.00\">587/tcp</text>\n",
"</g>\n",
"<!-- internet&#45;&gt;proxy -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>internet&#45;&gt;proxy</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M285.93,-589.91C287.45,-581.03 289,-572 289,-572 289,-572 289,-563 289,-563 289,-563 288.43,-559.65 287.63,-555.02\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"291.07,-554.35 285.93,-545.09 284.17,-555.54 291.07,-554.35\"/>\n",
"<text text-anchor=\"middle\" x=\"305\" y=\"-565.6\" font-family=\"Times,serif\" font-size=\"8.00\">110/tcp</text>\n",
"</g>\n",
"<!-- internet&#45;&gt;proxy -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>internet&#45;&gt;proxy</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M303.51,-589.91C314.17,-581.03 325,-572 325,-572 325,-572 325,-563 325,-563 325,-563 318.91,-557.92 311.36,-551.64\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"313.43,-548.8 303.51,-545.09 308.95,-554.18 313.43,-548.8\"/>\n",
"<text text-anchor=\"middle\" x=\"341\" y=\"-565.6\" font-family=\"Times,serif\" font-size=\"8.00\">995/tcp</text>\n",
"</g>\n",
"<!-- internet&#45;&gt;proxy -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>internet&#45;&gt;proxy</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M310.28,-594.76C332.77,-584.67 361,-572 361,-572 361,-572 361,-563 361,-563 361,-563 344.56,-555.62 326.78,-547.65\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"328,-544.35 317.44,-543.45 325.13,-550.74 328,-544.35\"/>\n",
"<text text-anchor=\"middle\" x=\"377\" y=\"-565.6\" font-family=\"Times,serif\" font-size=\"8.00\">143/tcp</text>\n",
"</g>\n",
"<!-- internet&#45;&gt;proxy -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>internet&#45;&gt;proxy</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M310.02,-598.71C343.73,-588.36 397,-572 397,-572 397,-572 397,-563 397,-563 397,-563 359.04,-551.35 326.93,-541.49\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"327.79,-538.09 317.2,-538.5 325.74,-544.78 327.79,-538.09\"/>\n",
"<text text-anchor=\"middle\" x=\"413\" y=\"-565.6\" font-family=\"Times,serif\" font-size=\"8.00\">993/tcp</text>\n",
"</g>\n",
"<!-- internet&#45;&gt;proxy -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>internet&#45;&gt;proxy</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M310.16,-600.66C353.39,-590.58 433,-572 433,-572 433,-572 433,-563 433,-563 433,-563 371.28,-548.6 327.02,-538.27\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"327.57,-534.81 317.04,-535.94 325.98,-541.62 327.57,-534.81\"/>\n",
"<text text-anchor=\"middle\" x=\"451.5\" y=\"-565.6\" font-family=\"Times,serif\" font-size=\"8.00\">4190/tcp</text>\n",
"</g>\n",
"<!-- front -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>front</title>\n",
"<polygon fill=\"#d3edea\" stroke=\"#d3edea\" points=\"350,-464 296,-464 296,-428 350,-428 350,-464\"/>\n",
"<text text-anchor=\"middle\" x=\"323\" y=\"-444.1\" font-family=\"arial\" font-size=\"8.00\">Front</text>\n",
"</g>\n",
"<!-- proxy&#45;&gt;front -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>proxy&#45;&gt;front</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M248.6,-509.73C229.28,-500.59 209,-491 209,-491 209,-491 209,-482 209,-482 209,-482 252.75,-468.57 286.05,-458.35\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"287.45,-461.58 295.98,-455.29 285.4,-454.88 287.45,-461.58\"/>\n",
"<text text-anchor=\"middle\" x=\"222.5\" y=\"-484.6\" font-family=\"Times,serif\" font-size=\"8.00\">25/tcp</text>\n",
"</g>\n",
"<!-- proxy&#45;&gt;front -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>proxy&#45;&gt;front</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M271.28,-508.91C265.19,-500.03 259,-491 259,-491 259,-491 259,-482 259,-482 259,-482 272.31,-474.72 286.8,-466.8\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"288.76,-469.71 295.86,-461.84 285.41,-463.57 288.76,-469.71\"/>\n",
"<text text-anchor=\"middle\" x=\"272.5\" y=\"-484.6\" font-family=\"Times,serif\" font-size=\"8.00\">80/tcp</text>\n",
"</g>\n",
"<!-- proxy&#45;&gt;front -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>proxy&#45;&gt;front</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M291.68,-508.86C296.97,-498.4 303.85,-484.83 309.8,-473.06\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"312.94,-474.61 314.34,-464.11 306.7,-471.45 312.94,-474.61\"/>\n",
"<text text-anchor=\"middle\" x=\"320\" y=\"-484.6\" font-family=\"Times,serif\" font-size=\"8.00\">443/tcp</text>\n",
"</g>\n",
"<!-- proxy&#45;&gt;front -->\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<title>proxy&#45;&gt;front</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M310.83,-508.91C325.3,-500.03 340,-491 340,-491 340,-491 340,-482 340,-482 340,-482 338.2,-478.3 335.77,-473.3\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"338.82,-471.56 331.3,-464.09 332.52,-474.61 338.82,-471.56\"/>\n",
"<text text-anchor=\"middle\" x=\"356\" y=\"-484.6\" font-family=\"Times,serif\" font-size=\"8.00\">465/tcp</text>\n",
"</g>\n",
"<!-- proxy&#45;&gt;front -->\n",
"<g id=\"edge15\" class=\"edge\">\n",
"<title>proxy&#45;&gt;front</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M317.1,-513.17C343.64,-503.18 376,-491 376,-491 376,-491 376,-482 376,-482 376,-482 367.49,-476.38 357.29,-469.64\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"359.15,-466.68 348.88,-464.09 355.29,-472.52 359.15,-466.68\"/>\n",
"<text text-anchor=\"middle\" x=\"392\" y=\"-484.6\" font-family=\"Times,serif\" font-size=\"8.00\">587/tcp</text>\n",
"</g>\n",
"<!-- proxy&#45;&gt;front -->\n",
"<g id=\"edge16\" class=\"edge\">\n",
"<title>proxy&#45;&gt;front</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M317.23,-516.71C355.45,-506.34 412,-491 412,-491 412,-491 412,-482 412,-482 412,-482 384.22,-471.08 359.71,-461.43\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"360.77,-458.09 350.19,-457.69 358.21,-464.61 360.77,-458.09\"/>\n",
"<text text-anchor=\"middle\" x=\"428\" y=\"-484.6\" font-family=\"Times,serif\" font-size=\"8.00\">110/tcp</text>\n",
"</g>\n",
"<!-- proxy&#45;&gt;front -->\n",
"<g id=\"edge17\" class=\"edge\">\n",
"<title>proxy&#45;&gt;front</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M317.19,-518.75C365.52,-508.5 448,-491 448,-491 448,-491 448,-482 448,-482 448,-482 396.94,-467.7 360.09,-457.38\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"360.7,-453.92 350.12,-454.59 358.81,-460.66 360.7,-453.92\"/>\n",
"<text text-anchor=\"middle\" x=\"464\" y=\"-484.6\" font-family=\"Times,serif\" font-size=\"8.00\">995/tcp</text>\n",
"</g>\n",
"<!-- proxy&#45;&gt;front -->\n",
"<g id=\"edge18\" class=\"edge\">\n",
"<title>proxy&#45;&gt;front</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M248.82,-521.1C181.66,-511.46 39,-491 39,-491 39,-491 39,-482 39,-482 39,-482 208.38,-461.13 285.52,-451.62\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"286.27,-455.05 295.77,-450.36 285.42,-448.11 286.27,-455.05\"/>\n",
"<text text-anchor=\"middle\" x=\"55\" y=\"-484.6\" font-family=\"Times,serif\" font-size=\"8.00\">143/tcp</text>\n",
"</g>\n",
"<!-- proxy&#45;&gt;front -->\n",
"<g id=\"edge19\" class=\"edge\">\n",
"<title>proxy&#45;&gt;front</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M248.77,-519.66C194.31,-509.58 94,-491 94,-491 94,-491 94,-482 94,-482 94,-482 220.68,-462.64 285.6,-452.72\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"286.48,-456.12 295.83,-451.15 285.42,-449.2 286.48,-456.12\"/>\n",
"<text text-anchor=\"middle\" x=\"110\" y=\"-484.6\" font-family=\"Times,serif\" font-size=\"8.00\">993/tcp</text>\n",
"</g>\n",
"<!-- proxy&#45;&gt;front -->\n",
"<g id=\"edge20\" class=\"edge\">\n",
"<title>proxy&#45;&gt;front</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M248.81,-515.59C214.91,-505.28 168,-491 168,-491 168,-491 168,-482 168,-482 168,-482 239.87,-465.77 285.73,-455.42\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"286.66,-458.79 295.65,-453.18 285.12,-451.97 286.66,-458.79\"/>\n",
"<text text-anchor=\"middle\" x=\"186.5\" y=\"-484.6\" font-family=\"Times,serif\" font-size=\"8.00\">4190/tcp</text>\n",
"</g>\n",
"<!-- front&#45;&gt;front -->\n",
"<g id=\"edge21\" class=\"edge\">\n",
"<title>front&#45;&gt;front</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M350.24,-449.75C360.02,-449.83 368,-448.58 368,-446 368,-444.43 365.04,-443.35 360.51,-442.77\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"360.4,-439.26 350.24,-442.25 360.05,-446.25 360.4,-439.26\"/>\n",
"<text text-anchor=\"middle\" x=\"386.5\" y=\"-444.1\" font-family=\"Times,serif\" font-size=\"8.00\">8008/tcp</text>\n",
"</g>\n",
"<!-- front&#45;&gt;front -->\n",
"<g id=\"edge22\" class=\"edge\">\n",
"<title>front&#45;&gt;front</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M350.06,-452.31C375.18,-455.1 405,-452.99 405,-446 405,-439.94 382.57,-437.55 360.23,-438.84\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"359.73,-435.37 350.06,-439.69 360.31,-442.34 359.73,-435.37\"/>\n",
"<text text-anchor=\"middle\" x=\"423.5\" y=\"-444.1\" font-family=\"Times,serif\" font-size=\"8.00\">8000/tcp</text>\n",
"</g>\n",
"<!-- admin -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>admin</title>\n",
"<polygon fill=\"#d3edea\" stroke=\"#d3edea\" points=\"495,-302 441,-302 441,-266 495,-266 495,-302\"/>\n",
"<text text-anchor=\"middle\" x=\"468\" y=\"-282.1\" font-family=\"arial\" font-size=\"8.00\">Admin</text>\n",
"</g>\n",
"<!-- front&#45;&gt;admin -->\n",
"<g id=\"edge23\" class=\"edge\">\n",
"<title>front&#45;&gt;admin</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M332.58,-427.93C348.34,-399.85 378,-347 378,-347 378,-347 408.92,-325.7 434.51,-308.07\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"436.68,-310.83 442.93,-302.27 432.71,-305.06 436.68,-310.83\"/>\n",
"<text text-anchor=\"middle\" x=\"396.5\" y=\"-363.1\" font-family=\"Times,serif\" font-size=\"8.00\">8080/tcp</text>\n",
"</g>\n",
"<!-- smtp -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>smtp</title>\n",
"<polygon fill=\"#d3edea\" stroke=\"#d3edea\" points=\"550,-383 496,-383 496,-347 550,-347 550,-383\"/>\n",
"<text text-anchor=\"middle\" x=\"523\" y=\"-363.1\" font-family=\"arial\" font-size=\"8.00\">SMTP</text>\n",
"</g>\n",
"<!-- front&#45;&gt;smtp -->\n",
"<g id=\"edge27\" class=\"edge\">\n",
"<title>front&#45;&gt;smtp</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M350.22,-440.71C409.5,-431.36 545,-410 545,-410 545,-410 545,-401 545,-401 545,-401 542.44,-396.93 539.06,-391.56\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"542.03,-389.69 533.74,-383.09 536.1,-393.42 542.03,-389.69\"/>\n",
"<text text-anchor=\"middle\" x=\"558.5\" y=\"-403.6\" font-family=\"Times,serif\" font-size=\"8.00\">25/tcp</text>\n",
"</g>\n",
"<!-- front&#45;&gt;smtp -->\n",
"<g id=\"edge28\" class=\"edge\">\n",
"<title>front&#45;&gt;smtp</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M350.25,-435.06C378.63,-424.72 419,-410 419,-410 419,-410 465.19,-391.66 486.31,-382.91\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"487.9,-386.04 495.71,-378.88 485.14,-379.6 487.9,-386.04\"/>\n",
"<text text-anchor=\"middle\" x=\"461.5\" y=\"-403.6\" font-family=\"Times,serif\" font-size=\"8.00\">10025/tcp</text>\n",
"</g>\n",
"<!-- antispam -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>antispam</title>\n",
"<polygon fill=\"#d3edea\" stroke=\"#d3edea\" points=\"585,-140 531,-140 531,-104 585,-104 585,-140\"/>\n",
"<text text-anchor=\"middle\" x=\"558\" y=\"-120.1\" font-family=\"arial\" font-size=\"8.00\">Antispam</text>\n",
"</g>\n",
"<!-- front&#45;&gt;antispam -->\n",
"<g id=\"edge30\" class=\"edge\">\n",
"<title>front&#45;&gt;antispam</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M350.08,-441.25C415.34,-432.23 576,-410 576,-410 576,-410 607,-248 607,-248 607,-248 607,-239 607,-239 607,-239 578,-158 578,-158 578,-158 575.78,-154.11 572.82,-148.93\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"575.77,-147.04 567.77,-140.09 569.69,-150.51 575.77,-147.04\"/>\n",
"<text text-anchor=\"middle\" x=\"624.5\" y=\"-282.1\" font-family=\"Times,serif\" font-size=\"8.00\">11334/tcp</text>\n",
"</g>\n",
"<!-- imap -->\n",
"<g id=\"node9\" class=\"node\">\n",
"<title>imap</title>\n",
"<polygon fill=\"#d3edea\" stroke=\"#d3edea\" points=\"383,-221 329,-221 329,-185 383,-185 383,-221\"/>\n",
"<text text-anchor=\"middle\" x=\"356\" y=\"-201.1\" font-family=\"arial\" font-size=\"8.00\">IMAP</text>\n",
"</g>\n",
"<!-- front&#45;&gt;imap -->\n",
"<g id=\"edge24\" class=\"edge\">\n",
"<title>front&#45;&gt;imap</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M325.37,-427.67C331.05,-386.24 345.43,-281.22 352.27,-231.24\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"355.76,-231.56 353.65,-221.18 348.82,-230.61 355.76,-231.56\"/>\n",
"<text text-anchor=\"middle\" x=\"357.5\" y=\"-322.6\" font-family=\"Times,serif\" font-size=\"8.00\">4190/tcp</text>\n",
"</g>\n",
"<!-- front&#45;&gt;imap -->\n",
"<g id=\"edge25\" class=\"edge\">\n",
"<title>front&#45;&gt;imap</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M295.77,-430.56C277.59,-420.92 257,-410 257,-410 257,-410 214,-329 214,-329 214,-329 214,-320 214,-320 214,-320 254,-239 254,-239 254,-239 290.09,-226.61 319.34,-216.58\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"320.61,-219.84 328.93,-213.29 318.34,-213.22 320.61,-219.84\"/>\n",
"<text text-anchor=\"middle\" x=\"230\" y=\"-322.6\" font-family=\"Times,serif\" font-size=\"8.00\">143/tcp</text>\n",
"</g>\n",
"<!-- front&#45;&gt;imap -->\n",
"<g id=\"edge26\" class=\"edge\">\n",
"<title>front&#45;&gt;imap</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M320.05,-427.88C314.49,-395.62 303,-329 303,-329 303,-329 303,-320 303,-320 303,-320 328.21,-264.82 343.86,-230.57\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"347.21,-231.67 348.18,-221.12 340.84,-228.76 347.21,-231.67\"/>\n",
"<text text-anchor=\"middle\" x=\"319\" y=\"-322.6\" font-family=\"Times,serif\" font-size=\"8.00\">110/tcp</text>\n",
"</g>\n",
"<!-- webdav -->\n",
"<g id=\"node10\" class=\"node\">\n",
"<title>webdav</title>\n",
"<polygon fill=\"#d3edea\" stroke=\"#d3edea\" points=\"478,-383 424,-383 424,-347 478,-347 478,-383\"/>\n",
"<text text-anchor=\"middle\" x=\"451\" y=\"-363.1\" font-family=\"arial\" font-size=\"8.00\">WebDAV</text>\n",
"</g>\n",
"<!-- front&#45;&gt;webdav -->\n",
"<g id=\"edge31\" class=\"edge\">\n",
"<title>front&#45;&gt;webdav</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M345.98,-427.86C362.55,-415.51 382,-401 382,-401 382,-401 397.98,-392.9 414.56,-384.49\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"416.39,-387.48 423.73,-379.83 413.23,-381.24 416.39,-387.48\"/>\n",
"<text text-anchor=\"middle\" x=\"400.5\" y=\"-403.6\" font-family=\"Times,serif\" font-size=\"8.00\">5232/tcp</text>\n",
"</g>\n",
"<!-- webmail -->\n",
"<g id=\"node11\" class=\"node\">\n",
"<title>webmail</title>\n",
"<polygon fill=\"#d3edea\" stroke=\"#d3edea\" points=\"96,-383 42,-383 42,-347 96,-347 96,-383\"/>\n",
"<text text-anchor=\"middle\" x=\"69\" y=\"-363.1\" font-family=\"arial\" font-size=\"8.00\">Webmail</text>\n",
"</g>\n",
"<!-- front&#45;&gt;webmail -->\n",
"<g id=\"edge29\" class=\"edge\">\n",
"<title>front&#45;&gt;webmail</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M295.85,-437.15C260.17,-426.83 202,-410 202,-410 202,-410 179,-401 179,-401 179,-401 137.74,-387.87 105.76,-377.7\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"106.78,-374.35 96.19,-374.65 104.66,-381.02 106.78,-374.35\"/>\n",
"<text text-anchor=\"middle\" x=\"215.5\" y=\"-403.6\" font-family=\"Times,serif\" font-size=\"8.00\">80/tcp</text>\n",
"</g>\n",
"<!-- redis -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>redis</title>\n",
"<polygon fill=\"#d3edea\" stroke=\"#d3edea\" points=\"490,-59 436,-59 436,-23 490,-23 490,-59\"/>\n",
"<text text-anchor=\"middle\" x=\"463\" y=\"-39.1\" font-family=\"arial\" font-size=\"8.00\">Redis</text>\n",
"</g>\n",
"<!-- admin&#45;&gt;redis -->\n",
"<g id=\"edge43\" class=\"edge\">\n",
"<title>admin&#45;&gt;redis</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M463.43,-265.88C454.8,-233.62 437,-167 437,-167 437,-167 437,-158 437,-158 437,-158 449.26,-103.29 456.95,-69.01\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"460.39,-69.64 459.16,-59.12 453.56,-68.11 460.39,-69.64\"/>\n",
"<text text-anchor=\"middle\" x=\"455.5\" y=\"-160.6\" font-family=\"Times,serif\" font-size=\"8.00\">6379/tcp</text>\n",
"</g>\n",
"<!-- admin&#45;&gt;imap -->\n",
"<g id=\"edge44\" class=\"edge\">\n",
"<title>admin&#45;&gt;imap</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M443.1,-265.91C430.15,-257.03 417,-248 417,-248 417,-248 402.68,-237.67 387.92,-227.02\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"389.92,-224.15 379.76,-221.14 385.82,-229.83 389.92,-224.15\"/>\n",
"<text text-anchor=\"middle\" x=\"435.5\" y=\"-241.6\" font-family=\"Times,serif\" font-size=\"8.00\">2525/tcp</text>\n",
"</g>\n",
"<!-- smtp&#45;&gt;front -->\n",
"<g id=\"edge33\" class=\"edge\">\n",
"<title>smtp&#45;&gt;front</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M508.2,-383.14C497.53,-395.49 485,-410 485,-410 485,-410 407.95,-426.65 360.13,-436.98\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"359.15,-433.61 350.12,-439.14 360.63,-440.45 359.15,-433.61\"/>\n",
"<text text-anchor=\"middle\" x=\"510.5\" y=\"-403.6\" font-family=\"Times,serif\" font-size=\"8.00\">2525/tcp</text>\n",
"</g>\n",
"<!-- smtp&#45;&gt;admin -->\n",
"<g id=\"edge32\" class=\"edge\">\n",
"<title>smtp&#45;&gt;admin</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M511.07,-346.86C503.64,-336.2 493.96,-322.29 485.66,-310.37\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"488.5,-308.32 479.91,-302.11 482.75,-312.32 488.5,-308.32\"/>\n",
"<text text-anchor=\"middle\" x=\"515.5\" y=\"-322.6\" font-family=\"Times,serif\" font-size=\"8.00\">8080/tcp</text>\n",
"</g>\n",
"<!-- smtp&#45;&gt;antispam -->\n",
"<g id=\"edge34\" class=\"edge\">\n",
"<title>smtp&#45;&gt;antispam</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M530.32,-346.91C534.13,-338.03 538,-329 538,-329 538,-329 569,-221 569,-221 569,-221 569,-185 569,-185 569,-185 565.79,-166.91 562.84,-150.27\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"566.26,-149.51 561.06,-140.27 559.36,-150.73 566.26,-149.51\"/>\n",
"<text text-anchor=\"middle\" x=\"584.5\" y=\"-241.6\" font-family=\"Times,serif\" font-size=\"8.00\">11332/tcp</text>\n",
"</g>\n",
"<!-- antispam&#45;&gt;admin -->\n",
"<g id=\"edge46\" class=\"edge\">\n",
"<title>antispam&#45;&gt;admin</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M550.99,-140.14C545.94,-152.49 540,-167 540,-167 540,-167 505.16,-223.14 483.95,-257.31\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"480.92,-255.54 478.62,-265.88 486.87,-259.23 480.92,-255.54\"/>\n",
"<text text-anchor=\"middle\" x=\"546.5\" y=\"-201.1\" font-family=\"Times,serif\" font-size=\"8.00\">8080/tcp</text>\n",
"</g>\n",
"<!-- antispam&#45;&gt;redis -->\n",
"<g id=\"edge45\" class=\"edge\">\n",
"<title>antispam&#45;&gt;redis</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M536.03,-103.91C524.6,-95.03 513,-86 513,-86 513,-86 501.91,-76.24 490.17,-65.91\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"492.29,-63.12 482.47,-59.14 487.67,-68.37 492.29,-63.12\"/>\n",
"<text text-anchor=\"middle\" x=\"531.5\" y=\"-79.6\" font-family=\"Times,serif\" font-size=\"8.00\">6379/tcp</text>\n",
"</g>\n",
"<!-- antivirus -->\n",
"<g id=\"node8\" class=\"node\">\n",
"<title>antivirus</title>\n",
"<polygon fill=\"#d3edea\" stroke=\"#d3edea\" points=\"579,-59 525,-59 525,-23 579,-23 579,-59\"/>\n",
"<text text-anchor=\"middle\" x=\"552\" y=\"-39.1\" font-family=\"arial\" font-size=\"8.00\">Anti&#45;Virus</text>\n",
"</g>\n",
"<!-- antispam&#45;&gt;antivirus -->\n",
"<g id=\"edge48\" class=\"edge\">\n",
"<title>antispam&#45;&gt;antivirus</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M556.7,-103.86C555.93,-93.71 554.93,-80.63 554.06,-69.12\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"557.55,-68.81 553.3,-59.11 550.57,-69.34 557.55,-68.81\"/>\n",
"<text text-anchor=\"middle\" x=\"573.5\" y=\"-79.6\" font-family=\"Times,serif\" font-size=\"8.00\">3310/tcp</text>\n",
"</g>\n",
"<!-- oletools -->\n",
"<g id=\"node13\" class=\"node\">\n",
"<title>oletools</title>\n",
"<polygon fill=\"#d3edea\" stroke=\"#d3edea\" points=\"651,-59 597,-59 597,-23 651,-23 651,-59\"/>\n",
"<text text-anchor=\"middle\" x=\"624\" y=\"-39.1\" font-family=\"arial\" font-size=\"8.00\">Oletools</text>\n",
"</g>\n",
"<!-- antispam&#45;&gt;oletools -->\n",
"<g id=\"edge47\" class=\"edge\">\n",
"<title>antispam&#45;&gt;oletools</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M576.55,-103.91C586.2,-95.03 596,-86 596,-86 596,-86 601.52,-77.32 607.66,-67.67\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"610.68,-69.45 613.09,-59.14 604.77,-65.7 610.68,-69.45\"/>\n",
"<text text-anchor=\"middle\" x=\"622.5\" y=\"-79.6\" font-family=\"Times,serif\" font-size=\"8.00\">11343/tcp</text>\n",
"</g>\n",
"<!-- imap&#45;&gt;proxy -->\n",
"<g id=\"edge37\" class=\"edge\">\n",
"<title>imap&#45;&gt;proxy</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M383.11,-209.93C437.97,-221.94 557,-248 557,-248 557,-248 656,-266 656,-266 656,-266 656,-302 656,-302 656,-302 623,-410 623,-410 623,-410 548,-491 548,-491 548,-491 402.67,-510.19 327.26,-520.15\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"326.56,-516.72 317.1,-521.5 327.47,-523.66 326.56,-516.72\"/>\n",
"<text text-anchor=\"middle\" x=\"655.5\" y=\"-363.1\" font-family=\"Times,serif\" font-size=\"8.00\">25/tcp</text>\n",
"</g>\n",
"<!-- imap&#45;&gt;admin -->\n",
"<g id=\"edge35\" class=\"edge\">\n",
"<title>imap&#45;&gt;admin</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M356.39,-221.14C356.67,-233.49 357,-248 357,-248 357,-248 398.87,-261.2 431.18,-271.39\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"430.26,-274.77 440.85,-274.44 432.36,-268.09 430.26,-274.77\"/>\n",
"<text text-anchor=\"middle\" x=\"375.5\" y=\"-241.6\" font-family=\"Times,serif\" font-size=\"8.00\">8080/tcp</text>\n",
"</g>\n",
"<!-- imap&#45;&gt;antispam -->\n",
"<g id=\"edge36\" class=\"edge\">\n",
"<title>imap&#45;&gt;antispam</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M383.08,-194.23C419.02,-183.92 478,-167 478,-167 478,-167 500.74,-154.49 521.98,-142.81\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"523.84,-145.78 530.92,-137.9 520.47,-139.65 523.84,-145.78\"/>\n",
"<text text-anchor=\"middle\" x=\"514.5\" y=\"-160.6\" font-family=\"Times,serif\" font-size=\"8.00\">11334/tcp</text>\n",
"</g>\n",
"<!-- fts_attachments -->\n",
"<g id=\"node14\" class=\"node\">\n",
"<title>fts_attachments</title>\n",
"<polygon fill=\"#d3edea\" stroke=\"#d3edea\" points=\"383,-140 329,-140 329,-104 383,-104 383,-140\"/>\n",
"<text text-anchor=\"middle\" x=\"356\" y=\"-120.1\" font-family=\"arial\" font-size=\"8.00\">Tika</text>\n",
"</g>\n",
"<!-- imap&#45;&gt;fts_attachments -->\n",
"<g id=\"edge38\" class=\"edge\">\n",
"<title>imap&#45;&gt;fts_attachments</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M356,-184.86C356,-174.71 356,-161.63 356,-150.12\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"359.5,-150.11 356,-140.11 352.5,-150.11 359.5,-150.11\"/>\n",
"<text text-anchor=\"middle\" x=\"374.5\" y=\"-160.6\" font-family=\"Times,serif\" font-size=\"8.00\">9998/tcp</text>\n",
"</g>\n",
"<!-- webmail&#45;&gt;proxy -->\n",
"<g id=\"edge42\" class=\"edge\">\n",
"<title>webmail&#45;&gt;proxy</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M41.73,-379.83C22.44,-389.62 0,-401 0,-401 0,-401 0,-410 0,-410 0,-410 35,-491 35,-491 35,-491 167.4,-509.69 238.72,-519.75\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"238.39,-523.24 248.78,-521.17 239.36,-516.31 238.39,-523.24\"/>\n",
"<text text-anchor=\"middle\" x=\"40\" y=\"-444.1\" font-family=\"Times,serif\" font-size=\"8.00\">443/tcp</text>\n",
"</g>\n",
"<!-- webmail&#45;&gt;front -->\n",
"<g id=\"edge39\" class=\"edge\">\n",
"<title>webmail&#45;&gt;front</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M41.81,-380.64C24,-390.23 4,-401 4,-401 4,-401 4,-410 4,-410 4,-410 201.41,-431.66 285.64,-440.9\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"285.48,-444.4 295.8,-442.02 286.24,-437.45 285.48,-444.4\"/>\n",
"<text text-anchor=\"middle\" x=\"25.5\" y=\"-403.6\" font-family=\"Times,serif\" font-size=\"8.00\">14190/tcp</text>\n",
"</g>\n",
"<!-- webmail&#45;&gt;front -->\n",
"<g id=\"edge40\" class=\"edge\">\n",
"<title>webmail&#45;&gt;front</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M69.39,-383.14C69.67,-395.49 70,-410 70,-410 70,-410 215.35,-430.11 285.71,-439.84\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"285.54,-443.35 295.92,-441.25 286.5,-436.42 285.54,-443.35\"/>\n",
"<text text-anchor=\"middle\" x=\"91.5\" y=\"-403.6\" font-family=\"Times,serif\" font-size=\"8.00\">10025/tcp</text>\n",
"</g>\n",
"<!-- webmail&#45;&gt;front -->\n",
"<g id=\"edge41\" class=\"edge\">\n",
"<title>webmail&#45;&gt;front</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M93.54,-383.14C111.23,-395.49 132,-410 132,-410 132,-410 230.21,-428 285.79,-438.18\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"285.17,-441.63 295.63,-439.99 286.43,-434.74 285.17,-441.63\"/>\n",
"<text text-anchor=\"middle\" x=\"153.5\" y=\"-403.6\" font-family=\"Times,serif\" font-size=\"8.00\">10143/tcp</text>\n",
"</g>\n",
"<!-- fetchmail -->\n",
"<g id=\"node12\" class=\"node\">\n",
"<title>fetchmail</title>\n",
"<polygon fill=\"#d3edea\" stroke=\"#d3edea\" points=\"685,-545 631,-545 631,-509 685,-509 685,-545\"/>\n",
"<text text-anchor=\"middle\" x=\"658\" y=\"-525.1\" font-family=\"arial\" font-size=\"8.00\">Fetchmail</text>\n",
"</g>\n",
"<!-- fetchmail&#45;&gt;front -->\n",
"<g id=\"edge50\" class=\"edge\">\n",
"<title>fetchmail&#45;&gt;front</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M630.81,-519.12C581.88,-506.75 484,-482 484,-482 484,-482 407.83,-465.44 360.28,-455.1\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"360.83,-451.64 350.31,-452.94 359.34,-458.48 360.83,-451.64\"/>\n",
"<text text-anchor=\"middle\" x=\"530.5\" y=\"-484.6\" font-family=\"Times,serif\" font-size=\"8.00\">25/tcp</text>\n",
"</g>\n",
"<!-- fetchmail&#45;&gt;front -->\n",
"<g id=\"edge51\" class=\"edge\">\n",
"<title>fetchmail&#45;&gt;front</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M630.81,-515.12C598.23,-502.09 548,-482 548,-482 548,-482 424.16,-462.74 360.23,-452.79\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"360.56,-449.3 350.14,-451.22 359.48,-456.22 360.56,-449.3\"/>\n",
"<text text-anchor=\"middle\" x=\"587.5\" y=\"-484.6\" font-family=\"Times,serif\" font-size=\"8.00\">2525/tcp</text>\n",
"</g>\n",
"<!-- fetchmail&#45;&gt;admin -->\n",
"<g id=\"edge49\" class=\"edge\">\n",
"<title>fetchmail&#45;&gt;admin</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M661.38,-508.75C668.82,-470.72 686,-383 686,-383 686,-383 686,-347 686,-347 686,-347 567.2,-313.21 505,-295.52\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"505.75,-292.1 495.17,-292.73 503.83,-298.83 505.75,-292.1\"/>\n",
"<text text-anchor=\"middle\" x=\"700.5\" y=\"-403.6\" font-family=\"Times,serif\" font-size=\"8.00\">8080/tcp</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<graphviz.sources.Source at 0x7f7fe3573ad0>"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import graphviz\n",
"\n",
"a = \"\"\"\n",
"digraph mailu {\n",
" label = \"Mailu\";\n",
" fontname = \"arial\";\n",
" \n",
" node [shape = box; fontname = \"arial\"; fontsize = 8; style = filled; color = \"#d3edea\";];\n",
" splines = \"compound\";\n",
" // node [shape = \"box\"; fontsize = \"10\";];\n",
" edge [fontsize = \"8\";];\n",
" \n",
" # Components\n",
" internet [label = \"Internet\";];\n",
" proxy [label = \"Optional proxy\"; shape = \"polygon\"];\n",
" front [label = \"Front\";];\n",
" admin [label = \"Admin\";];\n",
" smtp [label = \"SMTP\";];\n",
" redis [label = \"Redis\";];\n",
" antispam [label = \"Antispam\";];\n",
" antivirus [label = \"Anti-Virus\";];\n",
" imap [label = \"IMAP\";];\n",
" webdav [label = \"WebDAV\";];\n",
" webmail [label = \"Webmail\";];\n",
" fetchmail [label = \"Fetchmail\";];\n",
" oletools [label = \"Oletools\"];\n",
" fts_attachments [label = \"Tika\"];\n",
" # proxy from internet\n",
" internet -> proxy [label = \"25/tcp\";];\n",
" internet -> proxy [label = \"80/tcp\";];\n",
" internet -> proxy [label = \"443/tcp\";];\n",
" internet -> proxy [label = \"465/tcp\";];\n",
" internet -> proxy [label = \"587/tcp\";];\n",
" internet -> proxy [label = \"110/tcp\";];\n",
" internet -> proxy [label = \"995/tcp\";];\n",
" internet -> proxy [label = \"143/tcp\";];\n",
" internet -> proxy [label = \"993/tcp\";];\n",
" internet -> proxy [label = \"4190/tcp\";];\n",
" \n",
" # Front from proxy\n",
" proxy -> front [label = \"25/tcp\";];\n",
" proxy -> front [label = \"80/tcp\";];\n",
" proxy -> front [label = \"443/tcp\";];\n",
" proxy -> front [label = \"465/tcp\";];\n",
" proxy -> front [label = \"587/tcp\";];\n",
" proxy -> front [label = \"110/tcp\";];\n",
" proxy -> front [label = \"995/tcp\";];\n",
" proxy -> front [label = \"143/tcp\";];\n",
" proxy -> front [label = \"993/tcp\";];\n",
" proxy -> front [label = \"4190/tcp\";];\n",
" \n",
" front -> front [label = \"8008/tcp\";];\n",
" front -> front [label = \"8000/tcp\";];\n",
" front -> admin [label = \"8080/tcp\";];\n",
" front -> imap [label = \"4190/tcp\";];\n",
" front -> imap [label = \"143/tcp\";];\n",
" front -> imap [label = \"110/tcp\";];\n",
" front -> smtp [label = \"25/tcp\";];\n",
" front -> smtp [label = \"10025/tcp\";];\n",
" front -> webmail [label = \"80/tcp\";];\n",
" front -> antispam [label = \"11334/tcp\";];\n",
" front -> webdav [label = \"5232/tcp\";];\n",
" \n",
" smtp -> admin [label = \"8080/tcp\";];\n",
" smtp -> front [label = \"2525/tcp\";];\n",
" smtp -> antispam [label = \"11332/tcp\";];\n",
" \n",
" imap -> admin [label = \"8080/tcp\";];\n",
" imap -> antispam [label = \"11334/tcp\";];\n",
" imap -> proxy [label = \"25/tcp\";];\n",
" imap -> fts_attachments [label = \"9998/tcp\";];\n",
" \n",
" webmail -> front [label = \"14190/tcp\";];\n",
" webmail -> front [label = \"10025/tcp\";];\n",
" webmail -> front [label = \"10143/tcp\";];\n",
" # carddav\n",
" webmail -> proxy [label = \"443/tcp\";];\n",
" \n",
" admin -> redis [label = \"6379/tcp\";];\n",
" admin -> imap [label = \"2525/tcp\";];\n",
" \n",
" antispam -> redis [label = \"6379/tcp\";];\n",
" antispam -> admin [label = \"8080/tcp\";];\n",
" antispam -> oletools [label = \"11343/tcp\";];\n",
" antispam -> antivirus [label = \"3310/tcp\";];\n",
" \n",
" fetchmail -> admin [label = \"8080/tcp\"]\n",
" fetchmail -> front [label = \"25/tcp\"]\n",
" fetchmail -> front [label = \"2525/tcp\"]\n",
" #\n",
" # those don't need internet:\n",
" # oletools\n",
" # fts_attachments\n",
" # redis\n",
"}\n",
"\"\"\"\n",
"\n",
"dot = graphviz.Source(a)\n",
"dot\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.2"
}
},
"nbformat": 4,
"nbformat_minor": 2
}