DTIサーバー構築9 「メールしてね」

SMTPサーバーはSENDMAILでも良いのですが、色々やりたいのでPostfixをインストールします。
色々やりたいだけで、どんな色々があるのか、全ては知らないのですが。

まず、インストール。

$ sudo yum -y install postfix

インストール後に設定ファイルを編集。

$ sudo vi /etc/postfix/main.cf

ファイル内の次の部分を変更。

myhostname = mail.yourdomain.com
mydomain = yourdomain.com
myorigin = $mydomain
上から、メールサーバーのホスト名、ドメイン名、送信元のドメイン名

サーバーが対応するネットワークは、全て。

inet_interfaces = all

サーバーが信頼するネットワークは、ホスト自身のみ。

mynetworks_style = host
mynetworks = 127.0.0.0/8

サーバーが対応する宛先。
自分自身のドメイン以外に、サブドメインも指定出来ます。
ただし、メールボックスは区別されずに同じフォルダに配信されます。

mydestination = $myhostname, localhost.$mydomain, localhost, a.yourdomain.com, b.yourdomain.com
配信先を、各ユーザーのホームにフォルダを作成して指定するには、以下のように設定します。

home_mailbox = Maildir/

クラッカーから身を守るために、少しばかりの抵抗。

smtpd_banner = $myhostname ESMTP unknown

最後に、SMTPサーバーをSendmailからPostfixへ交代させます。

まず、標準で動いているSENDMAILを停止します。

$ sudo service sendmail stop
sm-client を停止中:                                        [  OK  ]
sendmail を停止中:                                         [  OK  ]

メールを処理するソフトを切り替えます。

$ sudo alternatives –config mta
2 プログラムがあり ‘mta’ を提供します。
  選択       コマンド
———————————————–
*+ 1           /usr/sbin/sendmail.sendmail
   2           /usr/sbin/sendmail.postfix
Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:2

Postfixを起動させます。

$ sudo service postfix start
postfix を起動中:                                          [  OK  ]

自動起動の設定も行います。

$ sudo chkconfig sendmail off
$ sudo chkconfig postfix on

最後に、サーバー外の自分のメールアドレスに、メールしてみましょう。

$ mail you@example.com
Subject: test
テスト
.
EOT

本文の最後はピリオドだけで改行して下さい。
メールが来たら、返信してみましょう。
返信されたメールのチェックはこんな感じ。

[username@newhost ~]$ mail -f Maildir
Heirloom Mail version 12.4 7/31/08.  Type ? for help.
“Maildir”: 1 message 1 new
>N  1 You                  Fri Jul 26 23:34  49/2495  “Re: test”
& v 1
& quit
“Maildir” complete

“v 1″で1番目のメールがviで表示されます。
次は、POP3サーバーのインストールかな。

DTIサーバー構築8 「新しい物好きなのね」

Windowsで言うところのMicrosoftUpdateが、Linuxにも有りまして、その仕組をインストール可能です。

$ sudo yum -y install yum-cron
-yを入れると、途中のユーザー確認をふっ飛ばします。

 :(色々表示される)
Installed:
  yum-cron.noarch 0:3.2.29-40.el6.centos

Dependency Installed:
  yum-plugin-downloadonly.noarch 0:1.1.30-14.el6

Complete!
で、次に、自動的に更新するかの設定をしましょう。

$ sudo vi /etc/sysconfig/yum-cron
更新が有るか、チェックだけする?
(yes:チェックだけ/no:更新もする)

CHECK_ONLY=no
更新サーバーが有るかを先にチェックする?
(yes:チェックする/no:チェックしない)

CHECK_FIRST=no
ダウンロードだけにする?
(yes:ダウンロードだけ/no:更新もする)

DOWNLOAD_ONLY=no

「DOWNLOAD_ONLY=yes」の場合は、強制的に「CHECK_ONLY=yes」とされます。

更新は勝手にしてほしくない時は、更新があればメールしてもらえるように設定しておきましょう。

MAILTO=root
これで更新があればroot宛にメールが来ます。

設定が終わったら、スタート!

$ sudo service yum-cron start
夜間 yum 更新の有効化中:                                   [  OK  ]
自動起動の設定も忘れずに。

$ sudo chkconfig yum-cron on
自動起動の確認は次のコマンドで。

$ sudo chkconfig –list yum-cron
yum-cron        0:off   1:off   2:on    3:on    4:on    5:on    6:off
通常起動時のrunlevelを調べて、その状態がonならOK

$ runlevel
N 3

と、+αの情報をちょこちょこメモ

 

そして、更新があれば、次のようなメールが来る。

New updates available for host newhost.yourdomain.com
authconfig.x86_64                      6.1.12-13.el6                   base  
avahi-libs.x86_64                      0.6.25-12.el6                   base  
 :(色々)
zlib.x86_64                            1.2.3-29.el6                    base  
Obsoleting Packages
libjpeg-turbo.x86_64                   1.2.1-1.el6                     base  
    libjpeg.x86_64                     6b-46.el6                       installed
Updates downloaded, use “yum -C update” manually to install them.

ダウンロードが終了しているらしいので、いわれる通りに更新開始。

 

$ sudo yum -C update
楽ちん楽ちん。

DTIサーバー構築7 「セキュリティ向上委員会」

最低限のセキュリティ対策はやっておく。基本は大事。

ServersMan@VPSのセキュリティ設定
http://dream.jp/vps/esp/manual/mnl_security_01.html

公式サポートの情報を元に、

# useradd newusername
# passwd newusername
ユーザー newusername のパスワードを変更。
新しいパスワード:***
新しいパスワードを再入力してください:***
passwd: 全ての認証トークンが正しく更新できました。
SSHで接続しなおして、
新しいユーザーでログインできたら、rootになれるかを確認!

[newusername@newhost ~]$ su –
パスワード:***
[root@newhost ~]#
なれたら、rootになれるユーザーを限定するために、rootになれるユーザーをwheelグループに入れる。

# usermod -G wheel newusername
sudoが使えるユーザーをwheelグループのユーザーだけに制限する。
visudoは、sudoが使えるユーザーを変更するためのエディタ。
“sudo vi /etc/sudoers”と同じこと。

$ visudo
 次の行のコメント(#)を外して、保存(:wq)。

%wheel   ALL=(ALL)      ALL
wheelグループのユーザーは、sudoが使えるかを確認。

[newusername@newhost ~]$ sudo ls /

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

[sudo] password for newusername:***
aquota.group  bin   dev  home  lib64  mnt  proc  sbin     srv  tmp  var
aquota.user   boot  etc  lib   media  opt  root  selinux  sys  usr
[newusername@newhost ~]$
その他のユーザーは使えないかを確認。

[notwheeluser@newhost ~]$ sudo ls /
[sudo] password for notwheeluser:***
notwheeluser is not in the sudoers file.  This incident will be reported.
[notwheeluser@newhost ~]$
確認が終わったら、次はrootになれるユーザーも制限する。

$ sudo vi /etc/pam.d/su
次の行のコメント(#)を外して保存。
auth       required     pam_wheel.so use_uid

wheelグループのユーザーは、rootになれるかを確認!

[newusername@newhost ~]$ su –
パスワード:***
[root@newhost ~]#

その他のユーザーは、rootになれない事を確認!

[notwheeluser@newhost ~]$ su –
パスワード:***
su: パスワードが違います
[notwheeluser@newhost ~]$
最後に、SSHにrootで直接ログイン出来ない様に設定変更。

# vi /etc/ssh/sshd_config
ちなみに、”/”の後に検索したい文字列を入れると検索が可能
次の行を入れる。

PermitRootLogin no
PermitEmptyPasswords no
SSHを再起動して、rootでログインできないか試しましょう。

# service sshd restart

でも、rootで入れなくなると、制限を気にしないといけないから不便なんですよね~。

DTIサーバー構築6 「もうそろそろ日本語で」

日本人で日本語が堪能なので、サーバーにも日本語を話してもらう。

#vi /etc/sysconfig/i18n

と、使いづらいviで、システム設定ファイルを編集。 

LANG=”en_US.UTF-8″
SYSFONT=”latarcyrheb-sun16″

を、

LANG=”ja_JP.UTF-8″
SYSFONT=”latarcyrheb-sun16″

に変更。
元は、

# ls -l /etc/sysconfig/
total 96
drwxr-xr-x 2 root root 4096 Aug  7  2012 cbq
 :
更新後、ログインしなおすと、

# ls -l /etc/sysconfig/
?荐 96
drwxr-xr-x 2 root root 4096  8?  7 16:50 2012 cbq
 :
PuTTYの設定忘れてた。。。


設定の[ウィンドウ]-[変換]-[文字コードの設定]を
“UTF-8/Auto-Detect Japanese”
に変更。

# ls -l /etc/sysconfig/
合計 96
drwxr-xr-x 2 root root 4096  8月  7 16:50 2012 cbq
 :

おっけ~!
しかし、この日時の表示、どこかにフォーマットの設定があるのかな?

DTIサーバー構築5 「今日から俺と一緒の苗字だな」

SSHにログインすると、次のように、ホスト名も表示される。

[root@dti-vps-srv99 ~]#

ちなみに、意味は、

[ユーザー名@ホスト名 カレントディレクトリ]プロンプト
プロンプトはユーザーによって次のように異なる。

$ → 一般ユーザー
# → root
このホスト名が、DTIのもので気に食わない!
ってほどでもないが、ドメインを所有しているので、ちゃんと変更しておこう。

[root@dti-vps-srv99 ~]# vi /etc/sysconfig/network
viというテキストエディタを使うのだが、使い方が特殊なので調べながら使って下さい。
最小限の使い方としては、
[i]キーで編集できるモードに入って、編集後[esc]キーでコマンドモードに戻る。
“:wq”(先頭はコロン)と入力してリターンで、保存終了される。

NETWORKING=”yes”
HOSTNAME=”newhost.your.domain.com” ←この部分を追加
GATEWAY=”192.0.1.1″
NETWORKING_IPV6=”yes”
IPV6_DEFAULTDEV=”venet0″
さらに、ついでにhostsファイルも変更しておく。

[root@dti-vps-srv99 ~]# vi /etc/hosts
 以下のように、行末にホスト名を追加。

127.0.0.1 localhost.localdomain localhost newhost.your.domain.com ←この部分を追加
編集が終わったら、サーバーを再起動。

[root@dti-vps-srv99 ~]# shutdown -r now

少し待ってから再度SSHでログインすれば、

[root@newhost ~]#

満足!