オープンソースのFTPサーバソフト
./configure --help
iconv -l
cd /usr/src/redhat/ wget http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.36.tar.gz tar xvfz pure-ftpd-1.0.36.tar.gz mv pure-ftpd-1.0.36.tar.gz SOURCES/ cp pure-ftpd-1.0.36/pure-ftpd.spec.in SPECS/pure-ftpd.spec vi SPECS/pure-ftpd.spec ---- %define version 1.0.36 %define con_altlog 1 %define con_cookie 1 %define con_diraliases 1 %define con_extauth 1 %define con_ftpwho 1 %define con_largefile 1 %define con_pam 1 %define con_peruserlimits 1 %define con_puredb 1 %define con_quotas 1 %define con_ratios 1 %define con_rfc2640 1 %define con_throttling 1 %define con_tls 1 %define con_uploadscript 1 %define con_virtualchroot 1 %define con_virtualhosts 1 ---- rpmbuild -ba SPECS/pure-ftpd.spec rpm -ivh RPMS/i386/pure-ftpd-1.0.36-1.tls.i386.rpm rm -rf pure-ftpd-1.0.36 chkconfig --add pure-ftpd
cd /usr/local/src wget http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.35.tar.bz2 tar jxvf pure-ftpd-1.0.35.tar.bz2 cd pure-ftpd-1.0.35 ./configure \ --with-altlog \ --with-cookie \ --with-diraliases \ --with-everything \ --with-extauth \ --with-ftpwho \ --with-largefile \ --with-pam \ --with-peruserlimits \ --with-privsep \ --with-puredb \ --with-quotas \ --with-ratios \ --with-rfc2640 \ --with-throttling \ --with-tls \ --with-uploadscript \ --with-virtualchroot \ --with-virtualhosts \ --with-welcomemsg \ make make install cp contrib/redhat.init /etc/init.d/pure-ftpd chmod 755 /etc/init.d/pure-ftpd chkconfig --add pure-ftpd cp configuration-file/pure-ftpd.conf /etc cp configuration-file/pure-config.pl /usr/local/sbin chmod 755 /usr/local/sbin/pure-config.pl
--- /etc/rc.d/init.d/pure-ftpd.rpmnew 2012-01-31 10:43:16.000000000 +0900 +++ /etc/rc.d/init.d/pure-ftpd 2010-06-13 22:00:09.000000000 +0900 @@ -15,11 +15,18 @@ # Path to the pure-ftp binaries. prog=pure-config.pl +uprog=pure-uploadscript +vprog=/usr/local/bin/pure-antivirus.pl fullpath=/usr/local/sbin/$prog +vfullpath=/usr/local/sbin/$uprog pureftpwho=/usr/local/sbin/pure-ftpwho - start() { + echo -n $"Starting $uprog: " + $vfullpath -r $vprog 2>&1 >/dev/null & + RETVAL=$? + echo + echo -n $"Starting $prog: " $fullpath /etc/pure-ftpd.conf --daemonize RETVAL=$? @@ -27,6 +34,11 @@ echo } stop() { + echo -n $"Stopping $uprog: " + kill -9 `cat /var/run/pure-uploadscript.pid` + RETVAL=$? + echo + echo -n $"Stopping $prog: " kill $(cat /var/run/pure-ftpd.pid) RETVAL=$?
vi /etc/pure-ftpd.conf ---- # ファイルシステムの文字コード FSCharset UTF-8 # FTPクライアントの文字コード ClientCharset SJIS-WIN # 全員chrootにするか? ChrootEveryone no # このグループIDはchroot対象外 TrustedGID 500 BrokenClientsCompatibility yes # 最大クライアント数 MaxClientsNumber 10 # デーモンで起動するか Daemonize yes # 1IPアドレスあたりの最大接続数 MaxClientsPerIP 4 # 詳細ログをとるか? VerboseLog no # .xxxファイルのようなドットから始まるファイルを見せるか? DisplayDotFiles yes # Anonymousだけ? AnonymousOnly no # Anonymousは拒否するか? NoAnonymous yes SyslogFacility ftp # 逆引きをしない? DontResolve yes # 最大アイドルタイム MaxIdleTime 5 # PureDBを使う PureDB /etc/pureftpd.pdb # 最大表示ファイル数 ディレクトリの深さ LimitRecursion 2000 8 # Anonymousはディレクトリを作れる? AnonymousCanCreateDirs no # 最大負荷 MaxLoad 1 # アンチWarez AntiWarez yes AnonymousBandwidth 1000000 Umask 133:022 # これ以下のユーザIDはログインできない(既存のftpユーザを使うのでその番号以下に指定) MinUID 1 AllowUserFXP no AllowAnonymousFXP no # .xxxのようなドットで始まるファイルの書き込み禁止。TrustedGIDは除外 ProhibitDotFilesWrite no # .xxxのようなドットで始まるファイルの読み込み禁止。TrustedGIDは除外 ProhibitDotFilesRead no AutoRename no # Anonymousはアップロードできない AnonymousCantUpload no AltLog clf:/var/log/pureftpd.log PIDFile /var/run/pure-ftpd.pid CallUploadScript yes MaxDiskUsage 99 CustomerProof yes # SSLの使い方(0:使わない, 1:両方使える, 2:SSLのみ許可) #TLS 1 IPV4Only yes ----
syslogの設定 # vi /etc/syslog.conf ---- # ftp ftp.* /var/log/pureftpd.log ---- # service syslog restart ログファイルを分割 # vi /etc/logrotate.d/pureftpd ---- /var/log/pureftpd.log { missingok notifempty compress } ----
yum install clamav --enablerepo=rpmforge freshclam cp pure-antivirus.pl /usr/local/bin/ chown root. /usr/local/bin/pure-antivirus.pl chmod 755 /usr/local/bin/pure-antivirus.pl
service pure-ftpd restart
more /etc/group | grep ftp ftp:x:50: more /etc/passwd | grep ftp ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
mkdir -p /var/ftp/pub mkdir -p /var/ftp/up chown -R admin:admin /var/ftp/pub chown -R ftp:ftp /var/ftp/up
pure-pw useradd admin -m -u admin -y 0 -D /home/admin pure-pw useradd demo -m -u ftp -y 4 -d /var/ftp pure-pw mkdb
pure-pw show admin
pure-pw list
pure-pw usermod admin -y 0
pure-pw userdel admin
pure-pw passwd admin
pure-pw mkdb
pure-pw passwd admin -m
touch "#000 -----------------------------------------------------------------" touch "#001 pub はダウンロードのみ可能です" touch "#002 up はアップロード可能です" touch "#999 -----------------------------------------------------------------"