サーバへのファイル転送方法

サーバの監視関係がだいぶ整ってきたので、wikiグループウェアサイボウズデヂエ)、チューニング実験に使う業務APなどを各地に散らばってるWindowsサーバなどから引越してくる作業をやろうと思いました。

で、サーバにどうやってファイルを送るかというと、単純に考えればftpなのですが、ここでも一波乱ありました。

vsFTPDのインストール

インストール自体はOSのインストールの時に完了していた。

vsFTPDの設定

デフォルトの設定では、xinetd経由ではなくて、vsftdが独力でlistenするようになっていた。

[root@linux38 cgi]# vi /etc/vsftpd/vsftpd.conf
(略)
listen=YES
(略)

 #/etc/init.d/vsftpd start

デフォルトの状態で起動して、linuxユーザアカウントのIDとパスワードを使ったffftpでログインできた。
ffftp上でサーバ側にフォルダを作成できなかった。ファイル単体でのuploadは出来た。

まずはエラーログ探しから。

[root@linux38 etc]# tail -f /var/log/messages
Nov 3 10:45:04 linux38 snmpd[12492]: Received SNMP packet(s) from UDP: [192.168.10.38]:33611
Nov 3 10:45:04 linux38 snmpd[12492]: Connection from UDP: [192.168.10.38]:33611
Nov 3 10:45:04 linux38 last message repeated 9 times
Nov 3 10:45:58 linux38 kernel: audit(1162518358.041:204): avc: denied { create } for pid=23510 comm="vsftpd" name="ww" scontext=user_u:system_r:ftpd_t:s0 tcontext=user_u:object_r:user_home_t:s0 tclass=dir
Nov 3 10:47:31 linux38 kernel: audit(1162518451.319:205): avc: denied { create } for pid=23521 comm="vsftpd" name="htdocs" scontext=user_u:system_r:ftpd_t:s0 tcontext=user_u:object_r:user_home_t:s0 tclass=dir
Nov 3 10:50:02 linux38 snmpd[12492]: Connection from UDP: [192.168.10.38]:33611
Nov 3 10:50:02 linux38 last message repeated 3 times
Nov 3 10:50:03 linux38 snmpd[12492]: Connection from UDP: [192.168.10.38]:33612
Nov 3 10:50:03 linux38 snmpd[12492]: Received SNMP packet(s) from UDP: [192.168.10.38]:33612
Nov 3 10:50:03 linux38 snmpd[12492]: Connection from UDP: [192.168.10.38]:33612

nagiosの時と同じく、audit関連でdenyされてる。
ディレクトリでuploadできるように設定を変えるんじゃなくて、一応、SELinuxの精神にも少し則って(?)、uploadできるディレクトリを限定するとか、ユーザを限定するとか、そういう方法での解決を試みる(つもり)。

ftp以外の方法でサーバにファイルを転送する。

puttyに同梱している

を試した。
psftpで mput *で転送すると、ファイルは送れたけど、ディレクトリの転送は出来なかった。
ローカル側でtar.gzに圧縮してから転送しようと思ったけど、wikiディレクトリはファイル数が多いので圧縮に時間がかかってる(面倒になった)。
この間に、pscpを試す。
引数なしでpscpを(コマンドプロンプト上で)実行すると詳細はオプション説明が表示されます。

 C:\bin\putty>pscp -C -r -l susa -pw (linuxユーザsusaのOSでのパスワード) c:\htdocs 192.168.10.38:/home/susa

or

 C:\bin\putty>pscp -C -r -l susa c:\htdocs 192.168.10.38:/home/susa

2番目のほうはプロンプトが出てパスワード入力を促されます。

pscpだと -rオプションでリカーシブ(再帰的)に、つまりディレクトリごとの転送が出来ました。

ということで、vsftpdの設定はしばらくおあずけ。
当面はpscpでやってみる。
puttyの入っていないPCからちょっとだけファイルuploadしたいんだけど、なんてのに対応できないけど。