Commit Graph

21452 Commits

Author SHA1 Message Date
Vincent Li
936c1a4fa0 Add XDP program load/unload script
Signed-off-by: Vincent Li <vincent.mc.li@gmail.com>
2024-03-20 17:42:30 +00:00
Vincent Li
8e4e24a9b9 Add XDP DDoS ddos.cgi
Signed-off-by: Vincent Li <vincent.mc.li@gmail.com>
2024-03-20 17:42:07 +00:00
Vincent Li
31f89d1813 Add eBPF XDP DDoS menu
Signed-off-by: Vincent Li <vincent.mc.li@gmail.com>
2024-03-16 15:54:04 +00:00
Vincent Li
dbb9b7014f fix remote.cgi code style
Signed-off-by: Vincent Li <vincent.mc.li@gmail.com>
2024-03-16 03:26:26 +00:00
Vincent Li
e48a29a3f1 Add XDP SYNPROXY rules in raw and filter table
XDP SYNPROXY requires setting up iptables rule
in raw table PREROUTING chain and filter table
INPUT chain.

Signed-off-by: Vincent Li <vincent.mc.li@gmail.com>
2024-03-16 03:26:18 +00:00
Vincent Li
1f16691715 Add custom XDP SYNPROXY chain
XDP SYNPROXY rules needs to be first in filter table
INPUT user defined chain and raw table PREROUTING
user defined chain.

To list the custom chain evaluation order for example:

iptables -L INPUT --line-numbers
Chain INPUT (policy DROP)
num  target     prot opt source               destination
1    INSYNPROXY  all  --  anywhere             anywhere
2    IPSBYPASS  all  --  anywhere             anywhere             mark match 0xc0000000/0xc0000000
3    BADTCP     tcp  --  anywhere             anywhere
4    CUSTOMINPUT  all  --  anywhere             anywhere
5    HOSTILE    all  --  anywhere             anywhere
6    BLOCKLISTIN !icmp --  anywhere             anywhere
7    GUARDIAN   all  --  anywhere             anywhere
8    OVPNBLOCK  all  --  anywhere             anywhere
9    IPS_INPUT  all  --  anywhere             anywhere             mark match 0x0/0xc0000000
10   IPTVINPUT  all  --  anywhere             anywhere
11   ICMPINPUT  all  --  anywhere             anywhere
12   LOOPBACK   all  --  anywhere             anywhere
13   CAPTIVE_PORTAL  all  --  anywhere             anywhere
14   CONNTRACK  all  --  anywhere             anywhere
15   DHCPGREENINPUT  all  --  anywhere             anywhere
16   TOR_INPUT  all  --  anywhere             anywhere
17   LOCATIONBLOCK  all  --  anywhere             anywhere
18   IPSECINPUT  all  --  anywhere             anywhere
19   GUIINPUT   all  --  anywhere             anywhere
20   WIRELESSINPUT  all  --  anywhere             anywhere             ctstate NEW
21   OVPNINPUT  all  --  anywhere             anywhere
22   INPUTFW    all  --  anywhere             anywhere
23   REDINPUT   all  --  anywhere             anywhere
24   POLICYIN   all  --  anywhere             anywhere

iptables -t raw -L PREROUTING --line-numbers

Chain PREROUTING (policy ACCEPT)
num  target     prot opt source               destination
1    RAWSYNPROXY  all  --  anywhere             anywhere

Signed-off-by: Vincent Li <vincent.mc.li@gmail.com>
2024-03-15 02:56:41 +00:00
Vincent Li
baf1d4a604 Disable vim automatic visual mode on mouse select
when mouse select, vim automatically turns into
visual mode, this is not convienent when copy
and paste in vim with mouse select.

Signed-off-by: Vincent Li <vincent.mc.li@gmail.com>
2024-03-14 23:50:24 +00:00
Vincent Li
968fd0ca40 make sub routine for various rule check
with routine, we could reuse the code if possible.

Signed-off-by: Vincent Li <vincent.mc.li@gmail.com>
2024-03-14 23:49:14 +00:00
Vincent Li
852567122e Add XDP SYNPROXY iptables rule UI option
Signed-off-by: Vincent Li <vincent.mc.li@gmail.com>
2024-03-12 02:41:43 +00:00
Vincent Li
eefbd2ef87 mount bpffs for XDP program
Signed-off-by: Vincent Li <vincent.mc.li@gmail.com>
2024-03-04 22:15:09 +00:00
Vincent Li
11d2901fc7 Update README with FireBeeOS
Signed-off-by: Vincent Li <vincent.mc.li@gmail.com>
2024-03-01 04:08:02 +00:00
Vincent Li
0864b3a5ba Add ecapture add-on
Signed-off-by: Vincent Li <vincent.mc.li@gmail.com>
2024-03-01 04:08:02 +00:00
Vincent Li
05ac4be397 add bpftool and re-arrange lfs build order
add lfs bpftool from [0] first to meet lfs
xdp-tools requirement.

also re-arrange BPF related add-on build order
to meet lfs knot build since it requires XDP
xsk.h

[0] https://github.com/libbpf/bpftool/releases/download/v7.3.0/bpftool-libbpf-v7.3.0-sources.tar.gz

Signed-off-by: Vincent Li <vincent.mc.li@gmail.com>
2024-03-01 04:08:02 +00:00
Vincent Li
f8ca312cfa Add xdp-tools add-on with XDP Synproxy
add xdp-tools utilities with addition of
SYN flooding DDoS attack protection in XDP

Signed-off-by: Vincent Li <vincent.mc.li@gmail.com>
2024-03-01 04:08:02 +00:00
Vincent Li
292ed31c4d Add clang add-on
xdp-tools requires clang, add clang during build
to meet xdp-tools requirement.

Signed-off-by: Vincent Li <vincent.mc.li@gmail.com>
2024-03-01 04:08:02 +00:00
Vincent Li
5de4e5e9e9 Add pahole during build
add pahole add-on during build to
allow kernel with BPF/BTF enabled
to be built. no need to install pahole
since we only need it during build.

the procedure to prepare pahole tar ball:

download pahole from [0]
untar it and download libbpf from [1]
and untar libbpf

then:

rm pahole-1.25/lib/bpf
mv libbpf-1.3.0 to pahole-1.25/lib/
cd pahole-1.25/lib/
mv libbpf-1.3.0 bpf
cd ../../
tar -czcf pahole-1.25.tar.gz pahole-1.25

mv pahole-1.25.tar.gz ipfire-2.x/cache
b2sum ipfire-2.x/cache/pahole-1.25.tar.gz

Note cmake without optimization -O2 in
lfs/pahole result in _FORTIFY_SOURCE requires
optimzation error since ipfire glibc built
with --enable-fortify-source

this also avoid the hack in [2]

[0]https://git.kernel.org/pub/scm/devel/pahole/pahole.git/snapshot/pahole-1.25.tar.gz
[1]https://github.com/libbpf/libbpf/archive/refs/tags/v1.3.0.tar.gz
[2]https://community.ipfire.org/t/how-to-customize-config-kernel-kernel-config-x86-64-ipfire/11100/8

Signed-off-by: Vincent Li <vincent.mc.li@gmail.com>
2024-03-01 04:08:02 +00:00
Vincent Li
fc0c2fe6da Add GUI Chinese translation
Add China mainland, China hk, China tw
translation. remember to remove log/configroot
to re-build image with new language support

Signed-off-by: Vincent Li <vincent.mc.li@gmail.com>
2024-03-01 04:08:01 +00:00
Vincent Li
45f0a5d543 Add lfs libbpf 1.3.0 add-on
follow [0] to add libbpf add-on for bpf user space
program to open,load,attach bpf program.

to build libbpf add-on, follow [1] first, then follow [0]

[0] https://www.ipfire.org/docs/devel/ipfire-2-x/addon-howto
[1] https://www.ipfire.org/docs/devel/ipfire-2-x/build-howto

Signed-off-by: Vincent Li <vincent.mc.li@gmail.com>
2024-03-01 04:08:01 +00:00
Vincent Li
e97d70d152 Add bpftool
bpftool comes with Linux kernel source and
it is handy to have bpftool on ipfire kernel
with BPF/BTF enabled to diagnosis BPF related
issue.

Signed-off-by: Vincent Li <vincent.mc.li@gmail.com>
2024-03-01 04:08:01 +00:00
Vincent Li
d0bd3cc033 Enable kernel BPF/BTF
enable kernel BPF/BTF build for ebpf/XDP
program packet filtering

see hack in [1]

[1] https://community.ipfire.org/t/how-to-customize-config-kernel-kernel-config-x86-64-ipfire/11100/7

Signed-off-by: Vincent Li <vincent.mc.li@gmail.com>
2024-03-01 04:08:01 +00:00
Vincent Li
803c6baaea Increase img build partition size
increase img build partition size for
BPF/BTF enabled kernel

Singed-off-by: Vincent Li <vincent.mc.li@gmail.com>
2024-03-01 04:08:01 +00:00
Vincent Li
2f621b80d5 Increase build tmpfs size
increase build tmpfs size to prepare space
for building BPF/BTF enabled kernel

Singed-off-by: Vincent Li <vincent.mc.li@gmail.com>
2024-03-01 04:08:01 +00:00
Vincent Li
7773f82726 Enable serial console in default grub
serial console allows user to easy access
to ipfire image instance in KVM/Libvirt
environment by virt console <ipfire instance>

Signed-off-by: Vincent Li <vincent.mc.li@gmail.com>
2024-03-01 04:08:01 +00:00
Arne Fitzenreiter
6d501c0558 cpufrequtils: hide output on disabled cores.
We disable cores if the are affected by some cpu vulnerabilities
this cores report errors if you try to change the settings.
So only print the output for core0 and hide it for all cores.

Signed-off-by: Arne Fitzenreiter <arne_f@ipfire.org>
2024-02-18 11:41:20 +01:00
Arne Fitzenreiter
06a6788e51 core184: fix rtl8812au module compression
Signed-off-by: Arne Fitzenreiter <arne_f@ipfire.org>
2024-02-18 07:59:18 +01:00
Arne Fitzenreiter
1d1f9a9a06 rtl8812au: fix module compression
the kernel cannot load the compressed module so fix compression
parameters.

Signed-off-by: Arne Fitzenreiter <arne_f@ipfire.org>
2024-02-17 19:58:52 +01:00
Arne Fitzenreiter
51fd73ea2b cpufrequtils: fix initskript for amd-pstate
the initskript loads a test-modul for amd-pstate (which traces on intel)
and off course reports errors if firmware settings are missing.

this also fix the error at start because also amd-pstate doesn't support
ondemand mode.

Signed-off-by: Arne Fitzenreiter <arne_f@ipfire.org>
2024-02-17 19:57:42 +01:00
Adolf Belka
c9c9580c4e freeradius: Increment PAK_VER & ship freeradius to link to the updated libssl version
- OpenSSL was updated to 3.1.4 in CU181 and to 3.2.1 in CU183 but in both cases freeradius
   was not incremented to cause it to be shipped.
- This patch increments the freeradius PAK_VER to ensure it will be shipped.

Fixes: Bug#13590
Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-02-16 12:28:55 +00:00
Adolf Belka
dd24668627 files: Ship collectd.conf for bug#12981
Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-02-14 19:06:20 +00:00
Adolf Belka
2071b2964f graphs.pl: Fixes graph failure when the DROP_HOSTILE directory is missing
- If a fresh install is done then only the DROP_HOSTILE_IN & DROP_HOSTILE_OUT
   rrd directories are created.
- With the DROP_HOSTILE directory missing then when the fwhits graph is updated an error
   message is caused by the inability to open the required files.
- This patch adds an if/else loop into the fwhits graph code to deal with the two cases
   of the DROP_HOSTILE being present or not depending on the history and if a backup with
   logs has been restored from when DROP_HOSTILE was in use.
- Tested on vm testbed and created a historical line for the hostile data when it was not
   split
- There might be a simpler or better approach than this but it was the only option I
   could identify. I couldn't find anything about being able to use if loops within the
   RRD::Graph loop

Tested-by: Adolf Belka <adolf.belka@ipfire.org>
Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-02-14 19:01:44 +00:00
Michael Tremer
f3d7ce3b5d core184: Ship unbound
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-02-14 19:01:25 +00:00
Matthias Fischer
4fb7b18843 unbound: Update to 1.19.1
For details see:
https://nlnetlabs.nl/projects/unbound/download/#unbound-1-19-1

"Bug Fixes

    Fix CVE-2023-50387, DNSSEC verification complexity can be exploited
    to exhaust CPU resources and stall DNS resolvers.
    Fix CVE-2023-50868, NSEC3 closest encloser proof can exhaust CPU."

Signed-off-by: Matthias Fischer <matthias.fischer@ipfire.org>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-02-14 19:00:36 +00:00
Matthias Fischer
e705636a85 unbound 1.19.1: Fix for forgotten rootfile
Signed-off-by: Matthias Fischer <matthias.fischer@ipfire.org>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-02-14 19:00:30 +00:00
Michael Tremer
0698daa3fb core184: Ship bind
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-02-14 19:00:03 +00:00
Matthias Fischer
de9e44e82d bind: Update to 9.16.48
For details see:
https://downloads.isc.org/isc/bind9/9.16.48/doc/arm/html/notes.html#notes-for-bind-9-16-48

Fixes several CVEs.

Signed-off-by: Matthias Fischer <matthias.fischer@ipfire.org>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-02-14 18:59:48 +00:00
Michael Tremer
4a9fe2eaaa Merge branch 'next' 2024-02-10 11:43:56 +00:00
Michael Tremer
ee4c8d28e4 core183: Ship suricata
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-02-09 14:15:32 +00:00
Michael Tremer
89941c3d13 suricata: Update to 6.0.16
https://redmine.openinfosecfoundation.org/versions/201

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-02-09 14:14:46 +00:00
Michael Tremer
456aad9443 libhtp: Update to 0.5.46
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-02-09 14:14:35 +00:00
Michael Tremer
4c68bcb588 installer: Fail if the bootloader could not be installed
If GRUB could not be installed during installation, the installer
continued without reporting the error to the user.

This change will make the installer fail.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-02-09 12:02:28 +00:00
Michael Tremer
bce42f80eb core184: Ship suricata & libhtp
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-02-09 11:39:02 +00:00
Michael Tremer
fced111d30 libhtp: Update to 0.5.46
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-02-09 11:33:23 +00:00
Michael Tremer
ef387142af suricata: Update to 6.0.16
https://redmine.openinfosecfoundation.org/versions/201

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-02-09 11:30:38 +00:00
Michael Tremer
8e111d6f03 core184: Ship squid
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-02-09 11:26:55 +00:00
Matthias Fischer
8c2109bc21 squid: Update to 6.7
Signed-off-by: Matthias Fischer <matthias.fischer@ipfire.org>

For details see:
https://github.com/squid-cache/squid/commits/v6

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-02-09 11:25:40 +00:00
Michael Tremer
498d5613d6 core184: Ship expat
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-02-09 11:25:19 +00:00
Adolf Belka
49b8893ff5 expat: Update to version 2.6.0
- Update from version 2.5.0 to 2.6.0
- Update of rootfile
- This update fixes two CVE's. Not sure if IPFire would be vulnerable or not but safer
   to update anyway.
- Changelog
    2.6.0
        Security fixes:
	      #789 #814  CVE-2023-52425 -- Fix quadratic runtime issues with big tokens
	                   that can cause denial of service, in partial where
	                   dealing with compressed XML input.  Applications
	                   that parsed a document in one go -- a single call to
	                   functions XML_Parse or XML_ParseBuffer -- were not affected.
	                   The smaller the chunks/buffers you use for parsing
	                   previously, the bigger the problem prior to the fix.
	                   Backporters should be careful to no omit parts of
	                   pull request #789 and to include earlier pull request #771,
	                   in order to not break the fix.
	           #777  CVE-2023-52426 -- Fix billion laughs attacks for users
	                   compiling *without* XML_DTD defined (which is not common).
	                   Users with XML_DTD defined have been protected since
	                   Expat >=2.4.0 (and that was CVE-2013-0340 back then).
        Bug fixes:
	            #753  Fix parse-size-dependent "invalid token" error for
	                    external entities that start with a byte order mark
	            #780  Fix NULL pointer dereference in setContext via
	                    XML_ExternalEntityParserCreate for compilation with
	                    XML_DTD undefined
	       #812 #813  Protect against closing entities out of order
        Other changes:
	            #723  Improve support for arc4random/arc4random_buf
	       #771 #788  Improve buffer growth in XML_GetBuffer and XML_Parse
	       #761 #770  xmlwf: Support --help and --version
	       #759 #770  xmlwf: Support custom buffer size for XML_GetBuffer and read
	            #744  xmlwf: Improve language and URL clickability in help output
	            #673  examples: Add new example "element_declarations.c"
	            #764  Be stricter about macro XML_CONTEXT_BYTES at build time
	            #765  Make inclusion to expat_config.h consistent
	       #726 #727  Autotools: configure.ac: Support --disable-maintainer-mode
	    #678 #705 ..
	  #706 #733 #792  Autotools: Sync CMake templates with CMake 3.26
	            #795  Autotools: Make installation of shipped man page doc/xmlwf.1
	                    independent of docbook2man availability
	            #815  Autotools|CMake: Add missing -DXML_STATIC to pkg-config file
	                    section "Cflags.private" in order to fix compilation
	                    against static libexpat using pkg-config on Windows
	       #724 #751  Autotools|CMake: Require a C99 compiler
	                    (a de-facto requirement already since Expat 2.2.2 of 2017)
	            #793  Autotools|CMake: Fix PACKAGE_BUGREPORT variable
	       #750 #786  Autotools|CMake: Make test suite require a C++11 compiler
	            #749  CMake: Require CMake >=3.5.0
	            #672  CMake: Lowercase off_t and size_t to help a bug in Meson
	            #746  CMake: Sort xmlwf sources alphabetically
	            #785  CMake|Windows: Fix generation of DLL file version info
	            #790  CMake: Build tests/benchmark/benchmark.c as well for
	                    a build with -DEXPAT_BUILD_TESTS=ON
	       #745 #757  docs: Document the importance of isFinal + adjust tests
	                    accordingly
	            #736  docs: Improve use of "NULL" and "null"
	            #713  docs: Be specific about version of XML (XML 1.0r4)
	                    and version of C (C99); (XML 1.0r5 will need a sponsor.)
	            #762  docs: reference.html: Promote function XML_ParseBuffer more
	            #779  docs: reference.html: Add HTML anchors to XML_* macros
	            #760  docs: reference.html: Upgrade to OK.css 1.2.0
	       #763 #739  docs: Fix typos
	            #696  docs|CI: Use HTTPS URLs instead of HTTP at various places
	    #669 #670 ..
	    #692 #703 ..
	       #733 #772  Address compiler warnings
	       #798 #800  Address clang-tidy warnings
	       #775 #776  Version info bumped from 9:10:8 (libexpat*.so.1.8.10)
	                    to 10:0:9 (libexpat*.so.1.9.0); see https://verbump.de/
	                    for what these numbers do
        Infrastructure:
	       #700 #701  docs: Document security policy in file SECURITY.md
	            #766  docs: Improve parse buffer variables in-code documentation
	    #674 #738 ..
	    #740 #747 ..
	  #748 #781 #782  Refactor coverage and conformance tests
	       #714 #716  Refactor debug level variables to unsigned long
	            #671  Improve handling of empty environment variable value
	                    in function getDebugLevel (without visible user effect)
	    #755 #774 ..
	    #758 #783 ..
	       #784 #787  tests: Improve test coverage with regard to parse chunk size
	  #660 #797 #801  Fuzzing: Improve fuzzing coverage
	       #367 #799  Fuzzing|CI: Start running OSS-Fuzz fuzzing regression tests
	       #698 #721  CI: Resolve some Travis CI leftovers
	            #669  CI: Be robust towards absence of Git tags
	       #693 #694  CI: Set permissions to "contents: read" for security
	            #709  CI: Pin all GitHub Actions to specific commits for security
	            #739  CI: Reject spelling errors using codespell
	            #798  CI: Enforce clang-tidy clean code
	    #773 #808 ..
	       #809 #810  CI: Upgrade Clang from 15 to 18
	            #796  CI: Start using Clang's Control Flow Integrity sanitizer
	  #675 #720 #722  CI: Adapt to breaking changes in GitHub Actions Ubuntu images
	            #689  CI: Adapt to breaking changes in Clang/LLVM Debian packaging
	            #763  CI: Adapt to breaking changes in codespell
	            #803  CI: Adapt to breaking changes in Cppcheck

Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-02-09 11:24:59 +00:00
Michael Tremer
3757d24e47 libvirt: Don't build for riscv64
There seems to be some problem that this package does not build from
source, but as we don't currently have any hardware that supports thise,
there is no point in debugging it.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-02-07 11:21:49 +00:00
Michael Tremer
b8c898b482 core184: Ship vpnmain.cgi
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-02-07 11:09:50 +00:00
Michael Tremer
9f01011570 vpnmain.cgi: Add option to regenerate the host certificate
This is necessary since we now have a much shorter lifetime for the host
certificate. However, it is complicated to do this is which is why we
are copying the previous certificate and generate a new CSR. This is
then signed.

A caveat of this patch is that we do not rollover the key.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-02-07 11:08:51 +00:00