ネプラスのテックブログ。ネットワーク、クラウド、サーバなどのITインフラ情報を中心に発信中。

  1. ネプラス インフラエンジニア採用
  2. テックマガジン
  3. サーバー
  4. LinuxでのFTPサーバの構築方法

LinuxでのFTPサーバの構築方法

  • サーバー
  • テクノロジー
公開日時:   更新日時:
LinuxでのFTPサーバの構築方法
この記事でわかること
    基本情報技術者試験の試験対策はこちら>>

    Linuxエンジニア 案件・求人一覧はこちら

    FTPサーバとは?

    FTPとは、File Transfer Protocolの頭文字を取ったもので、ファイルをコンピュータ間で転送するためのプロトコルのことです。FTPクライアントとFTPサーバから構成されます。FTPの使用例として、ホームページ作成時にローカルマシンからLinuxで構成されたWebサーバにファイルを転送する際などがあげられます。この記事では、LinuxでのFTPサーバの構築方法を解説します。今回はCentOS 8を使いますが、大筋では他のLinuxも変わりありません。

    FTPサーバの設定方法

    vsftpdのインストール方法

    FTPサーバは、Linuxにvsftpdというパッケージをインストールして、サービスとして起動しておくことで構築します。CentOS 8の場合dnf -y install vsftpdで大丈夫です。-yは、インストール途中のYes/Noに対し全てYesで答えます、というオプションです。

    chroot

    通常、FTPサーバでは、接続してきたクライアントに対し、Linux上でより上位のディレクトリに行けないように構築します。これをchrootと言います。これは、少し面倒です。まず、vsftpdの設定ファイルである、/etc/vsftpd/vsftpd.confを編集する必要があります。次の3行のコメントアウトを外して有効にします。chroot_local_user=NOchroot_list_enable=YESchroot_list_file=/etc/vsftpd/chroot_list

    それから、次の設定を書き加えます。

    userlist_enable=YESuser_config_dir=/etc/vsftpd/user_confallow_writeable_chroot=YES

    次に、vi /etc/vsftpd/chroot_listでFTPに使うLinuxのユーザー名を書きましょう。ユーザー名をただ書くのみです。ただし、FTPはログインして行うので、ログインできるユーザー名にする必要があります。

    それから、mkdir /etc/vsftpd/user_confでuser_confディレクトリを作成し、中に先ほど設定したFTPのユーザー名のファイルを作ります。そのファイルにlocal_root=(Linuxサーバーでのホームディレクトリ)と書きます。こうすることで、FTPサーバにログインできるユーザーを制限し、かつ、FTPサーバにログインした時のホームディレクトリが設定され、かつ、そのホームディレクトリより上位のディレクトリには移動できないようにFTPサーバを構築できるのです。

    たとえば、ftp-userというユーザーにFTPを許可すると

    [root@118-27-39-100 ~]# cd /etc/vsftpd[root@118-27-39-100 vsftpd]# ls -ltotal 28-rw-r–r– 1 root root 9 May 20 07:43 chroot_list-rw——- 1 root root 125 May 14 2019 ftpusersdrwxr-xr-x 2 root root 4096 May 20 07:49 user_conf-rw——- 1 root root 361 May 14 2019 user_list-rw——- 1 root root 5197 May 20 08:44 vsftpd.conf-rwxr–r– 1 root root 348 May 14 2019 vsftpd_conf_migrate.sh[root@118-27-39-100 vsftpd]# cat chroot_listftp-user[root@118-27-39-100 vsftpd]# cd user_conf[root@118-27-39-100 user_conf]# ls -ltotal 4-rw-r–r– 1 root root 26 May 20 07:49 ftp-user[root@118-27-39-100 user_conf]# cat ftp-userlocal_root=/home/ftp-user

    という設定になります。

    最低限の設定

    以下はいずれも、/etc/vsftpd/vsftpd.confに書き加えてください。まずforce_dot_files=YESこれは、.で始まるファイルを一覧で表示する、というオプションです。次にuse_localtime=YESローカルタイムを使った方が何かと便利です。以上でvsftpdの設定は終了です。

    FTPサーバの起動方法

    ファイアウォールの設定を忘れずに

    CentOS 8にはデフォルトでファイアウォールが構築されていますので、ここまで設定してFTPサーバを起動しても、ファイアウォールの設定を変えないと接続が弾かれてしまいます。CentOS 8のファイアウォールでFTPを開放するにはfirewall-cmd –add-service=ftp –permanentと打ち込みます。successと表示されたらfirewall-cmd –reloadでファイアウォールを「リロード」します。これでファイアウォールの設定は更新されます。

    サービスの起動

    さあ、いよいよFTPサーバの構築です。systemctl start vsftpdと打ち込んでください。systemctlはCentOS 8でサービスを制御するコマンドです。これでLinux上でFTPサーバを構築することができました。

    FTPの方法

    FTPを使ってみる

    以下はWindowsのコマンドプロンプトでFTPクライアントを起動し、118.27.39.100に構築したFTPサーバに接続したときの例です。

    ftp> open 118.27.39.100118.27.39.100 に接続しました。220 (vsFTPd 3.0.3)200 Always in UTF8 mode.ユーザー (118.27.39.100:(none)): ftp-user331 Please specify the password.パスワード:230 Login successful.ftp> ls -l200 PORT command successful. Consider using PASV.150 Here comes the directory listing.-rw——- 1 1000 1000 37 May 20 07:47 .bash_history-rw-r–r– 1 1000 1000 18 Nov 09 2019 .bash_logout-rw-r–r– 1 1000 1000 141 Nov 09 2019 .bash_profile-rw-r–r– 1 1000 1000 312 Nov 09 2019 .bashrc226 Directory send OK.ftp: 280 バイトが受信されました 0.01秒 35.00KB/秒。

    この状態でファイルの受け渡しが可能です。もちろん他のFTPクライアントを使用することも可能です。

    FTPサーバは簡単に構築できる

    以上、LinuxでのFTPサーバの構築方法の解説でした。この記事で解説したように、FTPサーバは簡単に構築できます。FTPできるユーザーを増やしたかったら/etc/vsftpd/chroot_listにユーザー名を書き込むだけです(1行に1ユーザー書き込んでください)。忘れずに、/etc/vsftpd/user_confにそのユーザー名のファイルを作り、FTPのルートディレクトリを指定しましょう。原理的にはこれで、多数のユーザーがアクセスしてくるCMSのようなWebサーバのFTPサーバも構築できてしまいます。覚えてしまえば簡単ですので、ぜひ使いこなしてください。

    Linuxエンジニア 案件・求人一覧はこちら

    FEnetを運営しているネプラス株式会社はサービス開始から10年以上
    『エンジニアの生涯価値の向上』をミッションに掲げ、
    多くのインフラエンジニア・ネットワークエンジニアの就業を支援してきました。
    ネプラス株式会社ロゴ

    ネプラス株式会社はこんな会社です

    秋葉原オフィスにはネプラス株式会社をはじめグループのIT企業が集結!
    数多くのエンジニアが集まります。

    秋葉原オフィスイメージ
    • インフラ業界に特化

      インフラ業界に特化

      ネットワーク・サーバー・データベース等、ITインフラ業界に特化。Cisco Systemsプレミアパートナーをはじめ各種ベンダーのパートナー企業です。

      業界を知り尽くしているからこそ大手の取引先企業、経験豊富なエンジニアに選ばれています。

    • 正社員なのにフリーランスのような働き方

      正社員なのにフリーランスのような働き方

      正社員の方でも希望を聞いたうえでプロジェクトをアサインさせていただいており、フリーランスのような働き方が可能。帰社日もありません。

      プロジェクト終了後もすぐに次の案件をご紹介させていただきますのでご安心ください。

    • 大手直取引の高額案件

      大手直取引の高額案件

      案件のほとんどが大手SIerやエンドユーザーからの直取引のためエンジニアの皆様へに高く還元できています。

      Ciscoをはじめ、Juniper、Azure、Linux、AWS等インフラに特化した常時300件以上の案件があります。

    • スキルアップ支援

      スキルアップ支援

      不要なコストを削減し、その分エンジニアの方へのスキルアップ支援(ネットワーク機器貸出、合格時の受験費用支給など)や給与で還元しています。

      受験費用例)CCNP,CCIE:6-20万円、JNCIS:3-4万円、AWS:1-3万円など

      ※業務に関連する一定の資格のみ。各種条件がありますので詳しくは担当者へにお尋ねください。

    • 現給与を保証します!

      100%現給与保証

      前職の給与保証しており、昨年度は100%の方が給与アップを実現。収入面の不安がある方でも安心して入社していただけます。

      ※適用にはインフラエンジニアの業務経験1年以上、等一定の条件がございます。

    • インセンティブ制度

      インセンティブ制度

      ネットワーク機器の販売・レンタル事業等、売上に貢献いただいた方にはインセンティブをお支払いしています。

      取引先企業とエンジニア側、双方にメリットがあり大変好評をいただいています。

    • 社会保険・福利厚生

      社会保険・福利厚生

      社員の方は、社会保険を完備。健康保険は業界内で最も評価の高い「関東ITソフトウェア健康保険組合」です。

      さらに様々なサービスをお得に利用できるベネフィットステーションにも加入いただきます。

    • 東証プライム上場企業グループ

      東証プライム上場企業グループ

      ネプラスは東証プライム上場「株式会社夢真ビーネックスグループ」のグループ企業です。

      安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。

    ネプラス株式会社に興味を持った方へ

    ネプラス株式会社では、インフラエンジニアを募集しています。

    年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
    オンライン面接も随時受付中。ぜひお気軽にご応募ください。

    ネプラス株式会社へのご応募はこちら↓
    ネプラス株式会社へのご応募はこちら↓

    Linux新着案件New Job