このWebサイト ひつじ帳 は、管理者がWEB関連の技術をまとめた備忘録サイトです。 Linux,CentOS,PHP,MySQL,Blogger,JavaScript,CSS について記録しています。

CentOS-5/ProFTPD(FTPサーバ)

[ CentOS/FTPサーバ ]

ProFTPD インストール

chkrootkit インストールには、rpmforgeリポジトリが必要です。
rpmforgeリポジトリの確認・インストール

[root@linux ~]# yum -y --enablerepo=rpmforge install proftpd ←■ proftpdインストール
[root@linux ~]#

ProFTPD 設定

/etc/proftpd.conf の編集


[root@linux ~] cp -a /etc/proftpd.conf /etc/proftpd.conf.org ←■ 設定ファイルをバックアップ
[root@linux ~]
[root@linux ~] vi /etc/proftpd.conf ←■ proftpd 設定ファイル編集

※ スタンドアロンモードで起動する場合
ServerType                     standalone
#ServerType                     inetd
※ xinetd経由で起動する場合は変更する場合
#ServerType                     standalone
ServerType                     inetd

※ ルートディレクトリの設定例
DefaultRoot                     ~ !adm ←■ 初期値
DefaultRoot                     ~ ←■ 通常はこれで良い
DefaultRoot                     ~/public_html ←■ ~/public_html にする場合
DefaultRoot                     ~/public_html !wheel ←■ ~/public_html にして、wheelグループ所属ユーザを除外する場合

# Normally, we want users to do a few things.
<Global>
  AllowOverwrite                yes
  <Limit ALL SITE_CHMOD>
    AllowAll
  </Limit>
  PassivePorts 50000 50005 ←■ PASVモード用ポートとして1024以上の任意のポートを指定
</Global>

※ SSL/TLS に対応させる場合
# TLS
# Explained at http://www.castaglia.org/proftpd/modules/mod_tls.html
#TLSEngine                      on
#TLSRequired                    on
#TLSRSACertificateFile          /etc/pki/tls/certs/proftpd.pem
#TLSRSACertificateKeyFile       /etc/pki/tls/certs/proftpd.pem
#TLSCipherSuite                 ALL:!ADH:!DES
#TLSOptions                     NoCertRequest
#TLSVerifyClient                off
##TLSRenegotiate                ctrl 3600 data 512000 required off timeout 300
#TLSLog                         /var/log/proftpd/tls.log

TLSEngine                       on
TLSRequired                     off
TLSRSACertificateFile           /etc/pki/tls/certs/proftpd.pem
TLSRSACertificateKeyFile        /etc/pki/tls/certs/proftpd.pem
TLSCipherSuite                  ALL:!ADH:!DES
TLSOptions                      NoCertRequest
TLSVerifyClient         off
#TLSRenegotiate         ctrl 3600 data 512000 required off timeout 300
TLSLog                          /var/log/proftpd/tls.log

ExtendedLog          /var/log/proftpd/access.log WRITE,READ default ←■ 最終行へ追加(アクセスログを記録する)
ExtendedLog          /var/log/proftpd/auth.log AUTH auth ←■ 最終行へ追加(認証ログを記録する)
TimesGMT off ←■ 最終行へ追加(ファイルのタイムスタンプを日本時間にする)

:wq ←■ 保存して閉じる
[root@linux ~]#

/var/log/proftpd が無い場合は作成する


[root@linux ~]# mkdir /var/log/proftpd
[root@linux ~]#

xinetd 経由の起動方法 proftpd起動スクリプト(xinetd用)編集


[root@linux ~]# cp -a /etc/xinetd.d/xproftpd /etc/xinetd.d/xproftpd.org ←■ xinetd設定ファイルをバックアップ
[root@linux ~]#
[root@linux ~]# vi /etc/xinetd.d/xproftpd
# default: off
# $Id: proftpd-xinetd,v 1.2 2002/06/10 15:35:47 dude Exp $
# description: The ProFTPD FTP server serves FTP connections. It uses \
#       normal, unencrypted usernames and passwords for authentication.
service ftp
{
        disable = yes
        socket_type             = stream
        wait                    = no
        user                    = root
        server                  = /usr/sbin/in.proftpd
        #log_on_success         += DURATION USERID
             ↓■ 変更(約30秒かかるログインの時間短縮対策)
        log_on_success          += HOST PID 

        #log_on_failure         += USERID
             ↓■ 変更(約30秒かかるログインの時間短縮対策)
        log_on_failure          += HOST 

        nice                    = 10

        #disable                = yes
             ↓■ proftpdのxinetd経由起動の有効化
        disable                 = no

        env                     = TZ=JST-9 ←■ ファイルのタイムスタンプを日本時間にする
}
:wq ←■ 保存して閉じる
[root@linux ~]#

ProFTPD 起動設定

xinetd インストール確認


[root@linux ~]# yum list | grep xinetd
xinetd.i386                              2:2.3.14-10.el5        base ←■ インストールされていない
xinetd.i386                              2:2.3.14-10.el5        installed ←■ インストールされている
[root@linux ~]

xinetd 設定


[root@linux ~]# /etc/rc.d/init.d/xinetd restart ←■ xinetd再起動
xinetd を停止中:                                           [  OK  ]
xinetd を起動中:                                           [  OK  ]
[root@linux ~]#

[root@linux ~]# chkconfig xproftpd on ←■ xproftpd自動起動設定
[root@linux ~]#

[root@linux ~]# chkconfig --list xproftpd ←■ xproftpd自動起動設定確認
xproftpd        on  ←■ 自動起動されている
[root@linux ~]#

ProFTPD アクセス制限

FTPサーバーへアクセスできるホストを制限する。

[root@linux ~# echo "in.proftpd: 127.0.0.1" >> /etc/hosts.allow ←■ サーバー自身からのFTPアクセスを許可

[root@linux ~]# echo "in.proftpd: 192.168.1." >> /etc/hosts.allow ←■ 内部(例:192.168.1.XXXからのFTPアクセスを許可)

[root@linux ~]# echo "in.proftpd: .ppp.asahi-net.or.jp"  >> /etc/hosts.allow ←■ 外部(例:xxx.ppp.asahi-net.or.jpからのFTPアクセスを許可)

[root@linux ~]# echo "in.proftpd: ALL" >> /etc/hosts.deny ←■ FTPへの全てのアクセスを禁止

サーバー証明書作成(SSL/TLS に対応させた場合)


[root@linux ~]# cd /etc/pki/tls/certs/ ←■ ディレクトリ移動
[root@linux certs]#
[root@linux certs]# make proftpd.pem ←■ サーバー証明書作成
umask 77 ; \
        PEM1=`/bin/mktemp /tmp/openssl.XXXXXX` ; \
        PEM2=`/bin/mktemp /tmp/openssl.XXXXXX` ; \
        /usr/bin/openssl req -utf8 -newkey rsa:1024 -keyout $PEM1 -nodes -x509 -days 365 -out $PEM2 -set_serial 0 ; \
        cat $PEM1 >  proftpd.pem ; \
        echo ""    >> proftpd.pem ; \
        cat $PEM2 >> proftpd.pem ; \
        rm -f $PEM1 $PEM2
Generating a 1024 bit RSA private key
...................++++++
.......++++++
writing new private key to '/tmp/openssl.F18503'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [GB]:JP ←■ 国名を入力
State or Province Name (full name) [Berkshire]:Osaka ←■ 都道府県名を入力
Locality Name (eg, city) [Newbury]:Osaka ←■ 市区町村名を入力
Organization Name (eg, company) [My Company Ltd]:Example ←■ サイト名(何でも良い)を入力
Organizational Unit Name (eg, section) []: ←■ 空 Enter
Common Name (eg, your name or your server's hostname) []:example.jp ←■ ホスト名を入力
Email Address []:hostmaster@example.jp ←■ 管理者メールアドレスを入力
[root@linux ~]#

以上で、設定完了です。

0 件のコメント:

人気記事

アーカイブ

このブログを検索