<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Information Communication Technology articles.]]></title><description><![CDATA[Information Communication Technology articles.]]></description><link>https://blog.msukwa.com</link><image><url>https://cdn.hashnode.com/uploads/logos/618e4c59e61d1c383da7a75d/d7d8aaff-725f-456d-b830-0b2cc43fe88a.png</url><title>Information Communication Technology articles.</title><link>https://blog.msukwa.com</link></image><generator>RSS for Node</generator><lastBuildDate>Sat, 16 May 2026 22:52:36 GMT</lastBuildDate><atom:link href="https://blog.msukwa.com/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Starting your tech career:  Three reasons you need to learn Linux]]></title><description><![CDATA[Anchoring your career on fundamental skills and knowledge is very key in the professional space. Similarly, when it comes to careers in ICT, it is very essential to be fundamentally knowledgeable or g]]></description><link>https://blog.msukwa.com/starting-your-tech-career-three-reasons-you-need-to-learn-linux</link><guid isPermaLink="true">https://blog.msukwa.com/starting-your-tech-career-three-reasons-you-need-to-learn-linux</guid><category><![CDATA[Linux]]></category><category><![CDATA[linux for beginners]]></category><category><![CDATA[linux-basics]]></category><dc:creator><![CDATA[Moses Msukwa]]></dc:creator><pubDate>Sun, 19 Apr 2026 16:50:11 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/618e4c59e61d1c383da7a75d/9ff8b131-03c7-45a9-93b7-08dc64767656.jpg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Anchoring your career on fundamental skills and knowledge is very key in the professional space. Similarly, when it comes to careers in ICT, it is very essential to be fundamentally knowledgeable or grounded in some key ICT concepts. Some of the key concepts include Operating Systems, computer networks, computer hardware, programming just to highlight a few. In this article, we will discuss Operating Systems mainly focusing on Linux.</p>
<p>Practically, the physical container of the computer is the hardware, the Operating System is similarly a virtual or an intangible container where all the computing happens. In the course of your ICT career, you will come across three most popular flavours of Operating Systems. These include Microsoft Windows, Linux and MacOS. As I earlier hinted, in this article we will discuss Linux, one exciting multifunctional giant OS in the ICT industry worldwide.</p>
<p>In our discussion, we will briefly highlight three points that I presumably have noted in my career on why you or your next of kin should learn and have fundamental knowledge of Linux. Hence, this article is targeting those desiring to begin their careers in ICT or arguably considering learning Linux.</p>
<h3>A giant in the industry.</h3>
<p>One primary reason why you should learn Linux is that it is one of the giants in ICT with respect to software. From powering mobile devices on Android OS to anchoring computer networks across the Internet as servers, Linux is undoubtedly one of the giants if not the giant in the ICT industry. One plain fact is that Linux anchors the Internet. As of 2017, reports indicate that Linux runs 90% of the Internet workload. Hence in one way or the other as an ICT practitioner you will interface and use Linux.</p>
<p>If you have used a website or read this article, chances are that this article is hosted on a web server that is running one of the many Linux based distributions running Nginx or Apache program/service as a web server. Additionally, when you access a website like msukwa.com on your browser, on the Internet there is a technology called Domain Name System (DNS) which translates the name msukwa.com into a machine recognised number called an IP address. In this case, chances are high that the DNS server is running on one of the Linux distributions. For instance, during my college placement I was lucky to be attached to Malawi SDNP, the current registry for the .mw Country Top Level Domain for Malawi. By then the DNS servers hosting the .mw domain names were running on Linux. This was my first ever interaction with Linux on an enterprise infrastructure.</p>
<p>If you are using an Android mobile phone that's a Linux based technology. One day you may end up contributing towards the development of Android OS which is maintained by Google and your knowledge of Linux will be very key. Similarly you might end up developing an Android mobile application, while not necessary, your knowledge of Linux might be needed in this front. On a side note, you can check out <a href="https://blog.msukwa.com/introduction-to-mobile-application-development-exploring-approaches">my article</a> on mobile application development and also check out <a href="https://play.google.com/store/apps/details?id=com.mazgo.mazgo">my android mobile application</a> on play store in case you choose this route. I can go on to list the many key services on the Internet that are anchored by Linux. But as a beginner it is better you do the research for the remaining part.</p>
<h3>Multi-functional software.</h3>
<p>For the various Linux distributions out there, you will use Linux as a server or a desktop OS. The Linux distributions offer various functions depending on what services or functions you want to use. For instance, one good Linux distribution is Ubuntu. If you are a creative person, Ubuntu Studio OS will provide you with a plethora of programs that will enable you to work with audio, photography, video and graphics design.</p>
<p>Likewise, for services or programs in computer networking like web hosting, DNS, DHCP and others you can opt to use Ubuntu Server. On the other hand other distributions of Linux also exist that can be used for cybersecurity, data science and programming. Distributions like Kali Linux, parrot, Centos, fedora and others will offer you great tools for use. Hence having fundamental skills or knowledge of Linux will enable you to be grounded in these tech skills.</p>
<h3>Linux is exciting.</h3>
<p>Have you ever watched a movie where a guy sits in front of a computer, punching his keyboard and there is a series of text in yellow, green, red running on the monitor. If you ever wondered or got excited with such an experience, Linux will presumably give you such a feeling.</p>
<p>Practically, Linux offers you exciting tools to use. One of the most exciting tools is the Command Line Interface (CLI). The CLI provides you with an interface that allows you to interact with the various computer programs/services using commands. i.e. commands for creating, deleting files or folders and commands that will allow you to fully utilize Linux for various functions including networking, cybersecurity just to highlight a few.</p>
<p>Thus, anchoring your career on tools that are exciting to learn and use will arguably motivate you to stay consistent in the course of your tech career.</p>
]]></content:encoded></item><item><title><![CDATA[CISCO 2800 Router : How to reset to default settings]]></title><description><![CDATA[In August 2025 I got hold of two second hand CISCO gadgets a switch -3570 series and a 2800 series router from a local supplier for my homelab. Unfortunately, the 2800 series router had the previous configurations in play hence needed a password to a...]]></description><link>https://blog.msukwa.com/cisco-2800-router-how-to-reset-to-default-settings</link><guid isPermaLink="true">https://blog.msukwa.com/cisco-2800-router-how-to-reset-to-default-settings</guid><category><![CDATA[cisco 2800 route]]></category><category><![CDATA[Cisco]]></category><category><![CDATA[Homelab]]></category><category><![CDATA[router]]></category><category><![CDATA[network]]></category><dc:creator><![CDATA[Moses Msukwa]]></dc:creator><pubDate>Sun, 31 Aug 2025 17:04:10 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1756654631686/e53e09f6-106f-4175-a0a5-0ec3fc36151d.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In August 2025 I got hold of two second hand CISCO gadgets a switch -3570 series and a 2800 series router from a local supplier for my <a target="_blank" href="https://blog.msukwa.com/building-a-home-lab-deploying-a-network-and-security-mechanisms">homelab</a>. Unfortunately, the 2800 series router had the previous configurations in play hence needed a password to access the configuration mode. This calls for a reset to default settings.</p>
<p>In this article, I will take you through the process of resetting the <strong>2800 series router.</strong> To achieve the aforementioned, We will need to boot the router into <a target="_blank" href="https://notes.networklessons.com/ios-what-is-rommon"><strong>ROMMON</strong></a> mode then change the configuration register to <strong>0×2142</strong> from the default of <strong>0×2102</strong>.</p>
<p><strong>ROMMON mode</strong></p>
<p>For the router to be reset, there is need to navigate the router to ROMMON mode before it fully boots into the running mode. For the 3560 router there are 2 ways to get into ROMMON mode. The first option is to use the break command. The second option is to unplug the flash card.</p>
<p><strong>Using the break command</strong></p>
<p>To use the break command to go into ROMMON mode, We need to power off the router, connect our computer to the console port then connect to Putty. Power on the router, at the first sign of life on the console go to special commands on putty and click break. This will make the router boot into ROMMON mode.</p>
<p><strong>Unplug the flash card</strong></p>
<p>To do this, we will power off the router then unplug the flash card as indicated below.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756654813786/cbe78878-349d-4c94-b404-d91ad49511e6.jpeg" alt class="image--center mx-auto" /></p>
<p>When we power on the router and it will boot into ROMMON mode as below. You can then plug the flash card.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756647956931/d5b9d35d-9899-4ee7-9959-ee61af1359dc.png" alt class="image--center mx-auto" /></p>
<p>In ROMMON mode, we need to change the configuration register to 0×2142. We use the “<strong>confreg 0×2142</strong>“ command. The router will prompt for reset, use the “<strong>reset</strong>“ command.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756651745468/a5405ab6-b67f-4b51-94e2-a9cd2bda3bd4.png" alt class="image--center mx-auto" /></p>
<p>After reset command, the router will restart with a fresh running-config. We then have to Copy the running configurations to to the start-up configuration as the below command.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756653415493/1759cf44-89b9-4ef8-9095-349e6461c9da.png" alt class="image--center mx-auto" /></p>
<p>We now have to revert the configuration register to the default value of “<strong>0×2102</strong>”. We need to navigate into the global configuration mode with the “<strong>configure terminal</strong>” command. While in this mode, we use the “<strong>config-register 0×2102</strong>” command to change the register as below.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756653519919/e4b08ec5-f787-4b0b-aefc-7f3d3100ef37.png" alt class="image--center mx-auto" /></p>
<p>Finally we can restart the router with the reload command. We now have a router without the secret/password to navigate into configuration mode.</p>
]]></content:encoded></item><item><title><![CDATA[Building a home Lab :  Deploying Wazuh - an Extended Detection and Response tool]]></title><description><![CDATA[In this article, we will deploy an Extended Detection and Response (XDR) tool on the home lab infrastructure. We will deploy Wazuh in the Servers VLAN. Wazuh is an open-source security monitoring platform that provides extended detection and response...]]></description><link>https://blog.msukwa.com/building-a-home-lab-deploying-wazuh-an-extended-detection-and-response-tool</link><guid isPermaLink="true">https://blog.msukwa.com/building-a-home-lab-deploying-wazuh-an-extended-detection-and-response-tool</guid><category><![CDATA[Wazuh Dashboard]]></category><category><![CDATA[XDR cybersecurity]]></category><category><![CDATA[SIEM]]></category><category><![CDATA[#cybersecurity]]></category><category><![CDATA[#Mikrotik]]></category><category><![CDATA[VLAN]]></category><category><![CDATA[VLAN Trunking Protocol]]></category><category><![CDATA[ethicalhacking]]></category><dc:creator><![CDATA[Moses Msukwa]]></dc:creator><pubDate>Sun, 06 Jul 2025 08:06:28 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1751788871999/d1501c14-ee87-42f4-bed3-801d63f8b643.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In this article, we will deploy an Extended Detection and Response (XDR) tool on the home lab infrastructure. We will deploy Wazuh in the Servers VLAN. Wazuh is an open-source security monitoring platform that provides extended detection and response (XDR) and SIEM functionality. Wazuh provides a centralized platform for monitoring and managing security events across the organization’s IT infrastructure.</p>
<p>Wazuh collects, analyzes, and connects log data from different sources, such as endpoints, network devices,firewalls, proxy servers, and cloud instances. Once the logs are collected, Wazuh provides several capabilities to the security team such as file integrity monitoring, malware detection, vulnerability detection, command monitoring, system inventory, threat hunting, security configuration assessment, and incident response.</p>
<p><strong>The core components of Wazuh</strong></p>
<p>The Wazuh is made up of three main parts: the Wazuh server, the Wazuh indexer, and the Wazuh dashboard. The Wazuh agent is installed on the endpoints that need to be monitored.</p>
<p><strong>The Wazuh server :</strong> This central component is also used to manage the agents and analyze the data received from them: It collects logs from several sources such as hosts, network devices, firewalls, proxy servers, and syslog servers.</p>
<p><strong>Deploying Wazuh on Ubuntu</strong></p>
<p>We will install Wazuh the Servers VLAN on one of the Ubuntu Servers. The Ubuntu server has been assigned the IP address <strong>192.168.1.2</strong>. There are two ways of deploying Wazuh. The first option is to install Wazuh in cluster mode. This requires more resources in terms of the servers. The second option is to install Wazuh on a single server. In our case we will go with the second option as we only have a single server. The <a target="_blank" href="https://documentation.wazuh.com/current/quickstart.html">wazuh website</a> provides a clear guide on the installation process for Wazuh.</p>
<p><strong>Accessing Wazuh</strong></p>
<p>After installing Wazuh, we will access the Wazuh dashboard through the browser on using <strong>192.168.1.2.</strong> After successfully login, we will be presented with the home page for the dashboard as below.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1751723894954/fa890941-adfb-48d7-ac2f-13a0fcd1dcdc.png" alt class="image--center mx-auto" /></p>
<p><strong>Deploying Wazuh Agents.</strong></p>
<p>Wazuh agents are deployed on endpoints such as laptops, desktops, servers, cloud instances, or virtual machines. The <a target="_blank" href="https://documentation.wazuh.com/current/quickstart.html">Wazuh website</a> provides a clear guide on the installation process. In our case, we will deploy an agent on our Windows laptop.</p>
<p>To deploy the agent, we will login into our Wazuh server using the browser using the <strong>192.168.1.2 ip address</strong>. From the menu items on the home page, we will select “Endpoints summary” and click the “Deploy new agent” button.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1751784080980/c2b5be4e-edc4-487a-82b4-5c4f997676ad.png" alt class="image--center mx-auto" /></p>
<p>On the provided deployment from as shown below, we will select WINDOWs as we will deploy the agent on the windows machine.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1751784115681/b7680e2e-009a-4295-a561-2c377c1290c8.png" alt class="image--center mx-auto" /></p>
<p>We input the desired agent name ‘“Home-Laptop“. We will then be provided with the commands to run to install and start the agent on our machine.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1751788332349/6e5b228b-989b-41a3-bafd-a82d115bb228.png" alt class="image--center mx-auto" /></p>
<p>To deploy the agent on our laptop, we open Power shell as an administrator and run the copied commands.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1751784138863/6c21c503-aa5a-4b3c-a98e-4ae8896270f0.png" alt class="image--center mx-auto" /></p>
<p>After installing the agent, we can now go back to in the server see if the agent is live and appearing in our Wazuh dashboard. Below are the pictures of the agent live on the Wazuh dashboard.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1751784187786/b2044a64-bebc-4733-aea7-a10cdfa23588.png" alt class="image--center mx-auto" /></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1751784222894/821507ca-55a9-4f79-ac71-637dfebae564.png" alt class="image--center mx-auto" /></p>
<p>Following the above process, We can now deploy another agent on our Microsoft Server on which we will later deploy Active Directory for the home lab.</p>
<p>Regards !!!!!!</p>
]]></content:encoded></item><item><title><![CDATA[Building a home Lab : Configuring the Mikrotik routerboard for the Local Area Network]]></title><description><![CDATA[Having outlined the intention to build a physical homelab for exploring networking and cybersecurity in my previous article. In this article, we will take the first step of the project. We will configure and deploy a microtik routerboard as a core ro...]]></description><link>https://blog.msukwa.com/building-a-home-lab-configuring-the-mikrotik-for-our-local-area-network</link><guid isPermaLink="true">https://blog.msukwa.com/building-a-home-lab-configuring-the-mikrotik-for-our-local-area-network</guid><category><![CDATA[#Mikrotik]]></category><category><![CDATA[VLAN]]></category><category><![CDATA[VLAN Trunking Protocol]]></category><category><![CDATA[Homelab]]></category><category><![CDATA[#cybersecurity]]></category><category><![CDATA[networking]]></category><dc:creator><![CDATA[Moses Msukwa]]></dc:creator><pubDate>Fri, 30 May 2025 15:32:32 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1748618992633/d81e94bb-fac5-478d-99be-de9f65f830f6.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Having outlined the intention to build a physical homelab for exploring networking and cybersecurity in my previous <a target="_blank" href="https://mosesmsukwa.blog/building-a-home-lab-deploying-a-network-and-security-mechanisms">article</a>. In this article, we will take the first step of the project. We will configure and deploy a microtik routerboard as a core router and switch for the project. We will segment the home network into VLANs. We will then configure the respective IP Addresses and the DHCP Servers for the VLANs. We will configure access ports for the VLANs and reserve 1 ethernet port for Internet reception from an ISP. For all configurations, we will use <a target="_blank" href="https://mikrotik.com/download#">WinBox</a> to connect and interface with the routerboard throught the configuration process.</p>
<p><strong>Creating a bridge and assigning ports</strong></p>
<p>Firstly, we need to create a bridge and name it homebridge. In our case, the routerboard already has a default bridge configured, we will just rename it to our desired name. To create or rename the bridge, on the leftbar of our winbox interface, we select bridge and then the select the only listed bridge. In the generals section of the provided interface, on the name field we type ‘homebridge’ as desired. Below is the impression.</p>
<p>After creating the bridge, we need to assign ether ports 2 to 4 to our homebridge. The 4 ports assigned to homebridge will be used as access and trunk ports. We will not assign port ether1 to homebridge because it will be used for Internet connection from our ISP.</p>
<p><strong>Creating the VLANs</strong></p>
<p>After creating the bridge and assigning the ethernet ports to our homebridge, we now have to configure the VLANs. The 4 VLANs are detailed in the table 1.</p>
<div class="hn-table">
<table>
<thead>
<tr>
<td><strong>No.</strong></td><td><strong>VLAN ID</strong></td><td><strong>VLAN NAME</strong></td></tr>
</thead>
<tbody>
<tr>
<td>1</td><td>10</td><td>HOMEWIFI</td></tr>
<tr>
<td>2</td><td>11</td><td>NETWORKMANAGEMENT</td></tr>
<tr>
<td>3</td><td>5</td><td>SERVERS</td></tr>
<tr>
<td>4</td><td>15</td><td>ENTERTAINEMENT</td></tr>
</tbody>
</table>
</div><p>We will start with creating the “NETWORKMANAGEMENT” VLAN Which has a VLANID of 11.</p>
<p>On the leftbar of our winbox interface, select interfaces, then select the VLAN tab and click the <strong>+</strong> sign.</p>
<p>On the presented New interface form, we will Name the interface as ‘NETWORKMANAGEMENT’ as intially desired. we will also give it the VLAN ID of 11 and on the interface field, we select the “homebridge” interface from the drop down. Lastly, click apply and ok to save the settings. Thus, we have created our first VLAN.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1748610103494/d9791a5c-93e2-476a-b149-0b0ea646ea08.png" alt class="image--center mx-auto" /></p>
<p>Image 1 showing a form for creating a VLAN.</p>
<p>Following the above process, we will also add the SERVERS, HOMEWIFI and ENTERTAINMENT VLANs assigning them their respective names and VLANIDs as shown in the table 1. For each VLAN , we should also assign the ‘homebridge’ on the interface field. Image 2 shows the list of our newly created VLANs.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1748610176412/6b23925e-c28d-4fc7-8a06-77b29cf1adea.png" alt class="image--center mx-auto" /></p>
<p>Image 2 showing all created VLANs.</p>
<p><strong>Defining IP addresses</strong></p>
<p>After creating our VLANS. We need to add IP Addresses to be used in each VLAN. On the left bar of our winbox interface, select <strong>IP</strong> then <strong>Addresses</strong>, then click the <strong><mark>+</mark> sign</strong>.  We will start defining the IP addresses for the SERVERS VLAN. On the New Address form, we add the address 192.168.1.1/28, the network 192.168.1.0 and on the interface field we select the SERVERS VLAN. The image below shows the defined fields for the SERVERS VLAN.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1748610591955/5a975389-2648-48b9-b8e1-d62a84810475.png" alt class="image--center mx-auto" /></p>
<p>Image 3 showing all created VLANs.</p>
<p>We now have to define the IP Addresses for all the VLANs following the above process. Table 2. shows the values for each IP address range to be defined .</p>
<div class="hn-table">
<table>
<thead>
<tr>
<td><strong>VLANS</strong></td><td><strong>ADDRESS</strong></td><td><strong>NETWORK</strong></td><td><strong>INTERFACE</strong></td></tr>
</thead>
<tbody>
<tr>
<td>SERVERS</td><td>192.168.1.1/28</td><td>192.168.1.0</td><td>SERVERS</td></tr>
<tr>
<td>HOMEWIFI</td><td>192.168.1.17/28</td><td>192.168.1.16</td><td>HOMEWIFI</td></tr>
<tr>
<td>ENTERTAINMENT</td><td>192.168.1.33/28</td><td>192.168.1.32</td><td>ENTERTAINMENT</td></tr>
</tbody>
</table>
</div><p>Image 4 below shows all the the defined IP addresses.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1748610646413/785bf9d2-4a58-4c3b-83d4-b02bf27585af.png" alt class="image--center mx-auto" /></p>
<p>Image 4 showing defined IP addresses for the VLANs.</p>
<p><strong>Configuring DHCP Servers</strong></p>
<p>We now have to configure DHCP servers for each of the VLANs with their respective IP pools emanating from the IP addresses we defined previously.</p>
<p>On the leftbar of our winbox interface, we select IP, then select DHCP server, on the top bar select DHCP setup. On the provided DHCP setup form, select the desired DHCP Server interface, in this case we select HOMEWIFI. We will then follow through by clicking next to go with the provided defaults for each VLAN. For the DNS will will put 8.8.8.8 for starters. We then have to follow the above process to define the DHCP Server for the ENTERTAINMENT VLAN. Image 5 the DHCP Servers created.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1748616239526/1a56ca3d-b944-41d4-b2cf-010bb8ecd51e.png" alt class="image--center mx-auto" /></p>
<p>Image 5 showing defined DHCP server for 2 of the VLANs.</p>
<p><strong>Defining access and truck ports</strong></p>
<p>We now have to create the access or truck ports for the VLANS for the ports that we attached to our bridge. Access and truck ports are also reffered to as untagged and tagged ports. In simple terms, an access/untagged port allows traffic for a single VLAN while a trunk/tagged port allows traffic for multiple VLANs.</p>
<p>For the homelab, we do not need any Truck ports for now hence we will not create any. However, we only need and create access ports for 3 of our VLANs. These include SERVERS, HOMEWIFI and ENTERTAINMENT. Table 3 shows the access ports to be created for the 3 VLANs on the routerboard.</p>
<div class="hn-table">
<table>
<thead>
<tr>
<td><strong>Port</strong></td><td><strong>VLAN ID</strong></td><td><strong>VLAN NAME</strong></td><td><strong>Description</strong></td></tr>
</thead>
<tbody>
<tr>
<td>Ether1</td><td>N/A</td><td>N/A</td><td>Left for Internet connection, connect to ISP router</td></tr>
<tr>
<td>Ether2</td><td>10</td><td>HOMEWIFI</td><td>Wireless access point</td></tr>
<tr>
<td>Ether3</td><td>5</td><td>SERVERS</td><td>For AD</td></tr>
<tr>
<td>Ether4</td><td>5</td><td>SERVERS</td><td>For SIEM</td></tr>
<tr>
<td>Ether5</td><td>15</td><td>ENTERTAINEMENT</td><td>TV CONNECTION</td></tr>
</tbody>
</table>
</div><p>Table 3 showing the access ports to be defined for the VLANs.</p>
<p>To do create the access ports, on the leftbar of our winboz Interface, we select bridge, then on the top bar we select the VLANs tab. The we select the <strong>+</strong> sign to create our access ports. We will start defining access ports for the SERVERS VLAN. On the New bridge VLAN form, for the bridge field we select “homebridge” from the dropdown list, on the VLANID field we put <strong>5</strong>, on the tagged field we add homebridge (Note that for all VLANS on the tagged field we must add homebridge).  On the untagged field, we select ether3 and ether4 as shown in table above. We then click apply and ok to save our settings. We now have ether3 and ether4 as access ports for our SERVERS VLAN. Image 6 shows the fields defining the access ports for the SERVERs VLAN.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1748611184381/c5ecc598-f4f5-436f-92ae-ae473d5d4cc3.png" alt class="image--center mx-auto" /></p>
<p>Image 6 showing form for defining access ports</p>
<p>Following the above process and referencing the table above, we then define the rest of the access ports for the VLANs as desired in our table. Image 7 shows the defined access ports.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1748611288454/a5a6fda4-bfff-4e00-b07b-3bb5b9e65276.png" alt class="image--center mx-auto" /></p>
<p>Image 7 showing access ports defined for the VLANs.</p>
<p><strong>Specifying the pVID on the access ports.</strong></p>
<p>One more thing, as we have defined the access ports, we need to specify the pVID for each port which is initially defaulted to 1. To do this, on the leftbar, select bridge, then on the topbar, select port.  For each port, click it, then go to VLAN tab and on PVID field indicate the VLANID assigned to that port. Consequentially, for ether5 the PVID is 15, ether4 and ether3 pVID is 5 and lastly ether2 the pVID is 10.</p>
<p><strong>Add interface list for access</strong></p>
<p>We now need to add an interface that we can use the access or connect the router when we activate the VLAN traffic on the router. On the leftbar of our winbox interface, we select interfaces, then select interface List on the top bar. The select the <strong>+</strong> sign. On the New Interface List Member form, on the List field select LAN from the dropdown and on the interface field select HOMEWIFI from the dropdown. The click ok and apply to save.</p>
<p><strong>Activating the VLAN traffic on the bridge</strong></p>
<p>After completing the above processes, we now need to activate the VLANs traffic on the bridge.</p>
<p>On the leftbar of our winbox interface, we select bridge, then select the “homebridge”, on the top bar select VLAN tab. The check the VLAN filtering field. Click ok and apply to save.</p>
<p><strong>Are we up on all VLANs?</strong></p>
<p>Yes</p>
]]></content:encoded></item><item><title><![CDATA[Building a home Lab : Deploying a network and security mechanisms]]></title><description><![CDATA[The purpose of the this Lab is to deploy a home network and cybersecurity infrastructure. We will implement an optimal network and deploy defensive techniques used to secure and defend the network and systems. We will also be on a journey evaluating ...]]></description><link>https://blog.msukwa.com/building-a-home-lab-deploying-a-network-and-security-mechanisms</link><guid isPermaLink="true">https://blog.msukwa.com/building-a-home-lab-deploying-a-network-and-security-mechanisms</guid><category><![CDATA[cybersecurity]]></category><category><![CDATA[#Mikrotik]]></category><category><![CDATA[VLAN]]></category><category><![CDATA[VLAN Trunking Protocol]]></category><category><![CDATA[malawi]]></category><category><![CDATA[ethicalhacking]]></category><dc:creator><![CDATA[Moses Msukwa]]></dc:creator><pubDate>Sat, 29 Mar 2025 06:21:05 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1743152585073/e9676dc1-0832-4c14-9069-63a93e05f68e.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The purpose of the this Lab is to deploy a home network and cybersecurity infrastructure. We will implement an optimal network and deploy defensive techniques used to secure and defend the network and systems. We will also be on a journey evaluating and testing the effectiveness of the defense techniques so that we identify vulnerabilities in the network and the systems.</p>
<p>The physical composition of the Lab includes a Mikrotik router board, a TP-link wireless router, a Huawei router and 2 Lenovo computer boxes.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1743154780794/cd247a8a-36e3-4788-97c1-6ddc668699e4.jpeg" alt class="image--center mx-auto" /></p>
<p>The Mikrotik routerboard will be our core router. The router will manage all the VLANs for the network. The Huawei router will provide Internet service to the network through cellular network from one of the local ISPs. We will us the Tp-link router as a wireless access point for the home WIFI. The 2 Lenovo computer boxes will be used as servers for the various services to be implemented on the network.</p>
<p>We will employ logical network segmentation using VLANs. This is to purposely isolate network traffic and also as employ the segmentation for implementation of other defense mechanism to enhance network security. We will segment the network into 4 VLANS as detailed in the table below</p>
<div class="hn-table">
<table>
<thead>
<tr>
<td>Name</td><td>VLANID</td><td>NETWORKID</td><td>IP range</td><td>Gateway</td><td>Mask</td></tr>
</thead>
<tbody>
<tr>
<td>NETWORKMANAGEMENT</td><td>11</td><td>10.10.10.0</td><td>10.10.10.1 - 14</td><td>10.10.10.1</td><td>/28</td></tr>
<tr>
<td>SERVERS</td><td>5</td><td>192.168.1.0</td><td>192.168.1.1 - 14</td><td>192.168.1.1</td><td>/28</td></tr>
<tr>
<td>HOMEWIFI</td><td>10</td><td>192.168.1.16</td><td>192.168.1.17 - 30</td><td>192.168.1.17</td><td>/28</td></tr>
<tr>
<td>ENTERTENMENT</td><td>15</td><td>192.168.1.32</td><td>192.168.1.33 - 46</td><td>192.168.1.33</td><td>/28</td></tr>
</tbody>
</table>
</div><p>We will configure a couple of servers for web, database and other interesting services. Primarily, we will employ virtualization to maximize the 2 Lenovo computer boxes and make available virtual machines for the various services which will be running either on Linux or Windows operating systems.</p>
<p>The diagram below shows the simplistic design showing context zero connections of the devices and the 3 key VLANs to be created on the routerboard.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1743228062851/354f1d5d-06c1-4ef5-addf-f6e659b770e0.png" alt class="image--center mx-auto" /></p>
<p>In conclusion, the purpose of the home lab will be to explore computer networks and cybersecurity with a primary focus on defense mechanism. Physically, the lab will be developed using a wireless modem, a mikrotik routerboard, 2 lenovo boxes and a TP-link wireless router to be used as an access point. Logiccally, the lab will be segmented into 3 VLANs namely SERVERS, HOMEWIFI and ENTERTENMENT. Another VLAN, NETWORK MANAGEMENT will be the network management for the LAN.</p>
<p>Bravo! Look out for the next part of this series.</p>
]]></content:encoded></item><item><title><![CDATA[Understanding the Internet : A brief overview]]></title><description><![CDATA[Have you ever wondered what the Internet is? or specifically about the technologies that exist when you stream a video or message a friend via WhatsApp or Facebook? Or perhaps you may have also wondered how these technologies work, and who owns and m...]]></description><link>https://blog.msukwa.com/understanding-the-internet-a-brief-overview</link><guid isPermaLink="true">https://blog.msukwa.com/understanding-the-internet-a-brief-overview</guid><category><![CDATA[internet]]></category><category><![CDATA[#Networking #Computer networking #Network security #Network infrastructure #Network protocols #Network administration #Wireless networking #Internet networking #VPN (Virtual Private Network) LAN (Local Area Network) WAN (Wide Area Network) Cloud networking Network performance Network monitoring Network troubleshooting Network architecture Network topology Network design Network optimization Network automation]]></category><dc:creator><![CDATA[Moses Msukwa]]></dc:creator><pubDate>Wed, 06 Mar 2024 11:29:19 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/iSh9yqYSd08/upload/8c511b3fff217a2d6e9bda3d895bc4d9.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Have you ever wondered what the Internet is? or specifically about the technologies that exist when you stream a video or message a friend via WhatsApp or Facebook? Or perhaps you may have also wondered how these technologies work, and who owns and maintains them.  Or maybe you just desire to kick-start your career in tech. Then this article is for you.</p>
<p>The Internet is the interconnection of computer networks across the globe. A computer network is a collection of computing devices connected using wireless or wired channels for purposes of sharing data. In a computer network, computing devices operate through rules also known as protocols. These protocols enable the safe, timely and smooth exchange of data. Data sharing is done through software applications that are installed on computing devices. Some of the applications that run on the Internet include whatsapp, Instagram, tiktok and  facebook. The Internet is developed and maintained by individuals and organizations that set operating standards and develop technologies which form the Internet.</p>
<h3 id="heading-origins-of-the-internet">Origins of the Internet</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1699789263665/c323a898-70e2-4377-8154-c72e035e5e0d.png?auto=compress,format&amp;format=webp" alt class="image--center mx-auto" /></p>
<p>The Internet traces its origins in the 1960s in the United States of America.  It was conceived to connect various research networks in the USA and Europe. Some of the key individuals in the initial development of the Internet include Leonard Kleinrock at MIT, Paul Baran at Rand Institute, Donald Davies and Roger Scantbury. Other key figures include Robert W. Taylor, who led the development of the ARPANET which is an early prototype of the Internet, and  Vinton Cerf and Robert Kahn, who developed the Transmission Control Protocol/Internet Protocol(TCP/IP) technologies, one of the key protocols on the Internet.</p>
<h3 id="heading-who-controls-the-internet">Who controls the Internet</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1699789457701/0fa4555e-0447-4957-be80-6b2e7b366c0d.png?auto=compress,format&amp;format=webp" alt class="image--center mx-auto" /></p>
<p>The Internet is developed and maintained by individuals and organizations that set the operating standards and develop technologies that form the Internet. From its inception, the Internet was controlled by the United States government. Today the Internet is controlled by no single entity. There are several stakeholders key in maintaining and developing the Internet. Among other duties, these stakeholders make sure that the Internet stays open and free. Some of these stakeholders include the IETF, the Internet Society (ISOC), and the Internet Corporation for Assigned Names and Numbers(ICANN).</p>
<h3 id="heading-the-computer-network">The computer network</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1699866089089/b169f4b1-826d-4883-a4c6-9358e1904b6f.png?auto=compress,format&amp;format=webp" alt class="image--center mx-auto" /></p>
<p>The Internet is an interconnection of computer networks that are located in various geographical locations across seven continents. A computer network is a collection of computing devices that are connected to share data. These devices can be phones, computers or printers.</p>
<p>A connection of devices on a computer network is achieved through the use of copper wire, fiber optic cables or radio spectrum.</p>
<p>A computer network forms the smallest unit of the Internet. A computer network can span a home, an office, a city, a country, and a continent. Computer networks are categorized according to their sizes. These include Personal Area Network(PAN), Local Area Network (LAN), Metropolitan Area Network(MAN) and Wide Area Network(MAN).</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1699866358698/30c48e77-2c24-4e60-8ad5-4721c9244880.png?auto=compress,format&amp;format=webp" alt class="image--center mx-auto" /></p>
<p>For instance, if you have a laptop computer connected to your mobile phone, media player or a play station for personal use within an area of 30 feet, you have created a PAN. On the other hand, a LAN is a group of computing devices connected in a small area like a building or an office. Usually a connection of two or more computers using a twisted pair or a coaxial cable. A MAN covers a larger geographical location by interconnecting different LANs.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1699885501758/9d7dd170-a9ce-4d82-a79f-831919211e0d.jpeg?auto=compress,format&amp;format=webp" alt class="image--center mx-auto" /></p>
<p>A WAN spans over a larger geographical area through fiber optic cables or satellite links. A WAN can span states, countries or continents.</p>
<p>The Internet is the biggest WAN in the world.</p>
]]></content:encoded></item><item><title><![CDATA[Intaneti : Kuyipulikiska  mwakudumura]]></title><description><![CDATA[Mulikwamba mwajifumbapo kuti Intaneti ntchivichi? Panji kujifumbapo kuti Intaneti na vinthu nga Youtube, Facebook na Whatsapp vikukolelanako wuli. Taŵanji tili ku jifumbaposo kuti ka Intanet njakwa njani, ikamba nkhuni ndipo ŵakunozga mbanjani. Taŵan...]]></description><link>https://blog.msukwa.com/intaneti-kuyipulikiska-mwakudumura</link><guid isPermaLink="true">https://blog.msukwa.com/intaneti-kuyipulikiska-mwakudumura</guid><category><![CDATA[internet]]></category><category><![CDATA[malawi]]></category><category><![CDATA[network security]]></category><category><![CDATA[tumbuka]]></category><dc:creator><![CDATA[Moses Msukwa]]></dc:creator><pubDate>Mon, 13 Nov 2023 19:11:07 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/iSh9yqYSd08/upload/50345e11f2d2b029cfb1dc01ece6a1aa.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Mulikwamba mwajifumbapo kuti Intaneti ntchivichi? Panji kujifumbapo kuti Intaneti na vinthu nga Youtube, Facebook na Whatsapp vikukolelanako wuli. Taŵanji tili ku jifumbaposo kuti ka Intanet njakwa njani, ikamba nkhuni ndipo ŵakunozga mbanjani. Taŵanandi mwa ise tikukhumbaso nga tinga tewetanga ntchito zakukhwaskana vya Intaneti. Apa tidumbiskanenge mwakudumura vya chinthu ichi tikuti Intaneti.</p>
<p>Mu chipusupusu, Intaneti nkhulumikizgana kwa ma netiweki ya ma kompyuta ghose mu makontineti gha nkhondi na ghaŵili ghachalo chapasi, <strong>awonani chithuzi 3.</strong></p>
<h3 id="heading-kwamba-kwa-intaneti">Kwamba kwa Intaneti.</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1699789263665/c323a898-70e2-4377-8154-c72e035e5e0d.png" alt class="image--center mx-auto" /></p>
<p><strong>Chithuzi 1.</strong> Ŵanyake mwaŵanthu aŵo ŵakateweta milimo yikulu kuti Intaneti yiŵeko.</p>
<p>Intaneti ikamba muvyilimika vyamuma 1960 mchalo cha Amerika. Chilato chakwambira Intaneti chikaŵa chakuti ma bungwe ghakupanga vya kafukufuku mu vyalo vya Amerika na Europe gha nkhwaskanenge na kukolelananga pa milimo yayo.  Ŵanyake mwaŵanthu aŵo ŵakachitapo milimo yikulu kuti Intaneti yiweko niŵanthu nge ŵa <strong>Robert W.Taylor</strong>. Ŵa Taylor naŵanji ndiŵo ŵakayambiska <a target="_blank" href="https://www.techtarget.com/searchnetworking/definition/ARPANET">Advanced Research Projects Agency Network (ARPANET)</a> iyo yikaŵa chikozgo chakwamba cha Intaneti. ARPANET ikamba pasi pa nthambi yakuwona vya chitetezo ku America ya Department of Defence. Ŵa <strong>Vinton Cerf</strong> na <strong>Robert Kahn</strong>, ŵanthu ŵaŵili aŵa ŵakapanga malango gha <a target="_blank" href="https://www.fortinet.com/resources/cyberglossary/tcp-ip">Transmission Control Protocol/Internet Protocol (TCP/IP)</a> . TCP/IP ni malango yamoza yakukhumbikwira chomene pa Intaneti. Vya Malango ghapa Intaneti tidumbilange munthazi.</p>
<h3 id="heading-intaneti-njakwa-njani">Intaneti njakwa njani.</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1699789457701/0fa4555e-0447-4957-be80-6b2e7b366c0d.png" alt class="image--center mx-auto" /></p>
<p><strong>Chithuzi 2.</strong> Ghanyake mwa ma bungwe agho gha kuwonelera vya Intaneti.</p>
<p>Kwamba kumtendeko Intaneti yikaŵa mumawoko gha boma la America ilo likawongoleranga ndondomeko zose zakukhwaska Intaneti. <strong>Kwe lero, Intaneti yilije mwenecho</strong>. Intaneti yili mumaoko yama mabungwe ghanandi. Mabungwe agha ndigho ghakunozga  ivo vikukhumbikwa pa Intaneti  nga kuŵika ndondomeko nakupanga malango ghaka gawanilo ka mauthenga pakati pa ma kompyuta pa Intaneti. Mabungweso ghanyake ghakupanga vipangizo vyakhugwiliskila ntchito kuti Intaneti yiwepo. Ghanyake mwabungwe ghakuoneskeska kuti Intaneti yiwe yawaliyose kweniso yawanangwa kwa ŵanthu aŵo ŵakuyigwiliska ntchito. Ghanyake mwa mabungwe agha ni <a target="_blank" href="https://www.ietf.org/"><strong>Internet Engineering Task Force (IETF)</strong></a>, <a target="_blank" href="https://www.internetsociety.org/"><strong>Internet Society (ISOC)</strong></a> na <a target="_blank" href="https://www.icann.org/"><strong>Internet Corporation for Assigned Name and Numbers(ICANN)</strong></a>. <strong>Awonani chithuzi 2.</strong></p>
<h3 id="heading-kufuma-pa-netiweki-kufika-pa-intaneti"><strong>Kufuma pa netiweki kufika pa Intaneti.</strong></h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1699866089089/b169f4b1-826d-4883-a4c6-9358e1904b6f.png" alt class="image--center mx-auto" /></p>
<p><strong>Chithuzi 3.</strong> Kulumikizgana kwa ma kompyuta ghose muchalo chose ndiyo Intaneti.</p>
<p>Fumbo likulu la muhanya uno ndakuti Intaneti ntchivichi? Intaneti ni netiweki ya ma netiweki ghama kompyuta ghose mu ma Kontineti ghankhondi na ghaŵili. Panji kuti kulumikizgana na kukolelana kwa ma netiweki ghama kompyuta muchalo chose cha pasi, <strong>awonani chithuzi 3</strong>. Apa ntchachimanyikilo kuti fumbo lakundondozgana nalo ndakuti netiweki tchivichi.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1699864937149/e548df5e-8bf6-4d4b-86f6-02c4837270af.png" alt class="image--center mx-auto" /></p>
<p><strong>Chithuzi 4</strong>. Netiweki iyo yalumikizga ma kompyuta, phone na pulinta.</p>
<p>Netiweki ni vipangizo vya ma kompyuta ivyo vyaunjikika pa modza na kulumikizgana na chilato chakuti vigaŵanenge ma uthenga mwakovŵira ŵanthu muwuteŵeti wawo. Vinyake mwavipangizo vikusanginka mu netiweki ni ma foni, ma laputopu kweniso ma pulinta.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1699856277279/b6d155ee-fb91-422f-903d-49a63c1b5b1e.png" alt class="image--center mx-auto" /></p>
<p><strong>CHithuzi 5</strong>. Zinyake mwa ndondomeko zakulumikizgilana ma kompyuta mu netiweki.</p>
<p>Mu netiweki, ma kompyuta ghakulumikizgana munthowa ziŵiri. Nthowa yakwamba nikwendela muma mawaya. Mwazinyake mwa ndondomeko za mawaya ni nthambo za efaneti (Ethernet Cable) kweniso nthambo za fayiba (Fibre cable). Nthowa yachiŵiri iyo tindakalumikizga ma kompyuta mu netiweki nja wayalesi(wireless). Zinyake mwa ndondomeko za wayalesi ni ma setilayiti.</p>
<h3 id="heading-malango-gha-pa-netiweki-network-protocolshttpswwwcomptiaorgcontentguideswhat-is-a-network-protocol">Malango gha pa Netiweki (<a target="_blank" href="https://www.comptia.org/content/guides/what-is-a-network-protocol">Network Protocols</a>)</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1699802119955/e541bacd-f9ca-48e0-ab61-cfd7d6f2cb9c.png" alt class="image--center mx-auto" /></p>
<p><strong>Chithuzi 6.</strong> Ghanyake mwa malango gha pa Intaneti.</p>
<p>Nga umo tawanthu tindaka wika malango kuti tikoleraneko na kupulikanga mu mawupu agho tikuchezgamo panji kuteweta, ma kompyuta gha mu netiweki nagho ghakukhumbanga malango. Malango agha muchingelezi tikuti ma “<a target="_blank" href="https://www.comptia.org/content/guides/what-is-a-network-protocol">network protocols</a>”.  Malango agha ghakovwila kuti ma kompyuta mu netiweki ghakolelanenge kweniso kuti gha gaŵanenge mauthenga mwakwenelela. Ghanyake mwamalango agha ni <a target="_blank" href="https://www.fortinet.com/resources/cyberglossary/tcp-ip">TCP/IP,</a> <a target="_blank" href="https://www.cloudflare.com/learning/ddos/glossary/hypertext-transfer-protocol-http/">Hypertext transfer protocol (HTTP)</a>, <a target="_blank" href="https://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol">Simple Mail Transafer Protocol (SMTP)</a>.</p>
<p>Ma kompyuta kuti ghayowoyeskane na kugaŵana ma uthenga pa netiweki pakukhumbikwa mapulogiramu agho ghakuŵikika mu makompyuta. Mapulogiramu agha ndigho gha kugwilitsa ntchito malango. Ghanyake nyake mwama pulogalamu agha ni Youtube, Facebook na Whatsapp.</p>
<h3 id="heading-ma-gulu-ghama-netiweki"><strong>Ma gulu ghama netiweki.</strong></h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1699866358698/30c48e77-2c24-4e60-8ad5-4721c9244880.png" alt class="image--center mx-auto" /></p>
<p><strong>Chithuzi 7.</strong> Personal Area Network (PAN)</p>
<p>Ma netiweki ghakugaŵika mu magulu mwakuyana nakakulilo kake. Gulu lakwamba lama netiweki ni Personal Area Network (PAN). Iyi ni netiweki iyo kukula kwake yindaka jumpha mamita 10 cha. Mwachiyelezgelo, pala imwe mwalumikizga vipangizo vyinu nge foni, laptop na vinyake vyakupulikizgila nyimbo mumalo ghakuchepela mamita 10 ndikuti mapanga netiweki ya PAN.</p>
<p>Gulu lachiŵiri la ma netiweki ni Local Area Network (LAN). Netiweki iyi njakulira kujumpha pa PAN. Pala vipangizo vyamakoputa vyalumikizgana mu nyumba, mu ofesi panji pa sukulu vikupanga LAN. kawilikawili mu LAN ma kompyuta tikulumikizgira nthambo za efaneti panji kwendela mundondomeko ya wayalesi. Ntheula kuti LAN indakandama mu nyumba, ofesi panji vipatala.</p>
<p>Gulu la chitatu la ma netiweki ni Metropolitan Area Network (MAN). Netiweki iyi njikulu chomene ndipo yikupangika pala ma LAN yalumikizgana. Ntheula pala ma LAN yalumikizgana mu msumba ghandakapanga MAN.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1699885501758/9d7dd170-a9ce-4d82-a79f-831919211e0d.jpeg" alt class="image--center mx-auto" /></p>
<p><strong>Chithuzi 8.</strong> Umo nthambo za fayiba zilikwendera munyanja kulumikizga ma netiweki pa chalo nakupanga Intaneti</p>
<p>Gulu lachinayi ni <a target="_blank" href="https://www.comptia.org/content/guides/what-is-a-wide-area-network">Wide Area Network (WAN)</a>. WAN ni netiweki yikulu chomene yeneyiyo ikupangika pala ma MAN yalumikizgana pakugwilisa ntchito nthambo za fayiba panji wailesi za setilaiti. Netiweki iyi yindakafika nakwandana ma kontineti ghose muchalo chapasi. Mugulu ili ma netiweki ghakulumikizgika na nthambo za fayiba izo zikwenda mitunda yitali  kwaniso zikujumpha munyanja zapachalo, wonani <strong>Chithuzi 8.</strong></p>
<p>Ntheula Intaneti ndiyo WAN ikuluchomene muchalo cha pasi.</p>
]]></content:encoded></item><item><title><![CDATA[Introduction to mobile application development: Exploring approaches]]></title><description><![CDATA[Background
Mobile phones are arguably the most popular devices for digital connectivity. Mobile phones have been used to help people and societies stay connected for social, economic, educational and political activities. According to GSMA 5.4 billio...]]></description><link>https://blog.msukwa.com/introduction-to-mobile-application-development-exploring-approaches</link><guid isPermaLink="true">https://blog.msukwa.com/introduction-to-mobile-application-development-exploring-approaches</guid><category><![CDATA[Mobile Development]]></category><category><![CDATA[android app development]]></category><category><![CDATA[iOS development]]></category><dc:creator><![CDATA[Moses Msukwa]]></dc:creator><pubDate>Sat, 15 Apr 2023 07:37:15 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/6sAl6aQ4OWI/upload/bf2bf69c8f95bd295810619e8cea1887.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>Background</strong></p>
<p>Mobile phones are arguably the most popular devices for digital connectivity. Mobile phones have been used to help people and societies stay connected for social, economic, educational and political activities. According to GSMA 5.4 billion people are subscribed to mobile services. This culminated in $ 5.2 trillion of economic value being added and supported 28 million jobs in the mobile ecosystem. One aspect that propels mobile phone usage are mobile applications. Mobile applications are designed and developed to provide digital services as solutions via a smartphone.</p>
<p>Mobile application development is the process of creating software that can be used on a mobile device, such as a smartphone. Primarily, the goal of such software is to provide mobile digital services as a solution to problems being faced by people in their daily life activities. These days individuals or companies develop mobile applications as digital platforms for providing various services in sectors like insurance, healthcare, e-commerce and agriculture. With modern advancements in technologies, there is a need for individuals and companies to develop mobile applications that meet user expectations for real-time transactions and access to accurate and real-time information.</p>
<p><strong>Approaches to mobile development.</strong></p>
<p>There are primarily two approaches to mobile app development: native and hybrid. A native mobile app is primarily designed and developed to run on specific mobile operating systems, which are either Android or iOS. On the other hand,  a hybrid app also known as a cross-platform app is developed on a shared codebase and can be built to run on multiple OS. The two approaches are distinctively discussed below.</p>
<p><strong>Native mobile Apps</strong></p>
<p>A native mobile app is developed specifically to run on either Android or iOS. One key advantage of Native app development is that it exposes various specific device built-in features and APIs that developers can take advantage of to create powerful mobile applications.</p>
<p><strong>Android Apps</strong></p>
<p>Android is the world's most popular mobile operating system, powering more than 70% of smartphones. Android was first released as an open-source project in 2003, based on the Linux kernel. Android provides several APIs that can be used to circumvent mobile device limitations. Android applications are simple to distribute on the app store - Google Play - with few publishing restrictions. There are currently nearly four million published Android apps. Java or Kotlin programming languages are used to create Android applications. Recently, Kotlin has been the preferred programming language for Android apps due to its improved performance compared to Java. The official Integrated Development Environment (IDE) for android applications is Android studio. Android studio is available for macOS, Linux and Windows.</p>
<p><strong>iOS Apps</strong></p>
<p>iOS is a mobile operating system that runs on Apple hardware like iPhone, iPad and iPod Touch. Just like Android, iOS also offers various APIs that can be utilized to circumvent the limitations of mobile devices. But unlike Android apps, deploying iOS apps on the App Store faces the strongest quality review before it can be published for distribution. iOS applications are developed using Swift or Objective-C programming languages. The official IDE for iOS apps is Xcode which only runs on macOS.</p>
<p><strong>Hybrid apps</strong></p>
<p>Cross-platform is another name for hybrid apps. Hybrid apps are created with a single code base and can run on Android, iOS, or the web.This means that a developer creates a single piece of source code, which is then compiled to create two distinct applications. One application that runs on Android and another that runs on iOS. As various mobile devices are targeted, this ensures a greater reach and accessibility. However, unlike native apps, hybrid apps have limited access to device features and APIs, which may impact the app's user experience. Some of the frameworks for developing hybrid apps include, Flutter, React Native, Ionic, Kotlin Multiplatform, Xamarin and NativeScript. Flutter and React Native are two popular technologies for developing hybrid apps. The two are briefly discussed below.</p>
<p><strong>Flutter</strong></p>
<p>Flutter is a cross-platform application development framework that uses Dart as a programming language and enables developers to build responsive and engaging apps. With Flutter, developers can create appealing apps with a native feel as the framework provides a range of tools and services. Flutter provides a rich package of widgets for creating visually appealing UIs, advanced debugging and testing capabilities and performance optimization features.</p>
<p><strong>React Native</strong></p>
<p>React Native uses JavaScript as a primary programming language and follows a component-based architecture by providing components and APIs for cross platform apps. This allows developers to reuse code. Just like Flutter, React Native also provides debugging and testing tools and performance optimization features.</p>
<p><strong>Conclusion</strong></p>
<p>Mobile apps are developed to provide digital services on a smartphone. Mobile apps can be developed as Native or Hybrid. Native apps can either run on Android or iOS operating systems. On the other hand, Hybrid apps share a single codebase and are then compiled to run either on Android or iOS.</p>
]]></content:encoded></item><item><title><![CDATA[How to Integrate your e-commerce system with the National Bank of Malawi Online Payment Gateway.]]></title><description><![CDATA[Are you a Malawian business? Do you wish to run an international business and you are worried as to how you can receive payments? Do you experience payment issues when exporting goods and services? Do you want your customers to pay for goods and serv...]]></description><link>https://blog.msukwa.com/how-to-integrate-your-e-commerce-system-with-the-national-bank-of-malawi-online-payment-gateway</link><guid isPermaLink="true">https://blog.msukwa.com/how-to-integrate-your-e-commerce-system-with-the-national-bank-of-malawi-online-payment-gateway</guid><category><![CDATA[API Gateway]]></category><category><![CDATA[fintech]]></category><category><![CDATA[Mastercard]]></category><category><![CDATA[malawi]]></category><category><![CDATA[national bank]]></category><dc:creator><![CDATA[Moses Msukwa]]></dc:creator><pubDate>Sat, 15 Apr 2023 07:37:09 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1638164345453/TQU38BL7b.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Are you a Malawian business? Do you wish to run an international business and you are worried as to how you can receive payments? Do you experience payment issues when exporting goods and services? Do you want your customers to pay for goods and services from the comfort of their homes? Does your business require advance payment? All you need is to </p>
<ol>
<li>Register for the API with National Bank Of Malawi.</li>
<li>Integrate your e-commence site with the API.</li>
</ol>
<p>In this article, I will demonstrate how you can integrate your e-commence site with the National Bank of Malawi (NBM) payment gateway using the hosted checkout model to respond to either of the aforementioned use cases. Primarily, the hosted checkout allows a merchant/business to collect payments from a payer (a customer) through an interaction hosted and displayed by the payment Gateway. </p>
<p>Below is  an illustration of the information flow of the hosted checkout session.
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1638164345453/TQU38BL7b.png" alt="workFlowHostedCheckout.png" /> </p>
<p>1.The payer initiates the payment process for goods and services at your shop site.</p>
<p>2.The payer enters the required information, and clicks "Pay".</p>
<p>3.If the payment is successful, the payer can obtain the payment details from one of these sources: the Payment Gateway-hosted receipt or your shop site.</p>
<p>For simplicity, I will simulate a simple case where a user/payer wants to pay a merchant. We will need two pages for this purpose, an interface to allow a user to enter the amount to be paid and to select a currency for the payment. The second page will handle the actual request of the checkout session through the gateway and then the payer will be presented with the payment interface from  the gateway.</p>
<h1 id="heading-1-create-a-folder-and-the-files-for-the-project"><strong>1. Create a folder and the files for the project.</strong></h1>
<p>In your web server, create a directory and name it <strong>Ecommerce</strong>. We will need two files for this use case. We will need a page <strong>index.php</strong> that will provide an interface to allow a user to enter then desired amount they want to pay a merchant.</p>
<p>In the second file <strong>requestSession.php</strong>, we will need to request the checkout session and make the payment to the merchant through the payment gateway. An also allow the user to confirm their intended donation or cancel the transaction. Open the Ecommerce directory and create the two files namely <strong>index.php</strong> and <strong>requestSession.php</strong>.</p>
<h1 id="heading-2-create-a-form-for-making-a-payment"><strong>2. Create a form for making a payment. </strong></h1>
<p>Open Ecommerce/index.php and create a form with two input fields. An Input field of the type <strong>number</strong> and a select  field of the type <strong>text</strong>, these will be used for inputing the amount and selecting the desired currency type respectively. The action of the form should be <strong>requestSession.php</strong> and the method should be <strong>POST</strong>.</p>
<pre><code>&lt;html lang=<span class="hljs-string">"en"</span>&gt;
  &lt;head&gt;
    &lt;meta charset="utf-8"&gt;
    &lt;meta name="viewport" content="width=device-width, initial-scale=1"&gt;
    &lt;title&gt;payment&lt;/title&gt;
    &lt;link rel="canonical" href="https://getbootstrap.com/docs/5.1/examples/navbar-fixed/"&gt;
 &lt;link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-KyZXEAg3QhqLMpG8r+8fhAXLRk2vvoC2f3B09zVXn8CA5QIVfZOJ3BCsw2P0p/We" crossorigin="anonymous"&gt;
&lt;meta name="theme-color" content="#7952b3"&gt;
    &lt;link href="navbar-top-fixed.css" rel="stylesheet"&gt;
  &lt;/head&gt;
  &lt;body&gt;
&lt;nav class="navbar navbar-expand-md fixed-top"  style="background-color:#1e3d11;"&gt;
  &lt;div class="container-fluid"&gt;
    &lt;a class="navbar-brand" href="index.php" style="color:white"&gt;Donate&lt;/a&gt;
    &lt;button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation"&gt;
      &lt;span class="navbar-toggler-icon"&gt;&lt;/span&gt;
    &lt;/button&gt;
    &lt;div class="collapse navbar-collapse" id="navbarCollapse"&gt;
      &lt;ul class="navbar-nav me-auto mb-2 mb-md-0"&gt;
        &lt;li class="nav-item"&gt;
          &lt;a class="nav-link active" aria-current="page" href="index.php" style="color:white"&gt;&lt;b&gt;Pay&lt;/b&gt;&lt;/a&gt;
        &lt;/li&gt;
      &lt;/ul&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/nav&gt;
   &lt;br&gt;
   &lt;main class="container"&gt;
  &lt;div class="bg-light p-5 rounded"&gt;                      
        &lt;form class="col-md-4" action="requestSession.php" method="POST"&gt;
            &lt;div  class="row mb-3"&gt;
                &lt;label for="currency" class="form-label"&gt;Select Currency&lt;/label&gt;&lt;br&gt;
                    &lt;select type="text" id="curreny" class="form-select" name="currency"required&gt;
                        &lt;option value="USD"&gt;USD&lt;/option&gt;
                        &lt;option selected value="MWK"&gt;MWK&lt;/option&gt;
                    &lt;/select&gt;
            &lt;/div&gt;
            &lt;div  class="row mb-4"&gt;
                &lt;label for="amount" class="form-label"&gt;Enter Amount&lt;/label&gt;&lt;br&gt;
                    &lt;input type="number" class="form-control" id="amount" name="amount"  min="5" required&gt;
            &lt;/div&gt;             
            &lt;div class="col-12"&gt;
                &lt;button class="btn btn-lg btn-primary" type="submit" role="button"&gt;Donate Now &amp;raquo;&lt;/button&gt;
            &lt;/div&gt;
        &lt;/form&gt;
  &lt;/div&gt;
&lt;/main&gt;
    &lt;script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-U1DAWAznBHeqEIlVSCgzq+c9gqGAJn5c/t99JyeKa9xxaYpSvHU5awsuZVVFIhvj" crossorigin="anonymous"&gt;&lt;/script&gt;
&lt;/html&gt;
</code></pre><p>We need to retrieve the result indicator and success indicators. The result indicator will be returned by the gateway through the return URL which we will specify as we will be requesting the checkout session. Upon requesting the checkout session, the  gateway will return the success indicator which we will store through a session variable. (Note that this can be stored in your e-commerce system database.)</p>
<pre><code>&lt;?php
session_start();
$resultIndicator  = $_GET[<span class="hljs-string">"resultIndicator"</span>];
$successIndicator = $_SESSION[<span class="hljs-string">"successIndicator"</span>];
?&gt;
</code></pre><p>A match of the successIndicator and the resultIndicator indicates that the payment has been successful.</p>
<pre><code>&lt;?php
       <span class="hljs-keyword">if</span>(isset($resultIndicator)&amp; isset($successIndicator)){
                              <span class="hljs-keyword">if</span>($resultIndicator == $successIndicator){
                                  echo <span class="hljs-string">"The payment was succesfull"</span>;           
          }    
?&gt;
</code></pre><h1 id="heading-3-request-the-hosted-checkout-interaction"><strong>3. Request the hosted checkout interaction</strong></h1>
<p>Ensure that your merchant profile is enabled for the Hosted Checkout service.We need to request a checkout session using the Create Checkout Session operation. The request should include the payment and interaction data, as well as completion instructions. Open Ecommerce/requestSession.php. We need to define and initiate the payment and interaction data.</p>
<pre><code>&lt;?php
session_start();
<span class="hljs-keyword">if</span>( $_POST[<span class="hljs-string">"currency"</span>] || $_POST[<span class="hljs-string">"amount"</span>] ) {   
$amount = $_POST[<span class="hljs-string">'amount'</span>];
$currency = $_POST[<span class="hljs-string">'currency'</span>];
$reference = uniqid();
$orderId   = uniqid();
$apiUsername =<span class="hljs-string">"apiUsername"</span>;
$merchant =<span class="hljs-string">"MerchatId"</span>;
</code></pre><p>Define the interaction.returnUrl.</p>
<p>The gateway will need the returnUrl to redirect the payer to the shop site. Possibly, when redirected the payer can presented with the payment status or any desired message including a receipt. Hence we must provide the interaction.returnUrl in the Create Checkout Session operation.</p>
<pre><code>$returnUrl = <span class="hljs-string">"https://returnurl.com"</span>;
</code></pre><p>Generate and define the API Password</p>
<p>You should generate the API password in the Merchant Administration Portal. As earlier indicated, the merchant profile must be enabled for API, Batch, and "Use Password Authentication" privileges.
To access Merchant Administration, we need to login to the merchant portal. Administrator login credentials will be provided to you by NBM when you are successfully boarded onto the gateway. As an administrator, you should create a new operator with permissions to generate the API password.</p>
<p>Below are the steps for generating the API password in the portal</p>
<ol>
<li>Log in to the Merchant portal with your administrator login credentials.</li>
<li>Navigate to Admin &gt; Operators</li>
<li>Create a new operator by entering all the mandatory fields. Assign "May Configure Integration Settings" privilege to enable the operator to generate the API password.</li>
<li>Log out of Merchant Administration, and log in back into Merchant Administration as the new operator.</li>
<li>Navigate to Admin &gt; Web Services API Integration Settings &gt; Edit.</li>
<li>Click Generate New, and select the Enable Integration Access Via Password box.</li>
<li>This is the API password you will use to authenticate API requests made from your web server to the gateway.</li>
</ol>
<p>Then in the code define and assign the apiPassword as below.</p>
<pre><code>$apiPassword =<span class="hljs-string">"yourMerchantPortalGeneratedApiPassword"</span>;
</code></pre><p>Define the operation type which is the create checkout session</p>
<pre><code>$apiOperation = <span class="hljs-string">"CREATE_CHECKOUT_SESSION"</span>;
</code></pre><p>Define the base url for requesting the checkout session.</p>
<pre><code>$baseUrl =  <span class="hljs-string">"https://nbm.gateway.mastercard.com/api/nvp/version/49"</span>;
</code></pre><p>Then we need to Initiate a curl with the Create Checkout Session operation. 
The request should include the payment and the interaction data, as well as the completion instructions. For this case, the needed data has been defined above.</p>
<pre><code>$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$baseUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,<span class="hljs-number">1</span>);
curl_setopt($ch, CURLOPT_POST,<span class="hljs-number">1</span>);
curl_setopt($ch, CURLOPT_POSTFIELDS,
<span class="hljs-string">"apiOperation="</span>.$apiOperation.<span class="hljs-string">"&amp;apiPassword="</span>.$apiPassword.<span class="hljs-string">"&amp;transaction.reference="</span>.$reference.<span class="hljs-string">"&amp;interaction.returnUrl="</span>.$returnUrl.<span class="hljs-string">"&amp;apiUsername="</span>.$apiUsername.<span class="hljs-string">"&amp;merchant="</span>.$merchant.<span class="hljs-string">"&amp;order.id="</span>.$orderId.<span class="hljs-string">"&amp;order.amount="</span>.$amount.<span class="hljs-string">"&amp;order.currency="</span>.$currency);
$headers = array();
$headers[] = <span class="hljs-string">'Content-Type: application/x-www-form-urlencoded'</span>;
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
<span class="hljs-keyword">if</span>(curl_errno($ch)){
    echo <span class="hljs-string">'ERROR:'</span>.curl_error($ch);
}
curl_close($ch);
</code></pre><p>Extract the session.id and the success indicator from the curl result.</p>
<p>We need to extract the session id from the curl result. A successful response to this operation will contain the session.id and the  success Indicator parameters. </p>
<pre><code>$sessionid = explode(<span class="hljs-string">"="</span>,explode(<span class="hljs-string">"&amp;"</span>,$result)[<span class="hljs-number">2</span>])[<span class="hljs-number">1</span>];
$successIndicator = explode(<span class="hljs-string">"="</span>,explode(<span class="hljs-string">"&amp;"</span>,$result)[<span class="hljs-number">5</span>])[<span class="hljs-number">1</span>];
</code></pre><p>You may be wondering why the success Indicator.</p>
<p>The gateway sends the result of the payment in a resultIndicator parameter, which is appended to the return url (interaction.returnUrl) used to return the payer to your shop site.
We can determine the success of the payment by comparing the resultIndicator parameter to the successIndicator parameter returned in the Create Checkout Session response. </p>
<p>A match of the successIndicator and the resultIndicator indicates that the payment has been successful. Depending on you system use case, you can save the value returned in the successIndicator parameter on your shop system to verify the success or failure of the payment. For this task I will use sessions just to demonstrate the point as explained.</p>
<pre><code>$_SESSION[<span class="hljs-string">"successIndicator"</span>] = $successIndicator;
$_SESSION[<span class="hljs-string">"amount"</span>] = $amount ;
$_SESSION[<span class="hljs-string">"currency"</span>] = $currency;
}?&gt;
</code></pre><p>Then include the below code  for the page structure and the payment request form.</p>
<pre><code>&lt;!doctype html&gt;
&lt;html lang="en"&gt;
  &lt;head&gt;
    &lt;meta charset="utf-8"&gt;
    &lt;meta name="viewport" content="width=device-width, initial-scale=1"&gt;
    &lt;meta name="description" content=""&gt;
    &lt;title&gt;your name&lt;/title&gt;
    &lt;link rel="canonical" href="https://getbootstrap.com/docs/5.1/examples/navbar-fixed/"&gt;
    &lt;link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-KyZXEAg3QhqLMpG8r+8fhAXLRk2vvoC2f3B09zVXn8CA5QIVfZOJ3BCsw2P0p/We" crossorigin="anonymous"&gt;
    &lt;link href="navbar-top-fixed.css" rel="stylesheet"&gt;
  &lt;/head&gt;
  &lt;body&gt;
    &lt;nav class="navbar navbar-expand-md fixed-top"  style="background-color:#1e3d11;"&gt;
      &lt;div class="container-fluid"&gt;
        &lt;a class="navbar-brand" href="#" style="color:white"&gt;Your site&lt;/a&gt;
        &lt;button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation"&gt;
          &lt;span class="navbar-toggler-icon"&gt;&lt;/span&gt;
        &lt;/button&gt;
        &lt;div class="collapse navbar-collapse" id="navbarCollapse"&gt;
          &lt;ul class="navbar-nav me-auto mb-2 mb-md-0"&gt;
            &lt;li class="nav-item"&gt;
              &lt;a class="nav-link active" aria-current="page" href="#" style="color:white"&gt;&lt;b&gt;Your site&lt;/b&gt;&lt;/a&gt;
            &lt;/li&gt;
          &lt;/ul&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/nav&gt;
   &lt;br&gt;
   &lt;main class="container"&gt;
  &lt;div class="bg-light p-5 rounded"&gt;
    &lt;p class="lead"&gt;Make your payment.&lt;/p&gt;
    &lt;div class="form-group"&gt;
            &lt;div class="col-xs-8"&gt;
            &lt;label for="amount"&gt;Confirm a payment of &lt;?php echo $currency.$amount;?&gt;. &lt;/label&gt;
            &lt;br&gt;
            &lt;br&gt;
&lt;!-- 
A button for starting the payment process.    
--&gt;
            &lt;input type="button" maxlength="5" maxheight="2" class="btn btn-primary btn-lg" value="Pay" onclick="Checkout.showPaymentPage();" /&gt;
            &lt;/div&gt;
            &lt;/div&gt;
    &lt;/div&gt;
&lt;/main&gt;
</code></pre><p>We need to reference the checkout.js file from the gateway servers. This will place the Checkout object into global scope. In this case we will use version 49 of the checkout.</p>
<pre><code> &lt;script src=<span class="hljs-string">"https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"</span>&gt;&lt;/script&gt; 
 <span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">script</span> <span class="hljs-attr">src</span>=<span class="hljs-string">"https://nbm.gateway.mastercard.com/checkout/version/49/checkout.js"</span> <span class="hljs-attr">data-error</span>=<span class="hljs-string">"errorCallback"</span> <span class="hljs-attr">data-cancel</span>=<span class="hljs-string">"cancelCallback"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span></span>
</code></pre><p>Holla!!  We need some JavaScript to finalize the process. we need a call to the Checkout.configure() function and then pass in a JSON object that includes the returned session.id and other payment request parameters to pass in the necessary data for the payment. </p>
<pre><code>        &lt;script type=<span class="hljs-string">"text/javascript"</span>&gt;
            <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">errorCallback</span>(<span class="hljs-params">error</span>) </span>{
                  <span class="hljs-built_in">console</span>.log(<span class="hljs-built_in">JSON</span>.stringify(error));
            }
            <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">cancelCallback</span>(<span class="hljs-params"></span>) </span>{
                  <span class="hljs-built_in">console</span>.log(<span class="hljs-string">'Payment cancelled'</span>);
            }
            Checkout.configure({
                <span class="hljs-attr">merchant</span>: <span class="hljs-string">'MECHARNTID'</span>,
                <span class="hljs-attr">order</span>: {
                    <span class="hljs-attr">id</span>: <span class="hljs-string">'&lt;?php echo $orderId;  ?&gt;'</span> ,
                    <span class="hljs-attr">amount</span>: <span class="hljs-string">'&lt;?php echo $amount;  ?&gt;'</span> ,
                    <span class="hljs-attr">currency</span>: <span class="hljs-string">'&lt;?php echo $currency;  ?&gt;'</span>,
                    <span class="hljs-attr">description</span>: <span class="hljs-string">'description'</span>,
                },
                <span class="hljs-attr">session</span>:{
                    <span class="hljs-attr">id</span>:<span class="hljs-string">'&lt;?php echo $sessionid; ?&gt;'</span>
                },
                 <span class="hljs-attr">interaction</span>:{
                    <span class="hljs-attr">merchant</span>: {
                        <span class="hljs-attr">name</span>: <span class="hljs-string">'NAME '</span>,
                        <span class="hljs-attr">address</span>: {
                            <span class="hljs-attr">line1</span>: <span class="hljs-string">'YOUR ADDRESS'</span>,
                            <span class="hljs-attr">line2</span>: <span class="hljs-string">'YOUR POST BOX'</span>            
                        }    
                    }
                  }
            });
        &lt;/script&gt;   
 <span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">script</span> <span class="hljs-attr">src</span>=<span class="hljs-string">"https://cdn.jsdelivr.net/npm/bootstrap@5.1.0/dist/js/bootstrap.bundle.min.js"</span> <span class="hljs-attr">integrity</span>=<span class="hljs-string">"sha384-U1DAWAznBHeqEIlVSCgzq+c9gqGAJn5c/t99JyeKa9xxaYpSvHU5awsuZVVFIhvj"</span> <span class="hljs-attr">crossorigin</span>=<span class="hljs-string">"anonymous"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span></span>
&lt;/html&gt;
</code></pre><p>Congratulations! That is all to it. Happy business.</p>
]]></content:encoded></item></channel></rss>