○ vsftpdの設定 (アクセス制御)

・localとinternetでvsftpdのアクセス制御をします
・vsftpd-3.0.3を使用します
・エイリアスIPを作成します、LANカード2枚でも良い
・selinuxの調整が必要な場合があります

・公開サーバで使う場合は、ローカル環境で十分実証して下さい

・ソースの取得、削除は省略します
・エディタ、ファイラーの操作は省略します
・ソースを展開したら説明文を読みましょう
・Enterキーを省略します

・ログイン端末で "#" はroot、"$" は一般ユーザのプロンプトの記号です
・設定ファイルで "#" で始まる行はコメントとして解釈されます

○参照ファイル

vsftpd のインストール

○インストール環境

:OS CentOS 6.9
:インストール先 
:作業 /etc
:言語 LANG=en_US.UTF-8
:ユーザー rootで実行

・メンテナンスの場合は一般ユーザから行います



○エイリアスIPアドレスの作成

・ifcfg-eth0 ファイルに複数のIPアドレスを設定できます
・[IPADDR] と [PREFIX] の後に番号を振ります

・省略

IPADDR=192.168.0.1
PREFIX=24
IPADDR1=192.168.0.100
PREFIX1=24

・省略

・networkの再起動と確認

[root@venus:~]
# service network restart
# ifconfig



○コンフィグファイルの作成

・"man vsftpd.conf"で再確認して下さい
・internet用にpublic.confを作成します
・local用にlocal.confを作成します
・vsftpd.confを削除します

# cd /etc/vsftpd
[root@venus:/etc/vsftpd]
# cp vsftpd.conf public.conf
# cp vsftpd.conf local.conf
# rm vsftpd.conf

○vsftpd起動スクリプト

・start関数で複数のconfファイルを読みこんで起動します

・省略

start() {
    # Start daemons.
    if [ -d /etc/vsftpd ] ; then
        for i in `ls /etc/vsftpd/*.conf`; do
            site=`basename $i .conf`
            echo -n $"Starting $prog for $site: "
            /usr/local/sbin/vsftpd $i &
            RETVAL=$?
            [ $RETVAL -eq 0 ] && {
                touch /var/lock/subsys/$prog
                success $"$prog $site"
            }
            echo
        done
    else
        RETVAL=1
    fi
    return $RETVAL
}

・省略


○public.confの作成

:/etc/vsftpd/public.conf (root root 644)

紫色 追加変更分です
・# 記号は設定無効
・local.confの設定値が残る場合は、再度設定しています
・ログを/var/log/vsftpd-public.logに出力します
・pasv_portはiptablesの設定に合わせて下さい
・listen_addressで外部からアクセスされるIPアドレスを指定します
・listen_addressで制御されるのはサーバのIPアドレスです

default YES
default (none)
default NO
default NO
default 077
default NO
default NO
default NO
default NO
default NO
default NO
default root
default /var/log/xferlog
default /var/log/vsftpd.log
default NO
default 300
default 300
default nobody
default NO
default NO
default NO
default
default NO
default
default NO
default
default NO
default ftp
default NO
default 0 (unlimited)
default 0 (use any port)
default 0 (use any port)
default 0 (unlimited)
default NO
default NO
default (none)
default NO
anonymous_enable=YES
anon_root=/home/ftp/pub
local_enable=NO
#write_enable=YES
local_umask=022
#anon_upload_enable=YES
#anon_mkdir_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
#connect_from_port_20=YES
#chown_uploads=YES
#chown_username=whoever
#xferlog_file=/var/log/vsftpd.log
vsftpd_log_file=/var/log/vsftpd-public.log
#xferlog_std_format=YES
#idle_session_timeout=600
#data_connection_timeout=120
#nopriv_user=ftpsecure
#async_abor_enable=YES
#ascii_upload_enable=YES
ascii_download_enable=YES
ftpd_banner=Welcome to kojiya-528 FTP
#deny_email_enable=YES
#banned_email_file=/etc/vsftpd.banned_emails
#chroot_list_enable=YES
#chroot_list_file=/etc/vsftpd/chroot_list
#ls_recurse_enable=YES
pam_service_name=vsftpd
use_localtime=YES
max_clients=30
pasv_min_port=50000
pasv_max_port=50030
anon_max_rate=30000
listen=YES
#listen_ipv6=YES
listen_address=192.168.0.100
tcp_wrappers=YES


○local.confの作成

:/etc/vsftpd/local.conf (root root 644)

紫色 追加変更分です
・# 記号は設定無効
・ログを/var/log/vsftpd-local.logに出力します
・listen_addressでローカルからアクセスされるIPアドレスを指定します
・listen_addressで制御されるのはサーバのIPアドレスです

default YES
default (none)
default NO
default NO
default 077
default NO
default NO
default NO
default NO
default NO
default NO
default root
default /var/log/xferlog
default /var/log/vsftpd.log
default NO
default 300
default 300
default nobody
default NO
default NO
default NO
default
default NO
default
default NO
default NO
default
default NO
default ftp
default NO
default /etc/vsftpd.user_list
default NO
default NO
default 0 (use any port)
default 0 (use any port)
default NO
default NO
default (none)
default NO
anonymous_enable=YES
anon_root=/home/ftp/pub
local_enable=YES
write_enable=YES
local_umask=022
#anon_upload_enable=YES
#anon_mkdir_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
#connect_from_port_20=YES
#chown_uploads=YES
#chown_username=whoever
#xferlog_file=/var/log/vsftpd.log
vsftpd_log_file=/var/log/vsftpd-local.log
#xferlog_std_format=YES
#idle_session_timeout=600
#data_connection_timeout=120
#nopriv_user=ftpsecure
#async_abor_enable=YES
ascii_upload_enable=YES
ascii_download_enable=YES
#ftpd_banner=Welcome to blah FTP service.
#deny_email_enable=YES
#banned_email_file=/etc/vsftpd.banned_emails
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
ls_recurse_enable=YES
pam_service_name=vsftpd
userlist_enable=YES
userlist_file=/etc/vsftpd/user_list
use_localtime=YES
text_userdb_names=YES
pasv_min_port=50000
pasv_max_port=50030
listen=YES
#listen_ipv6=YES
listen_address=192.168.0.1
tcp_wrappers=YES



○tcp_rappersによる制御

○vsftpdの再起動と確認

# cd ~
[root@venus:~]
# service vsftpd restart
# netstat -lnp | grep ftp

・2つ起動していることを確認

tcp   0   0 192.168.0.100:21  0.0.0.0:*   LISTEN   1912/vsftpd         
tcp   0   0 192.168.0.1:21    0.0.0.0:*   LISTEN   1909/vsftpd

○/etc/hosts.allowの修正

ALL: 127.0.0.1
vsftpd@192.168.0.1: 192.168.0.
vsftpd@192.168.0.100: ALL



○vsftpdのログローテーション

○デーモン (スクリプト) 起動の場合

:/ete/logrotate.d/vsftpd

/var/log/vsftpd-public.log /var/log/vsftpd-local.log {
    # ftpd doesn't handle SIGHUP properly
    nocompress
    missingok
}



○iptablesの設定

Netfilter (iptables) で制御している場合、ポートを開けてください

・省略

○ Copyright(c) 528p.com All Rights Reserved.