Showing posts with label Ubuntu Server. Show all posts
Showing posts with label Ubuntu Server. Show all posts

Saturday, December 22, 2012

Apache2基本設定

 ubuntuやraspbianでのApache2の基本的な設定。
$ sudo nano /etc/apache2/conf.d/security 

 あまり気にしなくても良さそうだけど、公開する情報は最低限に抑える。
ServerTokens Prod
ServerSignature Off
TraceEnable Off
それから、
$ sudo nano /etc/apache2/mods-available/mime.conf
 AddHandler cgi-script .cgi .rb .py .pl
$ sudo nano /etc/apache2/mods-available/dir.conf
 DirectoryIndex index.html index.rb index.cgi index.pl index.php index.xhtml index.htm
できればCGIはどこででも使いたいので、
sudo nano /etc/apache2/sites-available/default
       
                Options ExecCGI FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
       
あとはApache2の再起動。
$ sudo service apache2 restart
これで最低限の設定はできた。
バーチャルホストやmod_rewriteの黒魔術はまたそのうち。

Tuesday, December 18, 2012

Raspberry Pi届いた

 先週ModMyPiに注文したRaspberry Piが到着した。
 一週間程度で届くし、ケース込みで3500円くらいなので、RSで待ち続けるよりずっと良い。

 まずは公式サイトから2012-12-16-wheezy-raspbian.zipをダウンロード。
 SDカードは4G以上。今回は余っていた16GのSDカードで。
 作業はUbuntu上で進める。
 SDカードをUbuntu機に差し込んで、
$ unzip 2012-12-16-wheezy-raspbian.zip
$ sudo dd bs=1M if=2012-12-16-wheezy-raspbian.img of=/dev/sdX
 /dev/sdXのXは環境による。
 書き込みは数分程度。

 Raspberry Piに書き込み済みのSDカードを差し込んで、HDMIケーブルとUSBキーボード、最後にUSB充電アダプタからmicro USBで電源供給。
 すぐに起動メッセージが流れ始める。
 少し待つとRaspi-configという設定ツール画面になる。

 設定する必要があるのは次の項目。
・expand_rootfs:これをしないとSDカードの容量がちゃんと使えない。
・change_pass:念のためパスワード変更。
・config_keyboard:Generic 105-key (Intl)PC -> Other -> Japanese -> Japaneseと設定。その後は基本的にデフォルトのまま設定。モディファイアとかコンポーズとか使わないし、Ctrl+Alt+BackspaceでXを強制終了は、一応Yesを選択。
・change_timezone:Tokyoを選択。
・ssh:enableを選択。
 Finishを選択して再起動。rootfsの拡張にしばらく時間がかかるので、のんびり待つこと。
 loginプロンプトが出たら、piでログイン。

 設定画面をもう一度表示したい時は、
$ sudo raspi-config
 で表示されるみたい。

Sunday, December 9, 2012

ffserverのjpeg切り出し

 ffserverでjpegを配信するように設定すると、なぜか延々とつながったjpeg画像が送られてしまう。
 そういうのが欲しければmjpegもあるので、jpegは1枚目だけあれば後ろは要らないんだけど…と言うワケで、こういうときはスクリプトで分割して先頭画像だけ切り出し。
 軽くjpegのフォーマットを調べてみると、ファイルの終端はFFD9になっているらしい。
 とりあえずなにも考えずに先頭からFFD9まで読み込むcgiスクリプトを作成。データ途中にFFD9が出てくる可能性は気にしないでおく。


#!/usr/bin/ruby
require 'net/http'
# continuous jpeg cutting script.
# made for ffserver.
print "Content-type: image/jpeg\n\n"
flag = false
Net::HTTP.version_1_2
Net::HTTP.start('localhost', 8090) {|http|
  http.request_get('******.jpg'){|response|
    response.read_body{|str|
str.each_byte do |ch|
putc ch
if flag && (ch == 0xd9)
exit()
end
if ch == 0xff
flag = true
else
flag = false
end
end
    }
  }
}



フラグ使ってるのはちょっとどうかと思うけど、まあこんなものかな。
一応動く。

Saturday, April 24, 2010

openssl

opensslで鍵を作る方法。

前回使ったmake-ssl-cert自体opensslのラッパのようなものみたいだけれど、一応opensslで鍵を作る方法も。
$sudo openssl req -new -x509 -newkey rsa:2048 -out /etc/ssl/certs/cacert.pem -keyout /etc/ssl/private/cakey.pem -days 365
RSAの2048ビット、期間1年で"/etc/ssl/certs/cacert.pem"に公開鍵、"/etc/ssl/private/cakey.pem"に秘密鍵を作るコマンド。
オレオレ認証ならホスト名だけ埋めとけば大丈夫。

秘密鍵からパスコードを抜くコマンドは、
$sudo openssl rsa -in /etc/ssl/private/cakey.pem -out /etc/ssl/private/cakey.pem

"/usr/share/ssl-cert/ssleay.cnf"を書き換えて、make-ssl-certを使うほうが無難かも。

Thursday, April 22, 2010

Apache + SSL

Apache2にSSLを設定する。

先日の記事の時点で、基本的なパッケージ導入は終わっているので、後はそれを有効にしていくだけ。

 まずはmod_sslの有効化。
$ sudo a2enmod ssl
 基本的にはSSLを有効化するだけで、自動的に443をListenしてくれるはず。

 鍵の作成もコマンド一発。これで作られる鍵は、RSA1024ビット、期間は約10年。
$ sudo mkdir /etc/apache2/ssl
$ sudo make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem
 これで/etc/apache2/ssl/以下にapache.pem ともうひとつ(XXXXXXXX)ファイルが出来る。
 鍵の期間や強度を変更したい場合にはopensslコマンド参照。

 SSL用設定ファイルは環境に合わせて書き換える。
$ sudo pico /etc/apache2/sites-available/default-ssl

<中略>
NameVirtualHost *:443 ←追加
<VirtualHost *:443>

DocumentRoot "/var/www"
ServerName hogehoge.hoge
<中略>
SSLCertificateFile /etc/apache2/ssl/apache.pem
SSLCertificateKeyFile /etc/apache2/ssl/XXXXXXXX
 修正が終わったら、設定ファイルを有効にする。
$ sudo a2ensite default-ssl
 で、再起動。
$sudo /etc/init.d/apache2 reload
 これで自分認証だけどhttpsでアクセスできるようにはなる。

Tuesday, April 20, 2010

apache2 + mysql + php5

初期設定は先日の記事通り。
まずはwebサーバとデータベース、ついでに色々言われることもあるけどPHPを突っ込んでおく。PHP楽だし。
$sudo apt-get install apache2
$sudo apt-get install mysql-server
$sudo apt-get install php5
$sudo apt-get install php5-mysql
apache2の再起動は
$sudo /etc/init.d/apache2 restart

"/var/www/"以下がデフォルトの公開ディレクトリなので
hoge.phpに
<?php phpinfo(); ?>
とだけ書き込んで、ブラウザからアクセスして動作確認。

Sunday, April 18, 2010

Ubuntu Server初期設定

Ubuntu Serverを久しぶりにさわってみる。
とりあえずvmware playerにインストールしてみると……

かんいいんすとーる?
特に問題なさそうなのでそれで進める。

しばらく放置してインストール完了。
vmwareのネットワーク設定はブリッジモードにしておいた方がいい。

あれ、キーボードがUSになってる。
とりあえず
$sudo loadkeys jp
で日本語キーマップになるので、それで対処。
sshを突っ込んだあとは直接触ることもほとんどないので、起動ファイルを書き換えたりはしなくてもいいか。

タイムゾーンもおかしいので
$sudo cp /usr/share/zoneinfo/Japan /etc/localtime
$export TZ=JST-9
次はネットワーク。
サーバとして動かすなら静的アドレスじゃないと困るので
"/etc/network/interfaces"を書き換え。
auto eth0
iface eth0 inet dhcp
だとかなってるのを
auto eth0
iface eth0 inet static
address 192.168.1.X
netmask 255.255.255.0
gateway 192.168.1.X
としておく。

それからネームサーバの設定ファイル
"/etc/resolv.conf"も自分の環境に合わせて修正しておく。
nameserver 192.168.1.X
あとはパッケージのアップデートとsshのインストールで、初期設定は終了。
$ sudo apt-get update
$ sudo apt-get dist-upgrade
$ sudo apt-get install ssh
$ sudo apt-get install vsftpd
vsftpはおまけ。