vBulletin Search Engine Optimization
| |||||||
| Register | FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| ||||
| Greetings all, I am a network security professional rather than a MS SQL admin, so I apologize in advance if this is a bit of a basic question for this list. I also cross-posted this to microsoft.public.sqlserver.server, so sorry if anyone's read it already. I know an admin setting up a SQL server that will only be accesible by a webserver running on the same host (not happy about running private vs publicly avaialable services on the same host , but it's what we've got). As such, I'd like to recommend to him that the SQL server only listen on the localhost ip, 127.0.0.1, thereby making it inaccesible to the outside world. I looked around the MS knowledgebase but couldn't find a clear document stating how to do this. Is it even possible? Is there a better option for this configuration? It's been suggested that firewalling is the only option, but I'd really like to do *both* (firewall & bind to localhost). The firewall in this case will have to be host-based instead (software) instead of hardware for non-technical reasons, so additionally if anyone recommends a software firewall they use for this purpose I'd appreciate it. My firs impulse is to recommend Tiny, but I've never used a software firewall for an MS SQL/Web server before. Thanks, Brian |
| |||
| One option is to disable network access completely, and use only shared memory for access to MSSQL (this is how MSDE operates by default since SP3), so only applications running on the same machine will be able to access it. Although someone could still attack MSSQL by compromising the web server, or using SQL injection. MSSQL itself doesn't provide any way to accept connections from specified hosts - you would normally use the operating system's IP filtering functions to do that. Simon |
| ||||
| There isn't a way to have sql server listen on a specific ip. Sorry. If you haven't already seen this, take a look at the Network Configuration dialog on the general tab of the server's properties. Two protocols are enabled by default. TCPIP is one of them, and you can change the port and set it to ignore discovery broadcasts. That would make the server invisible to anyone looking for it. However, anyone who portscans the server would notice whatever port you put it on and (I'd assume) be able to figure out that it's a SQL Server. So, you do still need to firewall it. The other protocol is called Named Pipes. That's basically using memory to communicate. If the application you're developing supports it, I'd suggest using this and turning off TCPIP support altogether. This is probably faster anyway. Chris |