2008年2月アーカイブ

サーバーを複数のユーザが使う場合や、用途(サービス)にあわせてアカウントを作り、
それ専用のデータベース以外にはアクセスできないようにしたい場合の設定メモ


ユーザー名:hogeに
専用データベースとして、データベースfooを与える時、

mysql> CREATE DATABASE foo;
mysql> grant select,insert,update.delete on foo.* to hoge@"localhost" indentified by "*********";
mysql> FLUSH PRIVILEGES;

以上


追記

この状態で、WordPressとかMovableTypeを使おうとしたらCREATEが出来ないって言われたんで、CREATEもつけた方がいいかも



<参考>
Snort 用 MySQL データベースの作成
MySQLユーザの追加 - phpspot
本来、サブドメインって表現はふさわしくないかもしれないけど、
http://www.example.co.jp/hoge/foo.html とか
http://bar.example.co.jp/hoge/foo.htmlってあったら、

example.co.jpとかがドメインで、wwwやbarはホスト名って呼ばれてて、
負荷分散や用途別で分けられてある複数台のサーバー機の名前を入れて区別しているんだけど、
1台のPCでも複数のアドレスを使いたい!!ってコトでできたのがVirtualHost


例えば、http://hoge.example.co.jp/にアクセしたときに/home/hoge/public_htmlを表示するには、
apacheの設定ファイルを開き、
# vim /etc/httpd/conf/httpd.conf

最後の方の、
#NameVirtualHost *:80
のコメントアウトを外し、さらにその下に、

  ServerAdmin webmaster@hoge.example.co.jp
  DocumentRoot /home/hoge/public_html
  ServerName hoge.example.co.jp
  ErrorLog logs/hoge.example.co.jp-error_log
  CustomLog logs/hoge.example.co.jp-access_log common
を追加

DocumentRootを/var/www/html以下に設定する場合はいいけど、
/home/ユーザー/~にする場合は、前回書いたSELinuxに対する対処が必要となる。



<参考サイト>
名前ベースのバーチャルホスト設定
バーチャルホストの設定
まだ、設定とかごちゃごちゃ残ってて不安定な気もしますが、
とりあえず、データの移動はできたかな?
レンタルサーバーとかで、http://www.○○○.jp/~user/みたいなアドレスが割り当てられることが多いですが、
あんな感じで、ユーザーごとに独立したWebスペースを与えて、アドレスを上のように区別する方法は意外と簡単

今は、自分用に鯖立ててるけど、別に知り合いとかならスペース貸してもいいし、
その時のためのメモ♪


まぁ、やり方は簡単。だって、apache自体にそういう機能があるからねww


まずは、
# vim /etc/httpd/conf/httpd.conf
からapacheの設定ファイルを編集。

350行前後に
<IfModule mod_userdir.c="">
    #
    # UserDir is disabled by default since it can confirm the presence
    # of a username on the system (depending on home directory
    # permissions).
    #
    UserDir disable

    #
    # To enable requests to /~user/ to serve the user's public_html
    # directory, remove the "UserDir disable" line above, and uncomment
    # the following line instead:
    #
    #UserDir public_html

</IfModule>


とあるので、

    UserDir disable

    #UserDir disable

または、特定のユーザーだけにしたい場合は、
    UserDir disable
    UserDir enable  
などとし、

    #UserDir public_html
のコメントアウトをはずす。



そして、その次の
#<Directory /home/*/public_html>
#    AllowOverride FileInfo AuthConfig Limit
#    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
#    <Limit GET POST OPTIONS>
#        Order allow,deny
#        Allow from all
#    </Limit>
#    <LimitExcept GET POST OPTIONS>
#        Order deny,allow
#        Deny from all
#    </LimitExcept>
#</Directory>
のコメントアウトを全てはずす。
AllowOverrideは、.htaccessを有効にするとかで、
Limitなんちゃらはその後の、GETとPOSTは許可し、それ以外を破棄するって意味(たぶん

それが出来たら、
# chmod 755 /home/ユーザ名
# chmod 755 /home/ユーザー名/public_html
でアクセス権限を変更し、(※ユーザ名のところは*でもよい)
SELinuxを有効にしている場合は、
$ chcon system_u:object_r:httpd_sys_content_t /home/ユーザー名/public_html -R
とする。

以上で設定終わり。



<参考サイト>
・home-mg.que.ne.jp
・うえちょこ@ぼろぐ [Linux]ApacheがPermission deniedを吐いてくる

Linuxインストール後、パッケージを最新のバージョンにアップデートしたり、
新たなパッケージをインストールしたり、いらないパッケージを削除したりするのに、yumを使う。


# yum check-update              // アップデート可能なパッケージ一覧 
# yum list                      // 利用可能なパッケージ一覧
# yum list installed            // インストール済みのパッケージ一覧
# yum clean all                 
# yum install パッケージ名         // 指定したパッケージをインストール
# yum remove パッケージ名          // 指定したパッケージをアンインストール
# yum update パッケージ名          // 指定したパッケージをアップデート
# yum update                    // アップデート可能なパッケージをアップデート

ちなみに、-yオプションを入れると、yes/noを聞かずに実行してくれる。



また、yum-fastestmirrorという、yumを使うときにより高速なmirrorを選んでくれるpluginがある。
これの入れ方は、
# yum -y install yum-fastestmirror
でOK


<参考>
うえちょこ@ぼろぐ [Linux]# yum -y install yum-fastestmirrorでyum高速化
@IT:yumコマンドでよく利用するコマンド

OUTPUTも使わないところは禁止したり、sshも指定したホストからのみ許可した方がいいと思うけど、
とりあえず、必要最低限の設定をメモ ¢(. .。)


1. ポリシーを設定
# iptables -P INPUT DROP       // 基本的に外部からのアクセスを禁止
# iptables -P FORWARD DROP     // ルータとしてパケットを経由しない
# iptables -P OUTPUT ACCEPT    // 外部へのアクセスは許可

2.ルールを設定
# iptables -A INPUT -p tcp --dport 80 -j ACCEPT     // 外部からwwwへのアクセスを許可
# iptables -A INPUT -p tcp --dport 21 -j ACCEPT     // 外部からftpへのアクセスを許可
# iptables -A INPUT -p tcp --dport 110 -j ACCEPT    // 外部からPOPへのアクセスを許可
# iptables -A INPUT -p tcp --dport 25 -j ACCEPT     // 外部からsmtpへのアクセスを許可
# iptables -A INPUT -p tcp --dport 22 -j ACCEPT     // 外部からsshへのアクセスを許可

# iptables -A INPUT -p udp --sport 53 -j ACCEPT     // DNSの結果の受け取りを許可(yumで使うから)
# iptables -A INPUT -p tcp --sport 25 -j ACCEPT     // メールを受信ではなく送信する時に使うから
# iptables -A INPUT -s 127.0.0.1 -j ACCEPT          // 同じくメールなどで、apacheなどからsmtpをたたくのを許可

3. 設定を保存
# service iptables save


<参考>
iptables・設定・ファイアウォール・セキュリティ
iptablesの設定



<追記>
2008/4/5 sendmailなどを使うときの設定を追加

LAN内にサーバーを立てて、httpdを起動させて、
LAN内の別のPCのブラウザに、鯖のプライベートIPを入れるとちゃんと表示されるのに、
グローバルIPや、ドメインを入れてもうまくアクセスできない。
ルータのポートマッピングはしてあるし、ためしに、iptablesも停止してみたのになぜ???

って、ハマルひといませんか???

昨日それで2時間くらい悩んでました。



原因は、
ルーターのポートマッピング機能は、外部からのアクセスの時しか働かない



対策は、
プロキシを経由する(一度LAN外に出る)

です。




でも、いちいち串さすと重いし、でも、ブラウザにプライベートIP書くのもだるい・・・って場合は、

外部からアクセスできるかは確かめれないけど、
c:\windows\system32\drivers\etc\hosts
の最後に、グローバルIPとプライベートIPの変換を書いておけば、
グローバルIPにアクセスする時に、自動的にプライベートに変換してくれる。


昔、ROのエミュ鯖を使うときに、HookConnetっていうツールで癌砲のIPへのアクセスを無理やりエミュ鯖の方に変換するっていうのがあったけど、それと同じような感じだね

ルーターを使ったLAN内で、Linuxのサーバーをたてる時、
サーバーのプライベートIPは固定にしたい。

ルータの設定でMACアドレスからIPを固定っていう設定があると思ったけどなかったので、
(実家のcoregaだとあったのにNECダメだな)


Linux側の設定で、DHCPを使わずに、自分で決めたIPを使うように設定したい。


1. サーバーにNICが複数ある場合など、どのNICで接続しているかを確認する為に、ifconfigで調べる。(まぁフツーは1つだけどね)
# ifconfig
eth0      Link encap:Ethernet  HWaddr MACアドレス
          inet addr:192.168.0.2  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::21d:7dff:febd:3235/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:6265 errors:0 dropped:2929237039 overruns:0 frame:0
          TX packets:2751 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1232440 (1.1 MiB)  TX bytes:360879 (352.4 KiB)
          Interrupt:17 Base address:0x4000

この場合、現在eth0にプライベートIP 192.168.0.2/24が振られている。 


次に、eth0の設定ファイルをいじる。
設定ファイルは、/etc/sysconfig/network-scripts/ifcfg-eth0なので、
# vim /etc/sysconfig/network-scripts/ifcfg-eth0
として、
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
を、次のように書き換える
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static            ・・・DHCPを使わず指定したIPを使う
IPADDR=192.168.0.123        ・・・実際に使うIP
NETMASK=255.255.255.0       ・・・サブネットマスク
GATEWAY=192.168.0.1         ・・・ルーターのIP
NETWORK=192.168.0.0         ・・・ネットワークアドレス
BROADCAST=192.168.0.255     ・・・ブロードキャストアドレス

これで、:wして、
変更を有効にする為に、NICを再起動

# ifdown eth0
# ifup eth0
で出来るが、sshで変更してる人は、ifdownするとネットワークが切れるので注意www


追記:
 # /etc/rc.d/init.d/network restart
でもいいらしい



追記2:
DHCP使わない場合は、DNSサーバーの設定もしなきゃいけないみたい。
/etc/resolv.confに
nameserver DNSサーバーのIP
を追加。

鯖自体にDNSサーバを立ててない場合は、ルータかプロバイダのDNSサーバのIPを

Thunderbirdでもメッセみたいにメールが来たらすぐ知りたいって思って、
ずっと起動させっぱでいたらタスクバーに残って邪魔になる・・・って思ってたら


やっぱみんなそう思うんだね。アドオンありました。
右上の最初化のボタンで自動的にタスクトレイにしまってくれます。

Alt + Tabとかでフォーカスはずれた時も最小化して欲しいって思ったけど無理みたい。
でも、ThunderbirdをRSSリーダーとしても使ってるから、リンクをクリックして、フォーカスがFirefoxに移るたびにしまわれたら逆に不便かww


↓のmozillaのアドオンサイトでダウンロードできます。やり方も載ってるので、ここで書くまでもないよね
https://addons.mozilla.org/ja/thunderbird/addon/2110


何かイベントやる時って、みんなの都合を考慮して、いつやるのかを考えるのって、大変ですよね。
幹事の人がみんなにメール送って、都合のいい日をエクセルとかで管理して・・・ってなるとメンドウすぎ!!

そこで、「ちょー助」っていうWebサイトでは、
幹事が候補を指定して、みんなにURLとパスワードを教えるだけで、
あとは各自で○とか×とかつけるだけ

IDとかも取る必要がないっていう簡単さ

サイトに行けばサンプルも見れるので、どうぞ↓↓↓
スケジュール調整システム「ちょー助」 (http://chosuke.rumix.jp/home.aspx)
久々のブログ更新w


ちょっと前まで、strutsを使ってサーバーサイドJavaの勉強をしてたんだけど、
struts-config.xmlとかtiles-def.xmlとかvalidation.xmlとかいっぱい登録しなきゃいけないのがウザイ
ウザイっていうかこんがらがってきて、もうわけわかめ

そういうところに時間さくんじゃなくて、もっとDAOとかJavaプログラムのとこで時間をさきたい



そこで、Teedaっていうフレームワークを使ってみました。


Teedaっていうのは、Seasarのサブプロジェクトみたいな感じで、
こういうメンドウなxmlをなるべく書かなくて済むようになってるみたいです。


その代わりいくつかの規約があります。例えば、
1つのhtmlに1つのJavaクラスが対応していて、hoge.htmlっていうhtmlを書くと、HogePage.javaっていうファイル名で
Javaクラスを書かなきゃいけないみたい。でも、逆にそういう規約があるからこそ、機械的に対応するクラスとhtmlが判断できるわけで、結構便利な気がする。

あと、ページ遷移で、メソッドの戻り値で、"foo"とかしてやると、自動的にfoo.htmlに遷移してくれるらしい。
遷移の時、HogePageとFooPageに同じ名前のフィールドがあるとき、その値を自動で引き継いでくれるらしい!!!
もちろん、引き継がないようにすることもできて、それはフィールドの宣言のトコにアノテーション書くだけ
その代わり、idとかnameとか無駄に被りそうな名前は避けなきゃダメで、user_idとかユニークなものにした方がいいとのこと


ただ、あえて欠点をいうなら、これは、htmlとの関連性が強いので、
クライアントサイドをflexにするのは無理なのでは?って思った。


でも、とりあえず、1人で開発とかする場合は、flexまで作れないので、まぁいっかなと


興味がある人は、本家にパワポと、
Wikiで解説が載ってるので見てください。


<参考>
Teeda本家
TeedaWiki

iKnow

あわせて読みたいブログパーツ
Firefox meter