-Подписка по e-mail

 

 -Поиск по дневнику

Поиск сообщений в NeoliteBSD

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 25.07.2007
Записей: 39
Комментариев: 25
Написано: 106

Установка и настройка ProFTPd

Пятница, 27 Февраля 2009 г. 15:29 + в цитатник
 (690x111, 10Kb)

Установка стабильной версии из портов:
shell код:
cd /usr/ports/ftp/proftpd/
make install WITH_MYSQL=yes
make clean


Установка последней версии из исходников:
shell код:
fetch ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.3rc3.tar.gz
tar -xvf proftpd-1.3.3rc3.tar.gz
cd proftpd-1.3.3rc3


Также последняя версия исходников доступна в CVS (пароль для анонимусов пустой):
shell код:
cd ~/cvs
cvs -d :pserver:anonymous@proftp.cvs.sourceforge.net:2401/cvsroot/proftp login
cvs -d :pserver:anonymous@proftp.cvs.sourceforge.net:2401/cvsroot/proftp -z3 co proftpd
cd proftpd



В версии 1.3.2 глюк с русскими символами уже исправлен, так что исходники править не требуется. Если же вы хотите поставить более раннюю версию, то вам придется несколько подкорректировать файл src/netio.c:
C++ код:
#if 0
   switch (mode) {
    case IAC:
     switch (cp) {
      case WILL:
      case WONT:
      case DO:
      case DONT:
       mode = cp;
       continue;

      case IAC:
       mode = 0;
       break;

      default:
       /* Ignore */
       mode = 0;
       continue;
     }
     break;

    case WILL:
    case WONT:
     pr_netio_printf(out_nstrm, "%c%c%c", IAC, DONT, cp);
     mode = 0;
     continue;

    case DO:
    case DONT:
     pr_netio_printf(out_nstrm, "%c%c%c", IAC, WONT, cp);
     mode = 0;
     continue;

    default:
     if (cp == IAC) {
      mode = cp;
      continue;
     }
     break;
   }
#endif


* This source code was highlighted with Source Code Highlighter.


Теперь конфигурируем, собираем и устанавливаем:
shell код:
./configure --with-modules=mod_sql:mod_sql_passwd:mod_sql_mysql --enable-openssl --disable-ipv6
cp /usr/local/mysql/include/mysql/mysql.h include/
cp /usr/local/mysql/include/mysql/mysql_com.h include/
cp /usr/local/mysql/include/mysql/mysql_time.h include/
cp /usr/local/mysql/include/mysql/mysql_version.h include/
cp /usr/local/mysql/include/mysql/my_alloc.h include/
cp /usr/local/mysql/include/mysql/my_list.h include/
cp /usr/local/mysql/include/mysql/typelib.h include/
cp /usr/local/mysql/lib/mysql/libmysqlclient.a lib/
make
make install


Если ставили не из портов, создаем файл запуска руками:
shell код:

cd /usr/local/etc/rc.d
joe proftpd

#!/bin/sh
#
# $FreeBSD: ports/ftp/proftpd/files/proftpd.sh.in,v 1.3 2009/02/27 15:14:00 dougb Exp $
#

# PROVIDE: proftpd
# REQUIRE: DAEMON
# BEFORE: LOGIN
# KEYWORD: shutdown

#
# Add the following lines to /etc/rc.conf to enable proftpd:
#
#proftpd_enable="YES"
#
# See proftpd(8) for flags
#

. /etc/rc.subr

name=proftpd
rcvar=`set_rcvar`

command=/usr/local/sbin/proftpd
pidfile=/var/run/proftpd.pid
required_files=/usr/local/etc/proftpd.conf

stop_postcmd=stop_postcmd

stop_postcmd()
{
rm -f $pidfile
}

# set defaults

proftpd_enable=${proftpd_enable:-"NO"}
proftpd_flags=${proftpd_flags:-""}

extra_commands="reload"

load_rc_config $name
start_cmd="echo \"Starting ${name}.\"; ${command} ${proftpd_flags} ${command_args}"
run_rc_command "$1"


chmod +x proftpd


Теперь ProFTPd установлен и можно приступить к его настройке. Для начала проверим, подключились ли модули работы с MySQL:
shell код:
cd /usr/local/libexec/
./proftpd -l | grep mod_sql.c
./proftpd -l | grep mod_sql_passwd.c
./proftpd -l | grep mod_sql_mysql.c


Теперь создать базу пользователей FTP. Для начала создадим пользователя БД:
shell код:
mysql -u root -p

CREATE DATABASE proftpd;
GRANT SELECT, INSERT, UPDATE, DELETE ON proftpd.* TO proftpd@localhost IDENTIFIED BY 'mysecretpassword';


* This source code was highlighted with Source Code Highlighter.



Зайдём теперь под только что созданным пользователем, и создадим в нашей базе нужные таблицы:
shell код:
mysql -u proftpd -p


USE proftpd;

CREATE TABLE users (
    userid VARCHAR(30) NOT NULL UNIQUE,
    passwd VARCHAR(80) NOT NULL,
    uid INTEGER UNIQUE,
    gid INTEGER,
    homedir VARCHAR(255),
    shell VARCHAR(255)
);

CREATE TABLE groups (
    groupname VARCHAR(30) NOT NULL,
    gid INTEGER NOT NULL,
    members VARCHAR(255)
);

INSERT INTO groups VALUES ('ftp','5001','');
INSERT INTO users VALUES('test',MD5('testftp'),'5001','5001','/home/ftp/test','/sbin/nologin');


* This source code was highlighted with Source Code Highlighter.


Создаем лог-файл:
shell код:
touch /var/log/proftpd.log


Прописываем в /etc/rc.conf:
shell код:
proftpd_enable="YES"
proftpd_flags=""


Запускаем:
shell код:
/usr/local/etc/rc.d/proftpd start


Готово.


Статус статьи: Релиз, обновлена 10.01.2010.
Рубрики:  Установка
Настройка
Метки:  



 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку