Установка ProFTPD на Centos 5
Установка ProFTPD на Centos 5
В источниках Centos 5 нет по умолчанию ProFTPD для его установки, по этому если он нам нужен (а мне нужен был для использования FTP после установки Webmin) придется устанавливать все в ручную.
Первым делом мы установим необходимые пакеты для сборки и установки ProFTPD:
yum install ncurses-devel \
gcc \
gcc-c++ \
make \
rpm-build \
m4 \
redhat-rpm-config \
unifdef
Далее непосредственно собираем и устанавливаем ProFTPD
cd /tmp/
wget --passive-ftp ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.2.tar.gz
tar xvfz proftpd-1.3.2.tar.gz
cd proftpd-1.3.2/
./configure --sysconfdir=/etc
make
make install
cd ..
rm -fr proftpd-1.3.2*
Proftpd устанавливается в /usr/local/sbin, но нам он нужен, в /usr/sbin, поэтому мы создаем символическую ссылку:
ln -s /usr/local/sbin/proftpd /usr/sbin/proftpd
Далее создадим скрипт запуска для proftpd с помощью программы nano (инструкция по работе с nano доступна по этой ссылке), /etc/init.d/proftpd:
nano /etc/init.d/proftpd
И впишем в него:
#!/bin/sh
# $Id: proftpd.init,v 1.1 2004/02/26 17:54:30 thias Exp $
#
# proftpd        This shell script takes care of starting and stopping
#                proftpd.
#
# chkconfig: - 80 30
# description: ProFTPD is an enhanced FTP server with a focus towards \
#              simplicity, security, and ease of configuration. \
#              It features a very Apache-like configuration syntax, \
#              and a highly customizable server infrastructure, \
#              including support for multiple 'virtual' FTP servers, \
#              anonymous FTP, and permission-based directory visibility.
# processname: proftpd
# config: /etc/proftp.conf
# pidfile: /var/run/proftpd.pid
 
# Source function library.
. /etc/rc.d/init.d/functions
 
# Source networking configuration.
. /etc/sysconfig/network
 
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0
 
[ -x /usr/sbin/proftpd ] || exit 0
 
RETVAL=0
 
prog="proftpd"
 
start() {
        echo -n $"Starting $prog: "
        daemon proftpd
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && touch /var/lock/subsys/proftpd
}
 
stop() {
        echo -n $"Shutting down $prog: "
        killproc proftpd
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/proftpd
}
 
# See how we were called.
case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  status)
        status proftpd
        RETVAL=$?
        ;;
  restart)
        stop
        start
        ;;
  condrestart)
        if [ -f /var/lock/subsys/proftpd ]; then
          stop
          start
        fi
        ;;
  reload)
        echo -n $"Re-reading $prog configuration: "
        killproc proftpd -HUP
        RETVAL=$?
        echo
        ;;
  *)
        echo "Usage: $prog {start|stop|restart|reload|condrestart|status}"
        exit 1
esac
exit $RETVAL
Выставим права для запуска скрипта:
chmod 755 /etc/init.d/proftpd
Далее откроем /etc/proftpd.conf и изменить Group на nobody:
nano /etc/proftpd.conf
Так:
[...]
Group                           nobody
[...]
По соображениям безопасности, вы можете также добавить следующие строки в /etc/proftpd.conf:
[...]
DefaultRoot ~
IdentLookups off
ServerIdent on "FTP Server ready."
[...]
Чтобы FTP пользователи могли использовать сhmod команды, закомментируем строки в разделе:
[...]
#
#  DenyAll
# [...]
Также можно сделать, чтоб отображались все файлы от и до, т.к. файлы начинающиеся на точку, видно не будет:
ListOptions -a
Теперь можно сделать автозапуск сервиса во время загрузки сервера:
chkconfig --levels 235 proftpd on
Запускаем FTP сервис:
/etc/init.d/proftpd start
