CrushFTP can operate in a restricted environment where a front end DMZ server processes protocols and connections, and a secured internal server has access to the file system, database, or other protected resources.

1.) To start a DMZ instance waiting for its configuration from the internal server:
{{{
java -jar CrushFTP.jar -dmz 9000   #accept a connection from any IP on port 9000 to receive settings and run

java -jar CrushFTP.jar -dmz 9000 192.168.1.10,10.0.1.5,192.168.1.11   #accept a connection from these IPs on port 9000 and run
}}}
If you specify acceptable IPs, and the IP isn't int he list, the connection is dropped, and a message logged.

2.) Now that the server is configured, you need to configure prefs for this server.  Its usually easiest to start with your existing prefs on your internal server and adjust it later on.

So duplicate prefs.XML and call it "prefs_dmztest.XML".  The "_dmz1" is part of a specific naming scheme.  This server will be identified as "dmztest".  So if you wanted another name such as 'extra' you would do "prefs_extra.XML".

3.) Now that the prefs are ready, lets configure the port in CrushFTP that will attach to the DMZ instance and handles things.

Create a new port item, set its protocol to be DMZ:// and configure the IP and port for the DMZ server where the core will be connecting out to the DMZ.

[attachments|dmz_port.png]