diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/FtpServer.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/FtpServer.java
index 2fc887d48b8172d478478bbdefb866a93149f041..f74e80e6edb31aa66c98fbaab724e0ca74d8e5fa 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/FtpServer.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/FtpServer.java
@@ -85,14 +85,15 @@ public class FtpServer implements FileSystemFactory
             factory.setImplicitSsl(true);
         }
 
+        DataConnectionConfigurationFactory dccFactory = new DataConnectionConfigurationFactory();
+        dccFactory.setPassivePorts(config.getPassivePortsRange());
         if (config.isActiveModeEnabled())
         {
-            DataConnectionConfigurationFactory dccFactory =
-                    new DataConnectionConfigurationFactory();
             dccFactory.setActiveEnabled(true);
             dccFactory.setActiveLocalPort(config.getActiveLocalPort());
-            factory.setDataConnectionConfiguration(dccFactory.createDataConnectionConfiguration());
         }
+
+        factory.setDataConnectionConfiguration(dccFactory.createDataConnectionConfiguration());
         serverFactory.addListener("default", factory.createListener());
 
         ConnectionConfigFactory connectionConfigFactory = new ConnectionConfigFactory();
diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/FtpServerConfig.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/FtpServerConfig.java
index e0f89f622e94c1e2017c29d9155e0f77899a6013..66c651117650f93d64b8a11039889dcb112776ea 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/FtpServerConfig.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/FtpServerConfig.java
@@ -59,6 +59,8 @@ public class FtpServerConfig
 
     final static String ACTIVE_PORT_KEY = PREFIX + "activemode.port";
 
+    final static String PASSIVE_MODE_PORT_RANGE_KEY = PREFIX + "passivemode.port.range";
+
     private static final int DEFAULT_PORT = 2121;
 
     private static final int DEFAULT_ACTIVE_PORT = 2122;
@@ -69,6 +71,8 @@ public class FtpServerConfig
 
     private static final String DEFAULT_DATASET_TEMPLATE = "${dataSetCode}";
 
+    private static final String DEFAULT_PASSIVE_PORTS = "2130-2140";
+
     private boolean startServer;
 
     private int port;
@@ -77,6 +81,8 @@ public class FtpServerConfig
 
     private int activePort;
 
+    private String passivePortsRange;
+
     private boolean useSSL;
 
     private File keyStore;
@@ -113,6 +119,9 @@ public class FtpServerConfig
         }
         activeModeEnabled = PropertyUtils.getBoolean(props, ACTIVE_MODE_ENABLE_KEY, false);
         activePort = PropertyUtils.getPosInt(props, ACTIVE_PORT_KEY, DEFAULT_ACTIVE_PORT);
+        passivePortsRange =
+                PropertyUtils
+                        .getProperty(props, PASSIVE_MODE_PORT_RANGE_KEY, DEFAULT_PASSIVE_PORTS);
         maxThreads = PropertyUtils.getPosInt(props, MAX_THREADS_KEY, DEFAULT_MAX_THREADS);
         dataSetDisplayTemplate =
                 PropertyUtils.getProperty(props, DATASET_DISPLAY_TEMPLATE_KEY, DEFAULT_DATASET_TEMPLATE);
@@ -208,6 +217,7 @@ public class FtpServerConfig
         operationLog.info("Ftp Server port: " + port);
         operationLog.info("Ftp Server using SSL: " + useSSL);
         operationLog.info("Ftp Server data set display template : " + dataSetDisplayTemplate);
+        operationLog.info("Ftp Server passive ports: " + passivePortsRange);
         operationLog.info("Ftp Server enable active mode: " + activeModeEnabled);
         if (activeModeEnabled)
         {
@@ -241,4 +251,9 @@ public class FtpServerConfig
         return activePort;
     }
 
+    public String getPassivePortsRange()
+    {
+        return passivePortsRange;
+    }
+
 }