Tech With Rashid

Knowledge Base

Practical IT & network guides

Short how-tos, checklists and commands from day-to-day work in networking, systems, virtualization, security and support.

17 articles

Networking

Create and trunk a VLAN on a Cisco switchCreate the VLAN, assign access ports and allow it on the trunk.
VLAN concept diagram
Image: Wikimedia Commons
  1. Create the VLAN and give it a name.
  2. Set each user port to access mode in that VLAN.
  3. Allow the VLAN on the uplink trunk, and make sure the other end allows it too.
  4. Verify with the show commands and test with a ping inside the VLAN.
vlan 20
 name Staff
!
interface gi1/0/10
 switchport mode access
 switchport access vlan 20
 spanning-tree portfast
!
interface gi1/0/48
 switchport mode trunk
 switchport trunk allowed vlan 10,20,30
!
show vlan brief
show interfaces trunk
Troubleshooting a slow or unstable networkA layered checklist that finds the cause faster than guessing.
Traceroute example
Image: Wikimedia Commons
  1. Physical layer: check cables, SFPs and interface error counters (CRC, drops, duplex mismatch).
  2. Layer 2: look for loops or STP changes, MAC flapping and port-channel problems.
  3. Layer 3: ping and traceroute to the gateway, the next hop and the destination; check the routing table.
  4. Name resolution: test DNS separately from connectivity.
  5. Load: find the top talkers on the firewall or switch and check for saturated links.
  6. Wi-Fi: check channel overlap, signal strength and roaming behaviour.
  7. Capture traffic with Wireshark when the cause is still unclear, and note what changed recently.
Site-to-site IPsec VPN checklist on FortiGateWhat must match on both sides, and the commands to verify the tunnel.
IPsec transport and tunnel modes
Image: Wikimedia Commons
  1. Phase 1: IKE version, encryption, authentication, DH group and pre-shared key must match on both firewalls.
  2. Phase 2: the local and remote subnets (selectors) must mirror each other.
  3. Add static routes to the remote subnet through the tunnel interface.
  4. Add firewall policies in both directions, with NAT disabled for tunnel traffic.
  5. If one side is behind NAT, keep NAT traversal enabled.
  6. Check the tunnel state and debug the negotiation only when needed.
diagnose vpn ike gateway list
diagnose vpn tunnel list

# negotiation debug (turn off afterwards)
diagnose debug application ike -1
diagnose debug enable
diagnose debug disable
Useful FortiGate CLI commandsDay-to-day commands for health, routing and packet captures.
Command-line terminal
Image: Wikimedia Commons
  1. Check system health and resource usage.
  2. Review the routing table and active sessions.
  3. Capture packets for one host straight on the firewall, then stop with Ctrl+C.
get system status
get system performance status
diagnose sys top
get router info routing-table all

# sniffer: interface, filter, verbosity, count, time
diagnose sniffer packet any 'host 10.0.0.5' 4 0 l
Firewall policy best practicesKeep rule sets small, readable and safe to change.
Network with a firewall and DMZ
Image: Wikimedia Commons
  1. Allow only what is needed (least privilege) and end with an explicit deny that logs.
  2. Use address and service objects with clear names, and add a comment to every rule.
  3. Keep specific rules above general ones and avoid overlapping rules.
  4. Log the rules that matter and review hit counts to remove unused rules.
  5. Control changes: record who changed what, why and when, and keep a rollback config.

Systems Administration

Group Policy is not applyingFind out whether the problem is scope, filtering, DNS or replication.
Active Directory domain tree
Image: Wikimedia Commons
  1. Force an update on the client and read the result.
  2. Check which GPOs were applied or denied for the user and computer.
  3. Confirm the GPO is linked to the correct OU, enabled, and that security filtering includes the user or computer.
  4. Check the client uses the domain controller for DNS and that its time is in sync.
  5. Check domain controller replication if the policy exists on one DC but not another.
gpupdate /force
gpresult /r
gpresult /h report.html

dcdiag /v
repadmin /replsummary
Active Directory health checksA short routine to run before and after changes to domain controllers.
Active Directory forest
Image: Wikimedia Commons
  1. Run the built-in diagnostics on each domain controller.
  2. Check replication status and look for failures or large delays.
  3. Confirm which servers hold the FSMO roles.
  4. Verify DNS: the SRV records exist and every DC resolves the domain correctly.
  5. Check SYSVOL and NETLOGON are shared and that the time source is correct.
dcdiag /v
repadmin /showrepl
netdom query fsmo
nltest /dsgetdc:yourdomain.local
Microsoft 365 hybrid identity sync checksWhen on-premises users do not appear or update in Entra ID.
  1. Run a delta sync on the Entra Connect server and review the result.
  2. Make sure the UPN suffix is a verified domain in Microsoft 365.
  3. Look for duplicate attributes and invalid characters in synced objects.
  4. Confirm password hash sync is enabled and healthy.
  5. Check the user is inside an OU that is selected for synchronization.
Import-Module ADSync
Start-ADSyncSyncCycle -PolicyType Delta

Virtualization & Hosting

Create an LXC container for a service on ProxmoxA light, isolated place to run one service.
Proxmox VE cluster summary
Image: Wikimedia Commons
  1. Download a template for the OS you want from the storage template list.
  2. Create the container with a fixed IP, an unprivileged setting and enough disk for the service.
  3. Install the service, then take a snapshot before every big change.
  4. Schedule backups and test a restore at least once.
pveam update
pveam available --section system
pveam download local debian-12-standard_12.7-1_amd64.tar.zst

# backup one container
vzdump 101 --storage local --mode snapshot
Backup and snapshot habits on ProxmoxSmall habits that make recovery boring.
Proxmox VE cluster summary
Image: Wikimedia Commons
  1. Snapshot before upgrades or config changes and delete old snapshots afterwards.
  2. Schedule vzdump backups to a different disk or machine than the guests.
  3. Keep a few daily and weekly copies, not only the latest one.
  4. Test restoring a backup regularly; an untested backup is a guess.
  5. Monitor free space on the backup storage.
Publish a service securely with Cloudflare TunnelNo open router ports and no exposed public IP.
Reverse proxy diagram
Image: Wikimedia Commons
  1. Install cloudflared on the server that runs the service.
  2. Log in, create a tunnel and route a hostname to it.
  3. Point the ingress rule at the local service (for example http://localhost:80).
  4. Run cloudflared as a system service so it starts after a reboot.
  5. Optionally protect the hostname with Cloudflare Access.
cloudflared tunnel login
cloudflared tunnel create my-tunnel
cloudflared tunnel route dns my-tunnel app.example.com

# config.yml
tunnel: my-tunnel
ingress:
  - hostname: app.example.com
    service: http://localhost:80
  - service: http_status:404

sudo cloudflared service install
DNS records for a self-hosted mail server (Mailcow)The records that decide whether your mail reaches the inbox.
DNS architecture
Image: Wikimedia Commons
  1. A record for the mail hostname (for example mail.example.com) pointing to the server IP.
  2. MX record for the domain pointing to that hostname.
  3. SPF TXT record listing the server as an allowed sender.
  4. DKIM TXT record using the key generated in the Mailcow admin panel.
  5. DMARC TXT record, starting with a monitoring policy.
  6. Reverse DNS (PTR) for the server IP, set with the IP provider, matching the mail hostname.
  7. Make sure the required mail ports are reachable, then test with a mail-testing tool.
example.com.        MX   10 mail.example.com.
example.com.        TXT  "v=spf1 mx -all"
_dmarc.example.com. TXT  "v=DMARC1; p=none; rua=mailto:[email protected]"

Security & Monitoring

Add a Linux agent to WazuhGet a new server reporting to the Wazuh manager.
Security operations center
Image: Wikimedia Commons
  1. Add the Wazuh repository on the server.
  2. Install the agent with the manager address set.
  3. Enable and start the service.
  4. Check the agent shows as active in the Wazuh dashboard and review its first alerts.
WAZUH_MANAGER="10.0.0.10" apt-get install wazuh-agent
systemctl daemon-reload
systemctl enable --now wazuh-agent
Basic hardening checklist for a Linux serverQuick wins that remove most common risks.
Linux server
Image: Wikimedia Commons
  1. Use SSH keys, disable password login and disable direct root login.
  2. Allow only the ports you need in the host firewall.
  3. Install automatic security updates.
  4. Use sudo with least privilege and remove unused accounts.
  5. Add brute-force protection such as fail2ban.
  6. Send logs and alerts to a monitoring system and review them.
# /etc/ssh/sshd_config
PermitRootLogin no
PasswordAuthentication no

ufw default deny incoming
ufw allow 22/tcp
ufw enable
Design notes for AI agents that touch infrastructureRules that keep an automation helpful and safe.
Simple reflex intelligent agent diagram
Image: Wikimedia Commons
  1. Give the agent read-only access first and add write access only where needed.
  2. Require human approval for sensitive or destructive actions.
  3. Keep secrets in environment files or a vault, never inside prompts or code.
  4. Log every action and send critical alerts to a channel you actually watch.
  5. Add rate limits and clear stop conditions so a mistake cannot repeat endlessly.
  6. Keep sensitive data inside your own network when you can, for example with a local model.

IT Support

L1 and L2 troubleshooting workflowA repeatable approach for any ticket.
IT help desk
Image: Wikimedia Commons
  1. Get the exact symptom, who is affected, when it started and what changed.
  2. Reproduce the problem or confirm it from logs.
  3. Narrow the scope: one user, one location or everyone.
  4. Test the simple causes first, then work toward the complex ones.
  5. Change one thing at a time and note the result.
  6. Confirm the fix with the user and document the cause and steps.
  7. Escalate with evidence: what you tested, the results and the logs.
Incident write-up templateA short structure that makes post-incident reviews useful.
  1. Summary: what happened in one or two sentences.
  2. Impact: who and what was affected and for how long.
  3. Timeline: key events with times.
  4. Root cause: the underlying reason, not only the symptom.
  5. Resolution: what restored service.
  6. Prevention: the follow-up actions with owners and dates.

No guides match your search.

Best open-source Zero Trust platforms

Tools for identity-based, least-privilege access to servers, apps and private networks.

netbirdio/netbird on GitHubImage: GitHub

1. NetBirdMy recommendation

  • WireGuard-based secure networking
  • Centralized access policies
  • Device and user management
  • Self-hosted management server

Best for managing multiple servers, PCs and private networks.

openziti/ziti on GitHubImage: GitHub

2. OpenZiti

  • Application-level Zero Trust
  • Hide services from public networks
  • Identity-based access
  • Encrypted connections

Best for advanced enterprise Zero Trust architecture.

pomerium/pomerium on GitHubImage: GitHub

3. Pomerium

  • Identity-aware reverse proxy
  • SSO and authentication
  • Protect internal web applications
  • Fine-grained access policies

Best for securing web panels and admin dashboards.

$ ssh admin@serversession recordedaccess grantedgravitational/teleport on GitHubImage: GitHub

4. Teleport

  • Secure SSH access
  • Server and Kubernetes access
  • Identity-based permissions
  • Session auditing

Best for infrastructure administrator access.

Best open-source security monitoring tools

Free tools for detecting attacks, watching logs and network traffic, and investigating incidents.

wazuh/wazuh on GitHubImage: GitHub

1. WazuhBest overall

  • Security event monitoring
  • File Integrity Monitoring (FIM)
  • Malware and vulnerability detection
  • Server log monitoring
  • Security alerts
crowdsecurity/crowdsec on GitHubImage: GitHub

2. CrowdSec

  • Detect malicious IP addresses
  • Detect brute-force attacks
  • Protect Nginx and Apache
  • Block suspicious visitors
Security-Onion-Solutions/securityonion on GitHubImage: GitHub

3. Security Onion

  • Network intrusion detection
  • Network traffic monitoring
  • Threat hunting
  • Security event investigation
OISF/suricata on GitHubImage: GitHub

4. Suricata

  • Network IDS/IPS
  • Detect malicious network traffic
  • Protocol and DNS monitoring
  • Threat signatures

Open-source tools directory

Free tools I recommend for security, identity, monitoring, networking and infrastructure.

1. Cybersecurity & security monitoring

wazuh/wazuh on GitHubImage: GitHub

WazuhFeatured

SIEM · XDR · Threat Detection

Security event monitoring, vulnerability detection, file integrity and endpoint protection.

crowdsecurity/crowdsec on GitHubImage: GitHub

CrowdSec

Intrusion Prevention · IP Reputation

Detects malicious IPs, brute-force attacks and suspicious behavior.

Security-Onion-Solutions/securityonion on GitHubImage: GitHub

Security Onion

SOC · Network Security

Network security monitoring, intrusion detection and threat hunting.

greenbone/openvas-scanner on GitHubImage: GitHub

Greenbone

Vulnerability Assessment

Scan systems and identify security weaknesses.

GET /login?id=1' OR 1=1! SQL injection risk! missing security headerzaproxy/zaproxy on GitHubImage: GitHub

OWASP ZAP

Web Application Security

Find common web application vulnerabilities.

2. Zero Trust & Identity Management

netbirdio/netbird on GitHubImage: GitHub

NetBird

Zero Trust · WireGuard

Secure private networking and identity-based access.

goauthentik/authentik on GitHubImage: GitHub

Authentik

SSO · IAM · Authentication

Self-hosted identity provider with single sign-on.

keycloak/keycloak on GitHubImage: GitHub

Keycloak

Identity & Access Management

User authentication, SSO, OAuth2 and OpenID Connect.

openziti/ziti on GitHubImage: GitHub

OpenZiti

Zero Trust Network Access

Secure application connectivity without exposing services publicly.

3. Server & Infrastructure Monitoring

netdata/netdata on GitHubImage: GitHub

Netdata

Real-time Infrastructure Monitoring

Monitor CPU, RAM, disk, network and server performance.

grafana/grafana on GitHubImage: GitHub

Grafana

Dashboards · Observability

Visualize server metrics, logs and monitoring data.

louislam/uptime-kuma on GitHubImage: GitHub

Uptime Kuma

Website & Service Monitoring

Monitor website uptime, SSL certificates and services.

zabbix/zabbix on GitHubImage: GitHub

Zabbix

Network & Server Monitoring

Monitor servers, switches, routers, VMs and applications.

openobserve/openobserve on GitHubImage: GitHub

OpenObserve

Logs · Metrics · Traces

Centralized observability and log analysis.

4. Network Management & DNS

netbox-community/netbox on GitHubImage: GitHub

NetBox

IPAM · DCIM · Network Documentation

Manage IP addresses, VLANs, racks and network devices.

opnsense/core on GitHubImage: GitHub

OPNsense

Firewall · VPN · Routing

Open-source firewall and network security platform.

AdguardTeam/AdGuardHome on GitHubImage: GitHub

AdGuard Home

DNS · Network Filtering

DNS filtering, tracking protection and ad blocking.

TechnitiumSoftware/DnsServer on GitHubImage: GitHub

Technitium DNS

DNS Server Management

Self-hosted DNS server with filtering and management features.

5. DevOps & Virtualization

portainer/portainer on GitHubImage: GitHub

Portainer CE

Docker · Container Management

Manage Docker containers, images, volumes and networks.

coollabsio/coolify on GitHubImage: GitHub

Coolify

Self-hosted PaaS · Deployment

Deploy websites, applications and databases on your server.

ansible/ansible on GitHubImage: GitHub

Ansible

IT Automation · Configuration

Automate Linux administration and infrastructure deployment.

proxmox/pve-manager on GitHubImage: GitHub

Proxmox VE

Virtualization · Hypervisor

Manage virtual machines, containers, storage and clusters.

AI agent tools directory

Skills, MCP servers, security tools and automation frameworks for building with AI agents.

1. AI Agent Skills & Plugin Collections

anthropics/skills on GitHubImage: GitHub

Anthropic SkillsFeatured

Agent Skills · Reusable Instructions

Ready-made skills for documents, coding, research and productivity.

open-agent-craft/awesome-agent-skills on GitHubImage: GitHub

Awesome Agent Skills

Skills · MCP · Agent Tools

Curated collections of reusable AI agent skills and workflows.

obra/superpowers on GitHubImage: GitHub

Superpowers

Coding Agent Skills

Structured software development workflows, debugging, testing and planning.

github/awesome-copilot on GitHubImage: GitHub

Awesome Copilot

GitHub Copilot · Custom Agents

Reusable instructions, prompts, chat modes and agent configurations.

2. MCP Servers & Integrations

MCP (Model Context Protocol) allows AI agents to connect to external tools, services and data.

modelcontextprotocol/servers on GitHubImage: GitHub

Official MCP ServersEssential

MCP · Integrations

Reference MCP servers and integrations for AI assistants.

github/github-mcp-server on GitHubImage: GitHub

GitHub MCP Server

GitHub · Developer Tools

Let agents interact with repositories, issues, pull requests and code.

microsoft/playwright-mcp on GitHubImage: GitHub

Playwright MCP

Browser Automation · Testing

Control browsers, inspect pages and automate web testing.

browser-use/browser-use on GitHubImage: GitHub

Browser Use

Web Automation · AI Agents

Enable AI agents to navigate and interact with websites.

docker/mcp-gateway on GitHubImage: GitHub

Docker MCP Toolkit

MCP · Container Integrations

Discover and manage MCP server integrations through Docker tooling.

3. Cybersecurity AI Skills & Tools

API_KEY=sk_live_9f2a••••••DB_PASS=•••••gitleaks/gitleaks on GitHubImage: GitHub

Gitleaks

Security Auditing · Secret Detection

Detect exposed API keys, credentials and secrets in repositories.

aquasecurity/trivy on GitHubImage: GitHub

Trivy

Security Scanning · DevSecOps

Scan containers, filesystems, dependencies and infrastructure configurations.

GET /login?id=1' OR 1=1! SQL injection risk! missing security headerzaproxy/zaproxy on GitHubImage: GitHub

OWASP ZAP

Web Security · Testing

Automated web application security testing.

microsoft/presidio on GitHubImage: GitHub

Microsoft Presidio

Privacy · Data Protection

Identify and anonymize sensitive information in text and data.

4. Workflow Automation & Agent Frameworks

n8n-io/n8n on GitHubImage: GitHub

n8n

Workflow Automation · Integrations

Build automated workflows between APIs, applications and services.

langchain-ai/langgraph on GitHubImage: GitHub

LangGraph

Agent Workflows · Orchestration

Build stateful, multi-step AI agent workflows.

crewAIInc/crewAI on GitHubImage: GitHub

CrewAI

Multi-Agent Automation

Coordinate specialized agents to complete tasks.

activepieces/activepieces on GitHubImage: GitHub

Activepieces

Plugins · Workflow Automation

Connect services using reusable automation pieces.

Need hands-on help?

Network design, firewalls, VPNs, servers and IT support.

Get in touch