Compare commits

...

53 Commits

Author SHA1 Message Date
2acf391f7d Merge branch 'prod' into dev 2025-08-04 21:35:33 +05:30
a8b466c8db update 2025-08-04 20:55:27 +05:30
7bd7fa90c4 Merge pull request 'update post details' (#4) from dev into prod
Reviewed-on: #4
2025-01-06 00:01:25 +05:30
33b8e61f42 update post details 2025-01-05 23:44:37 +05:30
7b3ae70073 Merge pull request 'UFW changes' (#3) from dev into prod
Reviewed-on: #3
2025-01-05 23:02:18 +05:30
cd3ffa479c UFW changes 2025-01-05 22:57:25 +05:30
99cbe51cac Merge pull request 'ufw firewall guide post' (#2) from dev into prod
Reviewed-on: #2
2025-01-03 00:28:00 +05:30
e3e3346fd3 publish ufw post 2025-01-03 00:25:40 +05:30
0e69643c66 ufw post changes 2025-01-03 00:22:55 +05:30
e930ed0f2f ufw post changes 2025-01-03 00:19:27 +05:30
4cd29e188d h3 paragraph alignment issue fixed 2025-01-02 23:58:52 +05:30
7ffcc1a83b post update on ufw 2025-01-02 23:09:34 +05:30
8d37136815 Synced by Front Matter 2025-01-01 23:39:22 +05:30
2f1c45293e ufw post added to drafts 2025-01-01 23:36:43 +05:30
464bd0ccef solid principles description update 2025-01-01 22:29:49 +05:30
bb04c90f4a Merge pull request 'upgrade 7.2.2' (#1) from dev into prod
Reviewed-on: rajukottedi/chirpy-blogging#1
2024-12-09 00:02:11 +05:30
a0fb32aa0f code refactoring 2024-12-08 03:16:46 +05:30
a069ca7961 remark42 theme update on site theme change 2024-12-08 03:14:56 +05:30
c091bac4aa remark42 comment issue after upgrade resolved 2024-12-08 03:07:25 +05:30
a66e3fa1a3 Merge branch 'dev' of https://git.kottedi.in/rajukottedi/chirpy-blogging into dev 2024-12-08 02:46:10 +05:30
8f4170a4b7 theme changes 2024-12-08 02:45:30 +05:30
e3e24d561d Merge branch 'task/upgrade_7.0.1_7.2.2' of rajukottedi/chirpy-blogging into dev 2024-12-08 01:46:15 +05:30
88ef311141 Merge branch 'task/upgrade_6.5.5_7.0.1' of rajukottedi/chirpy-blogging into dev 2024-08-22 22:33:23 +05:30
a1c6f518aa Merge branch 'dev' of rajukottedi/chirpy-blogging into prod 2024-05-09 19:32:46 +05:30
982c65f9ed Merge branch 'dev' of rajukottedi/chirpy-blogging into prod 2024-05-09 13:37:03 +05:30
d684eca9b3 Merge branch 'dev' of rajukottedi/chirpy-blogging into prod 2024-05-09 01:36:10 +05:30
ea8dddd6fb Merge branch 'dev' of rajukottedi/chirpy-blogging into prod 2024-05-09 00:42:43 +05:30
31adea59f4 Merge branch 'dev' of rajukottedi/chirpy-blogging into prod 2024-04-22 20:17:16 +05:30
d69ee3326e Merge branch 'dev' of rajukottedi/chirpy-blogging into prod 2024-04-08 03:25:56 +05:30
5a0ff70502 Merge branch 'dev' of rajukottedi/chirpy-blogging into prod 2024-04-06 12:47:33 +05:30
b7ce8ad551 Merge branch 'dev' of rajukottedi/chirpy-blogging into prod 2024-04-06 05:05:43 +05:30
85554b9a65 Merge branch 'dev' of rajukottedi/chirpy-blogging into prod 2024-04-06 04:52:00 +05:30
5942fde518 Merge branch 'dev' of rajukottedi/chirpy-blogging into prod 2024-04-06 04:26:57 +05:30
c110f5bb79 Merge branch 'dev' of rajukottedi/chirpy-blogging into prod 2024-03-29 00:13:20 +05:30
77714e38b2 Merge branch 'dev' of rajukottedi/chirpy-blogging into prod 2024-03-28 23:01:31 +05:30
ce7ed6540a Merge branch 'dev' of rajukottedi/chirpy-blogging into prod 2023-09-15 00:16:05 +05:30
1f6b3fffb8 Merge branch 'dev' of rajukottedi/chirpy-blogging into prod 2023-09-06 18:53:24 +05:30
f073272f1f Merge branch 'dev' of rajukottedi/chirpy-blogging into prod 2023-08-30 01:06:14 +05:30
ab3917adcc Merge branch 'dev' of rajukottedi/chirpy-blogging into prod 2023-08-27 22:46:41 +05:30
b33faddcb5 Merge branch 'dev' of rajukottedi/chirpy-blogging into prod 2023-08-27 18:13:08 +05:30
c03611262b Merge branch 'dev' of rajukottedi/chirpy-blogging into prod 2023-08-27 17:05:41 +05:30
345840c543 Merge branch 'dev' of rajukottedi/chirpy-blogging into prod 2023-08-27 13:52:52 +05:30
6aca7be258 Merge branch 'dev' of rajukottedi/chirpy-blogging into prod 2023-08-27 10:56:22 +05:30
36de09ac1c Merge branch 'dev' of rajukottedi/chirpy-blogging into prod 2023-08-26 15:23:29 +05:30
da578461fc Merge branch 'dev' of rajukottedi/chirpy-blogging into prod 2023-08-26 14:02:02 +05:30
1d9ac4dbce Merge branch 'dev' of rajukottedi/chirpy-blogging into prod 2023-08-25 21:42:47 +05:30
42f4b533b1 Merge branch 'dev' of rajukottedi/chirpy-blogging into prod 2023-08-23 00:49:00 +05:30
4ab4cad773 Merge branch 'dev' of rajukottedi/chirpy-blogging into prod 2023-08-21 00:25:10 +05:30
27e59a86bc Merge branch 'dev' of rajukottedi/chirpy-blogging into prod 2023-08-19 22:16:19 +05:30
c2c9bdad43 Merge branch 'dev' of rajukottedi/chirpy-blogging into prod 2023-08-13 00:20:46 +05:30
81bdcf6259 Merge branch 'dev' of rajukottedi/chirpy-blogging into prod 2023-08-13 00:13:21 +05:30
d3db8448fb Merge branch 'dev' of rajukottedi/chirpy-blogging into prod 2023-08-12 23:21:34 +05:30
5e8c81991b Merge branch 'dev' of rajukottedi/chirpy-blogging into prod 2023-08-12 00:58:45 +05:30
16 changed files with 209 additions and 23 deletions

View File

@ -1 +1 @@
{"taxonomy":{"tags":["comment-system","hello","privacy","remark42","self-hosted","test","world"],"categories":[]}}
{"taxonomy":{"tags":["comment-system","hello","principles","privacy","remark42","self-hosted","test","world"],"categories":[]}}

View File

@ -17,20 +17,20 @@ timezone: Asia/Kolkata
title: Engineer's Odyssey # the main title
tagline: Your Hub for Tech, DIY, and Innovation # it will display as the sub-title
tagline: Your Hub for Tech, DIY, and Innovation # it will display as the subtitle
description: >- # used by seo meta and the atom feed
Through my articles and stories, I hope to guide you through the intricate world of technology, offer insights into automation's transformative power, unveil the secrets behind successful DIY projects, and encourage you to fearlessly pursue new skills.
# Fill in the protocol & hostname for your site.
# e.g. 'https://username.github.io', note that it does not end with a '/'.
# E.g. 'https://username.github.io', note that it does not end with a '/'.
url: "http://localhost:4000"
github:
username: rajukottedi # change to your github username
username: rajukottedi # change to your GitHub username
twitter:
username: RajuKottedi # change to your twitter username
username: RajuKottedi # change to your Twitter username
social:
# Change to your full name.
@ -39,8 +39,8 @@ social:
email: bangararaju.kottedi@gmail.com # change to your email address
links:
# The first element serves as the copyright owner's link
- https://github.com/rajukottedi # change to your github homepage
- https://twitter.com/rajukottedi # change to your twitter homepage
- https://github.com/rajukottedi # change to your GitHub homepage
- https://twitter.com/rajukottedi # change to your Twitter homepage
# Uncomment below to add more social links
- https://www.facebook.com/RajuKottedi435
- https://www.linkedin.com/in/bangararajuk/
@ -71,8 +71,10 @@ analytics:
domain: # fill in your Matomo domain
cloudflare:
id: # fill in your Cloudflare Web Analytics token
fathom:
id: # fill in your Fathom Site ID
# Pageviews settings
# Page Views settings
pageviews:
provider: # now only supports 'goatcounter'
@ -140,7 +142,7 @@ assets:
env: # [development | production]
pwa:
enabled: true # the option for PWA feature (installable)
enabled: true # The option for PWA feature (installable)
cache:
enabled: true # the option for PWA offline cache
# Paths defined here will be excluded from the PWA cache.

View File

@ -0,0 +1,28 @@
---
title: "Part 1: Getting Started with Python"
description: Kick off your Python journey! Learn what Python is, set up your environment, and write your first program. Perfect for beginners—lets start coding!
date: 2025-02-02T16:59:46.763Z
tags: []
categories: []
image:
path: /assets/img/posts/python-getting-started.png
disable-ty: false
series: "Python Practical Guide: A Beginner's Journey"
slug: part-1-started-python
---
## What is Python?
Python is a versatile, high-level programming language known for its simplicity and readability. Its used for:
- Web development
- Data analysis and visualization
- Artificial intelligence and machine learning
- Automation and scripting
- Game development
- And much more!
## Why Learn Python?
1. **Beginner-Friendly**: Easy-to-read syntax makes it perfect for first-time coders.
2. **Versatile**: Use it for almost any type of project or industry.
3. **In-Demand Skill**: Python developers are highly sought after in the job market.
4. **Huge Community**: Tons of resources, libraries, and frameworks to help you learn and grow.
5. **Fun and Powerful**: Automate tasks, analyze data, or build apps—Python makes it easy!

View File

@ -0,0 +1,12 @@
---
title: "Part 2: Python Basics - Syntax and Fundamentals"
description: "Learn Pythons building blocks: variables, data types, input/output, and basic operations. Start writing clean, readable code today!"
date: 2025-02-02T18:04:14.853Z
tags: []
categories: []
image:
path: /assets/img/posts/python-logo.jpg
disable-ty: true
series: "Python Practical Guide: A Beginner's Journey"
slug: part-2-python-basics-syntax-fundamentals
---

View File

@ -8,7 +8,7 @@
components: ['embed', 'counter'],
max_shown_comments: 10,
theme: modeToggle.modeStatus,
theme: Theme.visualState,
locale: 'en',
show_email_subscription: false
@ -23,11 +23,11 @@
}
})(remark_config.components || ['embed']);
var targetDiv = document.getElementById("sidebar").getElementsByClassName("mode-toggle")[0];
var targetDiv = document.getElementById("mode-toggle");
if (targetDiv != null) {
targetDiv.addEventListener("click", () => {
window.REMARK42.changeTheme(modeToggle.modeStatus === 'light' ? 'dark' : 'light');
window.REMARK42.changeTheme(Theme.visualState === 'light' ? 'dark' : 'light');
})
}
</script>

View File

@ -37,7 +37,6 @@
.then(function (result) {
if (result != "N/A") {
var response = JSON.parse(result);
setPostMetrics(response);
if(!response.postExists){
postDetails.likes = postDetails.views = postDetails.comments = 0;
if(Number(likes.innerText) !== NaN){
@ -49,15 +48,15 @@
if(postDetails.modifiedDate === ""){
postDetails.modifiedDate = postDetails.createdDate;
}
}
ajax(serviceUrl + "/CreatePost", "POST", postDetails)
ajax(serviceUrl + "/CreatePost", "POST", postDetails)
.then(function (result) {
if(result != "N/A"){
var response = JSON.parse(result);
setPostMetrics(response);
}
});
}
}
});

View File

@ -1,8 +1,4 @@
<style>
main h3 {
margin: 10px
}
#post-series {
margin-top: 25px;
}
@ -17,7 +13,7 @@
<div id="post-series">
<div class="card">
<div>
<h3>{{ page.series }}</h3>
<h3>{{ page.series }} ({{ posts | size }} - Part Series)</h3>
<ol>
{% assign posts = site.posts | where: "series", page.series | sort: "date" %}
{% for post in posts %}

View File

@ -6,6 +6,7 @@ panel_includes:
tail_includes:
- related-posts
- post-nav
- comment
script_includes:
- comment
---

View File

@ -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

View File

@ -0,0 +1,143 @@
---
title: "Keep Your Linux System Secure: A Beginners Guide to UFW"
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
- Firewall
image:
path: /assets/img/posts/ufw-logo.jpg
alt: A Beginner's Guide to UFW (Uncomplicated Firewall)
slug: ufw-guide
---
UFW (Uncomplicated Firewall) is a powerful yet user-friendly tool that allows you to control which connections can access your Linux system. Designed with simplicity in mind, its perfect for beginners while still offering advanced features for experienced users. In this post, well explore how UFW works, how to use it effectively, and why its an essential tool for securing your system.
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. Thats 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 youre 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 its not already on your system, you can install it with the following commands:
For Ubuntu/Debian:
```terminal
sudo apt update
sudo apt install ufw
```
For CentOS/RHEL:
```terminal
sudo yum install epel-release
sudo yum install ufw
```
For Arch Linux:
```terminal
sudo pacman -S ufw
```
## Basic UFW Commands
### Enable UFW
Before configuring UFW, you need to enable it:
```terminal
sudo ufw enable
```
### Check UFW Status
To see whether UFW is running and view current rules:
```terminal
sudo ufw status
```
### Allowing connections
To allow traffic on a specific port, use the `allow` command. For example, to allow SSH connections:
```terminal
sudo ufw allow ssh
```
Or, specify the port number:
```terminal
sudo ufw allow 22
```
### Denying Connections
To block traffic on a specific port:
```terminal
sudo ufw deny 80
```
### Removing Rules
To delete a rule, prepend the rule with `delete`. For example:
```terminal
sudo ufw delete allow 22
```
Or Remove a rule by its number
List UFW Rules with Numbers
```terminal
sudo ufw status numbered
```
Example output
```terminal
Status: active
To Action From
[ 1] 22/tcp ALLOW Anywhere
[ 2] 80/tcp ALLOW Anywhere
[ 3] 22/tcp (v6) ALLOW Anywhere (v6)
[ 4] 80/tcp (v6) ALLOW Anywhere (v6)
```
Delete the Rule by Number
```terminal
sudo ufw delete 2
```
### Resetting UFW
To reset UFW to its default state, removing all rules:
```terminal
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:
```terminal
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:
```terminal
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:
```terminal
sudo ufw allow from 192.168.0.100 to any port 22
sudo ufw allow from 192.168.0.0/24 to any port 22 proto tcp
```
### Using Application Profiles
UFW supports application profiles to simplify rule management for common services. List available profiles with:
```terminal
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:
```terminal
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:
```terminal
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 youre new to Linux. By learning its simple and advanced features, you can protect your system without the hassle of complicated tools like iptables. Whether youre using one computer or many servers, UFW is a great tool to keep things secure.

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

View File

@ -4,7 +4,7 @@ var remark_config = {
components: ['embed'],
max_shown_comments: 10,
theme: modeToggle.modeStatus,
theme: Theme.visualState,
locale: 'en',
show_email_subscription: false
@ -23,6 +23,6 @@ var targetDiv = document.getElementById("sidebar").getElementsByClassName("mode-
if (targetDiv != null) {
targetDiv.addEventListener("click", () => {
window.REMARK42.changeTheme(modeToggle.modeStatus === 'light' ? 'dark' : 'light');
window.REMARK42.changeTheme(Theme.visualState === 'light' ? 'dark' : 'light');
})
}

View File

@ -49,6 +49,11 @@
"title": "disable-ty",
"name": "disable-ty",
"type": "boolean"
},
{
"title": "series",
"name": "series",
"type": "string"
}
]
}