実践Linux
CentOS5/6.5        CentOS5/6.5 目次へ  TOP(HOME)へ

FTPサーバー(CentOS 6.5)  2014年9月





●FTPサーバー(vsftpd)

・設定ファイル /etc/vsftpd/vsftpd.conf
 以下、#をはずす。
 ascii_upload_enable=YES  アスキーモードでのアップロード・ダウンロード許可。
 ascii_download_enable=YES
 chroot_local_user=YES  ローカルユーザーはchroot有効。

 あとはほぼ変更なしで使えるようになっている。
 ただし、 tcp_wrappers = YES となっているので、/etc/hosts.allow に許可を出しておく必要がある。
 また、 listen = YES なのでスタンドアローン=サービスの起動が必要。(xinetd経由だとNOにしておく。この場合は、常時アクティブではなく接続ごとの起動となる。当然サービスは停止しておく。)

・/etc/hosts.allow  vsftpd: 192.168.7. 等。
             (ここではALL: 192.168.7. があるのでなにもしない。)

・vsftpdサービスの起動。

・SElinux
 booleanのポリシーは、 # getsebool -a | grep ftpで調べておく。
 ポリシーftp_home_dirをONにして、ホ−ムにアクセスできるようにする。
 # setsebool -P ftp_home_dir 1
 しかし、これだけでは /var/www にはアクセスできないことが判明(CentOS5では大丈夫だったが)。
 # setsebool -P allow_ftpd_full_access 1  (多少危険な感じもするが)

・iptables ftp関連モジュールの設定
 必要に応じて、サーバ側に向かってくるtcp/21の通信を許可しておく。
 ftp関連モジュールの設定
 /etc/sysconfig/iptables-config
  IPTABLES_MODULES="nf_conntrack_ftp nf_nat_ftp"   IPTABLES_MODULES=に追加
 iptalbesを再起動し、ロードされているモジュールを確認。
 # lsmod | grep ftp

iptablesとFTPパッシブモード
iptablesに「ip_conntrack_ftp」モジュールを組み込んでおくと、データコネクションやパッシブモードの対応を自動で行ってくれる。
FTPでクライアントからサーバにファイルを送信するには、通常のモードではクライアントからサーバに接続した後、サーバからクライアントにデータ通信用の接続要求を行い、このコネクションを利用してファイル送信を行う。この方式だと、クライアントがファイアウォールの内側にあり、外部から直に接続要求を行うことができないような環境ではファイルの送信が行えない。こうした場合に利用するのがパッシブモードである。
サーバ側に向かってくるtcp/21の通信を許可しておく。データ通信は「ip_conntrack_ftp」モジュールが解決してくれる。データコネクションのtcp/20番ポートもip_conntrack_ftpのステートフルパケットインスペクションにより、iptablesが開けてくれる。パッシブモード用のポートもvsftpd.cofn側で固定する必要もなく、iptablesで明示する必要もない。


/etc/vsftpd/vsftpd.confの主な設定項目
local_enable=YES
write_enable=YES
local_umask=022

ascii_upload_enable=YES
  アスキーモードでのアップロード・ダウンロード許可。
ascii_download_enable=YES

chroot_local_user=YES
  ローカルユーザーは全てchrootを有効にする。
#local_root=public_html
  さらにchrootするディレクトリを指定する場合。
#chroot_list_enable=YES
  下のリストファイルを利用する場合。
#chroot_list_file=/etc/vsftpd/chroot_list
上のchroot_local_user=YESの設定がないとchrootするユーザーリストとなるが、上の設定があると逆転してchrootしない(全て覗ける)ユーザーリストとなる。

#ls_recurse_enable=YES
  ディレクトリを丸ごと削除できるようにする。

userlist_enable=YES
  ←/etc/vsftpd/user_listは接続拒否ユーザーリスト/ftpusersは認証後拒否/他は許可
userlist_enable=YESのとき、userlist_deny=YES(デフォルト)なら、user_listは拒否/ftpusersは認証後拒否/他は許可。userlist_deny=NOなら、user_listのみ許可/ftpusersは認証エラー/他は拒否)
userlist_enable=NO →user_listを使用しない/ftpusersは拒否ユーザーとなる

tcp_wrappers=YES



●公開する場合(暗号化通信なしでは危険!)
/etc/hosts.allow  vsftpd: All  絞り込める場合は、絞り込む。
/etc/sysconfig/iptables  -A INPUT -d 333.333.333.210 -p tcp -m tcp --dport 20:21 -j ACCEPT
                 -s で絞り込める場合は、絞り込む。

InternetExplorerでアクセスする場合  ftp://ユーザー:パスワード@333.333.333.210

●SSL/TLSを利用した暗号化通信については、SSL/TLSのページを参照してください。



TOP(HOME)へ

目 次

特別企画
Raspberry Piで遊ぶ

HOME(全体のシステム構成&目次)

CentOS7
CentOS7のインストール〜ネットワークの設定ほか
CentOS7の新機能(systemdとfirewalld)
ダイレクトルールを使ったfirewallの強化
DNS(BIND)サーバー
Webサーバー
  Webでファイルの受け渡し
  アクセス解析ツールAwstats
  Wordpressでブログ構築
FTPサーバー
FTPS(FTP over SSL/TLS)
Mail(Dovecot&Postfix)サーバー
Sambaサーバー
MariaDB(MySQL)サーバー
DHCPサーバー
SSHサーバー
VNCサーバー
ストリーミングサーバーRed5
ドメインの追加

CentOS5〜6
ネットワーク&ファイアウォール(iptables)
DNS(BIND)サーバー
DHCPサーバー
メールサーバー(基本)
メールサーバー/実際の運用
Webサーバー
  WebDAVによるファイル共有
  Webでファイルのやり取り
  アクセス解析ツールawstats
  namazuで全文検索
  WordPressブログサイト構築
  EC-CUBEショッピングサイト構築
FTPサーバー
ファイルサーバー・Samba
データベースpostgreSQL
  ExcelからpostgreSQLを操作
データベースMySQL
SSHサーバー
VNC
SSL/TLSを利用した暗号化通信
openVPN
ストリーミングサーバー
    C++ RTMP Server
    Helix server Basic
ドメインの追加
Xen・仮想化
特定ディレクトリに容量制限

SELinux
SELinux基本設定
新しいタイプとポリシー・モジュールを作成してみる
マクロを利用したteファイルの記述
新しいドメインを導入してみる

coLinux
Fedora11で試す

Cプログラミング目次
X11プログラム
サイエンス・プログラム

計測・プログラム
秋月電子のデーターロガーpico ADC-16
「今すぐ使えるパソコン計測USBマイコン基板」に付属のTRZ1102
センサーの使用例

Glade2/GTK+を使ってみる
テキスト・ビューで簡易エディター
ドローイングエリアで自動描画
放物線運動(pango、cairoも試してみる)
これらを、GTK+のみで書き出す

フォントについて
ネットワーク・プログラミング
postgreSQL接続
CGI
ファイル操作

●その他
印刷機関連開発 刷版絵柄面積率測定
数独をExcelで解く