forked from hswaw/hscloud
81 lines
3.1 KiB
Nix
81 lines
3.1 KiB
Nix
# Run service that spits out an unbound-compatible blocklist of websites,
|
|
# as mandated by polish telecommunications law.
|
|
#
|
|
# https://sip.lex.pl/akty-prawne/dzu-dziennik-ustaw/gry-hazardowe-17581037/art-15-f
|
|
# Dz.U.2019.847 t.j.
|
|
# Art. 15f. [Rejestr domen służących do oferowania gier hazardowych niezgodnie z ustawą]
|
|
# 5. Przedsiębiorca telekomunikacyjny świadczący usługi dostępu do sieci
|
|
# Internet jest obowiązany do:
|
|
# 1) nieodpłatnego uniemożliwienia dostępu do stron internetowych
|
|
# wykorzystujących nazwy domen internetowych wpisanych do Rejestru
|
|
# poprzez ich usunięcie z systemów teleinformatycznych przedsiębiorców
|
|
# telekomunikacyjnych, służących do zamiany nazw domen internetowych na
|
|
# adresy IP, nie później niż w ciągu 48 godzin od dokonania wpisu do
|
|
# Rejestru;
|
|
# 2) nieodpłatnego przekierowania połączeń odwołujących się do nazw domen
|
|
# internetowych wpisanych do Rejestru do strony internetowej prowadzonej
|
|
# przez ministra właściwego do spraw finansów publicznych, zawierającej
|
|
# komunikat, skierowany do odbiorców usługi dostępu do Internetu
|
|
# obejmujący w szczególności informacje o lokalizacji Rejestru, wpisaniu
|
|
# szukanej nazwy domeny internetowej do tego Rejestru, listę podmiotów
|
|
# legalnie oferujących gry hazardowe na terytorium Rzeczypospolitej
|
|
# Polskiej, a także powiadomienie o grożącej odpowiedzialności
|
|
# karno-skarbowej uczestnika gier urządzanych wbrew przepisom ustawy;
|
|
# 3) nieodpłatnego umożliwienia dostępu do stron internetowych
|
|
# wykorzystujących nazwy domen wykreślonych z Rejestru, nie później niż w
|
|
# ciągu 48 godzin od wykreślenia nazwy domeny internetowej z Rejestru.
|
|
|
|
{ config, pkgs, lib, ... }:
|
|
|
|
with lib;
|
|
|
|
let
|
|
rshUnbound = pkgs.buildGoModule {
|
|
pname = "rsh-unbound";
|
|
version = "20200926";
|
|
src = pkgs.fetchFromGitHub {
|
|
owner = "q3k";
|
|
repo = "rsh-unbound";
|
|
rev = "31f8975d30a301fdf6f1d445826ebcd671ae07a3";
|
|
sha256 = "sha256-twI9VzPLBgztdccDgB29lJG7ekwpjr1eh27nR5F/TMA=";
|
|
};
|
|
|
|
vendorSha256 = "sha256-A8yHaqSWHhvNmGrk6C6XOVYfVaFbiPmKqglg6gImwWM=";
|
|
};
|
|
|
|
cfg = config.hscloud.rsh;
|
|
|
|
in {
|
|
options.hscloud.rsh = with types; {
|
|
enable = mkOption {
|
|
type = bool;
|
|
default = false;
|
|
description = "Enable the RSH-Unboudn service.";
|
|
};
|
|
out = mkOption {
|
|
type = str;
|
|
default = "/var/lib/rsh.conf";
|
|
description = "Output file for generated unbound config.";
|
|
};
|
|
register = mkOption {
|
|
type = str;
|
|
description = "URL of blocklist register.";
|
|
default = "https://hazard.mf.gov.pl/api/Register";
|
|
};
|
|
};
|
|
|
|
config = mkIf cfg.enable {
|
|
services.unbound.settings.server.include = [ cfg.out ];
|
|
systemd.services.rsh = {
|
|
wantedBy = [ "multi-user.target" "unbound.service" ];
|
|
serviceConfig = {
|
|
Type = "simple";
|
|
ExecStartPre = "${pkgs.coreutils}/bin/touch ${cfg.out}";
|
|
ExecStart = "${rshUnbound}/bin/rsh-unbound -output ${cfg.out} -register_endpoint ${cfg.register}";
|
|
Restart = "always";
|
|
RestartSec = "10";
|
|
};
|
|
};
|
|
};
|
|
}
|