一般社団法人 全国個人事業主支援協会

COLUMN コラム

作業中、情けない程ドハマリした。

この悔しさを一生忘れない為にもここに記す。

 

Linux Redhat7系を使った、とあるウェブサーバの話。

 

結論から言うと、ユーザのFTPアクセスの設定で、

2日分の工数ぐらいはハマってしまった、という話…。

 

 

要件として、

・よくあるApacheを使ったウェブサーバを構築したい。

・コンテンツは静的ページのみとする。

・この1台のサーバで、10個のウェブサイトを運用したい。

・つまりは、10個のドメインを設定が必要。

・10個分のバーチャルホストを設定し、それぞれのウェブ領域のドキュメントルートを決める。

・SSLはいったん忘れてよい。

・10個分のユーザアカウント作成。

・クォータ制限でそれぞれ容量を5GBまでとしたい。

・ユーザはFTPでコンテンツをアップする。

・個々のドキュメントルートを、/(ルートディレクトリ)にする。

・FTP以外のアクセス(ssh等)は禁止としたい。 ⇒ここがハマった部分

・FW等のアクセス制御は、別機器で行う為、考えなくてよい。

 

とする。

設定パラメータが決まっていたら、慣れている人なら1日で作れる物かもしれない。

 

 

 

 

ザッと設定はこんな感じになる。

(思い出しながら記述するのでおかしい所があったら申し訳ない。)

 

【Apache】

・/etc/httpd/conf/httpd.conf に適切な設定を入れる。(特に変わった事はしていない)

・バーチャルホストの設定を10個入れる。ドキュメントルートを /home/www/web-user1 とする。(先にディレクトリを作っておく必要あり。)

・chmod chown も忘れずに。(ユーザ作った後に実施)

 

 

【ドメイン設定】

/etc/hosts で10個分指定する。グローバルIPは1個の場合。

(例)

www.hogehoge.co.jp        100.100.100.1

www.mokomoko.com        100.100.100.1

…の様な記述を合計10行記述。(localhost も有)

 

【IP設定】

nmtuiで100.100.100.1/32を設定。

(古いOSなら、/etc/sysconfig/network-scrypt/ifcfg-ensXXXを直編集し、サービスリラン)

 

【ユーザ設定】

・useradd / groupadd で任意のアカウントを作成。

・passwd でPWも指定。

・要件にある通り、FTPアクセスオンリーなので、通常ログイン(SSHやsu -)を禁止する為に、

usermod -s /sbin/nologin user1 を実施。  →今回ココが(僕にとって)曲者だった。

・ユーザーのホームディレクトリを元から変えちゃう。(vsftpで指定しても良いが、こっちのがシンプル。)

usermod -d /home/www/web-user1 user1

 

【クォータ制限】

・クォータが使えるまでの設定は割愛(すみません)

・/usr/sbin/edquota -u user1 でblockのHardを50,000,000,000(KB表示で5GB。実際は”,”は付けません)に設定。

 

【FTP設定】

・vsftpを使用し、/etc/vsftp/vsfptd.confへ適切な設定を入れる。

・chrootの適切な値を設定。(参考↓ ここもだいぶ苦戦した><)

https://qiita.com/mugi-tea/items/b6ee5d9127409667bc7c

 

【FW辺り】

別機器の機能でまかなう為、iptable・Firewallはdisableへ。

 

 

 

 

 

等々、ザッと書いたが、OS回りやDNS設定は為されている物としたら、

あらかた設定出来ている気がしてくる。

実際、ブラウザでテスト画面はちゃんと出るし、クォータもちゃんと効いてるし、

rootユーザの状態で「su – user1」を行うと、スイッチ出来ない(nologinが効いているから正しい。)し、

あとはFTPアクセスか~と思って実施したら、

user1でFTPが出来ない。。。

とここからドハマりタイム突入。

 

サーバまでの接続は出来ている様で、PW設定がミスったか?と思ったけど、

何度やり直しても変わらず。

vsftpd.confの設定がおかしいのか、何度も見直しいろいろ試すも、解決出来ず。

パスワードが上手く変更されていないのか、/etc/pam.dの中も一通りチェックしたりと、

超ハマりまくり。。。

 

ここまで読んでくれる人はあまり居ないと思うが、多分気付いていると思う。

nologinのせいじゃね?」と…。

結論、その通り。。。

nologinについて、知識が足りていなかった。。。

なぜか思い込みでsu -のみ禁止するものと思い込んでいた。。。

◆/usr/sbin/edquota -u foo最近のnologinは/etc/shellsに含まれていない

https://qiita.com/Marukaziler/items/51da64b8935444c1d9e7

ここの設定で、無事解決しました。

 

 

 

 

Linuc、受けようかな。。。

一度参考書を読んで知識を詰め込んだ方が良いよなやっぱ。。。

 

いろんな人に迷惑をかけてしまったと、大いに反省…。

 

同じ部分では二度とハマらない様に、死ぬまで忘れない様にします。。。

 

The following two tabs change content below.

norihiro_ono

最新記事 by norihiro_ono (全て見る)

この記事をシェアする

  • Twitterでシェア
  • Facebookでシェア
  • LINEでシェア