Link to home
Start Free TrialLog in
Avatar of averyb
averybFlag for United States of America

asked on

Securing communication between a web server on DMZ an a database behind the firewall.

I have a need to deploy a website for external access.  This website will be hitting an Oracle database. The server (W2K3 IIS 6.0) will be on its own DMZ off of a PIX 515E.

I had originally set the requirement for the development team that the server on the DMZ would not be able to initiate connections into the private network.  The database server would have to push all updates to the webserver, so the connection originated on the private network.  I expect that this will cause some blow-back from the Development team with them stating that other websites allow access from the DMZ into their private network.  

There is bound to be a way to securely allow the web server on the DMZ to initiate connections to the db server as needed for webpages and such.  I just need to figure out how it's done at a conceptual level for the purpose of setting the design requirements for the web-based application.  Details can be worked out later.

To that end I poked around on EE and found some information.

lrmoore in https://www.experts-exchange.com/questions/21376007/Securing-a-website.html stated in response to a similar question
"Personal opinion - go with the web server on the DMZ and create an IPSEC secpol connection between the web server and the database server, allowing only this encrypted data stream through the PIX from the DMZ to the Inside."

What does that mean?

My concern with allowing the web server to initiate connections into the private network from the DMZ is what if it gets hacked, the intruder could gain access to the private network.  Would the above address that concern?  If the web server does get access into the private network it would be limited to specific ports--probably ODBC or whatever is needed to read and query the db.  

How else do people provide this level of security?

I'm also posting a reference question to this one in other areas of EE.


Avatar of AndresM
AndresM

You should never allow connections from a public web-server into your internal network, no mather if the connections are IPSEC or not. In my opinion, I would put the database-server in a DMZ too, connected to the same firewall if you want, but in other DMZ, a backend DMZ. In the firewall, you have to open a rule from the web-server to the database-server, and that's all. If you need to connect to the database server from your private network, you have to open outbound ports only.
Avatar of averyb

ASKER

Thanks for the quick feedback.  

Hadn't thought of putting the db server in a separate DMZ also.  That approach could quickly snowball into needing another server and then dealing with encrypting the db, etc . . . Certainly doable, in theory, but the cost and time would probably preclude that as an acceptable option.  Little to no benefit over having the db push all changes to the website from a functional/technical point of view.  Although getting the push to work might be much harder than dealing with moving the db to a DMZ.  Maybe we'll end up with Oracle updating a postgress or mysql db on the webserver and then the website reading from that local db.

As you stated--"You should never allow connections from a public web-server into your internal network, no mather (sic) if the connections are IPSEC or not."

Are most people in agreement with that?

How do big banks and such do it? I've always assumed that they have the webservers in a DMZ and the backend db's inside their network.  I guess they have a db server in a separate DMZ.
ASKER CERTIFIED SOLUTION
Avatar of jmelika
jmelika

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of averyb

ASKER

Unclear how that would protect the inside network from a breached web server.  If they got to the servers they could get the Load Balancer which in turn would give them access to the inside network.  Granted, having the load balancer does add another device intruders would have to hack to gain access to the network.
You are only allowing access to port 80 on the web servers.  No matter how you look at it, the web servers will need access to the data; be it on the Oracle servers themselves, or on the local hard drive (pushed from Oracle every so often).  Also, your web servers must be accessible to the end users.  In reality, that channel of communication must be present.  Our goal as security engineers is to allow ONLY access to that and nothing else.  Once that is done, we start protecting the application responding to the open ports (in your case IIS).  Patch it up, keep it tight, and all should be good.

JM