Get to Know Me [EN]

Watch out, it’s long! :D

The Beginning

I’ve always been quite a nerd. I was about 7 or 8 years old when I built my first computer, and by the age of 10 or 11, I started programming in VBScript, later switching to Visual Basic and launching my first Minecraft server on Ubuntu 14.04!

As a result, by the time I turned 18, I had spent nearly half my life in the IT field. For me, IT is not just an ordinary profession like it is for others. It’s more of an escape from reality, a virtual world where I can completely immerse myself and forget my worries as long as I’m in it.

I started diving deeper into IT at the age of 13. The reason for this was buying an old server, which led me to learn a ton of new things. I experimented with various hypervisors, such as ESXi, Proxmox, Hyper-V, and XEN. This provided a solid foundation for understanding how servers work. I became familiar with IDRAC, the operation of server hardware like RAID controllers, and out of curiosity, I even tried and learned some more specialized topics like IOMMU.

Networks

Networking knowledge entered my life as I began virtualizing a router and firewall software called Untangle. Unfortunately, I quickly hit the limitations of the free license, so I had to switch. I opted for OPNsense, which I still use and enjoy very much.

After exploring virtualized networking solutions, I transitioned to using Cisco hardware, gaining a wealth of experience in the process. I explored solutions such as VLAN, VRRP, STP, LACP, and more, which helped me build a solid foundation in networking. I’ve been working with 10, 25, 40, and 100 Gbit/s networks, both as a hobby and in my professional life. This represents a huge leap for me, considering it all started with a simple 8-port unmanaged TP-Link switch!

The world of DDoS attacks has always fascinated me. I found their operational principles very interesting. This led me to dive deeper into how various protocols work, with a particular interest in UDP due to its stateless nature. It’s relatively easy to find services that use UDP, which can be easily integrated into a botnet. In fact, UDP reflection attacks still cause significant issues on the internet today, as the stateless characteristic makes it simple to spoof IP addresses. Then, of course, there are also UDP and NTP amplification attacks… the list is endless. Fortunately, I enjoy blogging, and I will likely write about these topics! :)

By this time I had reached a level where I understood the operating principles and could put them into practice. What could be more interesting than that? You’re right! How to defend against such attacks? What solutions should be implemented?

As a result, I explored Juniper and Arbor hardware, along with simpler cloud solutions. I learned a lot about IDS/IPS systems and network monitoring. I became familiar with the SNMP protocol and monitoring tools such as Icinga, Cacti, Zabbix, UptimeKuma, and Gatus.

Software Development

Some people get stuck in one area, some become programmers, while others become network engineers. I’m not like that. I can’t stick to one topic because I get bored. I believe it’s good to have a broad understanding of everything. It’s beneficial to have at least a little insight into how various things work.

Ironically, I started programming in Python because the old server I mentioned earlier was VERY loud, and I slept next to it every day! So, I thought there had to be a solution to make it quieter. It’s worth noting that it was a 1U server. Anyone who has worked with servers knows how noisy a 1U server can be. I began searching for solutions that would allow the server to function while I could still sleep. HAHA. At that point, I came across IPMI, which let me adjust the fan speeds. It’s a CLI tool, and you have to specify the fan speeds in hexadecimal. This was incredibly inconvenient for me, so I thought I could write a program to automatically handle the conversion from decimal to hexadecimal. That’s how the PYIPMI tool was born! You can really see that I was a beginner in the code, but hey, everyone has to start somewhere! :P

After that, there was no stopping. I wanted to make the same project web-based. How cool would it have been to control fan speeds from an admin panel! However, that never happened because by the time I would have finished the project, I ended up selling that server instead. :‘D

Programming, on the other hand, stayed with me! I started developing an Oshint tool, which primarily connected accounts from various social media platforms. So, if someone had an Instagram account, you could easily find their Twitter and Facebook accounts as well. It didn’t just work based on simple usernames. I began developing algorithms that worked with information such as structural similarities of user photos (SSIM), lists of mutual friends, similar bios, and more. Additionally, it could store and log all the data it collected, tracking changes much like how Git works. This project was called Totovo. Unfortunately, this project also fell through because I didn’t see any potential in it, and I don’t want to develop things for myself that I don’t need.

However, thanks to this project, I learn a lot about PostgreSQL, Redis, and MongoDB databases. I chose two different databases because I was curious about which would be the best for this use case. Redis was, of course, used only for caching and as a message broker, but PostgreSQL and MongoDB served the same functions. In the end, I concluded that PostgreSQL was much better for this use case due to its relational capabilities. Considering that I was trying to connect everything about everyone, I ended up creating a lot of many-to-many relational tables.

One of my friend, Dani and I started a larger project called ZeroLogDNS. The name likely gives away that it was a DNS service that respected users’ data, did not store any data, IP addresses, and certainly did not share any information with anyone. However, we eventually shut it down because the infrastructure maintenance costs were too high, and there was no profit from it. I think it’s important to note that during the service’s operation, there was an opportunity for support, and several people supported our project! Unfortunately, we could not cover our expenses, so we had to say goodbye to it…

Later in 2024, FXTELEKOM was created, which is a WireGuard-based selective and dynamic VPN solution to address routing problems related to Magyar Telekom. This project was started because the routing of Magyar Telekom can be incredibly poor, sometimes generating response times of over 100-200 ms to certain endpoints with a lot of Packet Loss. However, with this solution, everything works smoothly and quickly.

FXTELEKOM

The first solution was a DNS and SNI-based proxy, which only supported HTTP and HTTPS traffic, making it unsuitable for all use cases. Therefore, we transitioned to using WireGuard.

You can read more about the old solution here: How I (Sort of) Fixed Telekom’s Routing Issues in Hungary

Conclusion

Well, this blog post turned out to be quite lengthy, but I hope you found answers to all your questions about me!

If not, no worries! Feel free to reach out to me: HERE!