Ubuntuメモ apache
# aptitude install apache2
前設定した時に大変なことになったので、
設定を弄る前に中身を固めてオリジナルをバックアップ。
何か入れるだけ入れて、一晩寝てからapacheを再起動したら
apache.confが意味不明なバイナリファイルになっていた。
courier-webadmin入れたから?原因不明。
一晩寝かせると動かなくなるプログラムがこれに該当するのではないか。
とりあえずバックアップしてたファイルから復帰。
バックアップ大事。
courier-webadmin入れてみたのでsslでhttpsで繋げるようにする。
次のサイトの通りにやってみた
http://d.hatena.ne.jp/toguni/20090312/1236823206
# vi /etc/apache2/sites-available/httpd-ssl.conf
下の方に/cgi-bin/ディレクトリの設定があったので流用した。
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride All
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
とした。
apache再起動
# /etc/init.d/apache2 restart
起動時にエラーが出て直したんだけど確か文法エラーばっかりだったので
特に問題はなかった気がする。
■CGI動作設定
# vi /etc/apache2/sites-enabled/000-default
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Options ExecCGI FollowSymLinks
Order allow,deny
allow from all
</Directory>
Options ExecCGI FollowSymLinks
を追加
# vi /etc/apache2/mods-enabled/mime.conf
AddHandler cgi-script .cgi
コメントを外す。適宜 .pl とかも増やしたり。
apache再起動
# /etc/init.d/apache2 restart
動いたので終了。
■ユーザディレクトリのpublic_htmlディレクトリの中身をwebに公開できるようにする。
/etc/apache2/mods-enabledにuserdirを追加する
# cd /etc/apache2/mods-enabled
# ln -s /etc/apache2/mods-available/userdir.conf /etc/apache2/mods-enabled/
# ln -s /etc/apache2/mods-available/userdir.load /etc/apache2/mods-enabled/
CGIを使えるようにする
# vi /etc/apache2/mods-enabled/userdir.conf
Options MultiViews Indexes SymLinsIfOwnerMatch IncludesNoExec
↓
Options MultiViews Indexes SymLinsIfOwnerMatch IncludesNoExec ExecCGI ForrowSymLinks
apache再起動
# /etc/init.d/apache2 restart
■Perlモジュールとかを入れる
Image::Magicを使うのでインストール
perlのみで使う場合はperlmagickをインストールすればいい。
# aptitude install perlmagick
Ubuntu自体で使わないなら間違ってimagemagickをインストールしないように。
Jcode.pmを使うのでインストール
# perl -MCPAN -e shell
cpan[1]> install Jcode
怒られた。
Could not read '/root/.cpan/build/Jcode-2.07-ghXxdQ/META.yml'. Falling back to other methods to determine prerequisites
Can't exec "make": No such file or directory at /usr/share/perl/5.10/CPAN.pm line 7698.
DANKOGAI/Jcode-2.07.tar.gz
make -- NOT OK
調べたら何かが足りないらしい。何が足りてなかったのかはよくわからない。
# aptitude install build-essential
再度
# perl -MCPAN -e shell
cpan[1]> install Jcode
Could not read '/root/.cpan/build/Jcode-2.07-ghXxdQ/META.yml'. Falling back to other methods to determine prerequisites
cp Jcode/Nihongo.pod blib/lib/Jcode/Nihongo.pod
cp Jcode.pm blib/lib/Jcode.pm
Manifying blib/man3/Jcode::Nihongo.3pm
Manifying blib/man3/Jcode.3pm
DANKOGAI/Jcode-2.07.tar.gz
make -- OK
Warning (usually harmless): 'YAML' not installed, will not store persistent state
Running make test
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/append.....ok
t/convert....ok
t/getcode....ok
t/h2z........ok
t/jfold......ok
t/length.....ok
t/mime.......ok
t/new........ok
t/perl581....ok
t/regex......ok
t/tr.........ok
All tests successful.
Files=11, Tests=244, 3 wallclock secs ( 3.12 cusr + 0.24 csys = 3.36 CPU)
DANKOGAI/Jcode-2.07.tar.gz
make test -- OK
今度は大丈夫だったみたい。
Digest::SHA1を使うのでインストール
cpan[2]> install Digest::SHA1
All tests successful.
Files=3, Tests=17, 0 wallclock secs ( 0.14 cusr + 0.01 csys = 0.15 CPU)
GAAS/Digest-SHA1-2.12.tar.gz
make test -- OK
問題なし
CGI::Sessionを使うのでインストール
先にCGIをインストール
cpan[3]> install CGI
途中でどこかのサーバへアクセス失敗してリトライしまくってるけど
Ctr+C押したらリトライ終了した。
一応、ちゃんと終了したけど問題なのか?
cpan[4]> install CGI::Session
問題なし
Tie::IxHashを使うのでインストール
cpan[5]> install Tie::IxHash
問題なし
前設定した時に大変なことになったので、
設定を弄る前に中身を固めてオリジナルをバックアップ。
何か入れるだけ入れて、一晩寝てからapacheを再起動したら
apache.confが意味不明なバイナリファイルになっていた。
courier-webadmin入れたから?原因不明。
一晩寝かせると動かなくなるプログラムがこれに該当するのではないか。
とりあえずバックアップしてたファイルから復帰。
バックアップ大事。
courier-webadmin入れてみたのでsslでhttpsで繋げるようにする。
次のサイトの通りにやってみた
http://d.hatena.ne.jp/toguni/20090312/1236823206
# vi /etc/apache2/sites-available/httpd-ssl.conf
下の方に/cgi-bin/ディレクトリの設定があったので流用した。
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride All
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
とした。
apache再起動
# /etc/init.d/apache2 restart
起動時にエラーが出て直したんだけど確か文法エラーばっかりだったので
特に問題はなかった気がする。
■CGI動作設定
# vi /etc/apache2/sites-enabled/000-default
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Options ExecCGI FollowSymLinks
Order allow,deny
allow from all
</Directory>
Options ExecCGI FollowSymLinks
を追加
# vi /etc/apache2/mods-enabled/mime.conf
AddHandler cgi-script .cgi
コメントを外す。適宜 .pl とかも増やしたり。
apache再起動
# /etc/init.d/apache2 restart
動いたので終了。
■ユーザディレクトリのpublic_htmlディレクトリの中身をwebに公開できるようにする。
/etc/apache2/mods-enabledにuserdirを追加する
# cd /etc/apache2/mods-enabled
# ln -s /etc/apache2/mods-available/userdir.conf /etc/apache2/mods-enabled/
# ln -s /etc/apache2/mods-available/userdir.load /etc/apache2/mods-enabled/
CGIを使えるようにする
# vi /etc/apache2/mods-enabled/userdir.conf
Options MultiViews Indexes SymLinsIfOwnerMatch IncludesNoExec
↓
Options MultiViews Indexes SymLinsIfOwnerMatch IncludesNoExec ExecCGI ForrowSymLinks
apache再起動
# /etc/init.d/apache2 restart
■Perlモジュールとかを入れる
Image::Magicを使うのでインストール
perlのみで使う場合はperlmagickをインストールすればいい。
# aptitude install perlmagick
Ubuntu自体で使わないなら間違ってimagemagickをインストールしないように。
Jcode.pmを使うのでインストール
# perl -MCPAN -e shell
cpan[1]> install Jcode
怒られた。
Could not read '/root/.cpan/build/Jcode-2.07-ghXxdQ/META.yml'. Falling back to other methods to determine prerequisites
Can't exec "make": No such file or directory at /usr/share/perl/5.10/CPAN.pm line 7698.
DANKOGAI/Jcode-2.07.tar.gz
make -- NOT OK
調べたら何かが足りないらしい。何が足りてなかったのかはよくわからない。
# aptitude install build-essential
再度
# perl -MCPAN -e shell
cpan[1]> install Jcode
Could not read '/root/.cpan/build/Jcode-2.07-ghXxdQ/META.yml'. Falling back to other methods to determine prerequisites
cp Jcode/Nihongo.pod blib/lib/Jcode/Nihongo.pod
cp Jcode.pm blib/lib/Jcode.pm
Manifying blib/man3/Jcode::Nihongo.3pm
Manifying blib/man3/Jcode.3pm
DANKOGAI/Jcode-2.07.tar.gz
make -- OK
Warning (usually harmless): 'YAML' not installed, will not store persistent state
Running make test
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/append.....ok
t/convert....ok
t/getcode....ok
t/h2z........ok
t/jfold......ok
t/length.....ok
t/mime.......ok
t/new........ok
t/perl581....ok
t/regex......ok
t/tr.........ok
All tests successful.
Files=11, Tests=244, 3 wallclock secs ( 3.12 cusr + 0.24 csys = 3.36 CPU)
DANKOGAI/Jcode-2.07.tar.gz
make test -- OK
今度は大丈夫だったみたい。
Digest::SHA1を使うのでインストール
cpan[2]> install Digest::SHA1
All tests successful.
Files=3, Tests=17, 0 wallclock secs ( 0.14 cusr + 0.01 csys = 0.15 CPU)
GAAS/Digest-SHA1-2.12.tar.gz
make test -- OK
問題なし
CGI::Sessionを使うのでインストール
先にCGIをインストール
cpan[3]> install CGI
途中でどこかのサーバへアクセス失敗してリトライしまくってるけど
Ctr+C押したらリトライ終了した。
一応、ちゃんと終了したけど問題なのか?
cpan[4]> install CGI::Session
問題なし
Tie::IxHashを使うのでインストール
cpan[5]> install Tie::IxHash
問題なし
この記事のトラックバックURL:
Ubuntuメモ samba
# aptitude install samba
sambaユーザの設定をする
# smbpasswd -a アカウント名
パスワード入力でsamba用のアカウント作成。
設定はバックアップしたファイルをそのまま使った。
設定方法はこの辺を参照
sambaユーザの設定をする
# smbpasswd -a アカウント名
パスワード入力でsamba用のアカウント作成。
設定はバックアップしたファイルをそのまま使った。
設定方法はこの辺を参照
この記事のトラックバックURL:
Ubuntuメモ SSH
# aptitude install openssh-server
とりあえずインストール
クライアントからの接続をプレインテキストでの認証にしておくと辞書攻撃とかが怖いのでdsaで鍵を作ってその鍵を持ってないと認証できないようにする。
作業を行っている途中でログイン不可能になるのを防ぐため、必ず接続状態のウインドウを開いた状態で作業を行う。
■鍵の作成
$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/silvia/.ssh/id_dsa):
ここでエンター押すとディレクトリが作成される
Created directory '/home/silvia/.ssh'.
パスワード入れる
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
~/.ssh/以下に
id_dsa
id_dsa.pub
というファイルができる。
id_dsaが秘密鍵、id_dsa.pubが公開鍵
公開鍵をauthorized_keysに書き写す
これを鍵束として用いる(らしい。DSA以外の認証にも使用?)
$ cat id_dsa.pub >> authorized_keys
■Windows側の設定
UTF-8 Teraterm Proの使用を前提とする。
作った秘密鍵id_dsaをWindowsに持ってくる。
適当なディレクトリに配置。MyDocumentは怖いからだめだとか。
Teraterm起動する
メニューの設定→SSH認証を選択
「RSA/DSA鍵を使う」にチェック入れて、持ってきた秘密鍵を指定する。
■SSHサーバの設定
# vi /etc/ssh/sshd_config
ルートでのログイン禁止
PermitRootLogin no
公開鍵の格納ディレクトリを指定する
コメント取る
#AuthorizedKeysFile %h/.ssh/authorized_keys
↓
AuthorizedKeysFile %h/.ssh/authorized_keys
もっとセキュリティを上げたい場合、ログインできるユーザを限定
AllowUsers [ssh_user]
再起動
# /etc/init.d/ssh restart
Teraterm起動してサーバに接続、パスフレーズが通ればOK
パスが通ったので、プレインテキストでの認証を不許可にする。
# vi /etc/ssh/sshd_config
プレインテキストのパスワードでのログインを禁止
PasswordAuthentication no
再起動
# /etc/init.d/ssh restart
プレインテキストでログインできなくて、DSA鍵でのログインができればOK
とりあえずインストール
クライアントからの接続をプレインテキストでの認証にしておくと辞書攻撃とかが怖いのでdsaで鍵を作ってその鍵を持ってないと認証できないようにする。
作業を行っている途中でログイン不可能になるのを防ぐため、必ず接続状態のウインドウを開いた状態で作業を行う。
■鍵の作成
$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/silvia/.ssh/id_dsa):
ここでエンター押すとディレクトリが作成される
Created directory '/home/silvia/.ssh'.
パスワード入れる
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
~/.ssh/以下に
id_dsa
id_dsa.pub
というファイルができる。
id_dsaが秘密鍵、id_dsa.pubが公開鍵
公開鍵をauthorized_keysに書き写す
これを鍵束として用いる(らしい。DSA以外の認証にも使用?)
$ cat id_dsa.pub >> authorized_keys
■Windows側の設定
UTF-8 Teraterm Proの使用を前提とする。
作った秘密鍵id_dsaをWindowsに持ってくる。
適当なディレクトリに配置。MyDocumentは怖いからだめだとか。
Teraterm起動する
メニューの設定→SSH認証を選択
「RSA/DSA鍵を使う」にチェック入れて、持ってきた秘密鍵を指定する。
■SSHサーバの設定
# vi /etc/ssh/sshd_config
ルートでのログイン禁止
PermitRootLogin no
公開鍵の格納ディレクトリを指定する
コメント取る
#AuthorizedKeysFile %h/.ssh/authorized_keys
↓
AuthorizedKeysFile %h/.ssh/authorized_keys
もっとセキュリティを上げたい場合、ログインできるユーザを限定
AllowUsers [ssh_user]
再起動
# /etc/init.d/ssh restart
Teraterm起動してサーバに接続、パスフレーズが通ればOK
パスが通ったので、プレインテキストでの認証を不許可にする。
# vi /etc/ssh/sshd_config
プレインテキストのパスワードでのログインを禁止
PasswordAuthentication no
再起動
# /etc/init.d/ssh restart
プレインテキストでログインできなくて、DSA鍵でのログインができればOK
この記事のトラックバックURL:
Ubuntuメモ インストール
■CDからインストール。
前構築した環境はルートパーティションが小さすぎてアップグレードが出来なくなったりしたので、その教訓からルートパーティションを大きめに取る。
/boot 1G
/ 2G
/home 200G
/usr 10G
/var 10G
/opt 10G
残り適当
前システムから、interface、iptables、sambaの設定ファイルをバックアップしておいた。
■ネットワーク
/etc/network/interfaceを編集
LANに接続出来るようにする。
ネットワークカードが逆になってる可能性があるので注意。
インターネットへの繋ぎ方をすっかり忘れていた。
# pppoeconf
コマンドで設定を行う。英語ばっかで読めないけど勘で設定
LANで繋いだPCからサーバ通してインターネットに繋ぐ設定をする
# vi /etc/sysctl.conf
#net.ipv4.ip_forward=1
がコメントアウトされてるのでコメント除去
バックアップしたiptablesの設定を叩けば多分接続インターネットに接続出来るはず。
iptablesの設定が自動で動作するようにする
設定ファイルが
/etc/ppp/set_iptables.sh
にあるとする
# ln -s /etc/ppp/set_iptables.sh /etc/network/if-pre-up.d/set_iptables
if-pre-up.dからシンボリックリンクを張ってやれば、ネットワークの設定時に自動的にiptablesが設定される。
■ユーザの追加
adduserを使うと対話的に作成できる
# adduser linux_user
■その他
ホームディレクトリ配下の
.bashrcファイルにコマンドのエイリアスとかがあるのでそこでllとかが開放できる。
sudoが面倒な場合は無効化する。
先にパスワード設定をしないと入れなくなるので注意
HDDを自動マウントする。
起動時に認識するHDDの順番によってsdaとsdbが入れ替わったりして面倒なので。というか前、それで操作ミスをして/root配下を全部消したとかいう問題を起こした…
そこでマウントするデバイスのUUIDを指定してやると確実。
システムディレクトリがそうなってるので真似した。
# blkid /dev/sda1
/dev/sda1: UUID="2cd2016b-3de6-46a1-81e4-471f9b5cd62b" TYPE="ext3"
とか出るので、
# vi /etc/fstab
UUID=2cd2016b-3de6-46a1-81e4-471f9b5cd62b /mnt/samba ext3 relatime 0 2
みたいに設定する。
■参考
nabeの雑記帳
パスワード用ランダム文字列生成用スクリプト
前構築した環境はルートパーティションが小さすぎてアップグレードが出来なくなったりしたので、その教訓からルートパーティションを大きめに取る。
/boot 1G
/ 2G
/home 200G
/usr 10G
/var 10G
/opt 10G
残り適当
前システムから、interface、iptables、sambaの設定ファイルをバックアップしておいた。
■ネットワーク
/etc/network/interfaceを編集
LANに接続出来るようにする。
ネットワークカードが逆になってる可能性があるので注意。
インターネットへの繋ぎ方をすっかり忘れていた。
# pppoeconf
コマンドで設定を行う。英語ばっかで読めないけど勘で設定
LANで繋いだPCからサーバ通してインターネットに繋ぐ設定をする
# vi /etc/sysctl.conf
#net.ipv4.ip_forward=1
がコメントアウトされてるのでコメント除去
バックアップしたiptablesの設定を叩けば多分接続インターネットに接続出来るはず。
iptablesの設定が自動で動作するようにする
設定ファイルが
/etc/ppp/set_iptables.sh
にあるとする
# ln -s /etc/ppp/set_iptables.sh /etc/network/if-pre-up.d/set_iptables
if-pre-up.dからシンボリックリンクを張ってやれば、ネットワークの設定時に自動的にiptablesが設定される。
■ユーザの追加
adduserを使うと対話的に作成できる
# adduser linux_user
■その他
ホームディレクトリ配下の
.bashrcファイルにコマンドのエイリアスとかがあるのでそこでllとかが開放できる。
sudoが面倒な場合は無効化する。
先にパスワード設定をしないと入れなくなるので注意
HDDを自動マウントする。
起動時に認識するHDDの順番によってsdaとsdbが入れ替わったりして面倒なので。というか前、それで操作ミスをして/root配下を全部消したとかいう問題を起こした…
そこでマウントするデバイスのUUIDを指定してやると確実。
システムディレクトリがそうなってるので真似した。
# blkid /dev/sda1
/dev/sda1: UUID="2cd2016b-3de6-46a1-81e4-471f9b5cd62b" TYPE="ext3"
とか出るので、
# vi /etc/fstab
UUID=2cd2016b-3de6-46a1-81e4-471f9b5cd62b /mnt/samba ext3 relatime 0 2
みたいに設定する。
■参考
nabeの雑記帳
パスワード用ランダム文字列生成用スクリプト
この記事のトラックバックURL:
ubuntuにproftpdを入れたメモ
適当にインストール
# aptitude install proftpd
そのままだと起動しなかったり遅かったり色々するので設定変更
# vi /etc/proftpd/proftpd.conf
DefaultAddress example.co.jp
UseReverseDNS off
を追加
UseIPv6 on
↓
UseIPv6 off
DefaultRoot ~
を書いておくとホームディレクトリが存在しないユーザは自動的にログインできなくなるっぽいので書いておく。
それ以外のユーザのログイン設定を以下に書く。
DefaultRoot ~ !adm
とか書いてあるサイトがあるけど、admグループでログインするとルートまで
全部見えちゃうので、
DefaultRoot /home adm
を追加するとadmグループでもhomeより上には行けない模様。
更にユーザがログイン出来るディレクトリを設定
Default ~/public_html
ここまでの設定では、ユーザアカウント持っててホームディレクトリ持ってるユーザならログインできてしまうようなので、更に以下でログインできるユーザを制限する。
<Limit Login>
Order allow,deny
AllowUser user1,user2,user3
Deny all
</Limit>
のようにカンマで区切ってログイン出来るユーザを指定。
DefaultAddressを追加しなくてもhostnameを変更すれば通るので、お好きな方をどうぞ。
# hostname example.co.jp
あと/var/log/proftpd/proftpd.log辺りのパーミッションがおかしいとか言われたような気がする。
適当に
# chown proftpd /var/log/proftpd/proftpd.log
でエラー消えたけどこれはsyslogに変えるべきなのか?
設定ファイルとかのエラーチェック
# /etc/init.d/proftpd check-config
proftpdを起動
# /etc/init.d/proftpd start
のような感じ。
参考文献
FTPサーバ(ProFTPD)の構築
Proftpdの設定
ftpサーバを立てる(設定)
# aptitude install proftpd
そのままだと起動しなかったり遅かったり色々するので設定変更
# vi /etc/proftpd/proftpd.conf
DefaultAddress example.co.jp
UseReverseDNS off
を追加
UseIPv6 on
↓
UseIPv6 off
DefaultRoot ~
を書いておくとホームディレクトリが存在しないユーザは自動的にログインできなくなるっぽいので書いておく。
それ以外のユーザのログイン設定を以下に書く。
DefaultRoot ~ !adm
とか書いてあるサイトがあるけど、admグループでログインするとルートまで
全部見えちゃうので、
DefaultRoot /home adm
を追加するとadmグループでもhomeより上には行けない模様。
更にユーザがログイン出来るディレクトリを設定
Default ~/public_html
ここまでの設定では、ユーザアカウント持っててホームディレクトリ持ってるユーザならログインできてしまうようなので、更に以下でログインできるユーザを制限する。
<Limit Login>
Order allow,deny
AllowUser user1,user2,user3
Deny all
</Limit>
のようにカンマで区切ってログイン出来るユーザを指定。
DefaultAddressを追加しなくてもhostnameを変更すれば通るので、お好きな方をどうぞ。
# hostname example.co.jp
あと/var/log/proftpd/proftpd.log辺りのパーミッションがおかしいとか言われたような気がする。
適当に
# chown proftpd /var/log/proftpd/proftpd.log
でエラー消えたけどこれはsyslogに変えるべきなのか?
設定ファイルとかのエラーチェック
# /etc/init.d/proftpd check-config
proftpdを起動
# /etc/init.d/proftpd start
のような感じ。
参考文献
FTPサーバ(ProFTPD)の構築
Proftpdの設定
ftpサーバを立てる(設定)
この記事のトラックバックURL:
postfix+courierで仮想メールボックス
・postfixで仮想メールボックスを使う設定を追加。
/etc/postfix/main.cfを編集
# vi /etc/postfix/main.cf
以下を追加。
#仮想ドメインの指定
virtual_mailbox_domains = example.co.jp
#仮想メールボックスの指定
virtual_mailbox_base = /home/vmail
#仮想メールボックスのユーザ指定ファイル
virtual_mailbox_maps = hash:/etc/postfix/virtual_user
#仮想メールボックスを使うユーザIDを適当に指定
virtual_gid_maps = static:5000
virtual_uid_maps = static:5000
#mydestinationから実ドメインを削除
mydestination = example.co.jp, localhost.$mydomain, localhost
↓
mydestination = localhost.$mydomain, localhost
・仮想メールボックスのユーザを追加
さっき指定した仮想メールボックスのユーザ指定ファイルの
/etc/postfix/virtual_userを書く。
# vi /etc/postfix/virtual_user
virtual_mail_user@example.co.jp virtual_mail_user/Maildir/
みたいに書く。これで
/home/vmail/virtual_mail_user/Maildir
がvirtual_mail_userのメールボックスになる。
その後、
# postmap /etc/postfix/virtual_user
で、hash形式のデータベースに変換する。
以下、仮想メールアドレスのメールアカウントを[virtual_mail_user]とおく。
・SMTP_AUTH認証用データベースの更新
# saslpasswd2 -c -u example.co.jp [virtual_mail_user]
パスワードを入力する。
・courierの認証用データベースの更新
# userdb [virtual_mail_user] set home=/vmail/[virtual_mail_user] mail=/home/vmail/[virtual_mail_user]/Maildir uid=5000 gid=5000
# userdbpw -hmac-md5 | userdb [virtual_mail_user] set hmac-md5pw
authdaemonが使えるようにする
# makeuserdb
・関連するものを全部再起動
# /etc/init.d/postfix restart
# /etc/init.d/courier-imap restart
# /etc/init.d/courier-pop restart
# /etc/init.d/courier-authdaemon restart
# /etc/init.d/saslauthd restart
後は適当に仮想メールアドレス宛にメールでも送ればMaildir作ってくれて、メールが配送されるのでpopやらimapやらで拾えます。
参考文献
Postfixをインストールする
starrybells blog - "Postfix" の記事一覧
/etc/postfix/main.cfを編集
# vi /etc/postfix/main.cf
以下を追加。
#仮想ドメインの指定
virtual_mailbox_domains = example.co.jp
#仮想メールボックスの指定
virtual_mailbox_base = /home/vmail
#仮想メールボックスのユーザ指定ファイル
virtual_mailbox_maps = hash:/etc/postfix/virtual_user
#仮想メールボックスを使うユーザIDを適当に指定
virtual_gid_maps = static:5000
virtual_uid_maps = static:5000
#mydestinationから実ドメインを削除
mydestination = example.co.jp, localhost.$mydomain, localhost
↓
mydestination = localhost.$mydomain, localhost
・仮想メールボックスのユーザを追加
さっき指定した仮想メールボックスのユーザ指定ファイルの
/etc/postfix/virtual_userを書く。
# vi /etc/postfix/virtual_user
virtual_mail_user@example.co.jp virtual_mail_user/Maildir/
みたいに書く。これで
/home/vmail/virtual_mail_user/Maildir
がvirtual_mail_userのメールボックスになる。
その後、
# postmap /etc/postfix/virtual_user
で、hash形式のデータベースに変換する。
以下、仮想メールアドレスのメールアカウントを[virtual_mail_user]とおく。
・SMTP_AUTH認証用データベースの更新
# saslpasswd2 -c -u example.co.jp [virtual_mail_user]
パスワードを入力する。
・courierの認証用データベースの更新
# userdb [virtual_mail_user] set home=/vmail/[virtual_mail_user] mail=/home/vmail/[virtual_mail_user]/Maildir uid=5000 gid=5000
# userdbpw -hmac-md5 | userdb [virtual_mail_user] set hmac-md5pw
authdaemonが使えるようにする
# makeuserdb
・関連するものを全部再起動
# /etc/init.d/postfix restart
# /etc/init.d/courier-imap restart
# /etc/init.d/courier-pop restart
# /etc/init.d/courier-authdaemon restart
# /etc/init.d/saslauthd restart
後は適当に仮想メールアドレス宛にメールでも送ればMaildir作ってくれて、メールが配送されるのでpopやらimapやらで拾えます。
参考文献
Postfixをインストールする
starrybells blog - "Postfix" の記事一覧
この記事のトラックバックURL:
ubuntuにcourier-imapとpop入れたメモ
昨日の記事があまりにも適当で駄目すぎたので書き直しました。
とりあえずパッケージからインストール
# aptitude install courier-imap
# aptitude install courier-pop
couorier-authdaemonも要るんだけど勝手に入ったような入ってないような。
# aptitude search authdaemon で確認してインストールされてるか確認。
・IMAPサーバの設定
/etc/courier/imapdを編集
# cp imapd imapd.bak
# vi imapd
CRAM-MD5で認証を通す為に次の行を修正…やばい原文忘れた。
IMAP_CAPABILITY='...
↓
IMAP_CAPABILITY="IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA AUTH=CRAM-MD5 AUTH=CRAM-SHA1 IDLE"
##NAME: IMAP_CAPABILITY:1 と
##NAME: IMAP_CAPABILITY:2
があるんだけど何これ
両方あっても動いてる(・ω・`)なんでだ。情報募集中。
ちなみに2の方
IMAP_CAPABILITY="IMAP4rev1 CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFER ENCES SORT QUOTA AUTH=CRAM-MD5 AUTH=CRAM-SHA1 IDLE"
・POPサーバの設定
/etc/courier/pop3dを編集
# cp pop3d pop3d.bak
#vi pop3d
CRAM-MD5とCRAM-SHA1で認証できるようにする
POP3AUTH=...(原文忘れた
POP3AUTH="CRAM-MD5 CRAM-SHA1"
・認証用デーモンの設定
/etc/courier/authdaemonrcを編集
# cp authdaemonrc authdaemon.bak
# vi authdaemonrc
IMAP用のパスワードを別途用意するので次を変更
authmodulelist="authpam"
↓
authmodulelist="authuserdb"
・ユーザ認証用DBを生成する。
次のコマンドでuserdbを作る。
# pw2userdb | grep ^[username] > /etc/courier/userdb
# chmod 0600 /etc/courier/userdb
認証用パスワードを設定する。
# userdbpw -hmac-md5 | userdb [username] set hmac-md5pw
パスワード入力を求められるので2回入力。
courier-authdaemonが作ったuserdbを使えるようにする。
# makeuserdb
userdbと同じディレクトリに
userdb.dat
userdb.lock
userdbshadow.dat
ができる。
courier-imap とcourier-pop courier-authdaemon の再起動
# /etc/init.d/courier-imap restart
# /etc/init.d/courier-pop restart
# /etc/init.d/courier-authdaemon restart
そんな感じ。
参考文献
CourierでIMAPサーバ
自宅メール環境の構築
courier-imapのパスワードについて
Applied Mathematics 8/授業資料09
おれさまメモ
とりあえずパッケージからインストール
# aptitude install courier-imap
# aptitude install courier-pop
couorier-authdaemonも要るんだけど勝手に入ったような入ってないような。
# aptitude search authdaemon で確認してインストールされてるか確認。
・IMAPサーバの設定
/etc/courier/imapdを編集
# cp imapd imapd.bak
# vi imapd
CRAM-MD5で認証を通す為に次の行を修正…やばい原文忘れた。
IMAP_CAPABILITY='...
↓
IMAP_CAPABILITY="IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA AUTH=CRAM-MD5 AUTH=CRAM-SHA1 IDLE"
##NAME: IMAP_CAPABILITY:1 と
##NAME: IMAP_CAPABILITY:2
があるんだけど何これ
両方あっても動いてる(・ω・`)なんでだ。情報募集中。
ちなみに2の方
IMAP_CAPABILITY="IMAP4rev1 CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFER ENCES SORT QUOTA AUTH=CRAM-MD5 AUTH=CRAM-SHA1 IDLE"
・POPサーバの設定
/etc/courier/pop3dを編集
# cp pop3d pop3d.bak
#vi pop3d
CRAM-MD5とCRAM-SHA1で認証できるようにする
POP3AUTH=...(原文忘れた
POP3AUTH="CRAM-MD5 CRAM-SHA1"
・認証用デーモンの設定
/etc/courier/authdaemonrcを編集
# cp authdaemonrc authdaemon.bak
# vi authdaemonrc
IMAP用のパスワードを別途用意するので次を変更
authmodulelist="authpam"
↓
authmodulelist="authuserdb"
・ユーザ認証用DBを生成する。
次のコマンドでuserdbを作る。
# pw2userdb | grep ^[username] > /etc/courier/userdb
# chmod 0600 /etc/courier/userdb
認証用パスワードを設定する。
# userdbpw -hmac-md5 | userdb [username] set hmac-md5pw
パスワード入力を求められるので2回入力。
courier-authdaemonが作ったuserdbを使えるようにする。
# makeuserdb
userdbと同じディレクトリに
userdb.dat
userdb.lock
userdbshadow.dat
ができる。
courier-imap とcourier-pop courier-authdaemon の再起動
# /etc/init.d/courier-imap restart
# /etc/init.d/courier-pop restart
# /etc/init.d/courier-authdaemon restart
そんな感じ。
参考文献
CourierでIMAPサーバ
自宅メール環境の構築
courier-imapのパスワードについて
Applied Mathematics 8/授業資料09
おれさまメモ
この記事のトラックバックURL:
<< old new >>
何かしら