Securing the connection between your web and database servers is vital for safeguarding your data’s confidentiality and integrity. Here are some pointers on firewall setup between these servers:
Decide between a hardware or software firewall. Software firewalls like iptables (Linux) or Windows Firewall (Windows) are commonly used and can be deployed on the servers themselves.
Consider housing the database server on a separate network, segregated from the web server by a hardware firewall. This reduces the attack surface. If they share a network, rely on server-level firewalls to filter traffic.
Permit Essential Ports: Open only necessary ports (e.g., 3306 for MySQL) to communication from the web server’s IP addresses.
Deny All Other Traffic: Establish a default rule denying incoming traffic, allowing only explicitly permitted connections.Example iptables rule for MySQL on a Linux database server:
iptables -A INPUT -p tcp –dport 3306 -s webserver_ip -j ACCEPT
iptables -A INPUT -j DROP
Ensure the web server is secure by updating software, using robust authentication for database connections, and following web app security best practices.
Utilize SSL/TLS or other encryption for data transit between servers, preventing eavesdropping.
Implement robust authentication mechanisms on both servers and create database users with minimal privileges.
Keep servers patched, monitor logs for suspicious activities, and configure NTP for synchronized logs.
Regularly back up data and have a disaster recovery plan in place.
Conduct regular vulnerability scanning and penetration testing.
Document firewall rules, configurations, and security procedures for ease of management and troubleshooting.
Remember, security is a continuous process. Stay vigilant, adapt to evolving threats, and regularly update security measures to fortify against potential attacks.
Kieran Davies (33three.eu) 12th December 2023