Установка 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