ProFTPD
ProFTPDについて 本家サイト
LIMIT LOGINってのはserver configかVirtualHostかAnonymousコンテキストしか有効ぢゃないのだよ。これにはまった。 その他のLIMITブロックはどこでも使えるんだけどねー。LOGINはスペシャルコマンドなんだ!って記述があったさ。
SL6で
SL6でのお話をメモ
proftpdはepelリポジトリにある
yum install proftpd --enablerepo=epel chkconfig proftpd on
設定ファイル達
/etc/blacklist.dat | |
/etc/dhparams.pem | |
/etc/ftpusers | ログインを拒否するユーザ一覧 |
/etc/pam.d/proftpd | 認証設定ファイル |
/etc/proftpd.conf | 本体設定ファイル |
/etc/sysconfig/proftpd | 設定ファイル |
デフォルトのままで、一般ユーザがログインしたらホームディレクトリがトップディレクトリになる
mod_wrapを有効にしてユーザ毎のアクセスコントロールを設定できる
vi /etc/proftpd.conf LoadModule mod_wrap.c TCPAccessFiles ~/etc/ftp.allow ~/etc/ftp.deny ~(チルダ)をつけるとユーザ毎のホームディレクトリを指し示す cat ~/etc/ftp.deny proftpd: all cat ~/etc/ftp.allow proftpd: xxx.xxx.xxx.xxxファイルがなければ、制限なし
ログファイルの件
ServerLog [path]を設定するとサーバに関する全てが出力されるね ExtendedLog [path]を設定するとカスタムログファイルが出力されるね
RPMパッケージの作成
CentOS 5.5の環境で作成してみる。OS最小インストール+開発環境のみ選択直後の状態。 rootユーザで実行する。純粋な環境で実行するためにRPMパッケージの追加等もリポジトリは利用せずDVDを利用する。
- 必要なパッケージをDVDからインストール
mount /dev/cdrom /mnt cd /mnt/CentOS rpm -ihv mysql-devel-5.0.77-4.el5_4.2.i386.rpm mysql-5.0.77-4.el5_4.2.i386.rpm perl-DBI-1.52-2.el5.i386.rpm rpm -ihv postgresql-devel-8.1.18-2.el5_4.1.i386.rpm postgresql-8.1.18-2.el5_4.1.i386.rpm
- ソースファイルをダウンロード
wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.3b.tar.bz2
- 展開してspecファイルを取り出す
tar jxf proftpd-1.3.3b.tar.bz2 cp proftpd-1.3.3b/proftpd.spec /usr/src/redhat/SPECS
- ソースファイルをコピー
cp proftpd-1.3.3b.tar.bz2 /usr/src/redhat/SOURCES
- パッケージ作成
cd /usr/src/redhat/SPECS rpmbuild -ba --with mod_tls --with mod_sftp --with mod_radius --with mod_ldap \ --with mod_wrap --with mod_wrap2 --with mod_wrap2_file --with mod_wrap2_sql \ --with mod_sql --with mod_sql_mysql --with mod_sql_postgres \ --with mod_rewrite --with mod_ifsession --with mod_facl --with mod_quotatab \ --with mod_quotatab_file --with mod_quotatab_sql --with mod_ban --with mod_ctrls_admin --with mod_site_misc \ --with ipv6 --with ctrls --with dso --with lastlog --with nls proftpd.spec
- パッケージは/usr/src/redhat/RPMS/i386に作成されるので適宜インストールする
x86_64の場合、proftpd.specのconfigure行に細工が必要かも
220行目に挿入 --with-pkgconfig=/lib64/pkgconfig \pkgconfig/proftpd.pcを探しにいくのだけども、どうもパスがおかしくなる。
Defaultではlib/pkgconfigなんだけど、specファイルではprefixに/usrが指定されていてlibdirが/usr/lib64に設定される。
この結果、/usr/lib/pkgconfigを探しにいくんだけど実際には/usr/lib64/pkgconfigにあるんだよね。
contrib
ソースファイルのcontribディレクトリにはサードパーティ製モジュール等がある。ここにftpasswd等の便利なツールがあるのでインストールしておくのが良いとおもわれる。RPMやソースからのインストールでも自動的にはインストールされないので手動でインストールしてあげる。
cd contrib install -m 0755 ftpasswd /usr/bin install -m 0755 ftpmail /usr/bin install -m 0755 ftpquota /usr/binこれらは全てPerlスクリプトで記述されている。