Commit graph

149 commits

Author SHA1 Message Date
StepSecurity Bot
5897a4ece0
[StepSecurity] Apply security best practices
Signed-off-by: StepSecurity Bot <bot@stepsecurity.io>
2024-03-21 15:21:39 +00:00
94bc56f032
Merge pull request #1 from wneessen/fix_workflows
Implement security improvements and workflow updates
2024-03-21 16:15:21 +01:00
5c41bef4dc
Remove CodeQL 2024-03-21 16:13:37 +01:00
df58859a4f
Update language matrix in codeql workflow
The language matrix in the .github/workflows/codeql.yml file has been updated to only include 'go'. This change removes the 'javascript-typescript' option to focus solely on Go code analysis and enhance the efficiency of the workflow process.
2024-03-21 16:10:38 +01:00
38661b29ae
Disable Autobuild and add new build commands in workflow
The Autobuild command in the .github/workflows/codeql.yml file has been commented out due to possible build failure. Instead, a new run command is added to manually build the application using Go. This change allows for more control and reliability on the build process.
2024-03-21 16:08:38 +01:00
ddc62a9a04
Add CC0-1.0 license and update workflow files
A new file, LICENSES/CC0-1.0.txt, has been created to provide the Creative Commons Zero v1.0 Universal license for the project. Additionally, SPDX headers specifying the MIT license and copyright details have been added to each of the GitHub workflow files, enhancing the clarity and compliance of the project's license utilization.
2024-03-21 16:02:13 +01:00
42e89bc2bb
Implement security improvements and workflow updates
Added SECURITY.md with details for vulnerability reporting and encryption. Introduced new workflows for dependency review, Scorecard supply-chain security, and CodeQL analysis. Made amendments to docker-publish.yml for better Docker build and publishing process. These enhancements are aimed towards improving the security stance and the efficiency of CI/CD workflows.
2024-03-21 15:47:46 +01:00
9ca1b16c03 Merge pull request 'Update project references to use GitHub repository' (#2) from forgejo_to_gh into main
Reviewed-on: #2
2024-03-21 15:40:31 +01:00
a50ae7299c
Update project references to use GitHub repository
All project references have been updated to point to the appropriate routes for the GitHub repository, replacing the previously used paths to src.neessen.cloud. This includes changes in README.md, Dockerfile, go mod packaging as well as in the source code where required.
2024-03-21 15:39:31 +01:00
e11e5954e3
Update Go version in .golangci.toml
The Go version in the .golangci.toml has been updated from 1.20 to 1.22. This update ensures that our project stays up-to-date with the latest stable version of Go, providing new features and improvements.
2024-02-08 16:16:03 +01:00
a20b6c64c6
Update module references in various files
Module references within 'go.mod', 'main.go', and various plugin files have been changed from 'github.com/wneessen/logranger' to 'src.neessen.cloud/wneessen/logranger'. This update is essential to align with the new source location and ensure code and plugins function as expected. The Dockerfile’s commands have also been updated accordingly.
2024-02-08 14:32:29 +01:00
79fbd4b7db
Update badge link references in README.md
The Hyperlinks for the GoDoc, Go Report Card, and REUSE status badges in README.md were updated to align with the new source location. This change ensures the badges direct to the correct and current repository, providing accurate and updated information.
2024-02-08 14:26:18 +01:00
b68f6a2b5b
Update copyright year and hyperlink references in README.md
The copyright year was updated to reflect changes in ownership duration and hyperlink references for badges were updated to match the new source location. This enhances accuracy and ensures that the links reflect the most current repository location.
2024-02-08 14:23:29 +01:00
d9a2f33194
Improve README.md formatting
The source information in the README.md has been revised for enhanced readability. The URL currently served as a mirror for our Github repository has been shifted to a new line for better visibility and comprehension.
2024-02-08 14:16:56 +01:00
645522b11b Merge pull request 'Update README.md' (#1) from wneessen-patch-1 into main
Reviewed-on: #1
2024-02-08 14:12:35 +01:00
c32857b43b Update README.md
Add note about Github mirror
2024-02-08 14:12:13 +01:00
dd8d660571
Implemented ReloadConfig method in server
A new ReloadConfig function has been added to the Server in server.go which reloads server configurations and updates the Server's conf field as well as the configured Ruleset. Changes have also been made to the handling of the SIGHUP signal in main.go, using this new function to reload configurations and updating the logs accordingly.
2023-12-27 19:59:49 +01:00
fa527345a3
Add SPDX license headers to support-files
New SPDX license headers have been added to `group.license` and `passwd.license` found within the `support-files` directory. These headers show that the files are licensed under the MIT license and copyrighted by Winni Neessen.
2023-12-27 18:29:36 +01:00
f08e92fdd4
Create docker-publish.yml 2023-12-27 18:28:01 +01:00
a5c8e5962b
Add Dockerfile for project build
Introduced Dockerfile to manage the build process for the project, including its dependencies. This development will standardize the environment, thus making it easier for others to build and run the app. Also added necessary 'passwd' and 'group' files in 'support-files' directory for managing user details in Docker.
2023-12-27 18:25:55 +01:00
44473579de
Add badges to README for Logranger project
Appended project badges in the README file to provide quick project status checks and important links. These include badges for GoDoc, Go Report Card, Discord, REUSE status, and a Ko-fi donation button, fostering easy navigation and interaction for the project users and contributors.
2023-12-27 17:33:38 +01:00
97bfbbfddd
Update and enrich README for Logranger project
Expanded the README file to include a detailed description of Logranger project's purpose, features, available plugins and support. This provides a comprehensive overview of the project for new or prospective users and contributors, offering insights on its functionality, customization features, efficient log processing, and rule-based filtering capabilities.
2023-12-27 17:23:25 +01:00
dbe0c6fe3b
Process log messages asynchronously in server.go
Changed the processing of log messages to run in a separate go routine, improving the performance of the server. This update ensures efficient log processing by allowing multiple log messages to be processed concurrently. The function has also been refactored to not return an error as any issues should be contained within the routine call itself.
2023-12-27 17:07:25 +01:00
a26c565119
Improve log message processing and action execution in server.go
Added a new function to process log messages and match them against the ruleset. This function will also handle action execution when a match is found. Additionally, added error handling and a layer of fault tolerance within the action configuration process. As a result, if an error arises while configuring an action, the error is logged and skipped, allowing for the rest of the actions to execute.
2023-12-25 21:30:44 +01:00
9089cd80ca
Add error skip logic to action configuration
Updated the action configuration process in server.go to skip an action if its configuration results in an error. This ensures that the remaining actions can still execute, even if one fails during the configuration stage. File action plugin specifically has been updated to support this skip on error logic.
2023-12-25 21:08:54 +01:00
670e5b1d30
Refactor plugins.Action to separate configuration step
Refactored the Action interface in the plugins package to separate the configuration step from the process method. The new Config method accepts a configuration map and returns an error. The modified server.go uses this Config method to apply configurations before calling Process. File action plugin specifically has been updated to support this new interface where configurations are now updated via Config method before invoking Process.
2023-12-25 21:08:03 +01:00
68b1544125
Add SHA hashing and base64 encoding methods to template
Implemented new template functions to allow conversion of strings to SHA-1, SHA-256, and SHA-512 hash formats, as well as base64 encoding. These changes include the creation of the SHAAlgo type and associated constants representing different SHA algorithms. The additional functionality will enhance template handling by adding more options for string encryption and encoding.
2023-12-23 22:00:23 +01:00
b6f6b6a664
Implement Actions interface and update rule handling in Server
Introduced an Actions interface for plugins in 'action.go' and implemented a corresponding registry in 'registry.go'. Additionally, adjusted rule related behavior in 'Server' to account for actions, with relevant new fields in Ruleset and Rule. This enables multiple actions on a log message based on defined rules and further modularises the codebase, paving the path for addition of more plugin actions.
2023-12-23 20:29:38 +01:00
6987f4627c
Add HostMatch field and related functionality in Ruleset and Server
The Ruleset struct has been updated to include a 'HostMatch' field. A corresponding conditional block to handle 'HostMatch' was added in the 'Server' object's ruleset cycle. This allows the rules to include host-specific matches and debug information about matches found. Further expansion of this functionality can enable detailed rule application based on the target host.
2023-12-22 21:52:33 +01:00
1aaa9ac247
Remove unnecessary line break in server.go
An unnecessary line break in the server.go file was removed, which was situated between connection error handling and the read loop. Such spacing did not contribute to readability or function, hence impacting the overall code cleanliness.
2023-12-22 17:33:26 +01:00
0fae461408
Implement Ruleset configuration in logranger
Added a Ruleset configuration to the logranger application, along with associated error handling. The code now loads a ruleset file from configuration, checks for duplicate rules, and logs each rule as it is found. The ruleset is also integrated within the server setup. The PIDFile now includes a default RuleFile reference in config.go.
2023-12-22 17:31:41 +01:00
77ad132bc7
Add more pattern to .gitignore
The provided diff includes an extra pattern to the .gitignore list - 'etc/*.local.*.toml'. This was done to ensure that all variations of local configuration files are ignored by Git, preventing them from being unnecessarily tracked.
2023-12-22 17:31:28 +01:00
f02d5be680
Update 'parser' struct annotation in config.go
The 'parser' struct in config.go has been updated with Fig configuration annotation. This allows ease of configuration as it sources the configuration options from the environment, making the code cleaner and more flexible.
2023-12-22 16:08:54 +01:00
5d72bcac91
Refactor processing deadline logics in server.go
The processing deadline handling was moved from the connection-level anonymous go-routine to the HandleConnection method. This refactor allows the reading from the connection to be looped, improving the handling of timeouts and parsing failure cases.
2023-12-22 16:08:16 +01:00
8d75b19e27
Correct typo in error.go comments
The comments for the 'ErrCertConfigEmpty' variable in error.go contained a typo. This has been corrected to more accurately reflect the error that is returned when a TLS listener is configured without setting certificate or key paths.
2023-12-22 16:08:02 +01:00
c9f7726473
Correct spelling errors in error messages
Fixed spelling errors in error messages on server.go and listener.go files. The word "initalize" has been corrected to "initialize" in both files.
2023-12-22 15:31:44 +01:00
0a3f8780c5
Add copyright notice to connection.go
A copyright notice for Winni Neessen has been added at the top of connection.go. The license specified is MIT.
2023-12-22 15:26:31 +01:00
830de14890
Update go-parsesyslog dependency and refine server connection handling
This update upgrades the go-parsesyslog dependency version to v0.2.2. It also enhances the server's connection handling. This is done by expanding the `HandleConnection` method to handle network errors and EOF scenarios more thoroughly, adjusting processing time measurements, and handling deadlines for connection processing. Furthermore, the initialization of the syslog parser has now been moved to the `NewServer` function for efficiency.
2023-12-22 15:24:58 +01:00
43b1147106
Implement network connection handling
Introduced a new Connection struct and related functions in `connection.go` to facilitate network connections. Incorporated the `go-parsesyslog` package to parse incoming network data. Implemented functions in `server.go` to accept and handle incoming network connections, bolstering the application's network interaction functionality.
2023-12-22 01:44:50 +01:00
3c304797b3
Add .env to .gitignore file
The .env file has been added to the .gitignore file to ensure it's not tracked in the git repository. This change helps to protect sensitive environment variable settings by preventing them from being inadvertently published within the project repository.
2023-12-21 20:19:17 +01:00
ca62769cd3
Relocate logranger.toml and update .gitignore
The logranger.toml file is moved to the 'etc' directory, and its pid_file location is updated. The .gitignore file is also edited to ignore local configuration files in the 'etc' directory to prevent them from being tracked. This creates a cleaner project structure and ensures local configurations are kept private.
2023-12-21 20:17:10 +01:00
c9c3bf31da
Refactor documentation and methods in server-related files
The documentation for some methods in the server-related files (config.go, server.go, and listener.go) has been updated to provide more accurate and descriptive explanations of their functionality. Additionally, the New methods for Config and Server objects have been changed to reflect that they create instances of these objects. Some method functionalities like 'setLogLevel' in server.go have been extended for more accurate operation based on the config log level.
2023-12-19 20:17:56 +01:00
c123f4b757
Add SPDX license details to go.sum.license
Introduced SPDX-FileCopyrightText and SPDX-License-Identifier: MIT to the newly created file 'go.sum.license'. This ensures the appropriate licensing information is present and accurately defines the rights as per recent license policy changes.
2023-12-15 17:41:15 +01:00
436df7b2b4
Refactor signal handling and remove SPDX licensing details
Redid signal handling in the main server code leading to simpler, more readable code. Removed the SPDX license identifiers from 'go.sum' following recent policy changes.
2023-12-15 17:35:27 +01:00
ea1ac393bc
Add SPDX license identifiers and update copyright year
All source code files as well as README.md, .gitignore, and various configuration files have been updated with an SPDX license identifier, changing license from CC0-1.0 to MIT. The copyright year has been updated to 2023, and the copyright holder's email address has been corrected from 'winni@neessen.dev' to 'wn@neessen.dev'. An MIT license text file has been additionally added.
2023-12-15 16:35:41 +01:00
cf17cc3419
Add initial server implementation with config loading and listener setup
This commit introduces the creation of the core server and its components: config loading mechanism, listener setup, and error handling. The provided configuration allows the server to run different types of listeners. Additionally, it includes robust log-level settings to facilitate debugging and operational transparency.
2023-12-14 12:09:01 +01:00
4689c24617
Add REUSE Compliance, Golang Linter workflows and funding options
This commit introduces two new workflows for Github Actions: REUSE Compliance Check and golangci-lint. It also includes the funding options for the project in a dedicated FUNDING.yml file. These changes will enhance code quality checks and offer ways to support the project financially.
2023-12-08 14:42:27 +01:00
c5d8197070
Add SonarQube configuration and update .gitignore
This commit introduces a SonarQube configuration setup, adds an .idea/.gitignore file, and expands the root .gitignore file. The SonarQube setup includes a GitHub Actions workflow and a project properties file. The .gitignore files are updated to properly ignore files for JetBrains IDEs, local testfiles, SonarQube, and others.
2023-12-08 14:37:32 +01:00
1ea59ecafb
Initial commit 2023-12-08 14:31:37 +01:00