From 464bd0ccef100de3855c6a62831933af5b5839f4 Mon Sep 17 00:00:00 2001 From: Bangara Raju Kottedi Date: Wed, 1 Jan 2025 22:29:49 +0530 Subject: [PATCH 1/8] solid principles description update --- _posts/2024-04-03-solid-principles.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2024-04-03-solid-principles.md b/_posts/2024-04-03-solid-principles.md index f9b7b33..61071ec 100644 --- a/_posts/2024-04-03-solid-principles.md +++ b/_posts/2024-04-03-solid-principles.md @@ -1,6 +1,6 @@ --- title: SOLID Principles -description: Solid Principles +description: The SOLID principles are a set of design principles aimed at improving software quality, making it easier to understand, extend, and maintain. date: 2024-04-03T16:10:57.476Z tags: - code quality From 2f1c45293e9a23712fda5bb83a951d99986ef9f7 Mon Sep 17 00:00:00 2001 From: Bangara Raju Kottedi Date: Wed, 1 Jan 2025 23:36:43 +0530 Subject: [PATCH 2/8] ufw post added to drafts --- .frontmatter/database/taxonomyDb.json | 2 +- _drafts/2025-01-01-a-beginners-guide-to-ufw.md | 17 +++++++++++++++++ assets/img/posts/ufw-logo.jpg | Bin 0 -> 38400 bytes 3 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 _drafts/2025-01-01-a-beginners-guide-to-ufw.md create mode 100644 assets/img/posts/ufw-logo.jpg diff --git a/.frontmatter/database/taxonomyDb.json b/.frontmatter/database/taxonomyDb.json index 40db17f..5903bd9 100644 --- a/.frontmatter/database/taxonomyDb.json +++ b/.frontmatter/database/taxonomyDb.json @@ -1 +1 @@ -{"taxonomy":{"tags":["comment-system","hello","privacy","remark42","self-hosted","test","world"],"categories":[]}} \ No newline at end of file +{"taxonomy":{"tags":["comment-system","hello","principles","privacy","remark42","self-hosted","test","world"],"categories":[]}} \ No newline at end of file diff --git a/_drafts/2025-01-01-a-beginners-guide-to-ufw.md b/_drafts/2025-01-01-a-beginners-guide-to-ufw.md new file mode 100644 index 0000000..ab7629a --- /dev/null +++ b/_drafts/2025-01-01-a-beginners-guide-to-ufw.md @@ -0,0 +1,17 @@ +--- +title: "A Beginner's Guide to UFW: Uncomplicated Firewall" +description: UFW is a tool that helps you decide which connections can or can't access your Linux system. It's simple enough for beginners but also has features for experts. +date: 2025-01-01T17:48:18.319Z +tags: + - firewall + - linux + - security + - ufw +categories: + - LInux + - Security +image: + path: /assets/img/posts/ufw-logo.jpg + alt: A Beginner's Guide to UFW (Uncomplicated Firewall) +slug: ufw-guide +--- diff --git a/assets/img/posts/ufw-logo.jpg b/assets/img/posts/ufw-logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..96770fed8013f7f3ab3b634876f7776e1040ada3 GIT binary patch literal 38400 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 O{3izf{~H7U%>FO?|IcCo literal 0 HcmV?d00001 From 8d371368155daacdb198fa194edd8bfb86fe0ad8 Mon Sep 17 00:00:00 2001 From: Bangara Raju Kottedi Date: Wed, 1 Jan 2025 23:39:22 +0530 Subject: [PATCH 3/8] Synced by Front Matter --- _drafts/2025-01-01-a-beginners-guide-to-ufw.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_drafts/2025-01-01-a-beginners-guide-to-ufw.md b/_drafts/2025-01-01-a-beginners-guide-to-ufw.md index ab7629a..f605e51 100644 --- a/_drafts/2025-01-01-a-beginners-guide-to-ufw.md +++ b/_drafts/2025-01-01-a-beginners-guide-to-ufw.md @@ -8,8 +8,8 @@ tags: - security - ufw categories: - - LInux - - Security + - Linux + - Firewall image: path: /assets/img/posts/ufw-logo.jpg alt: A Beginner's Guide to UFW (Uncomplicated Firewall) From 7ffcc1a83b4db65d5562e641fd3f634d2ce694cb Mon Sep 17 00:00:00 2001 From: Bangara Raju Kottedi Date: Thu, 2 Jan 2025 23:09:34 +0530 Subject: [PATCH 4/8] post update on ufw --- .../2025-01-01-a-beginners-guide-to-ufw.md | 105 ++++++++++++++++++ 1 file changed, 105 insertions(+) diff --git a/_drafts/2025-01-01-a-beginners-guide-to-ufw.md b/_drafts/2025-01-01-a-beginners-guide-to-ufw.md index f605e51..6cdfb5e 100644 --- a/_drafts/2025-01-01-a-beginners-guide-to-ufw.md +++ b/_drafts/2025-01-01-a-beginners-guide-to-ufw.md @@ -15,3 +15,108 @@ image: alt: A Beginner's Guide to UFW (Uncomplicated Firewall) slug: ufw-guide --- +UFW (Uncomplicated Firewall) is a tool that helps you decide which connections can or can't access your Linux system. It's simple enough for beginners but also has features for experts. This post explains how to use it and why it's useful. + +When it comes to securing your Linux server or desktop, managing network access is one of the most critical tasks. Firewalls serve as the first line of defense, and while tools like iptables offer granular control, they can be intimidating for beginners. That’s where UFW (Uncomplicated Firewall) steps in. + +UFW is a user-friendly interface for managing iptables, designed to simplify the process of configuring a firewall. Whether you’re a seasoned Linux administrator or a newcomer, UFW makes securing your system straightforward and efficient. + +## Why Use UFW? +1. **Ease of Use:** UFW abstracts the complexities of iptables, offering simple commands to configure firewall rules. +2. **Default Settings:** UFW ships with sensible defaults, such as denying all incoming connections while allowing outgoing ones. +3. **Integration:** It integrates well with many linux distributions and is often installed by default. +4. **Script-Friendly:** UFW is ideal for automation and scripting, making it perfect for managing servers at scale. + +## Installing UFW +Most modern Linux distributions come with UFW pre-installed. If it’s not already on your system, you can install it with the following commands: + +For Ubuntu/Debian: +```console +sudo apt update +sudo apt install ufw +``` +For CentOS/RHEL: +```console +sudo yum install epel-release +sudo yum install ufw +``` +For Arch Linux: +```console +sudo pacman -S ufw +``` +## Basic UFW Commands +### Enable UFW +Before configuring UFW, you need to enable it: +```console +sudo ufw enable +``` +### Check UFW Status +To see whether UFW is running and view current rules: +```console +sudo ufw status +``` +### Allowing connections +To allow traffic on a specific port, use the `allow` command. For example, to allow SSH connections: +```console +sudo ufw allow ssh +``` +Or, specify the port number: +```console +sudo ufw allow 22 +``` +### Denying Connections +To block traffic on a specific port: +```console +sudo ufw deny 80 +``` +### Removing Rules +To delete a rule, prepend the rule with `delete`. For example: +```console +sudo ufw delete allow 22 +``` +### Resetting UFW +To reset UFW to its default state, removing all rules: +```console +sudo ufw reset +``` +## Advanced Usage +### Limiting Connections +To protect against brute-force attacks, you can limit connections by using `limit` rule in UFW. This rule restricts the rate of new connections from the same IP address, allowing only a limited number of connections per minute (default: 6 attempts within 30 seconds). You can adjust these values by modifying the UFW configuration files, typically found in `/etc/ufw/` or `/etc/ufw/ufw.conf`, or by customizing rate limits using iptables rules directly. within a specified time frame. For instance, to limit SSH attempts, you can execute: +```console +sudo ufw limit ssh +``` +This helps to deter malicious actors trying to gain unauthorized access to your system by repeatedly guessing passwords or exploiting vulnerabilities. +### Allowing Specific IP Addresses +To allow traffic from a specific IP address: +```console +sudo ufw allow from 192.168.0.100 +``` +Allowing Traffic to a Specific Port and IP +For more granular control, you can specify both source IP and destination port: +```console +sudo ufw allow from 192.168.0.100 to any port 22 +``` +### Using Application Profiles +UFW supports application profiles to simplify rule management for common services. List available profiles with: +```console +sudo ufw app list +``` +To allow a specific application, UFW provides predefined profiles for commonly used software and services. These profiles encapsulate the necessary port and protocol details, simplifying firewall configuration. For instance, to permit traffic for an application like Apache, you can execute: +```console +sudo ufw allow 'Apache Full' +``` +This command enables both HTTP (port 80) and HTTPS (port 443) traffic, as defined in the application profile. + +## Best Practices +1. **Start with Defaults:** UFW's default policy denies incoming traffic and allows outgoing traffic, a good starting point for most setups. +2. **Enable Logging:** Turn on logging to monitor blocked traffic: +```console +sudo ufw logging on +``` +3. **Test Rules:** Before applying complex rules on a production system, test them in a safe environment. +4. **Document Changes:** Keep a record of the rules you add or remove to make troubleshooting easier. + +## Conclusion +UFW makes it easy to manage your firewall, even if you’re new to Linux. By learning its simple and advanced features, you can protect your system without the hassle of complicated tools like iptables. Whether you’re using one computer or many servers, UFW is a great tool to keep things secure. + + From 4cd29e188da27f682a72f210b4001d0c39187b7e Mon Sep 17 00:00:00 2001 From: Bangara Raju Kottedi Date: Thu, 2 Jan 2025 23:58:52 +0530 Subject: [PATCH 5/8] h3 paragraph alignment issue fixed --- _includes/post-series.html | 4 ---- 1 file changed, 4 deletions(-) diff --git a/_includes/post-series.html b/_includes/post-series.html index f525ccf..fca5add 100644 --- a/_includes/post-series.html +++ b/_includes/post-series.html @@ -1,8 +1,4 @@