Chọn chế độ hoạt động trong ProFTPD

Sử dụng khai báo ServerType để quyết định chế độ vận hành của ProFTPD, có 2 giá trị:

  • inetd: inetd (sau này là xinetd) sẽ chịu trách nhiệm lắng nghe các kết nối trên tất cả các giao tiếp mạng, trên tất cả các cổng kết nối trên máy tính, khi có kết nối đến port FTP, inetd sẽ gọi đến ProFTPD để xử lý yêu cầu.
  • standalone: ProFTPD sẽ lắng nghe các kết nối trên port FTP (mặc định là port 21) và xử lý các yêu cầu đến từ client trên kết nối này.

1. Inetd mode

–          Cài đặt xinetd (nếu xinetd chưa được cài đặt)

# yum install –y xinetd

–          Cấu hình ProFTPD

# vi /etc/proftpd.conf
      ServerType        inetd

–          Cấu hình dịch vụ FTP trong xinetd

# vi /etc/xinetd.d/ftp
service ftp
{
     port        = 21
     disable     = no
     flags       = REUSE
     socket_type = stream
     wait        = no
     user        = proftpd
     server      = /usr/local/sbin/proftpd
     server_args = -c /etc/proftpd.conf
}

–          Khởi động lại xinetd

# /etc/init.d/xinetd restart

–          Kiểm tra thấy port 21 đã được mở

# netstat –anp | grep :21
tcp        0      0 :::21                       :::*                        LISTEN      1429/xinetd

2. Standalone mode

–          Cấu hình ProFTPD

# vi /etc/proftpd.conf
ServerType        standalone
Port              21
User              proftpd
Group             proftpd

–          Tạo file khởi tạo dịch vụ cho ProFTPD

# vi /etc/init.d/proftpd
#!/bin/sh
# ProFTPD files

FTPD_BIN=/usr/local/sbin/proftpd
FTPD_CONF=/etc/proftpd.conf
PIDFILE=/var/proftpd/proftpd.pid

# If PIDFILE exists, does it point to a proftpd process?

if [ -f $PIDFILE ]; then
     pid=`cat $PIDFILE`
fi

if [ ! -x $FTPD_BIN ]; then
     echo "$0: $FTPD_BIN: cannot execute"
     exit 1
fi

case $1 in
start)
     if [ -n "$pid" ]; then
          echo "$0: proftpd [PID $pid] already running"
          exit
     fi

     if [ -r $FTPD_CONF ]; then
          echo "Starting proftpd..."
          $FTPD_BIN -c $FTPD_CONF
     else
          echo "$0: cannot start proftpd -- $FTPD_CONF missing"
     fi
     ;;

stop)
     if [ -n "$pid" ]; then
          echo "Stopping proftpd..."
          kill -TERM $pid
     else
          echo "$0: proftpd not running"
          exit 1
     fi
     ;;

restart)
     if [ -n "$pid" ]; then
          echo "Rehashing proftpd configuration"
          kill -HUP $pid
     else
          echo "$0: proftpd not running"
          exit 1
     fi
     ;;

*)
     echo "usage: $0 {start|stop|restart}"
     exit 1
     ;;

esac
exit 0
# chmod +x /etc/init.d/proftpd

–          Chạy dịch vụ ProFTPD

# /etc/init.d/proftpd start

–          Kiểm tra thấy port 21 đã được mở

# netstat –anp |grep :21
tcp        0      0 0.0.0.0:21                  0.0.0.0:*                   LISTEN      1474/proftpd