0

pure-ftpd passive mode fail

Ivan Nikolaev 5 years ago updated by Lino De Aguiar May 4 years ago 5
Hi.
I was setting pure-ftpd to work in passive mode, but its impossible to do, since something is changing pure-ftpd.conf to its original state.

I have described issue here
http://support.ajenti.org/topic/572031-ftp-server-errors-out/

In two words,
/etc/pure-ftpd/pure-ftpd.conf is being changed to its original state, and it must contain
PassivePortRange 30000 35000 lines to make passive mode work correctly.
Since i'm changing it mannually, it works, but after some time file is being replaced by some process, and passive mode stops working.

What can be done to fix it permanently?

edit:/ testing chattr +i /etc/pure-ftpd/pure-ftpd.conf
not sure it will help


Have figured out what chenges this file.

When i'm editing a website in ajenti panel and press Apply Changes, it changes that file.
But since i have locked it from changes, i'm recieving an error.

[Errno 13] Permission denied: '/etc/pure-ftpd/pure-ftpd.conf' Traceback (most recent call last):   File "/usr/lib/python2.6/site-packages/ajenti/plugins/main/main.py", line 158, in handle_message     self.ui.dispatch_event(update['uid'], update['event'], update['params'])   File "/usr/lib/python2.6/site-packages/ajenti/ui/__init__.py", line 72, in dispatch_event     self.root.dispatch_event(uid, event, params)   File "/usr/lib/python2.6/site-packages/ajenti/ui/element.py", line 382, in dispatch_event     if child.dispatch_event(uid, event, params):   File "/usr/lib/python2.6/site-packages/ajenti/ui/element.py", line 382, in dispatch_event     if child.dispatch_event(uid, event, params):   File "/usr/lib/python2.6/site-packages/ajenti/ui/element.py", line 388, in dispatch_event     getattr(self, k)(**(params or {}))   File "/var/lib/ajenti/plugins/vh/main.py", line 257, in save     self.manager.update_configuration()   File "/var/lib/ajenti/plugins/vh/api.py", line 300, in update_configuration     self.__runall([(c.create_configuration, [self.config]) for c in self.components])   File "/var/lib/ajenti/plugins/vh/api.py", line 296, in __runall     raise g.exception IOError: [Errno 13] Permission denied: '/etc/pure-ftpd/pure-ftpd.conf'

My solution was editing:

/var/lib/ajenti/plugins/vh-pureftpd/
pureftpd.py
pureftpd.pyc

I've added PassivePortRange 30000 35000 to config section, restarted ajenti, and now it works by default.

+1
Hi,
I tried your method but without success and I don't think modify Ajenti V files is a good practice, because if you update Ajenti V you risk to lose your changes.

I solved in this way:
  1. created a script with name <SCRIPT_NAME> here: /etc/init.d/
  2. inside <SCRIPT_NAME> put this command:
    1. echo "PassivePortRange 30000 35000" >> /etc/pure-ftpd/pure-ftpd.conf
    2. service pure-ftpd restart
  3. type this command: chmod 700 <SCRIPT_NAME>
  4. type this command: ln -s /etc/init.d/XXXX /etc/rc.d/
  5. reboot
Bye


There is a problem with my procedure. The script <SCRIPT_NAME> should start every time you save a configuration in Website->FTP because Ajenti V seems to save the /etc/pure-ftpd/pure-ftpd.conf every time you save a credential, losing the configuration of PassivePortRange...

Thats why i've putted it in source files.

My method works fine with me.

+1

No it is not working with latest pure-ftpd plugin.

I can't install pureftpd. I have installed Ajenti v1.2.23.8. I am using a Ubuntu 14.04 instance.When I run the following command: $ apt-get install ajenti-v-ftp-pureftpd it throws E: Unable to locate package ajenti-v-ftp-pureftpd. Do you know something about that?