lost and found ( for me ? )

Ubuntu server: AppArmor

Ubuntu server : AppArmor

root@arizona:~# cat /etc/lsb-release | grep -i desc
DISTRIB_DESCRIPTION="Ubuntu 10.04 LTS"

デフォルトで AppArmor が動いているみたい。

http://www.ubuntu.com/products/whatisubuntu/serveredition/features/apparmor

AppArmor とは ?

http://ja.opensuse.org/AppArmor

named.conf の directory を /var/named ( ubuntu の bind パッケージだと /var/cache/bind ) に変えたら、
下記のエラーがでて起動しなかったので、なんだろうと思ったら、AppArmor が原因だったみたい。

May 22 15:40:41 arizona kernel: [ 8077.028917] type=1503 audit(1274510441.827:20):  operation="open" pid=5520 parent=5517 profile="/usr/sbin/named" requested_mask="r::" denied_mask="r::" fsuid=0 ouid=0 name="/etc/named.conf"

対処としては2つ。

1. AppArmor を止める

root@arizona:~# /etc/init.d/apparmor stop
 * Unloading AppArmor profiles                                           [ OK ]

AppArmor が起動しないようにするには:

root@arizona:~# sysv-rc-conf apparomor off
root@arizona:~#

2. AppArmor の ルールを変更する

アプリごとのルールは /etc/apparmor.d/ にある。

root@arizona:/etc/apparmor.d# ls
abstractions       libvirt          usr.lib.libvirt.virt-aa-helper
cache              sbin.dhclient3   usr.sbin.cupsd
disable            tunables         usr.sbin.libvirtd
force-complain     usr.bin.evince   usr.sbin.named
gdm-guest-session  usr.bin.firefox  usr.sbin.tcpdump

下記追加。

root@arizona:/etc/apparmor.d# egrep "/var/named" usr.sbin.named
  /var/named/** rw,
  /var/named/ rw,


root@arizona:/etc/apparmor.d# /etc/init.d/apparmor restart

Ubuntu server : tasksel コマンド

root@arizona:~# cat /etc/lsb-release | grep -i desc

DISTRIB_DESCRIPTION="Ubuntu 10.04 LTS"

tasksel でパッケージ( LAMP , KVM , メールサーバ , デスクトップ環境 etc ) をまとめてインストールできる。

root@arizona:~# tasksel --help
Unknown option: help
使い方:
tasksel install <タスク>
tasksel remove <タスク>
tasksel [オプション]
-t, --test          テストモード: 実際には何も行わない
   --new-install   自動的にいくつかのタスクをインストールする
   --list-tasks    表示可能なタスクを一覧で表示して終了する
   --task-packages タスクで利用可能なパッケージを一覧表示する
   --task-desc     タスクの説明を返す

root@arizona:~# tasksel --list-tasks ( tasksel --list でも OK )
i server Basic Ubuntu server
u eucalyptus-walrus Cloud computing: Walrus storage service
u eucalyptus-simple-cluster Cloud computing: all-in-one cluster
u eucalyptus-cluster Cloud computing: cluster controller
u eucalyptus-node Cloud computing: node controller
u eucalyptus-storage Cloud computing: storage controller
u eucalyptus-cloud Cloud computing: top-level cloud controller
u dns-server DNS server
u edubuntu-server Edubuntu server
u lamp-server LAMP server
u mail-server Mail server
i openssh-server OpenSSH server
u postgresql-server PostgreSQL database
i print-server Print server
u samba-server Samba file server
u tomcat-server Tomcat Java server
u uec Ubuntu Enterprise Cloud (instance)
u virt-host Virtual Machine host
u ubuntustudio-graphics 2D/3D creation and editing suite
u ubuntustudio-audio Audio creation and editing suite
u edubuntu-desktop-kde Edubuntu KDE desktop
u edubuntu-desktop-gnome Edubuntu desktop
u kubuntu-desktop Kubuntu desktop
u kubuntu-netbook Kubuntu netbook
u ubuntustudio-audio-plugins LADSPA and DSSI audio plugins
u ubuntustudio-font-meta Large selection of font packages
u mythbuntu-desktop Mythbuntu additional roles
u mythbuntu-frontend Mythbuntu frontend
u mythbuntu-backend-master Mythbuntu master backend
u mythbuntu-backend-slave Mythbuntu slave backend
u ubuntu-netbook Ubuntu Netbook
i ubuntu-desktop Ubuntu desktop
u ubuntustudio-video Video creation and editing suite
u xubuntu-desktop Xubuntu desktop
u edubuntu-dvd-live Edubuntu live DVD
u kubuntu-netbook-live Kubuntu Netbook Remix live CD
u kubuntu-live Kubuntu live CD
u kubuntu-dvd-live Kubuntu live DVD
u netbook-live Ubuntu Netbook live environment
u ubuntu-live Ubuntu live CD
u ubuntu-dvd-live Ubuntu live DVD
u xubuntu-live Xubuntu live CD
u manual Manual package selection

仮想化環境のインストール

root@arizona:~# tasksel install  virt-host

でも、GUI ( virt-manager ) とかはいってなかったりする。
当たり前だけど、Fedora で yum groupinstall でKVMをインストールしたときと入るパッケージは異なる。

GUIを使う場合、virt-manager ,virt-viewer , python-virtinst が必要

root@arizona:~# apt-cache search virt-mana
virt-manager - 仮想マシン管理用デスクトップアプリケーション

root@arizona:~# apt-cache search virt-viewer
mozilla-virt-viewer - A virt-viewer widget for GTK+ (mozilla plugin)
virt-viewer - Displaying the graphical console of a virtual machine

root@arizona:~# apt-cache search python-virtinst
python-virtinst - Programs to create and clone virtual machines (transitional package)

Ubuntu : sysv-rc-conf ( Red Hat 系 の chkconfig にあたるもの )

root@arizona:~# cat /etc/lsb-release | grep -i description

DISTRIB_DESCRIPTION="Ubuntu 10.04 LTS"

sysv-rc-conf が Red Hat 系の chkconfig に該当する

sysv-rc-conf - SysV init runlevel configuration tool for the terminal

root@arizona:~# apt-get install sysv-rc-conf

root@arizona:~# sysv-rc-conf --list
acpi-support 1:off 2:on 3:on 4:on 5:on
acpid      
alsa-mixer-s
anacron    
apparmor     S:on
apport    
atd        

root@arizona:~# sysv-rc-conf bluetooth off

root@arizona:~# sysv-rc-conf --list | grep blue
bluetooth    0:off 1:off 2:off 3:off 4:off 5:off 6:off

- chkconfig のパッケージもある

root@arizona:~# apt-cache search chkconfig

エラーが。。

root@arizona:~# chkconfig cups off
insserv: warning: script 'K20acpi-support' missing LSB tags and overrides
The script you are attempting to invoke has been converted to an Upstart

insserv: exiting now without changing boot order!
/sbin/insserv failed, exit code 1


exit code 1 で終了してるので、cups は off になってない

root@arizona:~# chkconfig --list | grep cups
cups                      0:off  1:off  2:on   3:on   4:on   5:on   6:off

root@arizona:~# sysv-rc-conf --list | grep cups
cups         1:off 2:on 3:on 4:on 5:on

ググると、Ubuntu で chkconfig で off にできーんってでてくるので、chkconfig ではなく、sysv-rc-conf を使ったほうがよさげ。

root@arizona:~# sysv-rc-conf cups off

root@arizona:~# sysv-rc-conf --list | grep cups
cups         1:off 2:off 3:off 4:off 5:off

install and fly Safari 4 w/ WINE on Ubuntu

How to install n' fly Safari 4 w/ WINE on Ubuntu

root@arizona:~# cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=10.04
DISTRIB_CODENAME=lucid
DISTRIB_DESCRIPTION="Ubuntu 10.04 LTS"
root@arizona:~# 

1. install win via apt-get

root@arizona:~# apt-get install wine


2. download wintricks

root@arizona:~# wget http://www.kegel.com/wine/winetricks

3. install flash , font

root@arizona:~# chmod u+x winetricks 

root@arizona:~# ./winetricks corefonts flash

4. download n' install Safari 4

Windows版 Safari 4 をダウンロード

root@arizona:~# wine SafariSetup.exe 

Installation Options は一番上だけチェック























5. fly Safari via WINE

root@arizona:~# wine /root/.wine/dosdevices/c\:/Program\ Files/Safari/Safari.exe

ん、文字化けしとる。


























/root/.wine/dosdevices/c\:/windows/Fonts/ に日本語フォントがないのが原因なので、

   80  apt-get install ttf-sazanami-gothic
   87  apt-get install ttf-sazanami-mincho

root@arizona:~#  ln -s /usr/share/fonts/truetype/sazanami/sazanami-gothic.ttf /root/.wine/dosdevices/c\:/windows/Fonts/
root@arizona:~# ln -s /usr/share/fonts/truetype/sazanami/sazanami-mincho.ttf /root/.wine/dosdevices/c\:/windows/Fonts/

うーん、ダメだなー。

これはどう???

root@arizona:~# ln -s /usr/share/fonts/truetype/ttf-japanese-gothic.ttf /root/.wine/dosdevices/c\:/windows/Fonts/
root@arizona:~# ln -s /usr/share/fonts/truetype/ttf-japanese-mincho.ttf /root/.wine/dosdevices/c\:/windows/Fonts/

ダメだー。また次回。

vsftpd : warning メッセージ対処

# vsftpd -v
vsftpd: version 2.0.5

こんなメッセージがずっとシスログにでていた。

vsftpd[21198]: warning: can't get client address: Connection reset by peer
vsftpd[21199]: warning: can't get client address: Connection reset by peer
vsftpd[21201]: warning: can't get client address: Connection reset by peer

tcp_wrappers オプションを YES から NO にかえたらログがでなくなった。

# egrep -i "^tcp_wrap" /etc/vsftpd/vsftpd.conf
tcp_wrappers=NO


Ubuntu 10.04 : 音(alsa)の設定

Ubuntu 10.04  を Dell inspiron 1526 にインストールしたときの音が出るようになった設定

root@alaska:~# cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=10.04
DISTRIB_CODENAME=lucid
DISTRIB_DESCRIPTION="Ubuntu 10.04 LTS"
root@alaska:~#

下記を追記

root@alaska:~# tail -1 /etc/modprobe.d/alsa-base.conf
options snd-hda-intel model=dell-3stack

システム -> 設定 -> サウウンド の出力

Internal Audio Analog Stereo , コネクタ Analog Speakers を選択

Ubuntu: install Windows Media Player 10 via WINE

root@arizona:~# apt-get install wine

root@arizona:~# wget http://www.kegel.com/wine/winetricks

root@arizona:~# chmod 777 winetricks
root@arizona:~# cp winetricks /usr/bin/

エラーが。

root@arizona:~# winetricks

(zenity:3805): Gtk-WARNING **: cannot open display:

root@arizona:~# export DISPLAY=:0.0
root@arizona:~# xhost +
access control disabled, clients can connect from any host

root@arizona:~# winetricks

GUIが起動

Windows Media Player 10 をインストール

うーん微妙。。。


Ubuntu server 9.10

GUI 設定、日本語入力 ( iBUS から SCIM へ変更 )

- GUI環境のインストール

# tasksel  -> Ubuntu desktop をインストール

パッケージの設定

  ┌──────────────────────────┤ ソフトウェアの選択 ├──────────────────────────┐
  │ 以下の定義済みソフトウェアコレクションからインストールするものを 1 つ以  │
  │ 上選択できます。                                                         │
  │                                                                          │
  │ インストールするソフトウェアの選択:                                      │
  │                                                                          │
  │    [ ] Large selection of font packages                              ↑   │
  │    [ ] Mythbuntu additional roles                                    ▒   │
  │    [ ] Mythbuntu frontend                                            ▒   │
  │    [ ] Mythbuntu master backend                                      ▒   │
  │    [ ] Mythbuntu slave backend                                       ▮   │
  │    [ ] Ubuntu MID edition                                            ▒   │
  │    [ ] Ubuntu Netbook Remix                                          ▒   │
  │    [*] Ubuntu desktop                 


- iBUS から SCIM へ

root@arizona:~# apt-get install scim scim-bridge-agent scim-bridge-client-gtk scim-anthy

システム -> システム管理 -> 言語サポート

キーボード入力に使うIMシステム を scim-bridge へ。

ログアウト ( or リブート )

Done!

Ubuntu 10.04 がリリースされてたんだ。。。
Fedora 11 から Ubuntu にしたばっかなのに、、うーん、インストールする前に
Ubuntu のページをチェックすればよかった。

cryptsetup で暗号化ファイルシステムの作成

# cat /etc/redhat-release

CentOS release 5.4 (Final)

# uname -r
2.6.18-164.el5

# rpm -qa | grep cryptsetup
cryptsetup-luks-1.0.3-5.el5

/dev/sdb1 を暗号化用パーティションとする。

# fdisk -l 
/dev/sdb1               1         100      102384   83  Linux

cryptsetup で、暗号化パーティションを設定する。

暗号化アルゴリズム aes
ハッシュアルゴリズム sha256
鍵長 256bit

# cryptsetup -y luksFormat --cipher aes-cbc-essiv:sha256 --key-size 256 /dev/sdb1

WARNING!
========
This will overwrite data on /dev/sdb1 irrevocably.

Are you sure? (Type uppercase yes): YES  <- 大文字じゃないとダメ
Enter LUKS passphrase:
Verify passphrase:
Command successful.
#

LUKS とは:

Linux Unified Key Setup, is a standard for hard disk encryption. It
standardizes a partition header, as well as the format of the  bulk  data.
LUKS  can  manage  multiple passwords, that can be revoked effectively and
that are protected against dictionary attacks with PBKDF2.
暗号化したパーティションを device mapper でマッピング。
デバイスマッパー経由で、ファイルにアクセスする。

# cryptsetup luksOpen /dev/sdb1 encrypted
Enter LUKS passphrase for /dev/sdb1:
key slot 0 unlocked.
Command successful.

# ls -l /dev/mapper/
合計 0
crw------- 1 root root  10, 63  5月  6 15:21 control
brw-rw---- 1 root disk 253,  0  5月  6 15:49 encrypted

# mkfs.ext3 /dev/mapper/encrypted

# mount -t ext3 /dev/mapper/encrypted /mnt/encrypted

# cd /mnt/encrypted/
# echo hello > hello.txt

アンマウント

# umount /mnt/encrypted
# cryptsetup luksClose encrypted

# ls /dev/mapper/*
/dev/mapper/control

cryptsecup を使用しないで、マウントしようとするとマウントできない ( データが見れない )

# mount -t ext3 /dev/sdb1 /mnt/encrypted
mount: wrong fs type, bad option, bad superblock on /dev/sdb1,
       missing codepage or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

再接続

# cryptsetup luksOpen /dev/sdb1 encrypted
Enter LUKS passphrase for /dev/sdb1:
key slot 0 unlocked.
Command successful.

# mount /dev/mapper/encrypted /mnt/encrypted

# cat /mnt/encrypted/hello.txt
hello

# cryptsetup luksDump /dev/sdb1
LUKS header information for /dev/sdb1

Version:        1
Cipher name:    aes
Cipher mode:    cbc-essiv:sha256
Hash spec:      sha1
Payload offset: 2056
MK bits:        256
MK digest:      ce 2b 5f 63 5c 0e 84 15 5f ce 51 b4 1d 46 c1 6b 89 5b 6a cc
MK salt:        17 11 4a d0 b4 22 df b9 06 b3 8c d0 9f 22 cc 49
                c8 9c b4 25 2e fc d5 b7 0b 3d 60 e2 90 01 3b 61
MK iterations:  10
UUID:           96a0a006-bef8-4880-9950-5ebfb238276e

Key Slot 0: ENABLED
        Iterations:             328403
        Salt:                   8b f9 f5 05 d8 ae 86 af 28 09 a7 71 5a 8a 85 e6
                                28 48 96 c2 8a bf 66 a5 ba dc 4e 3c 8b f7 3a 66
        Key material offset:    8
        AF stripes:             4000
Key Slot 1: DISABLED
Key Slot 2: DISABLED
Key Slot 3: DISABLED
Key Slot 4: DISABLED
Key Slot 5: DISABLED
Key Slot 6: DISABLED
Key Slot 7: DISABLED

[ パスフレーズの入力なしでマウント ]

キーファイルの作成

# dd if=/dev/urandom of=/root/encrypted_key bs=1 count=1024

登録

# cryptsetup luksAddKey /dev/sdb1 /root/encrypted_key
Enter any LUKS passphrase:
Verify passphrase:
key slot 0 unlocked.
Command successful.

slot1に登録された

# cryptsetup luksDump /dev/sdb1
LUKS header information for /dev/sdb1

Version:        1
Cipher name:    aes
Cipher mode:    cbc-essiv:sha256
Hash spec:      sha1
Payload offset: 2056
MK bits:        256
MK digest:      ce 2b 5f 63 5c 0e 84 15 5f ce 51 b4 1d 46 c1 6b 89 5b 6a cc
MK salt:        17 11 4a d0 b4 22 df b9 06 b3 8c d0 9f 22 cc 49
                c8 9c b4 25 2e fc d5 b7 0b 3d 60 e2 90 01 3b 61
MK iterations:  10
UUID:           96a0a006-bef8-4880-9950-5ebfb238276e

Key Slot 0: ENABLED
        Iterations:             328403
        Salt:                   8b f9 f5 05 d8 ae 86 af 28 09 a7 71 5a 8a 85 e6
                                28 48 96 c2 8a bf 66 a5 ba dc 4e 3c 8b f7 3a 66
        Key material offset:    8
        AF stripes:             4000
Key Slot 1: ENABLED
        Iterations:             335538
        Salt:                   4a f0 e5 cc d8 a9 db 37 de 1f 0d 10 13 54 a3 3e
                                d4 71 21 fb 57 a6 22 66 c0 1b 54 ad 3f b7 0a de
        Key material offset:    264
        AF stripes:             4000
Key Slot 2: DISABLED
Key Slot 3: DISABLED
Key Slot 4: DISABLED
Key Slot 5: DISABLED
Key Slot 6: DISABLED
Key Slot 7: DISABLED

登録したキーファイルでマウント

# cryptsetup luksOpen /dev/sdb1 encrypted --key-file /root/encrypted_key
key slot 1 unlocked.
Command successful.

# mount -t ext3 /dev/mapper/encrypted /mnt/encrypted

# cat /mnt/encrypted/hello.txt
hello

Linux: ACLs ( setfacl , getfacl )

http://www.itmedia.co.jp/enterprise/0403/06/epn01.html


setfacl - set file access control lists
getfacl - get file access control lists


[root@centos5-vm1 ~]# cat /etc/redhat-release
CentOS release 5.4 (Final)

kernel 2.6 から実装されたみたい。

[root@centos5-vm1 ~]# uname -r
2.6.18-164.el5

- 準備

/etc/fstab の options に acl を追加、再起動。

[root@centos5-vm1 ~]# head -1 /etc/fstab
LABEL=/                 /                       ext3,acl    defaults        1 1

acl パッケージをインストール

[root@centos5-vm1 ~]# yum install -y acl.i386

[root@centos5-vm1 ~]# rpm -ql acl
/usr/bin/chacl
/usr/bin/getfacl
/usr/bin/setfacl

テスト用の group , directory を作成

[root@centos5-vm1 ~]# groupadd test_group

[root@centos5-vm1 home]# usermod -g test_group test1
[root@centos5-vm1 home]# usermod -g test_group test2
[root@centos5-vm1 home]# usermod -g test_group test3

[root@centos5-vm1 ~]# egrep test /etc/passwd
test1:x:501:501::/home/test1:/bin/bash
test2:x:502:502::/home/test2:/bin/bash
test3:x:503:503::/home/test3:/bin/bash

[root@centos5-vm1 ~]# egrep test /etc/group
test1:x:501:
test2:x:502:
test3:x:503:
test_group:x:504:test2,test3,test1

[root@centos5-vm1 home]# mkdir test_group_dir
[root@centos5-vm1 home]# chown root.test_group test_group_dir
[root@centos5-vm1 home]# chmod g+rwx test_group_dir

- ACL の設定

[test1@centos5-vm1 test_group_dir]$ whoami
test1
[test1@centos5-vm1 test_group_dir]$ pwd
/home/test_group_dir

[test1@centos5-vm1 test_group_dir]$ echo "hello" > hello.txt
[test1@centos5-vm1 test_group_dir]$ ls -l
-rw-r--r-- 1 test1 test_group hello.txt

user: test2 に書き込み権限を与える。

-m = modify

[test1@centos5-vm1 test_group_dir]$ setfacl -m u:test2:rw hello.txt

[test1@centos5-vm1 test_group_dir]$ ls -l hello.txt
-rw-rw-r--+ 1 test1 test_group hello.txt

[test1@centos5-vm1 test_group_dir]$ getfacl hello.txt
# file: hello.txt
# owner: test1
# group: test_group
user::rw-
user:test2:rw-
group::r--
mask::rw-
other::r--

user: test2 は書き込みができる

[test2@centos5-vm1 test_group_dir]$ whoami
test2
[test2@centos5-vm1 test_group_dir]$ echo "hi" >> hello.txt
[test2@centos5-vm1 test_group_dir]$ cat hello.txt
hello
hi

user: test3 は書き込みができない

[test3@centos5-vm1 test_group_dir]$ whoami
test3

[test3@centos5-vm1 test_group_dir]$ echo "hi" >> hello.txt
bash: hello.txt: 許可がありません

test3 にも書き込み権限をあたえる。

[test1@centos5-vm1 test_group_dir]$ whoami
test1

[test1@centos5-vm1 test_group_dir]$ setfacl -m u:test3:rw hello.txt

[test1@centos5-vm1 test_group_dir]$ getfacl hello.txt
# file: hello.txt
# owner: test1
# group: test_group
user::rw-
user:test2:rw-
user:test3:rw-
group::r--
mask::rw-
other::r--

user: test3 のアクセス権限を消去

[test1@centos5-vm1 test_group_dir]$ setfacl -x u:test3 hello.txt

[test1@centos5-vm1 test_group_dir]$ getfacl hello.txt
# file: hello.txt
# owner: test1
# group: test_group
user::rw-
user:test2:rw-
group::r--
mask::rw-
other::r--

ファイル hello.txt から ACL の設定を全て消去

[test1@centos5-vm1 test_group_dir]$ setfacl -b hello.txt

[test1@centos5-vm1 test_group_dir]$ getfacl hello.txt
# file: hello.txt
# owner: test1
# group: test_group
user::rw-
group::r--
other::r--

ディレクトリにもACL設定が可能

[test1@centos5-vm1 test_group_dir]$ mkdir aaa

[test1@centos5-vm1 test_group_dir]$ ls -l
drwxr-xr-x 2 test1 test_group  aaa

[test1@centos5-vm1 test_group_dir]$ setfacl -m u:test2:rwx aaa
[test1@centos5-vm1 test_group_dir]$ getfacl aaa
# file: aaa
# owner: test1
# group: test_group
user::rwx
user:test2:rwx
group::r-x
mask::rwx
other::r-x

[test1@centos5-vm1 test_group_dir]$ setfacl -m u:test3:- aaa
[test1@centos5-vm1 test_group_dir]$ getfacl aaa
# file: aaa
# owner: test1
# group: test_group
user::rwx
user:test2:rwx
user:test3:---
group::r-x
mask::rwx
other::r-x

test2 はディレクトリ aaa にアクセスできる。

[test2@centos5-vm1 test_group_dir]$ whoami
test2
[test2@centos5-vm1 test_group_dir]$ cd aaa/
[test2@centos5-vm1 aaa]$ pwd
/home/test_group_dir/aaa

test3 はディレクトリ aaa にアクセスできない。

[test3@centos5-vm1 test_group_dir]$ whoami
test3
[test3@centos5-vm1 test_group_dir]$ cd aaa/
-bash: cd: aaa/: 許可がありません