快適個人用Linuxサーバー構築記

はじめに
サーバーを調達
Virtual Private Server を調達
SSHの設定
SSHでサーバーにログインして、SSHの設定を行う。
iptables
iptablesを設定してファイアウォールをつくる。
認証局
公開鍵の認証局をつくる。
Postfix
SMTPサーバー。
IMAPサーバー
IMAP & POP3サーバー。

ソフトウェアのつかいこなし

はじめに
Linuxのソフトウェア
Linuxで動く便利なソフトの使い方。
PHP
Excel
バーコードの作り方
バーコードを生成するプログラム。
Perlのスクリプト
Perlで開発したソフト。

開発室

はじめに
主にLAPPの話
ZendFramework Application
ZendFrameworkのApplicationを使って開発する。
文献職人
論文の引用文献(Reference)を作成するソフト
Google Logo Collector
Googleのロゴ収集プログラム。
Loading Circle Maker
コンピュータの待ち時間に表示する時計を作成するプログラム。
アクリルアミドゲル作成
希望する濃度のアクリルアミドゲル(SDS-PAGE用)を作成するのに必要な試薬量を計算します。
算数のおけいこ
小学生の算数のおけいこ。

クラスターコンピュータをつくる

雑記帳

はじめに
RAD-tag
ゲノムを二種類の制限酵素で切ったときに適当な長さの断片はどのぐらいとれるのか。
bwa
マッピングツールとしてbwaを使ってみる。
stats
PHPの統計ライブラリstats。

SMTPサーバーの構築

自前のメールサーバーがあるといろんなことができて便利です。

インストール

CentOSでは最初にsendmailがインストールされています。Postfixをインストールして、MTAを変更します。

# yum install postfix
# alternatives --config mta

2 プログラムがあり 'mta' を提供します。

  選択       コマンド
-----------------------------------------------
 + 1           /usr/sbin/sendmail.postfix
*  2           /usr/sbin/sendmail.sendmail

Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:1
# yum remove sendmail

設定

/etc/postfix/main.cf

myhostname = thaliana.myhome.cx
mydomain = thaliana.myhome.cx
myorigin = $myhostname
inet_interfaces = all
relay_domains = $mydestination
home_mailbox = Maildir/
mailbox_command = /usr/bin/procmail

# プロバイダー経由でメールを送信する
relayhost = [mail.x.x.xxx]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/smtpauth	# ファイルを作成(後述)
smtp_sasl_tls_security_options = noanonymous
smtp_tls_policy_maps = hash:/etc/postfix/tls_policy     # ファイルを作成(後述)

# SMTP認証設定 (smtp-auth)
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination

# SSL/TLS (smtps)用設定
smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/pki/tls/certs/thaliana.myhome.cx.crt
smtpd_tls_key_file = /etc/pki/tls/private/thaliana.myhome.cx.key
smtpd_tls_loglevel = 1

# mailman用設定
alias_maps = hash:/etc/aliases, hash:/etc/mailman/aliases
recipient_delimiter = +
owner_request_special = no

メールの発信に信用あるプロバイダーのサーバーを使用するための設定を行う。

/etc/postfix/smtpauth

[mail.x.x.xxx]:587 account:password
# postmap hash:/etc/postfix/smtpauth

/etc/postfix/tls_policy

[mail.x.x.xxx]:587 encrypt
# postmap hash:/etc/postfix/tls_policy

root宛てのメールがサーバー管理者に届くようにする。

/etc/postfix/aliases

root: takamasa

待ち受けポートの設定をする。 submissionは587番ポートでOutbound Port 25 Blockを回避するために使われる。 個人用であればどちらかで十分です(メールクライアントの設定が必要)。

/etc/postfix/master.cf

# 以下の行の先頭の#をとる
submission inet n       -       n       -       -       smtpd
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes      main.cfにあるのでこれはいらないかも
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING
smtps     inet  n       -       n       -       -       smtpd
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes      main.cfにあるのでこれはいらないかも
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING

起動

# service postfix restart
# chkconfig postfix on

第三者中継チェックを利用して、メールサーバーが踏み台にされないかどうかチェックする。

procmailの設定

procmailがMaildirにメールを配送するように設定します。

/etc/procmailrc

PATH=/bin/:/usr/bin MAILDIR=$HOME/Maildir DEFAULT=$MAILDIR/ LOCKFILE=$MAILDIR/.lockmail LOGFILE=$MAILDIR/procmail.log TRASH=$MAILDIR/.Trash/

新しく作成するユーザーのホームディレクトリに自動的にMaildirが作成されるようにします。

# mkdir -p /etc/skel/Maildir/{new,cur,tmp}
# chmod 700 /etc/skel/Maildir/