Linux
HOGENT toegepaste informatica
Thomas Parmentier, Andy Van Maele, Bert Van Vreckem, Jan Willem
2025-2026
Set up the test environment:
troubleshootingdbt - a working database serverwebt - a web server with faulty configuration$ cd trouble-demo
$ vagrant up
[...]
Interrupt me if you have remarks/questions!
Two VirtualBox VMs, set up with Vagrant
| Host | IP | Service |
|---|---|---|
webt |
192.168.76.72 | http, https (Apache) |
dbt |
192.168.76.73 | mysql (MariaDB) |
webt, a PHP app runs a query on the
dbtdbt is set up correctly, webt is not$ ./query_db.sh
+ mysql --host=192.168.76.73 --user=demo_user \
+: --password=ArfovWap_OwkUfeaf4 demo \
+ '--execute=SELECT * FROM demo_tbl;'
+----+-------------------+
| id | name |
+----+-------------------+
| 1 | Tuxedo T. Penguin |
| 2 | Bobby Tables |
+----+-------------------+
+ set +x
Should work from
intnet
sudo apt install mysql-client/vagrant/query_db.sh)TCP/IP protocol stack
| Layer | Protocols | Keywords |
|---|---|---|
| Application | HTTP, DNS, SMB, FTP, … | |
| Transport | TCP, UDP | sockets, port numbers |
| Internet | IP, ICMP | routing, IP address |
| Network access | Ethernet | switch, MAC address |
| Physical | cables |
ip linkKnow the expected values!
Checking Local network configuration:
ip aip r/etc/resolv.confresolvectl dnsip address/etc/sysconfig/network-scripts/ifcfg-*Example: DHCP
[vagrant@db ~]$ cat /etc/sysconfig/network-scripts/ifcfg-enp0s3
TYPE=Ethernet
BOOTPROTO=dhcp
NAME=enp0s3
DEVICE=enp0s3
ONBOOT=yes
[...]
Example: Static IP
$ cat /etc/sysconfig/network-scripts/ifcfg-enp0s8
BOOTPROTO=none
ONBOOT=yes
IPADDR=192.168.76.73
NETMASK=255.255.255.0
DEVICE=enp0s8
[...]
Watch the logs: sudo journalctl -f
ip route/etc/resolv.confnameserver option present?Checking routing within the LAN:
dig, nslookup,
getent)pingping 192.168.76.72ping 192.168.76.101ping 10.0.2.2ping 10.0.2.3Remark: some routers block ICMP!
dig icanhazip.comnslookup icanhazip.comgetent ahosts icanhazip.comNext step: routing beyond GW
sudo systemctl status SERVICEsudo ss -tulpnsudo firewall-cmd --list-allsystemctl status httpd.service
active (running) vs. inactive (dead)
systemctl start httpdenabled vs. disabled
systemctl enable httpdsudo firewall-cmd --list-all
--add-service if possible
--get-services--add-service and
--add-port--permanent--reload firewall rules$ sudo firewall-cmd --add-service=http --permanent
$ sudo firewall-cmd --add-service=https --permanent
$ sudo firewall-cmd --reload
ss (not netstat)
sudo ss -tlnpsudo ss -ulnp/etc/servicesjournalctlcurl, smbclient (Samba),
dig (DNS), etc.ncat, nc)journalctl:
journalctl -f -u httpd.service/var/log/:
tail -f /var/log/httpd/error_logapachectl configtestgetsebool, setseboolls -Z, chcon,
restoreconsepolicyls -Z /var/www/htmlsudo restorecon -R /var/www/sudo chcon -t httpd_sys_content_t test.phpgetsebool -a | grep http
sudo setsebool -P httpd_can_network_connect_db onE.g. https://github.com/HoGentTIN/elnx-sme/blob/master/test/pu001/lamp.bats
Why?