Commit Graph

10204 Commits

Author SHA1 Message Date
Peter Müller
fc842bf1c0 Core Update 170: Ship IPBlocklist
Signed-off-by: Peter Müller <peter.mueller@ipfire.org>
2022-07-10 08:33:32 +00:00
Peter Müller
d574941b90 Merge branch 'temp-stevee-ipblocklist-final' into next 2022-07-10 08:20:15 +00:00
Peter Müller
18553d6227 Core Update 170: Ship backup.pl
Signed-off-by: Peter Müller <peter.mueller@ipfire.org>
2022-07-09 15:04:53 +00:00
Peter Müller
8df2cfb9c7 backup.pl: Delete directives for dropped OpenVPN convert script
See 0b6d12adae.

Signed-off-by: Peter Müller <peter.mueller@ipfire.org>
Reviewed-by: Adolf Belka <adolf.belka@ipfire.org>
2022-07-09 15:04:26 +00:00
Peter Müller
c1a5a49b47 backup.pl: Include logwatch summary into backups as well
Fixes: 12827
Signed-off-by: Peter Müller <peter.mueller@ipfire.org>
Reviewed-by: Adolf Belka <adolf.belka@ipfire.org>
2022-07-09 15:04:26 +00:00
Peter Müller
60c784421f Core Update 170: Ship autoupdate.urls
Signed-off-by: Peter Müller <peter.mueller@ipfire.org>
2022-07-09 15:03:59 +00:00
Peter Müller
14a754ecaf urlfilter: Download University of Toulouse list via HTTPS
Fixes: #12891
Signed-off-by: Peter Müller <peter.mueller@ipfire.org>
Reviewed-by: Adolf Belka <adolf.belka@ipfire.org>
2022-07-09 15:03:12 +00:00
Peter Müller
60da82e5ec util-linux: Do not ship broken symlink "/usr/bin/x86_64"
This file points to /usr/bin/setarch, which we do not ship on any
architecture. As it serves no obvious purpose on IPFire installations,
we may as well not ship it entirely.

Signed-off-by: Peter Müller <peter.mueller@ipfire.org>
Reviewed-by: Adolf Belka <adolf.belka@ipfire.org>
2022-07-09 15:02:47 +00:00
Peter Müller
15c708c89a Core Update 170: Ship screen
Apparently, screen 4.8.0 was never shipped with any Core Update. To
ensure no stale files are left, delete any /usr/bin/screen-4.* binary,
as they will be replaced by the up-to-date version immediately
afterwards.

Signed-off-by: Peter Müller <peter.mueller@ipfire.org>
2022-07-09 15:00:19 +00:00
Peter Müller
962600b21a screen: Update to 4.9.0
Full changelog as per https://savannah.gnu.org/forum/forum.php?forum_id=10107:

New in this release:
  * Hardstatus option for used encoding (escape string '%e')
  * OpenBSD uses native openpty() from its utils.h
  * Fixes:
    - fix combining char handling that could lead to a segfault
    - CVE-2021-26937: possible denial of service via a crafted UTF-8 character sequence (bug #60030)
    - make screen exit code be 0 when checking --help
    - session names limit is 80 symbols (bug #61534)
    - option -X ignores specified user in multiuser env (bug #37437)
    - a lot of reformations/fixes/cleanups (man page and source code)

Signed-off-by: Peter Müller <peter.mueller@ipfire.org>
Reviewed-by: Adolf Belka <adolf.belka@ipfire.org>
2022-07-09 14:58:58 +00:00
Peter Müller
bc456153db Core Update 170: Ship usbutils
Signed-off-by: Peter Müller <peter.mueller@ipfire.org>
2022-07-09 14:58:38 +00:00
Peter Müller
65630b4a6b Finally get rid of orphaned xt_geoip directories
Signed-off-by: Peter Müller <peter.mueller@ipfire.org>
2022-07-09 11:55:29 +00:00
Peter Müller
84695e0308 Core Update 170: Clean up orphaned files on existing installations
Signed-off-by: Peter Müller <peter.mueller@ipfire.org>
2022-07-09 11:52:57 +00:00
Peter Müller
6dcfcc76ad Core Update 170: Ship Fireinfo
Signed-off-by: Peter Müller <peter.mueller@ipfire.org>
2022-07-09 09:18:34 +00:00
Peter Müller
56c2d2be98 Core Update 170: Ship harfbuzz
Signed-off-by: Peter Müller <peter.mueller@ipfire.org>
2022-07-09 09:08:52 +00:00
Adolf Belka
592c507248 harfbuzz: Update to version 4.4.1
- Update from version 4.2.0 to 4.4.1
- Update of rootfile
- Changelog
   Overview of changes leading to 4.4.1
	- Fix test failure with some compilers.
	- Fix Telugu and Kannada kerning regression.
   Overview of changes leading to 4.4.0
	- Caching of variable fonts shaping, in particular when using HarfBuzz’s own
	  font loading functions (ot). Bringing performance of variable shaping in par
	  with non-variable fonts shaping. (Behdad Esfahbod)
	- Caching of format 2 “Contextual Substitution” and “Chained Contexts
	  Substitution” lookups. Resulting in up to 20% speedup of lookup-heavy fonts
	  like Gulzar or Noto Nastaliq Urdu. (Behdad Esfahbod)
	- Improved ANSI output from hb-view. (Behdad Esfahbod)
	- Support for shaping legacy, pre-OpenType Windows 3.1-era, Arabic fonts that
	  relied on a fixed PUA encoding. (Khaled Hosny, Behdad Esfahbod)
	- Sinhala script is now shaped by the USE shaper instead of “indic” one.
	  (Behdad Esfahbod, David Corbett)
	- Thai shaper improvements. (David Corbett)
	- hb-ot-name API supports approximate BCP-47 language matching, for example
	  asking for “en_US” in a font that has only “en” names will return them.
	  (Behdad Esfahbod)
	- Optimized TrueType glyph shape loading. (Behdad Esfahbod)
	- Fix subsetting of HarfBuzz faces created via hb_face_create_for_tables().
	  (Garret Rieger)
	- Add 32 bit var store support to the subsetter. (Garret Rieger)
	- New API
	   +HB_BUFFER_FLAG_DEFINED
	   +HB_BUFFER_SERIALIZE_FLAG_DEFINED
	   +hb_font_changed()
	   +hb_font_get_serial()
	   +hb_ft_hb_font_changed()
	   +hb_set_hash()
	   +hb_map_copy()
	   +hb_map_hash()
   Overview of changes leading to 4.3.0
	- Major speed up in loading and subsetting fonts, especially in
	  handling CFF table. Subsetting some fonts is now 3 times faster.
	  (Behdad Esfahbod, Garret Rieger)
	- Speed up blending CFF2 table. (Behdad Esfahbod)
	- Speed up hb_ot_tags_from_language(). (Behdad Esfahbod, David Corbett)
	- Fix USE classification of U+10A38 to fix multiple marks on single Kharoshthi
	  base. (David Corbett)
	- Fix parsing of empty CFF Index. (Behdad Esfahbod)
	- Fix subsetting CPAL table with partial palette overlaps. (Garret Rieger)
	- New API
	   +hb_map_is_equal() (Behdad Esfahbod)
   Overview of changes leading to 4.2.1
	- Make sure hb_blob_create_from_file_or_fail() always returns nullptr in case
	  of failure and not empty blob sometimes. (Khaled Hosny)
	- Add --passthrough-tables option to hb-subset. (Cosimo Lupo)
	- Reinstate a pause after basic features in Khmer shaper, fixing a regression
	  introduced in previous release. (Behdad Esfahbod)
	- Better handling of Regional_Indicator when shaped with RTL-native scripts,
	  reverting earlier fix that caused regressions in AAT shaping. (Behdad Esfahbod)

Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
Reviewed-by: Peter Müller <peter.mueller@ipfire.org>
2022-07-09 09:08:44 +00:00
Adolf Belka
da92346e42 gutenprint: Update to version 5.3.4
- Update frpm version 5.2.9 (2012) to 5.3.4
- Update of rootfile
- find-dependencies run on sobumped libs. No dependencies found on old sobumped versions
   only on the new versions.
- Changelog is too large to include here (approx 1700 lines). For details of changes see
   the ChangeLog file in the source tarball

Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
Reviewed-by: Peter Müller <peter.mueller@ipfire.org>
2022-07-09 09:08:22 +00:00
Peter Müller
fbecc61817 Core Update 170: Ship gnutls
Signed-off-by: Peter Müller <peter.mueller@ipfire.org>
2022-07-09 09:07:53 +00:00
Adolf Belka
32393c0420 gnutls: Update to version 3.7.6
- Update from version 3.6.16 to 3.7.6
- Update of rootfile
- find-dependencies run on sobump libs. No dependencies flagged for the old or new libs
- Changelog
    * Version 3.7.6 (released 2022-05-27)
	** libgnutls: Fixed invalid write when gnutls_realloc_zero()
	   is called with new_size < old_size. This bug caused heap
	   corruption when gnutls_realloc_zero() has been set as gmp
	   reallocfunc (!1592, #1367, #1368, #1369).
	** API and ABI modifications:
	No changes since last version.
    * Version 3.7.5 (released 2022-05-15)
	** libgnutls: The GNUTLS_NO_TICKETS_TLS12 flag and %NO_TICKETS_TLS12 priority
	   modifier have been added to disable session ticket usage in TLS 1.2 because
	   it does not provide forward secrecy (#477).  On the other hand, since session
	   tickets in TLS 1.3 do provide forward secrecy, the PFS priority string now
	   only disables session tickets in TLS 1.2.  Future backward incompatibility:
	   in the next major release of GnuTLS, we plan to remove those flag and
	   modifier, and make GNUTLS_NO_TICKETS and %NO_TICKETS only affect TLS 1.2.
	** gnutls-cli, gnutls-serv: Channel binding for printing information
	   has been changed from tls-unique to tls-exporter as tls-unique is
	   not supported in TLS 1.3.
	** libgnutls: Certificate sanity checks has been enhanced to make
	   gnutls more RFC 5280 compliant (!1583).
	   Following changes were included:
	   - critical extensions are parsed when loading x509
	     certificate to prohibit any random octet strings.
	     Requires strict-x509 configure option to be enabled
	   - garbage bits in Key Usage extension are prohibited
	   - empty DirectoryStrings in Distinguished name structures
	     of Issuer and Subject name are prohibited
	** libgnutls: Removed 3DES from FIPS approved algorithms (#1353).
	   According to the section 2 of SP800-131A Rev.2, 3DES algorithm
	   will be disallowed for encryption after December 31, 2023:
	   https://csrc.nist.gov/publications/detail/sp/800-131a/rev-2/final
	** libgnutls: Optimized support for AES-SIV-CMAC algorithms (#1217, #1312).
	   The existing AEAD API that works in a scatter-gather fashion
	   (gnutls_aead_cipher_encryptv2) has been extended to support AES-SIV-CMAC.
	   For further optimization, new function (gnutls_aead_cipher_set_key) has been
	   added to set key on the existing AEAD handle without re-allocation.
	** libgnutls: HKDF and AES-GCM algorithms are now approved in FIPS-140 mode
	   when used in TLS (#1311).
	** The configure arguments for Brotli and Zstandard (zstd) support
	   have changed to reflect the previous help text: they are now
	   --with-brotli/--with-zstd respectively (#1342).
	** Detecting the Zstandard (zstd) library in configure has been
	   fixed (#1343).
	** API and ABI modifications:
	GNUTLS_NO_TICKETS_TLS12: New flag
	gnutls_aead_cipher_set_key: New function
    * Version 3.7.4 (released 2022-03-17)
	** libgnutls: Added support for certificate compression as defined in RFC8879
	   (#1301). New API functions (gnutls_compress_certificate_get_selected_method
	   and gnutls_compress_certificate_set_methods) allow client and server to set
	   their preferences.
	** certtool: Added option --compress-cert that allows user to specify
	   compression methods for certificate compression.
	** libgnutls: GnuTLS can now be compiled with --enable-strict-x509 configure
	   option to enforce stricter certificate sanity checks that are compliant with
	   RFC5280.
	** libgnutls: Removed IA5String type from DirectoryString within issuer
	   and subject name to make DirectoryString RFC5280 compliant.
	** libgnutls: Added function (gnutls_record_send_file) to send file content from
	   open file descriptor (!1486). The implementation is optimized if KTLS (kernel
	   TLS) is enabled.
	** libgnutls: Added function (gnutls_ciphersuite_get) to retrieve the name of
	   current ciphersuite from TLS session (#1291).
	** libgnutls: The run-time dependency on tpm2-tss is now re-implemented using
	   dlopen, so GnuTLS does not indirectly link to other crypto libraries until
	   TPM2 functionality is utilized (!1544).
	** API and ABI modifications:
	GNUTLS_COMP_BROTLI: New gnutls_compression_method_t enum member
	GNUTLS_COMP_ZSTD: New gnutls_compression_method_t enum member
	gnutls_compress_certificate_get_selected_method: Added
	gnutls_compress_certificate_set_methods: Added
	gnutls_ciphersuite_get: New function
	gnutls_record_send_file: New function
	libgnutlsxx: Soname bumped due to ABI breakage introduced in 3.7.1
    * Version 3.7.3 (released 2022-01-17)
	** libgnutls: The allowlisting configuration mode has been added to the system-wide
	   settings. In this mode, all the algorithms are initially marked as insecure
	   or disabled, while the applications can re-enable them either through the
	   [overrides] section of the configuration file or the new API (#1172).
	** The build infrastructure no longer depends on GNU AutoGen for generating
	   command-line option handling, template file parsing in certtool, and
	   documentation generation (#773, #774). This change also removes run-time or
	   bundled dependency on the libopts library, and requires Python 3.6 or later
	   to regenerate the distribution tarball.
	   Note that this brings in known backward incompatibility in command-line
	   tools, such as long options are now case sensitive, while previously they
	   were treated in a case insensitive manner: for example --RSA is no longer a
	   valid option of certtool. The existing scripts using GnuTLS tools may need
	   adjustment for this change.
	** libgnutls: The tpm2-tss-engine compatible private blobs can be loaded and
	   used as a gnutls_privkey_t (#594). The code was originally written for the
	   OpenConnect VPN project by David Woodhouse. To generate such blobs, use the
	   tpm2tss-genkey tool from tpm2-tss-engine:
	   https://github.com/tpm2-software/tpm2-tss-engine/#rsa-operations
	   or the tpm2_encodeobject tool from unreleased tpm2-tools.
	** libgnutls: The library now transparently enables Linux KTLS
	   (kernel TLS) when the feature is compiled in with --enable-ktls configuration
	   option (#1113). If the KTLS initialization fails it automatically falls back
	   to the user space implementation.
	** certtool: The certtool command can now read the Certificate Transparency
	   (RFC 6962) SCT extension (#232).  New API functions are also provided to
	   access and manipulate the extension values.
	** certtool: The certtool command can now generate, manipulate, and evaluate
	   x25519 and x448 public keys, private keys, and certificates.
	** libgnutls: Disabling a hashing algorithm through "insecure-hash"
	   configuration directive now also disables TLS ciphersuites that use it as a
	   PRF algorithm.
	** libgnutls: PKCS#12 files are now created with modern algorithms by default
	   (!1499).  Previously certtool used PKCS12-3DES-SHA1 for key derivation and
	   HMAC-SHA1 as an integity measure in PKCS#12.  Now it uses AES-128-CBC with
	   PBKDF2 and SHA-256 for both key derivation and MAC algorithms, and the
	   default PBKDF2 iteration count has been increased to 600000.
	** libgnutls: PKCS#12 keys derived using GOST algorithm now uses
	   HMAC_GOSTR3411_2012_512 instead of HMAC_GOSTR3411_2012_256 for integrity, to
	   conform with the latest TC-26 requirements (#1225).
	** libgnutls: The library now provides a means to report the status of approved
	   cryptographic operations (!1465). To adhere to the FIPS140-3 IG 2.4.C., this
	   complements the existing mechanism to prohibit the use of unapproved
	   algorithms by making the library unusable state.
	** gnutls-cli: The gnutls-cli command now provides a --list-config option to
	   print the library configuration (!1508).
	** libgnutls: Fixed possible race condition in
	   gnutls_x509_trust_list_verify_crt2 when a single trust list object is shared
	   among multiple threads (#1277). [GNUTLS-SA-2022-01-17, CVSS: low]
	** API and ABI modifications:
	GNUTLS_PRIVKEY_FLAG_RSA_PSS_FIXED_SALT_LENGTH: new flag in gnutls_privkey_flags_t
	GNUTLS_VERIFY_RSA_PSS_FIXED_SALT_LENGTH: new flag in gnutls_certificate_verify_flags
	gnutls_ecc_curve_set_enabled: Added.
	gnutls_sign_set_secure: Added.
	gnutls_sign_set_secure_for_certs: Added.
	gnutls_digest_set_secure: Added.
	gnutls_protocol_set_enabled: Added.
	gnutls_fips140_context_init: New function
	gnutls_fips140_context_deinit: New function
	gnutls_fips140_push_context: New function
	gnutls_fips140_pop_context: New function
	gnutls_fips140_get_operation_state: New function
	gnutls_fips140_operation_state_t: New enum
	gnutls_transport_is_ktls_enabled: New function
	gnutls_get_library_configuration: New function
    * Version 3.7.2 (released 2021-05-29)
	** libgnutls: The priority string option %DISABLE_TLS13_COMPAT_MODE was added
	   to disable TLS 1.3 middlebox compatibility mode
	** libgnutls: The Linux kernel AF_ALG based acceleration has been added.
	   This can be enabled with --enable-afalg configure option, when libkcapi
	   package is installed (#308).
	** libgnutls: Fixed timing of early data exchange. Previously, the client was
	   sending early data after receiving Server Hello, which not only negates the
	   benefit of 0-RTT, but also works under certain assumptions hold (e.g., the
	   same ciphersuite is selected in initial and resumption handshake) (#1146).
	** certtool: When signing a CSR, CRL distribution point (CDP) is no longer
	   copied from the signing CA by default (#1126).
	** libgnutls: The GNUTLS_NO_EXPLICIT_INIT envvar has been renamed to
	   GNUTLS_NO_IMPLICIT_INIT to reflect the purpose (#1178). The former is now
	   deprecated and will be removed in the future releases.
	** certtool: When producing certificates and certificate requests, subject DN
	   components that are provided individually will now be ordered by
	   assumed scale (e.g. Country before State, Organization before
	   OrganizationalUnit).  This change also affects the order in which
	   certtool prompts interactively.  Please rely on the template
	   mechanism for automated use of certtool! (#1243)
	** API and ABI modifications:
	gnutls_early_cipher_get: Added
	gnutls_early_prf_hash_get: Added
	** guile: Writes to a session record port no longer throw an exception upon
	   GNUTLS_E_AGAIN or GNUTLS_E_INTERRUPTED.
    * Version 3.7.1 (released 2021-03-10)
	** libgnutls: Fixed potential use-after-free in sending "key_share"
	   and "pre_shared_key" extensions. When sending those extensions, the
	   client may dereference a pointer no longer valid after
	   realloc. This happens only when the client sends a large Client
	   Hello message, e.g., when HRR is sent in a resumed session
	   previously negotiated large FFDHE parameters, because the initial
	   allocation of the buffer is large enough without having to call
	   realloc (#1151).  [GNUTLS-SA-2021-03-10, CVSS: low]
	** libgnutls: Fixed a regression in handling duplicated certs in a
	   chain (#1131).
	** libgnutls: Fixed sending of session ID in TLS 1.3 middlebox
	   compatibiltiy mode. In that mode the client shall always send a
	   non-zero session ID to make the handshake resemble the TLS 1.2
	   resumption; this was not true in the previous versions (#1074).
	** libgnutls: W32 performance improvement with a new sendmsg()-like
	   transport implementation (!1377).
	** libgnutls: Removed dependency on the external 'fipscheck' package,
	   when compiled with --enable-fips140-mode (#1101).
	** libgnutls: Added padlock acceleration for AES-192-CBC (#1004).
	** API and ABI modifications:
	No changes since last version.
    * Version 3.7.0 (released 2020-12-02)
	** libgnutls: Depend on nettle 3.6 (!1322).
	** libgnutls: Added a new API that provides a callback function to
	   retrieve missing certificates from incomplete certificate chains
	   (#202, #968, #1100).
	** libgnutls: Added a new API that provides a callback function to
	   output the complete path to the trusted root during certificate
	   chain verification (#1012).
	** libgnutls: OIDs exposed as gnutls_datum_t no longer account for the
	   terminating null bytes, while the data field is null terminated.
	   The affected API functions are: gnutls_ocsp_req_get_extension,
	   gnutls_ocsp_resp_get_response, and gnutls_ocsp_resp_get_extension
	   (#805).
	** libgnutls: Added a new set of API to enable QUIC implementation (#826, #849,
	   #850).
	** libgnutls: The crypto implementation override APIs deprecated in 3.6.9 are
	   now no-op (#790).
	** libgnutls: Added MAGMA/KUZNYECHIK CTR-ACPKM and CMAC support (!1161).
	** libgnutls: Support for padlock has been fixed to make it work with Zhaoxin
	   CPU (#1079).
	** libgnutls: The maximum PIN length for PKCS #11 has been increased from 31
	   bytes to 255 bytes (#932).
	** API and ABI modifications:
	gnutls_x509_trust_list_set_getissuer_function: Added
	gnutls_x509_trust_list_get_ptr: Added
	gnutls_x509_trust_list_set_ptr: Added
	gnutls_session_set_verify_output_function: Added
	gnutls_record_encryption_level_t: New enum
	gnutls_handshake_read_func: New callback type
	gnutls_handshake_set_read_function: New function
	gnutls_handshake_write: New function
	gnutls_handshake_secret_func: New callback type
	gnutls_handshake_set_secret_function: New function
	gnutls_alert_read_func: New callback type
	gnutls_alert_set_read_function: New function
	gnutls_crypto_register_cipher: Deprecated; no-op
	gnutls_crypto_register_aead_cipher: Deprecated; no-op
	gnutls_crypto_register_mac: Deprecated; no-op
	gnutls_crypto_register_digest: Deprecated; no-op

Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
Reviewed-by: Peter Müller <peter.mueller@ipfire.org>
2022-07-09 09:07:44 +00:00
Peter Müller
2f3fd8ea83 Core Update 170: Ship OpenSSL
Signed-off-by: Peter Müller <peter.mueller@ipfire.org>
2022-07-09 08:58:51 +00:00
Tim FitzGeorge
a2e095aff1 ipblocklist: Add neccessary files for logwatch. 2022-07-07 17:28:05 +02:00
Stefan Schantl
ce5b281190 fcron: Try to update ipblocklists every 15 min.
Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
2022-07-07 17:28:01 +02:00
Stefan Schantl
6f37368da6 rules.pl: Do not check private networks against ipblocklists.
In case some of these private networks are part of an used blocklist
this kind of traffic needs to be allowed. Otherwise some services may
not work properly.

For example:
In case one ore more IPSec N2N connections are configured no traffic can
be passed through it, if the used networks are part of an blocklist.

Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
2022-07-07 17:27:14 +02:00
Stefan Schantl
adbd2bd6d4 rules.pl: Flush ipblocklist DROP chains.
Flush the DROP chains of the blocklist chains while reloading the
firewall. Otherwise the log rules will stay even if logging has been
disabled in the meantime.

Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
2022-07-07 17:27:14 +02:00
Stefan Schantl
404b513794 ipblocklist: Add "v4" as extension to the ipset set names.
This easily allows us to swap the sets after updating, without
unloading them.

Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
2022-07-07 17:27:14 +02:00
Stefan Schantl
9759d96e1b stage2: Add database directory for ipblocklist feature.
Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
2022-07-07 17:27:14 +02:00
Stefan Schantl
018a809831 crontab: Add job for periodic ipblocklist updates.
Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
2022-07-07 17:27:06 +02:00
Tim FitzGeorge
5af16e17df ipblocklist: Rootfile updates.
Signed-off-by: Tim FitzGeorge <ipfr@tfitzgeorge.me.uk>
Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
2022-07-07 17:26:14 +02:00
Tim FitzGeorge
4ca678a857 ipblocklist-sources: New package.
Placing the ipblocklist sources file as an own package, easily
allows to update this single file during a core update and to
keep the vendor details for the blocklists up-to-date.

Signed-off-by: Tim FitzGeorge <ipfr@tfitzgeorge.me.uk>
Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
2022-07-07 17:26:14 +02:00
Tim FitzGeorge
d8bb263819 backup: Add ipblocklist related files.
Signed-off-by: Tim FitzGeorge <ipfr@tfitzgeorge.me.uk>
Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
2022-07-07 17:26:14 +02:00
Stefan Schantl
aba4e1cd1e rules.pl: Refactor logic to handle the IP blocklist feature.
* Fixes that the same chain would be created each time a firewall
reload is performed.

* Also fixes multiple log and drop rules inside the the BLOCKLIST_DROP
  chains after doing a firewall reload.

* Orphaned BLOCKLIST_DROP chains now will be flushed and removed in case
  the blocklist gets disabled or the entire feature will be swithed off.

Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
2022-07-07 17:26:14 +02:00
Stefan Schantl
960608c8b5 rules.pl: Add function to check if given firewall chain exists.
Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
2022-07-07 17:26:14 +02:00
Stefan Schantl
36330f84fb rules.pl: Fix typo when creating blocklist drop chains.
Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
2022-07-07 17:26:14 +02:00
Stefan Schantl
39eba7abab rules.pl: Check if the blocklist is part of the settings hash.
Otherwise there will pop up some ugly notices on the command line and
the logs.

Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
2022-07-07 17:26:14 +02:00
Rob Brewer
bbbea6f9ba rules.pl: Add space at the end of the log prefix.
This improves the readabiliy when digging through the logs.

Signed-off-by: Rob Brewer <rob.brewer@ipfire.org>
Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
2022-07-07 17:26:14 +02:00
Tim FitzGeorge
1fd351d407 Menu: Add ipblocklist entry to firewall menu.
Signed-off-by: Tim FitzGeorge <ipfr@tfitzgeorge.me.uk>
Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
2022-07-07 17:26:14 +02:00
Tim FitzGeorge
42564758ab Menu: Add ipblocklist entry to log menu.
Signed-off-by: Tim FitzGeorge <ipfr@tfitzgeorge.me.uk>
Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
2022-07-07 17:26:14 +02:00
Stefan Schantl
7f4829de97 ipblocklist-functions.pl: Allow export of modified_file and
blocklist_dir values.

They so easily can be accessed by other perl scripts.

Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
2022-07-07 17:26:13 +02:00
Stefan Schantl
d8113820e3 ipblocklist-functions.pl: Store the local time if no last modified could
be determined.

Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
2022-07-07 17:26:13 +02:00
Tim FitzGeorge
8d12d12a4f ipblocklist-functions.pl: Add function to get the holdoff_rate of a
given list.

The function will return the rate in seconds based on the configured
rate value in the blocklist sources file and the given blocklist.

Signed-off-by: Tim FitzGeorge <ipfr@tfitzgeorge.me.uk>
Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
2022-07-07 17:26:13 +02:00
Stefan Schantl
a7bf1d9666 rules.pl: Add code to deal with ipblocklists.
Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
2022-07-07 17:26:13 +02:00
Stefan Schantl
d7dd565341 ipblocklist-functions.pl: Abort and return code if a list is empty or
not parse-able.

In case the downloaded list is empty or the parser is not able to parse
it properly, the download_and_create_blocklist() function now exits and
will return "empty_list" as new error code.

Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
2022-07-07 17:26:13 +02:00
Tim FitzGeorge
0a4f60f28c ipblocklist-functions.pl: Add helper function to proper calculate the
hashsize.

Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
2022-07-07 17:26:13 +02:00
Tim FitzGeorge
ac9b5d8e6b ipblocklist-functions.pl: Add parser of dshield.
This vendor has a different list format and therefore requires an
own parser.

Signed-off-by: Tim FitzGeorge <ipfr@tfitzgeorge.me.uk>
Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
2022-07-07 17:26:13 +02:00
Tim FitzGeorge
ab0179617d ipblocklist-functions.pl: Add parser to obtain IP or Net addresses from
a blocklist.

Signed-off-by: Tim FitzGeorge <ipfr@tfitzgeorge.me.uk>
Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
2022-07-07 17:26:13 +02:00
Stefan Schantl
ba8455e469 ipblocklist-functions.pl: Add download_and_create_blocklist function.
This function is responisible for downloading and converting the
blocklist into an ipset compatible format.

The only required argument is the blocklist (in upper letter format) which should be
performed. It automatically will setup an upstream proxy (if configured)
and grab the file specified in the blocklist vendor configuration hash.

There is a maximum amount of five attempts until the script gives up and
returns a "dl_error". In case the server responses with "Not Modified"
(Code 304) a "not_modified" will be returned.

If the blocklist successfully has been grabbed, the modification date
get stored for further purposes and the list content will be converted
and stored in an ipset compatible format.

Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
Inspired-by: Tim FitzGeorge <ipfr@tfitzgeorge.me.uk>
2022-07-07 17:26:13 +02:00
Stefan Schantl
e64587a43d ipblocklist-functions.pl: Add get_ipset_db_file() function.
This function is used to generate the filename and full path
for a given blocklist name.

Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
2022-07-07 17:26:13 +02:00
Stefan Schantl
f4c25a44e2 ipblocklist-functions.pl: Initial commit.
This library file will contain a collection of functions, which are
required to deal with the ipblocklist feature.

Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
2022-07-07 17:26:13 +02:00
Tim FitzGeorge
f17b5303cb ipblocklist: Add sources file.
Signed-off-by: Tim FitzGeorge <ipfr@tfitzgeorge.me.uk>
Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
2022-07-07 17:26:13 +02:00
Stefan Schantl
3c63c5da5e Merge branch 'next' of ssh://git.ipfire.org/pub/git/ipfire-2.x into next 2022-07-07 17:17:54 +02:00