BlogもどきのWeblog

備忘録と日々の呟きとメモとCGIの実験場とされる何か。
プロフィール

GLANSHE
絵描き担当らしい

Total: 16052
Today: 130
Yesterday: 257
最新の記事

コンテンツ

最新のコメント

最新のトラックバック

カテゴリー

リンク

ニコ動MyListLink

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

問題なし


time stamp:2010/03/22 14:09:09
トラックバック(0)|コメント(0)
コメントを書く
この記事のトラックバックURL:

Ubuntuメモ samba
# aptitude install samba
sambaユーザの設定をする

# smbpasswd -a アカウント名
パスワード入力でsamba用のアカウント作成。

設定はバックアップしたファイルをそのまま使った。

設定方法はこの辺を参照


time stamp:2010/03/22 14:05:27
トラックバック(0)|コメント(0)
コメントを書く
この記事のトラックバック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


time stamp:2010/03/22 13:55:23
トラックバック(0)|コメント(0)
コメントを書く
この記事のトラックバック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の雑記帳
パスワード用ランダム文字列生成用スクリプト


time stamp:2010/03/22 12:46:55
トラックバック(0)|コメント(0)
コメントを書く
この記事のトラックバック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サーバを立てる(設定)


time stamp:2009/04/21 23:01:50
トラックバック(0)|コメント(0)
コメントを書く
この記事のトラックバック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" の記事一覧


time stamp:2009/04/21 01:48:29
トラックバック(0)|コメント(0)
コメントを書く
この記事のトラックバック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
おれさまメモ


time stamp:2009/04/20 23:31:26
トラックバック(0)|コメント(0)
コメントを書く
この記事のトラックバックURL:

<< old  new >>
何かしら