![]() |
LINUX |
Proftpdのインストール
・FTPサーバの利用 (vsftpdにかわるもの)
・proftpd-1.3.3eをソースからインストールし、設定します
・proftpd専用ユーザ (/sbin/nologinシェル) で運営できます
・動作確認 gFTP (linux)、FileZilla、FFFTP (WindowsXP)
・make はメンテナンスマシンで行っています
・ソースの取得、削除は省略します
・エディタ、ファイラーの操作は省略します
・ソースを展開したら説明文を読みましょう
・Enterキーを省略します
・ログイン端末で "#" はroot、"$" は一般ユーザのプロンプトの記号です
・設定ファイルで "#" で始まる行はコメントとして解釈されます
関連サイト| :proftpd-1.3.3e.tar.bz2 | (http://www.proftpd.org/) |
参照ファイル:パッケージの追加
:最初の設定 (Xen)
:opensslのインストール
インストール環境| :OS | CentOS 5.6 |
| :selinux | disabled or permissive |
| :インストール先 | /usr/local |
| :作業 | /usr/src |
| :言語 | LANG=en_US.UTF-8 |
| :ユーザー | rootで実行 |
・メンテナンスの場合は一般ユーザから行います
proftpd-1.3.3e
新しいモデュール・proftpd-1.3.3で新しく追加されたモデュールです
・mod_sftpがsftp-serverの代用になるかはこれから
mod_sql_passwd mod_exec mod_shaper mod_tls_shmcache mod_sftp mod_sftp_pam mod_sftp_sql
展開・インストール・openssl-develを必要とします
・opensslヘッダファイルのバージョンを記録するので注意
・組み込んだ全てのモデュールを試していません
# /usr/src [root@jupiter:/usr/src] # tar jxvf proftpd-1.3.3e.tar.bz2 # chown -R root:root proftpd-1.3.3e # cd proftpd-1.3.3e [root@jupiter:/usr/src/proftpd-1.3.3e] # make distclean # ./configure CFLAGS="-O2 -march=pentium3" \ --sysconfdir=/etc \ --localstatedir=/var/run \ --enable-ipv6 \ --enable-ctrls \ --enable-facl \ --enable-dso \ --enable-autoshadow \ --enable-nls \ --enable-openssl \ --with-modules=mod_wrap:mod_ratio:mod_readme:mod_auth_pam:mod_tls \ --with-shared=mod_quotatab:mod_quotatab_file:mod_quotatab_ldap:\ mod_ldap:mod_ban:mod_ctrls_admin:mod_load:mod_rewrite:mod_sftp:\ mod_site_misc:mod_wrap2:mod_wrap2_file:mod_ident:mod_dynmasq:\ mod_unique_id:mod_ifsession
・CFLAGS="-O2 -march=pentium3" (CPU最適化オプション)
・該当しない場合は指定しない
・紫色部分 ssl,tls対応
・オプションは半角を入れて続けて記入した方が良い
# make # make install
・pam用ファイル・起動スクリプト等をコピーします
# cd contrib [root@jupiter:/usr/src/proftpd-1.3.3e/contrib] # cp ftpasswd ftpmail ftpquota /usr/local/sbin # cd dist/rpm [root@jupiter:/usr/src/proftpd-1.3.3e/contrib/dist/rpm] # cp ftp.pamd /etc/pam.d/ftp # cp proftpd.init.d /etc/init.d/proftpd # cp proftpd.logrotate /etc/logrotate.d/proftpd # cp xinetd /etc/xinetd.d/proftpd # cd /usr/src [root@jupiter:/usr/src] # tar jcvf proftpd-1.3.3e-110410.tar.bz2 proftpd-1.3.3e/
vsftpdの停止・自動起動設定の解除
# cd ~
[root@jupiter:~]
# service vsftpd stop
# chkconfig --del vsftpd
Anonymousftp用のディレクトリを作ります・例 /home/ftp (ftp ftp 755)
[root@jupiter:~]
# mkdir -p /home/ftp/pub
# chown -R ftp:ftp /home/ftp
・log用のディレクトリを作成
# mkdir /var/log/proftpd
専用ユーザ設定ファイルの作成
[root@jupiter:~]
# touch /etc/ftpd.passwd
# touch /etc/ftpd.group
proftpd.confの修正・TZの設定
・省略
TimesGMT off SetEnv TZ JST-9
・省略
tcp_wrappersで制御します:/etc/hosts.allow
・ローカルからのみ接続を許可します
ALL: 127.0.0.1
proftpd: 192.168.0. EXCEPT 192.168.0.21
:/etc/hosts.deny
ALL: ALL
ftpusersでログイン制限: /etc/ftpusers
・ディレクティブ UseFtpUsers on (Default)
・ログインを拒否するユーザをftpusersで指定します
root bin daemon adm lp sync shutdown halt mail news uucp operator games nobody
selinuxヘの対応 (selinuxが有効の場合):新規インストールファイルのselinuxラベルを修正
[root@jupiter:~]
# restorecon -Rv /etc
# restorecon -Rv /usr/local
# restorecon -RFv /home/ftp
proftpdの起動:/etc/xinetd.d/proftpdの修正
・省略
disable=yes
・省略
:proftpd(standalone)の起動
[root@jupiter:~]
# chmod 755 /etc/rc.d/init.d/proftpd
# service proftpd start
# chkconfig --add proftpd
proftpdログのローテーション:/ete/logrotate.d/proftpd
/var/log/proftpd/*.log /var/log/proftpd/xferlog {
rotate 4
create
missingok
notifempty
postrotate
kill -HUP `cat /var/run/proftpd.pid 2>/dev/null` 2>/dev/null || true
endscript
}
:logrotationの確認
[root@jupiter:~]
# logrotate -f /etc/logrotate.d/proftpd
・うまくいかない場合、設定ファイルを修正します
・ただし、var/lib/logrotate.statusに前回rotateした日付が設定されます
・logrotate.statusの日付をエディタで修正します
・調整後は/etc/logrotate.confと重複する設定をコメントにします
・"rotate 4" "create" など
proftpd専用ユーザの設定・ftpアクセスできるapacheユーザを設定します
・パスワードは暗号化されます
# cd /etc
[root@jupiter:/etc]
・apacheユーザの設定
# ftpasswd --passwd --name=apache --uid=48 --gid=48 \ --home=/home/www --shell=/sbin/nologin ftpasswd: creating passwd entry for user apache
Password:← パスワードの入力 Re-type password:← 再入力
ftpasswd: entry created
・apacheグループの設定
# ftpasswd --group --name=apache --gid=48 ftpasswd: creating group entry for group apache ftpasswd: entry created
・パスワードのグループ・パーミッションを変更しておきます
# cd ~
[root@jupiter:~]
# chown root:nobody /etc/{ftpd.passwd,ftpd.group}
# chmod o-r /etc/{ftpd.passwd,ftpd.group}
local_port_rangeの調べ方・ローカルの使用するportの範囲
[root@jupiter:~]
# cat /proc/sys/net/ipv4/ip_local_port_range
32768 61000
PASV接続の例gftpのコネクションログの例では
PASV 227 Entering Passive Mode (134,160,38,1,206,165)
グローバルアドレス 134.160.38.1
port 52901 (256x206+165=52901) で接続していることになります
ftp のレスポンスコード![]() |
Copyright(c) 528p.com All Rights Reserved. |

