概要CentOS7でDjangoを動かすシリーズの一つです。CentOS7の初期設定を行っていきます。アップデートアップデートしましょう。多くのソフトウェアは日々アップデートされています。古いバージョンだと脆弱性がある場合もあるので、必ず行いましょう。updateパケットフィルタの無効化さくらVPSコントロールパネルを開いておきましょう。2019年6月27日から、さくらVPSでパケットフィルタという機能が標準で使われるようになっています。これは、今までfirewall-cmd...のように実行していたコマンドの代わりを、VPSコントロールパネル上から行えるようになったものです。現状だと開けれるポート番号の種類が少ないため、このパケットフィルタ機能を無効化して今までどおりのコマンドで行っていきます。パケットフィルタの廃止の手順は、公式ページを見てください。firewalldで、既存のfirewalldを開始するようにしてください。その後はfirewall-cmdのようにしてポートを開けたり、今までどおりのことが行なえます。次に、一般ユーザーを追加します。rootユーザーでの直接操作はあまりよろしくなく、後でこのユーザーで操作できるようにしていきます。spamSSHのポート変更とrootログインの禁止rootユーザーで第三者にログインされてしまうと、それはサーバーが乗っ取られたことと同義です。初期状態だと、SSHでのログインに必要なのはユーザー名とパスワード、ポートです。このうちユーザー名がrootでポートが22のままだと、パスワード総当たりで突破されます。設定ファイルを開きます。/etc/ssh/sshd_configポートは1024以降で、他のアプリケーションが割り当てられていない数字にしましょう、#Portの#を外して、数字を書き換えましょう。5桁とかでも良しそして、rootユーザーでログインをできなくします。noSSHサーバを再起動し設定を反映させます。先ほど設定したSSHのポートを開放します。方法はいくつかありますが、よくやるのは以下の方法です。port="spam"/>設定が終われば反映しときます。--reloadサービス名を指定する方法ポートを空けるには、大まかに2つの方法があります。1つめは、サービス名を指定する方法です。今回行ったのもこれです(sshは、既に--add-serviceされた状態でした)。--zone=publicもしポートを閉じたいならば、remove-serviceとします。--zone=publicこのservice=に指定できるものは、予めいくつか作られています。中に、設定用のxmlファイルがあります。/usr/lib/firewalld/services/以下のように、たくさん表示されます。xmpp-server.xml試しに、ポスグレのxmlファイルを見てみましょう。/usr/lib/firewalld/services/postgresql.xml説明やポート番号が定義されていますね。port="5432"/></service>add-service=httpのようにすると、http.xmlの中身を見ながら、ポートの開放をしてくれるという訳です。今回のように既にあるサービス...sshのポート番号を変更したい、という場合もあります。自分で独自のxmlを作り、ポートを開放したくなるかもしれません。xmlファイルを置きます。/usr/lib...よりも、こちらの内容が優先されるのです。ようにコピーして、/usr/lib...の中のxmlファイルを雛形として使うのが確実です。/usr/lib...の中のxmlファイルは変更しないようにしましょう。変更や追加をしたくなったら/etc...で管理します。/usr/lib..が見づらかったり/etc...にも沢山xmlファイルを置いちゃって、どんなサービスが定義されてるかの確認が面倒になった場合は、以下のようにするとadd-serviceとして指定できるサービス名が一覧表示されます。上記の2つのディレクトリを見ながら生成してくれます。--get-servicesこんな感じで表示されます。xmpp-serverまた、以下のようにすると現在登録した(add-serviceした)一覧も表示できます。--list-allservicesの部分に注目してください。sshやhttpとありますね。rules:ポート番号を指定する方法もう一つの方法として、直接ポート番号を指定することもできます。一時的にポート開放したいなんてときは、こちらの方が簡単ですね。--zone=publicログウォッチやってもやらなくても自由ですが、毎日サーバーの状態をメールしてくれるログウォッチは便利です。logwatch自分のメールアドレスを設定しときましょう。toritoritorina@gmail.comOSの自動アップデート設定OSの自動アップデートの設定もしときましょう。yum-cronファイルを編集する必要があります。/etc/yum/yum-cron.confyesに書き換えます。yum-cron.service更新を通知だけしてもらう人の好みによりますが、更新情報をメールで教えてもらうだけで良い、ということであれば、次のようにします。何かと衝突することが多いので、今回はSELinuxの無効化もしときます。0sudoを使えるようにrootで直接操作するよりもsudoコマンドでの実行の方が安心です。以下のコマンドでsudo設定用ファイルを編集できます。visudoそして以下のように追加。以降はrootユーザをあまり使わないようにします。管理者権限が必要なコマンドには頭にsudoとつけます。ALL一般ユーザーでログインできるかを試す一般ユーザでログインできるか試しましょう。設定ミスがあった場合に備え既存の画面は消さず、ターミナルやテラターム等をもう一つ開いてログインできるか試すことをお勧めします。無事ログインできたら、rootでログインしている方は消しましょう。作成し、自分のPCからのみsshで接続できるようにします。パスフレーズの入力し、公開鍵(id_rsa.pub)の保存、秘密鍵(id_rsa)の保存を押します。MacやLinuxでは、以下のコマンドを入力します。これはサーバー側ではなく、ターミナルや端末を新しく開いて行います。鍵の名前とオプションをつけて実行すると、カレントに秘密鍵と公開鍵(.pubのほう)が生成されます。公開鍵をサーバーに転送します。テラタームの方はドラッグアンドドロップでファイルを送信できます。Mac、Linuxの方ならば、scpコマンドでファイルを送信できます。sshコマンドと違い、ポートの指定が-Pと大文字になることに注意です。ユーザー名@サーバーのドメインorIP:サーバー側で、ディレクトリの作成と公開鍵の登録をしましょう。chmodでの権限を777とかにすると動かなくなるので注意しましょう。.ssh/authorized_keys今回はパスワード認証を無効化します。秘密鍵を持ったPC...つまり、今作業しているPCからでないと接続できなくなるので、割と安心です。/etc/ssh/sshd_confignoにします。no再起動して反映させます。sshd秘密鍵でログインできるかを試す秘密鍵でログインできるかまた試したいのですが、設定を間違えたら入れなくなりますので、新しいターミナルやテラタームを開いて確認します。テラタームならば、ユーザ名入力画面でRSA...鍵を使う、を押し、あとは流れで設定してください。ターミナル等の場合は、次のコマンドです。-iというオプションが増えました。ドメインscpコマンドでのファイル送信も、今後は次のようにします。ユーザー名@サーバーのドメインorIP:ロケールの変更ロケールの変更もしときましょう。以下のコマンドで、現在のロケールが表示されます。statusさくらVPSのCentOS7だと、こんな感じでした。jpロケールの変更と、反映を行います。/etc/locale.confさくらVPSの公式サイトにも親切なマニュアルが載っているので、こちらもオススメです。PostsCentOS7でDjangoを動かすシリーズCentOS7、Nginx、Gunicornの環境でDjangoを動作させる上での、個人的なまとめ記事です。CentOS7Comment記事にコメントするまだコメントはありません。幾つかの方法で、ブログの更新を受け取れます。