実践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)へ

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


RockyLinux

RockyLinux8.4のインストール

旧サーバーからのデータ移行

ネットワークの設定ほか
ダイレクトルールを使ったfirewallの強化
DNS(BIND)サーバー
DHCPサーバー
FTPサーバー
FTPS(FTP over SSL/TLS)
Webサーバー
  アクセス解析ツールAwstats
Mail(Dovecot&Postfix)サーバー
MariaDB(MySQL)サーバー
SSHサーバー
SSHトンネル
SSH+MariaDB+Exel
Sambaサーバー
openVPNサーバー
VNCサーバー(リモートディスクトップ)

systemdとfirewalldについて


CentOS8
CentOS7
CentOS5〜6

SELinux

Cプログラミング


●その他
クラウド Amazon EC2
Raspberry Piで遊ぶ
印刷機関連開発
 刷版絵柄面積率測定
 Indesign上にPDF自動配置
数独をExcelで解く


●趣味の世界
相対性理論
量子力学
群論
熱力学・統計力学
解析力学
物理でつかう数学
超弦理論(ノート作成中)