Commit Graph
151 Commits
Author SHA1 Message Date
DL6ER 07f1f7df44 Save number of ABP-style entries in adlist table's new column abp_entries
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-06-15 09:38:37 +02:00
DL6ER a7f47a5e1f The number of entries on a list should be the sum of domains and ABP-style entries
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-06-12 21:44:24 +02:00
DL6ER 813509841b Accept cookie authentication only when CSRF header is provided (and correct)
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-06-04 19:29:54 +02:00
DL6ER 6975a17c7c Allow fractional delay for blocking mode changes and fix a few smaller memory leaks
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-06-03 13:26:58 +02:00
DL6ER 7ad68b785b Fix favicon for API documentation (in the same way we did for the web interface a few minutes ago)
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-06-03 12:50:15 +02:00
Christian König 62cfc25b95 Fix spelling in v6
Signed-off-by: Christian König <ckoenig@posteo.de>
2023-05-30 22:42:13 +02:00
DL6ER 19c72d354e !!! BREAKING CHANGE !!! Switch to the proven memory-hard password-hashing alogorithm BALLOON. The stored password hash will be upgraded on the first successdful login. To wave the necessity to implement BALLOON with every client trying to access the API, we remove the existing challenge-response authentication in favor of allowing login straight with the password. This has been avoided in the past, however, seems now acceptable that FTL (even by default) offers secure end-to-end encryption over HTTPS.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-05-30 21:22:45 +02:00
DL6ER d42d4be97b Add webserver.tls.rev_server boolean useful to tell FTL that unencrypted connections are still secure (in the context of Pi-hole solely being reachable through a reverse proxy)
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-05-28 14:45:03 +02:00
DL6ER d86a2f1c95 Add pihole.webhome() and add settings + group pages deep URI rewrite
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-05-26 21:50:26 +02:00
DL6ER 54cf9ad1f9 Add new debug.tls option logging any mbedTLS debug output to webserver.log
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-05-25 18:28:34 +02:00
DL6ER 0aecb57375 Add to /api/info/ftl if FTL is allowed to perform destructive operations (such as poweroff or reboot)
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-05-24 20:59:23 +02:00
DL6ER c672120123 Add a setting to block possibly harmful actions
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-05-24 20:49:27 +02:00
DL6ER b5a6ae44aa Add /api/action/flush/arp flushing both the network and network_addresses tables in pihole-FTL.db
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-05-24 20:47:51 +02:00
DL6ER 3b404ff9a0 Add /api/actions/flush/logs
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-05-24 20:39:18 +02:00
DL6ER 7b72c762ce Add dns boolean to /api/auth signalling if the DNS server is up and running
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-05-24 20:25:02 +02:00
DL6ER 1083128828 Fix OpenAPI definition of /api/dns/blocking
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-05-24 18:48:55 +02:00
DL6ER f48683a11e Continue to run webserver even when dnsmasq fails to still serve the web interface. Change the type of api/dns/blocking from bool to enum-string to support the new "failure" state
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-05-24 17:19:12 +02:00
DL6ER f5cd3b00d2 Add strict_tls property to list of sessions showing if really every connection of this session happened over TLS/SSL
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-05-22 20:30:56 +02:00
DL6ER 391d1c9d0c Extend /info/metrics to show details also about stale cache records
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-05-11 14:18:21 +02:00
DL6ER f06b2e5397 Add tls boolean to list of sessions to indicate whether this session was established over a secure (end-to-end encrypted) connection
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-05-09 10:01:05 +02:00
DL6ER d4f30e4f3d Send more gravity-specific quantities in /search/{domain}
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-05-07 13:10:24 +02:00
DL6ER c12625f0c1 Add global object "took" to all API endpoints
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-05-07 12:20:07 +02:00
DL6ER c3468b7403 Include regex results in domains array when using /search/{domain}
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-05-07 11:19:02 +02:00
DL6ER b7b63506fd Add method to delete network table entires by their database ID
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-05-07 11:04:31 +02:00
DL6ER 7281da34b4 Add /api/clients/_suggestions
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-05-06 07:31:21 +02:00
DL6ER 469e73e0ff Allow deleteing multiple messages at once (provide them comma-separated)
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-05-04 12:13:09 +02:00
DL6ER 3f0b8f4280 Ensure we always read diagnosis messages from the database
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-05-03 21:16:51 +02:00
DL6ER e6b46a2c60 Simplify redirection when user is already authenticated
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-04-26 22:10:43 +02:00
DL6ER b642bacf08 Rename the API endpoint from /logs/http to /logs/webserver for consistency with the config option renameing
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-04-26 21:39:29 +02:00
DL6ER 2b2c02f0c7 Remove PH7
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-04-26 21:09:33 +02:00
DL6ER 7359b496ff Move database.maxHistory to webserver.api.maxHistory
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-04-25 22:26:25 +02:00
DL6ER 515fe8b440 Add certificate generation command (pihole-FTL --gen-x509 ...)
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-04-05 21:21:14 +02:00
DL6ER c05502f24a Reimplement DNS cache metrics in the light of arbitrary RRTYPE caching
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-04-01 16:10:49 +02:00
DL6ER 064ac81fca Add SSL/TLS support (mbedTLS)
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-03-08 21:10:12 +01:00
DL6ER 06da29d56e Merge remote-tracking branch 'origin/update/dnsmasq' into new/http
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-03-31 10:10:54 +02:00
DL6ER 9b32553a62 Add API documentation for method to delete session by ID
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-03-13 10:32:19 +01:00
DL6ER 749486273e Add method for deleteing sessions by their IDs
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-03-08 21:10:12 +01:00
DL6ER 4890e16b39 Use cryptographic randomness also for te API challenge and the SID generation
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-03-08 22:14:36 +01:00
DL6ER 9bf6176a64 Add TOTP 2FA to web interface and API
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-03-06 21:49:11 +01:00
DL6ER ce96c5baef Rename config.files.{http_info => log.webserver, ph7_error => log.ph7} and include file path in /api/logs replies
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-02-23 17:52:10 +01:00
DL6ER 6a199427b4 Add option dhcp.multiDNS
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-02-20 14:44:58 +01:00
DL6ER b0c46dc416 Sub-paths in /api/auth are not allowed (except for explicitly existing API endpoints)
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-02-18 15:09:13 +01:00
DL6ER fe6093f970 Remember login timestamp of API sessions
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-02-18 14:54:38 +01:00
DL6ER dd9c4ad52b Add special debug.all config option
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-02-18 14:42:32 +01:00
DL6ER 1bb5e265a0 Add info.ftl.uptime (in ms) and move config.{dns => dhcp}.domain
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-02-18 13:48:09 +01:00
DL6ER 9eaab48405 Mark currently active session when listing active sessions
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-02-14 22:59:52 +01:00
DL6ER db0217f6f7 Add GET /api/auth/sessions for listing the currently active sessions
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-02-12 20:49:16 +01:00
DL6ER 9483ed6778 Add new regex extension ";reply=CNAME,target.domain" suitable for defining CNAME records per-group
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-02-11 22:00:33 +01:00
DL6ER 83195e678e Change /api/info/cache -> /api/info/metrics and add other metrics such as query reply sources and DHCP metrics
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-02-11 13:38:37 +01:00
DL6ER bcda8cc29a Add dns.cache.optimizer as option to control the usage of expired/stale DNS queries while Pi-hole is looking for new ones. This option has always been available, we just make it more visible by assigning an individual config option for it.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-02-11 10:58:41 +01:00