<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Blog on x128.dev</title><link>https://x128.dev/</link><description>Recent content in Blog on x128.dev</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Mon, 12 Jan 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://x128.dev/index.xml" rel="self" type="application/rss+xml"/><item><title>From Kannel to Kamex: My Journey Modernizing an SMS Gateway</title><link>https://x128.dev/kannel-modernization/</link><pubDate>Sat, 05 Jul 2025 00:00:00 +0000</pubDate><guid>https://x128.dev/kannel-modernization/</guid><description>&lt;h2 id="-source-code--downloads"&gt;💾 Source Code &amp;amp; Downloads&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;📦 &lt;a href="https://github.com/vaska94/Kamex"&gt;GitHub Repository&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;🌐 &lt;a href="https://kamex.dev"&gt;Website: kamex.dev&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;🐳 &lt;a href="https://ghcr.io/vaska94/kamex"&gt;Docker Image: ghcr.io/vaska94/kamex&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;📥 &lt;a href="https://github.com/vaska94/Kamex/releases"&gt;RPM Packages&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;Kannel is an open-source SMS gateway - HTTP, SMPP, the works. Been around since the early 2000s. Originally a WAP gateway too, but WAP is dead. Time to evolve.&lt;/p&gt;&#10;&lt;h2 id="why-fork-kannel"&gt;Why Fork Kannel?&lt;/h2&gt;&#10;&lt;p&gt;Kannel 1.4.5 simply won&amp;rsquo;t build on modern distributions like Rocky Linux 10. Even after fixing build issues, it kept crashing with Redis DLR storage. The only distro still shipping Kannel packages is Debian 12 - with ancient libraries, barely holding together.&lt;/p&gt;</description></item><item><title>How to Harden Wordpress for Better Security</title><link>https://x128.dev/wp-hardening/</link><pubDate>Fri, 02 Oct 2020 00:00:00 +0000</pubDate><guid>https://x128.dev/wp-hardening/</guid><description>&lt;p&gt;Hi, Here are few tips to harden your wordpress installation:&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;Disallow File Editing and explicitly set website url in &lt;code&gt;wp-config.php&lt;/code&gt;&#10;(Some malware replaces Website url in wp_options table.)&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;define( &amp;#39;DISALLOW_FILE_EDIT&amp;#39;, true );&#10;define( &amp;#39;WP_HOME&amp;#39;, &amp;#39;https://example.com&amp;#39; );&#10;define( &amp;#39;WP_SITEURL&amp;#39;, &amp;#39;https://example.com&amp;#39; );&#10;define( &amp;#39;FORCE_SSL_ADMIN&amp;#39;, true );&#10;&lt;/code&gt;&lt;/pre&gt;&lt;ol start="2"&gt;&#10;&lt;li&gt;Replace Default .htaccess with following:&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;# Block WordPress xmlrpc.php requests&#10;&amp;lt;Files xmlrpc.php&amp;gt;&#10;order deny,allow&#10;deny from all&#10;&amp;lt;/Files&amp;gt;&#10;# Block the include-only files.&#10;&amp;lt;IfModule mod_rewrite.c&amp;gt;&#10;RewriteEngine On&#10;RewriteBase /&#10;RewriteRule ^wp-admin/includes/ - [F,L]&#10;RewriteRule !^wp-includes/ - [S=3]&#10;RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]&#10;RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]&#10;RewriteRule ^wp-includes/theme-compat/ - [F,L]&#10;RewriteRule ^index\.php$ - [L]&#10;RewriteCond %{REQUEST_FILENAME} !-f&#10;RewriteCond %{REQUEST_FILENAME} !-d&#10;RewriteRule . /index.php [L]&#10;&amp;lt;/IfModule&amp;gt;&#10;&lt;/code&gt;&lt;/pre&gt;&lt;ol start="3"&gt;&#10;&lt;li&gt;In &lt;code&gt;wp-content&lt;/code&gt; Folder create new &lt;code&gt;.htaccess&lt;/code&gt; file and insert following to Limit Extensions:&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;Order deny,allow&#10;Deny from all&#10;&amp;lt;Files ~ &amp;#34;.(xml|css|jpe?g|png|gif|js|woff|woff2|ttf|pdf)$&amp;#34;&amp;gt;&#10;Allow from all&#10;&amp;lt;/Files&amp;gt;&#10;&lt;/code&gt;&lt;/pre&gt;&lt;ol start="4"&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Disable Wordpress Rest Api Using Plugin:&#10;&lt;a href="https://wordpress.org/plugins/disable-wp-rest-api/"&gt;https://wordpress.org/plugins/disable-wp-rest-api/&lt;/a&gt;&lt;/p&gt;</description></item><item><title>How to proxy RDP via Nginx</title><link>https://x128.dev/nginx-proxy-rdp/</link><pubDate>Wed, 02 Sep 2020 00:00:00 +0000</pubDate><guid>https://x128.dev/nginx-proxy-rdp/</guid><description>&lt;p&gt;Simply Use Snippet Bellow and thank me later :)&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;stream {&#10; server {&#10; listen 1337;&#10; proxy_pass 10.0.0.1:3389;&#10; }&#10; server {&#10; listen 1336;&#10; proxy_pass 10.0.0.2:3389;&#10; }&#10;}&#10;&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>Compile Nginx with Brotli and ngx_cache_purge Plugin on Centos 8</title><link>https://x128.dev/nginx-brotli/</link><pubDate>Fri, 03 Jul 2020 00:00:00 +0000</pubDate><guid>https://x128.dev/nginx-brotli/</guid><description>&lt;p&gt;Just Copy Paste This Command and it will automagically do the trick!&lt;/p&gt;&#10;&lt;p&gt;will post more explaination later.&lt;/p&gt;&#10;&lt;p&gt;p.s : if you use wordpress you can use &lt;a href="https://wordpress.org/plugins/nginx-helper/"&gt;nginx-helper&lt;/a&gt;&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;dnf install -y wget gcc make redhat-rpm-config git pcre-devel openssl-devel libxslt-devel gd-devel perl-ExtUtils-Embed nginx&#10;cd /usr/src&#10;wget http://nginx.org/download/nginx-1.19.2.tar.gz&#10;git clone https://github.com/FRiCKLE/ngx_cache_purge.git&#10;git clone --recursive https://github.com/google/ngx_brotli.git&#10;tar xzf nginx-1.19.2.tar.gz&#10;cd nginx-1.19.2&#10;./configure --prefix=/usr/share/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/var/lib/nginx/tmp/client_body --http-proxy-temp-path=/var/lib/nginx/tmp/proxy --http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi --http-uwsgi-temp-path=/var/lib/nginx/tmp/uwsgi --http-scgi-temp-path=/var/lib/nginx/tmp/scgi --pid-path=/run/nginx.pid --lock-path=/run/lock/subsys/nginx --user=nginx --group=nginx --with-file-aio --with-ipv6 --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_addition_module --with-http_xslt_module=dynamic --with-http_image_filter_module=dynamic --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_degradation_module --with-http_slice_module --with-http_stub_status_module --with-http_perl_module=dynamic --with-http_auth_request_module --with-mail=dynamic --with-mail_ssl_module --with-pcre --with-pcre-jit --with-stream=dynamic --with-stream_ssl_module --with-debug --with-cc-opt=&amp;#39;-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection&amp;#39; --with-ld-opt=&amp;#39;-Wl,-z,relro -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -Wl,-E&amp;#39; --add-module=/usr/src/ngx_cache_purge --add-module=/usr/src/ngx_brotli&#10;make&#10;make install&#10;echo &amp;#34;exclude=nginx&amp;#34; &amp;gt;&amp;gt; /etc/yum.conf&#10;&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>Offload HTTPS traffic to Nginx only / Enginitron Cpanel</title><link>https://x128.dev/engintron-ssl-offload/</link><pubDate>Sun, 21 Jun 2020 00:00:00 +0000</pubDate><guid>https://x128.dev/engintron-ssl-offload/</guid><description>&lt;p&gt;Hello, Guide which is posted on &lt;a href="https://engintron.com/docs/#/pages/Offload-HTTPS-traffic-to-Nginx-only"&gt;engintron.com&lt;/a&gt;&#10;is outdated and breaks Force SSL Functionality in Cpanel.&#10;So Here is my Solution:&lt;/p&gt;&#10;&lt;p&gt;Step 1. Edit /etc/apache2/conf.d/includes/pre_virtualhost_global.conf and append:&lt;/p&gt;&#10;&lt;p&gt;&lt;code&gt;SetEnvIf X-Forwarded-Proto &amp;quot;https&amp;quot; HTTPS=on&lt;/code&gt;&lt;/p&gt;&#10;&lt;p&gt;Step 2. Run&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;cp /var/cpanel/templates/apache2_4/vhost.default /var/cpanel/templates/apache2_4/vhost.local&#10;sed -i &amp;#39;s/RewriteCond %{HTTPS} !=on/RewriteCond %{HTTP:X-Forwarded-Proto} !https/g&amp;#39; /var/cpanel/templates/apache2_4/vhost.local&#10;/scripts/rebuildhttpdconf&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Step 3. Edit /etc/nginx/proxy_params_common to update proxy_pass:&lt;/p&gt;&#10;&lt;p&gt;&lt;code&gt;proxy_pass http://$PROXY_DOMAIN_OR_IP:8080;&lt;/code&gt;&lt;/p&gt;&#10;&lt;p&gt;Step 4. restart both apache &amp;amp; nginx&lt;/p&gt;&#10;&lt;p&gt;&lt;code&gt;apachectl restart systemctl restart nginx&lt;/code&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;So what are we actually doing here?&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Hi World</title><link>https://x128.dev/hi-world/</link><pubDate>Fri, 19 Jun 2020 00:00:00 +0000</pubDate><guid>https://x128.dev/hi-world/</guid><description>&lt;p&gt;Hi, i will post some random things here!&lt;/p&gt;</description></item><item><title>About</title><link>https://x128.dev/about/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://x128.dev/about/</guid><description>&lt;p&gt;Hi ;)&lt;/p&gt;&#10;&lt;p&gt;For contact use : vasil [at] connect.ge&lt;/p&gt;&#10;&lt;p&gt;P.S: Google Analytics data is anonymized.&lt;/p&gt;</description></item></channel></rss>