日々業務で接しているLinux,PostgreSQL,SQLServer,FortiGateなどに関することの覚え書きや個人的に気になったことなどを綴っています。
もし、ここの情報があなたのお役に立てるならば幸いです。
2009年12月28日月曜日
error: unpacking of archive failed on file /boot/System.map-2.6.9-89.0.18.EL;4b37bd31: cpio: write failed - No space left on device
/etc/cron.daily/yum.cronにて以下のようなエラーが発生していた。
error: unpacking of archive failed on file /boot/System.map-2.6.9-89.0.18.EL;4b37bd31: cpio: write failed - No space left on device
bootパーティションの容量不足ということらしいので、以前行った旧カーネルを削除して容量確保する処理を行いましたが(詳しくはこちらを参照)、それでも解消できないという現象が発生しました。そのとき行った手順が以下の通りです。
※yum-utilsが必要なので事前に、yum install yum-utils でインストールを済ませておく
●最初に古いカーネルを削除する(1世代前のカーネルは残す)
# package-cleanup --oldkernels
この段階では問題が解消されない。
●bootの中身を確認
# ls -al /boot
total 95124
drwxr-xr-x 4 root root 10240 Dec 28 05:01 .
drwxr-xr-x 23 root root 4096 Dec 26 09:09 ..
-rw-r--r-- 1 root root 50058 Nov 3 2007 config-2.6.9-55.0.12.ELsmp
-rw-r--r-- 1 root root 50057 Jun 27 2007 config-2.6.9-55.0.2.ELsmp
-rw-r--r-- 1 root root 50057 Sep 5 2007 config-2.6.9-55.0.6.ELsmp
-rw-r--r-- 1 root root 50057 Sep 28 2007 config-2.6.9-55.0.9.ELsmp
-rw-r--r-- 1 root root 50053 May 3 2007 config-2.6.9-55.ELsmp
-rw-r--r-- 1 root root 50550 May 8 2008 config-2.6.9-67.0.15.ELsmp
-rw-r--r-- 1 root root 50549 Dec 20 2007 config-2.6.9-67.0.1.ELsmp
-rw-r--r-- 1 root root 50550 Jun 26 2008 config-2.6.9-67.0.20.ELsmp
-rw-r--r-- 1 root root 50550 Jul 24 2008 config-2.6.9-67.0.22.ELsmp
-rw-r--r-- 1 root root 50549 Feb 3 2008 config-2.6.9-67.0.4.ELsmp
-rw-r--r-- 1 root root 50549 Mar 15 2008 config-2.6.9-67.0.7.ELsmp
-rw-r--r-- 1 root root 50545 Nov 17 2007 config-2.6.9-67.ELsmp
-rw-r--r-- 1 root root 51127 Jan 15 2009 config-2.6.9-78.0.13.ELsmp
-rw-r--r-- 1 root root 51127 Mar 13 2009 config-2.6.9-78.0.17.ELsmp
-rw-r--r-- 1 root root 51126 Aug 6 2008 config-2.6.9-78.0.1.ELsmp
-rw-r--r-- 1 root root 51127 May 1 2009 config-2.6.9-78.0.22.ELsmp
-rw-r--r-- 1 root root 51126 Oct 8 2008 config-2.6.9-78.0.5.ELsmp
-rw-r--r-- 1 root root 51126 Nov 20 2008 config-2.6.9-78.0.8.ELsmp
-rw-r--r-- 1 root root 51239 Sep 15 20:25 config-2.6.9-89.0.11.ELsmp
-rw-r--r-- 1 root root 51614 Oct 24 06:22 config-2.6.9-89.0.15.EL
-rw-r--r-- 1 root root 51239 Oct 24 06:34 config-2.6.9-89.0.15.ELsmp
-rw-r--r-- 1 root root 51614 Nov 4 07:28 config-2.6.9-89.0.16.EL
-rw-r--r-- 1 root root 51239 Nov 4 07:43 config-2.6.9-89.0.16.ELsmp
-rw-r--r-- 1 root root 51239 Dec 16 04:43 config-2.6.9-89.0.18.ELsmp
-rw-r--r-- 1 root root 51238 Aug 14 23:27 config-2.6.9-89.0.7.ELsmp
-rw-r--r-- 1 root root 51238 Aug 24 21:03 config-2.6.9-89.0.9.ELsmp
drwxr-xr-x 2 root root 1024 Dec 18 04:20 grub
-rw-r--r-- 1 root root 1437844 Nov 4 2007 initrd-2.6.9-55.0.12.ELsmp.img
-rw-r--r-- 1 root root 1437813 Aug 29 2007 initrd-2.6.9-55.0.2.ELsmp.img
-rw-r--r-- 1 root root 1437823 Sep 8 2007 initrd-2.6.9-55.0.6.ELsmp.img
-rw-r--r-- 1 root root 1437837 Sep 29 2007 initrd-2.6.9-55.0.9.ELsmp.img
-rw-r--r-- 1 root root 1440551 Aug 29 2007 initrd-2.6.9-55.ELsmp.img
-rw-r--r-- 1 root root 1370811 May 11 2008 initrd-2.6.9-67.0.15.ELsmp.img
-rw-r--r-- 1 root root 1370726 Dec 22 2007 initrd-2.6.9-67.0.1.ELsmp.img
-rw-r--r-- 1 root root 1370818 Jun 28 2008 initrd-2.6.9-67.0.20.ELsmp.img
-rw-r--r-- 1 root root 1370824 Jul 26 2008 initrd-2.6.9-67.0.22.ELsmp.img
-rw-r--r-- 1 root root 1370824 Feb 5 2008 initrd-2.6.9-67.0.4.ELsmp.img
-rw-r--r-- 1 root root 1370813 Mar 17 2008 initrd-2.6.9-67.0.7.ELsmp.img
-rw-r--r-- 1 root root 1370427 Dec 17 2007 initrd-2.6.9-67.ELsmp.img
-rw-r--r-- 1 root root 1392759 Jan 16 2009 initrd-2.6.9-78.0.13.ELsmp.img
-rw-r--r-- 1 root root 1392704 Apr 23 2009 initrd-2.6.9-78.0.17.ELsmp.img
-rw-r--r-- 1 root root 1392691 Sep 14 2008 initrd-2.6.9-78.0.1.ELsmp.img
-rw-r--r-- 1 root root 1393200 May 8 2009 initrd-2.6.9-78.0.22.ELsmp.img
-rw-r--r-- 1 root root 1392704 Oct 19 2008 initrd-2.6.9-78.0.5.ELsmp.img
-rw-r--r-- 1 root root 1392762 Nov 21 2008 initrd-2.6.9-78.0.8.ELsmp.img
-rw-r--r-- 1 root root 1403612 Sep 17 05:03 initrd-2.6.9-89.0.11.ELsmp.img
-rw-r--r-- 1 root root 1422187 Oct 28 09:34 initrd-2.6.9-89.0.15.EL.img
-rw-r--r-- 1 root root 417792 Oct 27 05:45 initrd-2.6.9-89.0.15.ELsmp.img
-rw-r--r-- 1 root root 1422208 Nov 6 09:06 initrd-2.6.9-89.0.16.EL.img
-rw-r--r-- 1 root root 1403631 Nov 6 09:09 initrd-2.6.9-89.0.16.ELsmp.img
-rw-r--r-- 1 root root 1403641 Dec 18 04:20 initrd-2.6.9-89.0.18.ELsmp.img
-rw-r--r-- 1 root root 1403572 Aug 23 06:01 initrd-2.6.9-89.0.7.ELsmp.img
-rw-r--r-- 1 root root 1403570 Aug 26 05:21 initrd-2.6.9-89.0.9.ELsmp.img
drwx------ 2 root root 12288 Aug 30 2007 lost+found
-rw-r--r-- 1 root root 9371 Aug 13 2006 message
-rw-r--r-- 1 root root 9371 Aug 13 2006 message.ja
-rw-r--r-- 1 root root 65151 May 9 2008 symvers-2.6.9-67.0.15.ELsmp.gz
-rw-r--r-- 1 root root 65129 Dec 20 2007 symvers-2.6.9-67.0.1.ELsmp.gz
-rw-r--r-- 1 root root 65151 Jun 26 2008 symvers-2.6.9-67.0.20.ELsmp.gz
-rw-r--r-- 1 root root 65151 Jul 24 2008 symvers-2.6.9-67.0.22.ELsmp.gz
-rw-r--r-- 1 root root 65129 Feb 3 2008 symvers-2.6.9-67.0.4.ELsmp.gz
-rw-r--r-- 1 root root 65129 Mar 15 2008 symvers-2.6.9-67.0.7.ELsmp.gz
-rw-r--r-- 1 root root 65129 Nov 17 2007 symvers-2.6.9-67.ELsmp.gz
-rw-r--r-- 1 root root 67032 Jan 15 2009 symvers-2.6.9-78.0.13.ELsmp.gz
-rw-r--r-- 1 root root 67032 Mar 13 2009 symvers-2.6.9-78.0.17.ELsmp.gz
-rw-r--r-- 1 root root 67032 Aug 6 2008 symvers-2.6.9-78.0.1.ELsmp.gz
-rw-r--r-- 1 root root 67069 May 1 2009 symvers-2.6.9-78.0.22.ELsmp.gz
-rw-r--r-- 1 root root 67032 Oct 8 2008 symvers-2.6.9-78.0.5.ELsmp.gz
-rw-r--r-- 1 root root 67032 Nov 20 2008 symvers-2.6.9-78.0.8.ELsmp.gz
-rw-r--r-- 1 root root 68382 Sep 15 20:25 symvers-2.6.9-89.0.11.ELsmp.gz
-rw-r--r-- 1 root root 67596 Oct 24 06:22 symvers-2.6.9-89.0.15.EL.gz
-rw-r--r-- 1 root root 68382 Oct 24 06:35 symvers-2.6.9-89.0.15.ELsmp.gz
-rw-r--r-- 1 root root 67596 Nov 4 07:29 symvers-2.6.9-89.0.16.EL.gz
-rw-r--r-- 1 root root 68382 Nov 4 07:43 symvers-2.6.9-89.0.16.ELsmp.gz
-rw-r--r-- 1 root root 68382 Dec 16 04:45 symvers-2.6.9-89.0.18.ELsmp.gz
-rw-r--r-- 1 root root 68382 Aug 14 23:28 symvers-2.6.9-89.0.7.ELsmp.gz
-rw-r--r-- 1 root root 68382 Aug 24 21:03 symvers-2.6.9-89.0.9.ELsmp.gz
-rw-r--r-- 1 root root 771586 Nov 3 2007 System.map-2.6.9-55.0.12.ELsmp
-rw-r--r-- 1 root root 771374 Jun 27 2007 System.map-2.6.9-55.0.2.ELsmp
-rw-r--r-- 1 root root 771586 Sep 5 2007 System.map-2.6.9-55.0.6.ELsmp
-rw-r--r-- 1 root root 771586 Sep 28 2007 System.map-2.6.9-55.0.9.ELsmp
-rw-r--r-- 1 root root 771273 May 3 2007 System.map-2.6.9-55.ELsmp
-rw-r--r-- 1 root root 777506 May 8 2008 System.map-2.6.9-67.0.15.ELsmp
-rw-r--r-- 1 root root 776963 Dec 20 2007 System.map-2.6.9-67.0.1.ELsmp
-rw-r--r-- 1 root root 777533 Jun 26 2008 System.map-2.6.9-67.0.20.ELsmp
-rw-r--r-- 1 root root 777533 Jul 24 2008 System.map-2.6.9-67.0.22.ELsmp
-rw-r--r-- 1 root root 776963 Feb 3 2008 System.map-2.6.9-67.0.4.ELsmp
-rw-r--r-- 1 root root 777145 Mar 15 2008 System.map-2.6.9-67.0.7.ELsmp
-rw-r--r-- 1 root root 776963 Nov 17 2007 System.map-2.6.9-67.ELsmp
-rw-r--r-- 1 root root 797154 Jan 15 2009 System.map-2.6.9-78.0.13.ELsmp
-rw-r--r-- 1 root root 797158 Mar 13 2009 System.map-2.6.9-78.0.17.ELsmp
-rw-r--r-- 1 root root 797288 Aug 6 2008 System.map-2.6.9-78.0.1.ELsmp
-rw-r--r-- 1 root root 797656 May 1 2009 System.map-2.6.9-78.0.22.ELsmp
-rw-r--r-- 1 root root 797288 Oct 8 2008 System.map-2.6.9-78.0.5.ELsmp
-rw-r--r-- 1 root root 797420 Nov 20 2008 System.map-2.6.9-78.0.8.ELsmp
-rw-r--r-- 1 root root 785600 Sep 15 20:25 System.map-2.6.9-89.0.11.ELsmp
-rw-r--r-- 1 root root 768660 Oct 24 06:22 System.map-2.6.9-89.0.15.EL
-rw-r--r-- 1 root root 785654 Oct 24 06:34 System.map-2.6.9-89.0.15.ELsmp
-rw-r--r-- 1 root root 768660 Nov 4 07:28 System.map-2.6.9-89.0.16.EL
-rw-r--r-- 1 root root 785654 Nov 4 07:43 System.map-2.6.9-89.0.16.ELsmp
-rw-r--r-- 1 root root 785682 Dec 16 04:43 System.map-2.6.9-89.0.18.ELsmp
-rw-r--r-- 1 root root 785498 Aug 14 23:27 System.map-2.6.9-89.0.7.ELsmp
-rw-r--r-- 1 root root 785498 Aug 24 21:03 System.map-2.6.9-89.0.9.ELsmp
-rw-r--r-- 1 root root 1451171 Nov 3 2007 vmlinuz-2.6.9-55.0.12.ELsmp
-rw-r--r-- 1 root root 1450563 Jun 27 2007 vmlinuz-2.6.9-55.0.2.ELsmp
-rw-r--r-- 1 root root 1450984 Sep 5 2007 vmlinuz-2.6.9-55.0.6.ELsmp
-rw-r--r-- 1 root root 1451003 Sep 28 2007 vmlinuz-2.6.9-55.0.9.ELsmp
-rw-r--r-- 1 root root 1450489 May 3 2007 vmlinuz-2.6.9-55.ELsmp
-rw-r--r-- 1 root root 1459207 May 8 2008 vmlinuz-2.6.9-67.0.15.ELsmp
-rw-r--r-- 1 root root 1458873 Dec 20 2007 vmlinuz-2.6.9-67.0.1.ELsmp
-rw-r--r-- 1 root root 1459211 Jun 26 2008 vmlinuz-2.6.9-67.0.20.ELsmp
-rw-r--r-- 1 root root 1459227 Jul 24 2008 vmlinuz-2.6.9-67.0.22.ELsmp
-rw-r--r-- 1 root root 1458782 Feb 3 2008 vmlinuz-2.6.9-67.0.4.ELsmp
-rw-r--r-- 1 root root 1459052 Mar 15 2008 vmlinuz-2.6.9-67.0.7.ELsmp
-rw-r--r-- 1 root root 1458902 Nov 17 2007 vmlinuz-2.6.9-67.ELsmp
-rw-r--r-- 1 root root 1483646 Jan 15 2009 vmlinuz-2.6.9-78.0.13.ELsmp
-rw-r--r-- 1 root root 1483638 Mar 13 2009 vmlinuz-2.6.9-78.0.17.ELsmp
-rw-r--r-- 1 root root 1483770 Aug 6 2008 vmlinuz-2.6.9-78.0.1.ELsmp
-rw-r--r-- 1 root root 1483793 May 1 2009 vmlinuz-2.6.9-78.0.22.ELsmp
-rw-r--r-- 1 root root 1483860 Oct 8 2008 vmlinuz-2.6.9-78.0.5.ELsmp
-rw-r--r-- 1 root root 1483918 Nov 20 2008 vmlinuz-2.6.9-78.0.8.ELsmp
-rw-r--r-- 1 root root 1472648 Sep 15 20:25 vmlinuz-2.6.9-89.0.11.ELsmp
-rw-r--r-- 1 root root 1536207 Oct 24 06:22 vmlinuz-2.6.9-89.0.15.EL
-rw-r--r-- 1 root root 1472454 Oct 24 06:34 vmlinuz-2.6.9-89.0.15.ELsmp
-rw-r--r-- 1 root root 1536244 Nov 4 07:28 vmlinuz-2.6.9-89.0.16.EL
-rw-r--r-- 1 root root 1472608 Nov 4 07:43 vmlinuz-2.6.9-89.0.16.ELsmp
-rw-r--r-- 1 root root 1472585 Dec 16 04:43 vmlinuz-2.6.9-89.0.18.ELsmp
-rw-r--r-- 1 root root 1472446 Aug 14 23:27 vmlinuz-2.6.9-89.0.7.ELsmp
-rw-r--r-- 1 root root 1472450 Aug 24 21:03 vmlinuz-2.6.9-89.0.9.ELsmp
●1世代前以外に明らかに古いカーネルが見受けられる
SMPは、package-cleanupでは消えないのか?ということでyumでremoveしてみました。
# yum remove kernel-*-2.6.9-55*
Loading "fastestmirror" plugin
Setting up Remove Process
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Package kernel-hugemem-devel.i686 0:2.6.9-55.0.6.EL set to be erased
---> Package kernel-hugemem-devel.i686 0:2.6.9-55.0.9.EL set to be erased
---> Package kernel-hugemem-devel.i686 0:2.6.9-55.0.2.EL set to be erased
---> Package kernel-smp.i686 0:2.6.9-55.0.12.EL set to be erased
---> Package kernel-smp-devel.i686 0:2.6.9-55.0.2.EL set to be erased
---> Package kernel-smp-devel.i686 0:2.6.9-55.0.6.EL set to be erased
---> Package kernel-smp-devel.i686 0:2.6.9-55.0.9.EL set to be erased
---> Package kernel-hugemem-devel.i686 0:2.6.9-55.0.12.EL set to be erased
---> Package kernel-smp.i686 0:2.6.9-55.0.2.EL set to be erased
---> Package kernel-smp.i686 0:2.6.9-55.0.9.EL set to be erased
---> Package kernel-smp.i686 0:2.6.9-55.0.6.EL set to be erased
---> Package kernel-smp-devel.i686 0:2.6.9-55.0.12.EL set to be erased
---> Package kernel-smp.i686 0:2.6.9-55.EL set to be erased
--> Running transaction check
Dependencies Resolved
=============================================================================
Package Arch Version Repository Size
=============================================================================
Removing:
kernel-hugemem-devel i686 2.6.9-55.0.6.EL installed 12 M
kernel-hugemem-devel i686 2.6.9-55.0.9.EL installed 12 M
kernel-hugemem-devel i686 2.6.9-55.0.2.EL installed 12 M
kernel-hugemem-devel i686 2.6.9-55.0.12.EL installed 12 M
kernel-smp i686 2.6.9-55.0.12.EL installed 29 M
kernel-smp i686 2.6.9-55.0.2.EL installed 29 M
kernel-smp i686 2.6.9-55.0.9.EL installed 29 M
kernel-smp i686 2.6.9-55.0.6.EL installed 29 M
kernel-smp i686 2.6.9-55.EL installed 29 M
kernel-smp-devel i686 2.6.9-55.0.2.EL installed 12 M
kernel-smp-devel i686 2.6.9-55.0.6.EL installed 12 M
kernel-smp-devel i686 2.6.9-55.0.9.EL installed 12 M
kernel-smp-devel i686 2.6.9-55.0.12.EL installed 12 M
Transaction Summary
=============================================================================
Install 0 Package(s)
Update 0 Package(s)
Remove 13 Package(s)
Total download size: 0
Is this ok [y/N]: y
Downloading Packages:
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Removing : kernel-smp-devel ####################### [ 1/13]
Removing : kernel-hugemem-devel ####################### [ 2/13]
Removing : kernel-hugemem-devel ####################### [ 3/13]
Removing : kernel-hugemem-devel ####################### [ 4/13]
Removing : kernel-smp ####################### [ 5/13]
Removing : kernel-smp-devel ####################### [ 6/13]
Removing : kernel-smp-devel ####################### [ 7/13]
Removing : kernel-hugemem-devel ####################### [ 8/13]
Removing : kernel-smp ####################### [ 9/13]
Removing : kernel-smp ####################### [10/13]
Removing : kernel-smp ####################### [11/13]
Removing : kernel-smp-devel ####################### [12/13]
Removing : kernel-smp ####################### [13/13]
Removed: kernel-hugemem-devel.i686 0:2.6.9-55.0.6.EL kernel-hugemem-devel.i686 0:2.6.9-55.0.9.EL kernel-hugemem-devel.i686 0:2.6.9-55.0.2.EL kernel-hugemem-devel.i686 0:2.6.9-55.0.12.EL kernel-smp.i686 0:2.6.9-55.0.12.EL kernel-smp.i686 0:2.6.9-55.0.2.EL kernel-smp.i686 0:2.6.9-55.0.9.EL kernel-smp.i686 0:2.6.9-55.0.6.EL kernel-smp.i686 0:2.6.9-55.EL kernel-smp-devel.i686 0:2.6.9-55.0.2.EL kernel-smp-devel.i686 0:2.6.9-55.0.6.EL kernel-smp-devel.i686 0:2.6.9-55.0.9.EL kernel-smp-devel.i686 0:2.6.9-55.0.12.EL
Complete!
見事に消えたのでyumでupdateを実行してみた。
# yum update
Loading "fastestmirror" plugin
Setting up Update Process
Setting up repositories
update 100% ========================= 951 B 00:00
base 100% ========================= 1.1 kB 00:00
addons 100% ========================= 951 B 00:00
extras 100% ========================= 1.1 kB 00:00
Determining fastest mirrors
Reading repository metadata in from local files
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Package kernel.i686 0:2.6.9-89.0.18.EL set to be installed
--> Running transaction check
Dependencies Resolved
=============================================================================
Package Arch Version Repository Size
=============================================================================
Installing:
kernel i686 2.6.9-89.0.18.EL update 13 M
Transaction Summary
=============================================================================
Install 1 Package(s)
Update 0 Package(s)
Remove 0 Package(s)
Total download size: 13 M
Is this ok [y/N]: y
Downloading Packages:
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing: kernel ######################### [1/1]
Installed: kernel.i686 0:2.6.9-89.0.18.EL
Complete!
大丈夫なようです。これでいいのか?まっいっか。
2009年12月22日火曜日
2009年12月7日月曜日
2009年12月4日金曜日
Google日本語入力
過去の変換結果を記憶して、再度同じような入力した場合に変換候補が出てくるサジェスト機能やすべての文字を入力しなくても、予測して変換候補が出きたりと日本語入力がとても楽になりそうです。また、URL入力時日本語入力のまま「hっtp:・・」と入力しても「http://」と自動的に変換されるようです。
対応OS
- Windows 7 日本語版もしくは日本語を含む言語パック導入済の環境
- Windows Vista SP1以降
- Windows XP SP2以降(32bit版のみ)
- Mac OS X 10.5以降
こちらからダウンロードサイトへ行けます。
※Beta版ですのでご利用は自己責任で行ってください。
「Google日本語入力を既定のIMEとして設定する」のチェックをONのままにしておき、ログオフ後そのまま利用することができます。言語バーはこのようになっていればGoogle日本語入力の使用状態です。
プロパティ
スパナアイコンをクリックしてプロパティーを見てみるとシンプルでわかりやすい構成です。
ローマ字入力・かな入力
日本語の入力方法として、ローマ字入力、かな入力の2種類から選択することができる。
句読点
句読点のフォーマットを変更することができる。
記号
カギ括弧などの記号のフォーマットを変更することができる。
スペースの入力
スペースの全角、半角表示を変更することができる。
候補選択ショートカット
文字入力の際、変換候補の横に表示されるショートカットを数字、アルファベットなどに変更することができる。
プライバシー
Google日本語入力がユーザの入力パターンから学習した単語や文字列を、一時的に変換候補に表示させたくない場合には、[シークレットモードを有効にする]のチェックをオンにする。再表示するにはチェックをオフにする。
キー設定
入力時のキー配置を、ATOK、MS-IMS、ことえりと同様に設定することができる。
キー設定をカスタマイズして利用するには、[カスタム]を選択、[編集]ボタンをクリックする。
画面左下の[+]ボタンをクリックすると、[モード][入力キー][コマンド]に新しいフィールドが追加される。
学習
ユーザの入力パターンを学習する機能を有効・無効にすることができる。学習機能を有効にすると、ユーザが選択した変換候補が上位に表示されるようになる。[学習(新規学習はしない)]をせんたくすると、この設定を行った以降の入力パターン学習が行わなくなる。
[学習履歴のクリア]ボタンを押すと、今までの学習履歴がすべて削除され、変換候補に表示されなくなる。
ユーザ辞書
ユーザ独自の辞書を作成することができる。[ユーザ辞書の編集]ボタンをクリック、[よみ]部分にひらがなでの読み方を、[単語]に登録したい単語を入力する。
その他の辞書
単漢字辞書
「あ」と入力すると「亜」と変換できるなどの設定を行うことが出来る。
記号辞書
「きごう」と入力すると「¬」と変換されるなどの設定を行うことができる。
日付変換を有効にする
「きょう」「あした」と入力すると、日付が変換候補に表示されるようになる。
数字変換を有効にする
「123」と入力すると、「壱百弐拾参」など様々なフォーマットで数字変換することができるようになる。
使用統計情報と障害レポート
障害レポート等をGoogleへ送信する場合には、チェックをオンにする。送信される情報は、OSバージョン情報、カスタマイズの設定情報、打鍵数などの統計情報、クラッシュレポートが送信されるが入力した文字列などの個人情報は送信されない。
2009年11月26日木曜日
dovecot ダウン
ということで調査開始。
・環境
CentOS5.4 + Postfix 2.3.3 + Dovecot 1.0.7
・原因
maillogを検索してみると・・・
Nov 26 04:01:49 mail01 dovecot:
Time just moved backwards by 13 seconds.
This might cause a lot of problems,
so I'll just kill myself now. http://wiki.dovecot.org/TimeMovedBackwards
時刻が13秒戻りました。
これにより多くの問題を引き起こす可能性があります。
ですので、私は自分で死にます。http://wiki.dovecot.org/TimeMovedBackwards
こんなことが書かれていました。
とりあえず吐き出されているDovecot Wikiのリンク先http://wiki.dovecot.org/TimeMovedBackwardsを見てみたところ
- ntpdateを使っていますか?良くありません
- 仮想化環境を使用していますか?
このサーバは仮想環境ではないが、時刻合わせのスクリプト(ntpdateを使用)を1日1回実行されるようcron.daily内に配置している。ntpdateは一瞬にして時刻が修正されるので、これにより13秒戻ったということになる。ダウンした時刻とcron.dailyの時刻(4:02)がほぼ同じなので、これが原因のようです。
・解決方法
Dovecot Wikiによるとntpdを使用してください。とあるのでntpdサービスを使用して時刻同期を取るように変更します。
※ntpdの時間同期は、ずれを徐々に修正するような仕組みになっている。遅れているいる場合は刻み速度を早くして修正し逆に進んでいるときは刻みを遅くして修正するのでいきなり時刻がずれることはない。
インストール
# yum install ntp
設定
※タイムサーバとして稼動も可能だがとりあえず、ローカルホストの時刻同期専用とする。
# vi /etc/ntp.conf
-----------------------------------------------------------------------------
アクセス制御について
#restrict default kod nomodify notrap nopeer noquery → コメント(IPv4)
#restrict -6 default kod nomodify notrap nopeer noquery → コメント(IPv6)
restrict ignore → 追記(とりあえず全てのアクセスを拒否)
restrict 127.0.0.1 → ローカルホストは許可(IPv4)
#restrict -6 ::1 → ローカルホストは許可(IPv6) 使わないのでコメント
参照タイムサーバ
#server 0.centos.pool.ntp.org → コメント
#server 1.centos.pool.ntp.org → コメント
#server 2.centos.pool.ntp.org → コメント
server -4 ntp.nict.jp → 追記(NICT)※-4 はIPv4
server -4 ntp.jst.mfeed.ad.jp → 追記(上記と同期されている)
server -4 ntp.ring.gr.jp → 追記(Ring Server Project)
上記サーバがどれも応答しないときの参照先?よくわかりません
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10
-----------------------------------------------------------------------------
restrictで始まる行は指定したホストに対してのNTPアクセスを制御します。またrestrictは最後の設定条件で有効になるので、最初に全拒否をして接続を許可していくスタイルになります。
- ignore:全てのパケットを拒否
- noquery:クエリーを拒否
- nomodify:設定変更のクエリーを拒否
・起動
時刻差が大幅にあると起動できないため、一度手動で合わせる。
# ntpdate ntp.nict.jp
開始
# /etc/init.d/ntpd start
自動起動
# chkconfig ntpd on
# chkconfig --list ntpd
ntpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
・確認
# ntpq -p
remote列の左側にある"*"は同期中で、"+"がいつでも使用できることを表しています。
尚、開始後に同期するまで5~10分程度必要です。
これで時刻が急に変化することがなくなりましたので大丈夫でしょう。
2009年11月24日火曜日
Redmine アップデート(0.8.6→0.8.7)
※MySQL環境でも同じ手順でOKです
まずはインストール先へ移動
# cd /home/redmine
レポジトリからチェックアウト
# svn update
U test/unit/helpers/application_helper_test.rb
U test/functional/timelog_controller_test.rb
U test/integration/admin_test.rb
U test/integration/account_test.rb
U app/controllers/timelog_controller.rb
U app/controllers/application.rb
U app/controllers/account_controller.rb
U app/views/wiki/export_multiple.rhtml
U app/views/wiki/export.rhtml
U config/initializers
U config/environments/test.rb
U config/environments/test_sqlite3.rb
U config/environments/test_pgsql.rb
U doc/INSTALL
U doc/CHANGELOG
U lib/redmine/version.rb
A lib/tasks/initializers.rake
U lib/redcloth3.rb
U public/themes/alternate/stylesheets/application.css
Updated to revision 3085.
マイグレーション
# rake db:migrate RAILS_ENV="production"
(in /home/redmine)
rake aborted!
Missing session secret. Please run 'rake config/initializers/session_store.rb' to generate one
(See full trace by running task with --trace)
あれ?失敗した模様・・・なにやらsession_store.rbを実行?
先にこれを実行するんですね。
# rake config/initializers/session_store.rb
(in /home/redmine)
再度マイグレーション
# rake db:migrate RAILS_ENV="production"
(in /home/redmine)
今度は大丈夫みたい
情報が以下のように変わりました。
Redmine 0.8.7.stable.3085 (PostgreSQL)
2009年11月20日金曜日
Windows Server 2008 R2 Standard
ServerCoreの環境ではGUIによる役割追加ができませんのでフルインストールした方が簡単でお勧めです。
ハードウェア
- 本体:Dell PowerEdge SC1435
- CPU:AMD Opteron 2376(2.3GHz/6MB L3キャッシュ) × 2
- メモリ:4GB(DDR2/667MHz 1GB×4)
- HDD:160GB×2 RAID1構成(3.5インチSATAⅡ 7200RPM)
とりあえずOSは完了しました。
後日Hyper-Vを追加してCentOSでも入れてみることにしよう。
2009年11月16日月曜日
FortiGuard スパムデータベース
ここではIPアドレス、Eメールアドレス、メール本文中のURLなどでスパムのブラックリスト検索が行えます。
2009年11月13日金曜日
BitNami::Redmine 0.8.6対応版
BitNami::RedmineがRedmine0.8.6に対応したようですね。
Windows版はもちろんのことLinuxやMac用のインストーラもありますが、VMWare等で使用するVMDK形式の仮想マシンまで用意されておりOSはOpenSUSE 11.1で構成されているようです。
BITNAMIへはこちらからどうぞ。
2009年11月11日水曜日
バラクーダレピュテーションブロックリスト(BRBL)
もし使用する方は、くれぐれも自己責任でお願いします
無料ではあるがDNSの登録が必要ですのでまず登録をします。
http://www.barracudacentral.org/ を開き左側のメニューからBRLB>Request Accessを選択します。
Login Information(ログイン情報)
- Email Address:ログインアカウント
- Password:パスワード
- Confirm Password:パスワードを再入力
- Name:(氏名)
- Company:(会社名)
- Address 1:(番地)
- Address 2:(町名)
- City:(市や区)
- Country:(Japanを選択)
- State/Province:(都道府県)
- Zip/Postal Code:(郵便番号)
- Phone Number:(電話番号 +81-****-****)
- Alternate Email Address:(サブ連絡用E-Mailアドレス)
※空はダメみたいです。面倒なのでメインと同じにしてしまいました。
- Name:(氏名)
- Phone Number:(電話番号 +81-****-****)
- Email Address:(連絡E-Mailアドレス)
- Alternate Email Address:(サブ連絡用E-Mailアドレス)
- IP Addresses:自前DNSサーバのIPアドレスを入力(複数あればカンマ区切りで10までOK)
It's OK to email me with BarracudaCentral.org updatesにチェックを入れsubmitを押します。
しばらくするとログイン情報で入力したメールアドレス宛に以下のようなメールが届きます。
-----------------------------------------
Hello,
Thank you for your interest in the Barracuda Reputation Block List (BRBL). Please click on the link below to verify the status of your account and to begin accessing the BRBL.
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓このURLをクリックする↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
http://www.barracudacentral.org/account/verify/~/*********
The Barracuda Reputation System is a compilation of the most sophisticated IP analysis techniques and is one of 12 defense layers included in the Barracuda Spam Firewall.
Thank you,
BarracudaCentral.org
-----------------------------------------
これで登録は完了ですので使えるかテストしてみましょう。
設定するメールサーバ上で以下のコマンドを入力して結果を見ます。
$ host 2.0.0.127.b.barracudacentral.org
2.0.0.127.b.barracudacentral.org has address 127.0.0.2 ← 成功
Host 2.0.127.b.barracudacentral.org not found: 3(NXDOMAIN) ← 失敗
成功を確認後main.cfを編集
※当環境での設定ですので注意
# vi /etc/postfix/main.cf
smtpd_client_restrictions =
permit_mynetworks
permit_sasl_authenticated
reject_rbl_client b.barracudacentral.org ← 追記
permit
ログ(/var/logs/maillog)
postfix/smtpd[24805]: NOQUEUE: reject: RCPT from unknown[**.**.***.**]: 554 5.7.1 Service unavailable; Client host [**.**.***.**] blocked using b.barracudacentral.org; http://www.barracudanetworks.com/reputation/?pr=1&ip=**.**.***.**; from=root@sample.com to=
postfix/smtpd[24805]: disconnect from unknown[**.**.***.**]
2009年11月10日火曜日
Redmine アップデート(0.8.3→0.8.6)
当環境ではSubversionリポジトリからのチェックアウトしているので、Subversionリポジトリから更新します。(CentOSに構築した手順はこちらです)
まずredmineのソースが配置されているディレクトリに移動します。(当環境では/home/redmine)
#cd /home/redmine/
svnコマンドで更新ファイルを取得
# svn update
U test/unit/helpers/application_helper_test.rb
U test/unit/mail_handler_test.rb
U test/unit/query_test.rb
U test/functional/issues_controller_test.rb
U test/functional/news_controller_test.rb
U test/functional/account_controller_test.rb
U test/functional/projects_controller_test.rb
A test/fixtures/mail_handler/ticket_with_spaces_between_attribute_and_separator.eml
U test/fixtures/journals.yml
U test/fixtures/users.yml
U test/fixtures/attachments.yml
U app/helpers/application_helper.rb
U app/models/mail_handler.rb
U app/models/query.rb
U app/models/changeset.rb
G app/controllers/issues_controller.rb
U app/controllers/timelog_controller.rb
U app/controllers/messages_controller.rb
U app/controllers/news_controller.rb
U app/controllers/account_controller.rb
U app/controllers/wiki_controller.rb
U app/views/journals/_notes_form.rhtml
U app/views/users/_memberships.rhtml
U app/views/versions/show.rhtml
データベースのマイグレーション(テーブル作成)
# rake db:migrate RAILS_ENV="production"
(in /home/redmine)
キャッシュのクリア
# rake tmp:cache:clear
(in /home/redmine)
セッションのクリア
# rake tmp:sessions:clear
(in /home/redmine)
Apacheを再起動
Redmineにログインして「管理」>「情報」を開きます。
Redmine 0.8.6.stable.3023 (MySQL)となりました。
※DBにPostgreSQLが使用されているときはRedmine 0.8.6.stable.3023 (PostgreSQL)となる。
2009年11月6日金曜日
PostfixによるtaRgrey その2
その1ではPostfixの基本構築が完了、これからtaRgreyの設定を行っていきますが、taRgreyでは S25R+tarpitting+greylisting というスパム判定手法を組み合わせて使います。S25Rにて動的IPらしき場合は怪しいと判断してtarpitting(指定時間の遅延処理)を行います。待ちきれず接続を切断されてもすぐにはsmtpdプロセスが終了しません。遅延中に相手が接続を切ったらsmtpdプロセスもすぐに終了するようにPostfixにパッチを適用します。
Postfixのパッチ(メモリ消費を抑える効果がある)
PostfixのSRPM(ソースファイル)をyumからダウンロードするためyum-utilsをインストール
# yum install yum-utils
yumのBaseレポジトリに追記
# vi /etc/yum.repos.d/CentOS-Base.repo
[base-source]
name=CentOS-$releasever - Base Source
baseurl=http://mirror.centos.org/centos/$releasever/os/SRPMS/
gpgcheck=1
enabled=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
[updates-source]
name=CentOS-$releasever - Updates Source
baseurl=http://mirror.centos.org/centos/$releasever/updates/SRPMS/
gpgcheck=1
enabled=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
[extras-source]
name=CentOS-$releasever - Extras Source
baseurl=http://mirror.centos.org/centos/$releasever/extras/SRPMS/
gpgcheck=1
enabled=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
PostfixのSRPMダウンロード
# yumdownloader --noplugins --source postfix
SRPMの展開
# rpm -ivh postfix-2.3.3-2.1.el5_2.src.rpm (警告が出るが気にしない)
SRPM展開先ディレクトリへ移動
# cd /usr/src/redhat/SOURCES/
ソースの展開
# tar zxvf postfix-2.3.3.tar.gz
展開ディレクトリへ移動
# cd postfix-2.3.3
パッチのダウンロード
# wget http://k2net.hakuba.jp/pub/postfix-sleep.patch
パッチの適用
# patch -p1 < postfix-sleep.patch
上位ディレクトリへ移動
# cd ../
ソースの再アーカイブ化(パッチを適用する前のソースを削除してから再アーカイブ)
# rm -rf postfix-2.3.3.tar.gz && tar czvf postfix-2.3.3.tar.gz postfix-2.3.3
ソース展開先ディレクトリを削除
# rm -rf postfix-2.3.3
ホームディレクトリへ
# cd
PostfixのRPMパッケージを作成
# rpmbuild -bb --clean --define "dist .`echo postfix-*.src.rpm |awk -F. '{print $(NF-2)}'`" /usr/src/redhat/SPECS/postfix.spec
※1行で記述する
作成したRPMパッケージをインストール(アップデート)
# rpm -Uvh --force /usr/src/redhat/RPMS/i386/postfix-2.3.3-2.1.el5_2.i386.rpm
ソースファイル、specファイルの削除
# rpmbuild --rmsource --rmspec /usr/src/redhat/SPECS/postfix.spec
作成したRPMパッケージの削除
# rm -rf /usr/src/redhat/RPMS/i386/postfix-*
ダウンロードしたSRPMの削除
# rm -rf postfix-2.3.3-2.1.el5_2.src.rpm
Postgreyのインストール
PostgreyのSRPMダウンロード
# wget http://apt.sw.be/redhat/el5/en/SRPMS.rpmforge/postgrey-1.32-1.rf.src.rpm
SRPMの展開
# rpm -ivh postgrey-1.31-1.rf.src.rpm(警告が出るが気にしない)
SRPM展開先ディレクトリへ移動
# cd /usr/src/redhat/SOURCES/
ソースの展開
# tar zxvf postgrey-1.32.tar.gz
展開ディレクトリへ移動
# cd postgrey-1.32
パッチをダウンロード(postgreyのバージョンに注意)
# wget http://k2net.hakuba.jp/pub/targrey-0.31-postgrey-1.32.patch
パッチの適用
# patch -p0 < targrey-0.31-postgrey-1.32.patch
上位ディレクトリへ移動
# cd ../
ソースの再アーカイブ化(パッチを適用する前のソースを削除してから再アーカイブ)
# rm -f postgrey-1.32.tar.gz && tar czvf postgrey-1.32.tar.gz postgrey-1.32
ソース展開先ディレクトリを削除
# rm -rf postgrey-1.32
ホームディレクトリへ
# cd
PostgreyのRPMパッケージを作成
# rpmbuild -bb --clean /usr/src/redhat/SPECS/postgrey.spec
Postgrey依存パッケージをインストールためrpmforgeリポジトリを利用
# rpm-ivh http://apt.sw.be/redhat/el5/en/i386/RPMS.dag/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
yumで自動updateされないよう制御
# vi /etc/yum.repos.d/rpmforge.repo
enabled = 1 ← 0に変更する
依存パッケージのインストール(Postgreyをインストールして即削除)
# yum -y --enablerepo=rpmforge install postgrey && rpm -e postgrey
作成したPostgreyのRPMパッケージをインストール
# rpm -ivh /usr/src/redhat/RPMS/noarch/postgrey-1.32-1.rf.noarch.rpm
作成したRPMパッケージの削除
# rm -rf /usr/src/redhat/RPMS/i386/postgrey-*
ダウンロードしたSRPMの削除
# rm -rf postgrey-1.31-1.rf.src.rpm
taRgreyの解説ページから設定例を取得
# wget http://k2net.hakuba.jp/spam/postfix.conf.2.tar.gz
# tar zxvf postfix.conf.2.tar.gz
一部のファイルをコピー
# cp postfix.conf.2/whitelist_recipient /etc/postfix/
# cp postfix.conf.2/whitelist_client /etc/postfix/
# cp postfix.conf.2/permit_client_nots25r /etc/postfix/
whitelist_recipient とwhitelist_client はDB参照となるためDB化
# postmap /etc/postfix/whitelist_recipient
# postmap /etc/postfix/whitelist_client
DBがあるか確認
# ls /etc/postfix
whitelist_client.db whitelist_recipient.db (この2つを確認)
Postfixの設定変更
Postfixの設定変更
# vi /etc/postfix/main.cf
smtpd_recipient_restrictions =
permit_mynetworks
reject_unauth_destination
reject_non_fqdn_recipient
check_recipient_access hash:$config_directory/whitelist_recipient ← 追記
check_client_access hash:$config_directory/whitelist_client ← 追記
check_client_access regexp:$config_directory/permit_client_nots25r ← 追記
check_policy_service inet:60000 ← 追記
#以下全文追記
smtpd_data_restrictions =
permit_mynetworks
reject_unauth_destination
check_recipient_access hash:$config_directory/whitelist_recipient
check_client_access hash:$config_directory/whitelist_client
check_client_access regexp:$config_directory/permit_client_nots25r
check_policy_service inet:60000
permit
main.cfの入力を終了します。
※解説
smtpd_recipient_restrictionsでの一度目のcheck_policy_serviceでtarpittingを掛け、一旦tarpittingブラックリストに登録されます。
tarpittingを抜けた接続はsmtpd_data_restrictionsまで渡ってくるため、再度check_policy_serviceで呼び出し、tarpittingのブラックリストから削除します。
tarpittingのブラックリストに入っているIPからの接続から再送された場合、tarpittingの処理には回さずに、greylistingの処理に回ります。
Postgreyの起動モードを指定(taRgreyモード 125秒)
# vi /etc/init.d/postgrey
#OPTIONS="--unix=$SOCKET" ← コメント化
OPTIONS="--dbdir=$DBPATH --inet=127.0.0.1:60000 --tarpit=125 --targrey --retry-count=2 --delay=3600"
Postgreyの起動
# /etc/init.d/postgrey start
Postgreyの自動起動
# chkconfig postgrey on
Postfixの再起動
# /etc/init.d/postfix restart
Postfixがyum cronで自動アップデートしないよう制御
# vi /etc/yum.conf
[main]内に以下を記述する
exclude=postfix*
以上でtaRgreyの環境は完了です。
PostfixによるtaRgrey その1
スパム対策として今まで特定の国からのパケット破棄・Rgrey(S25R + greylisting)でしたが、今回はtaRgrey(S25R + tarpitting + greylisting)でスパム対策することにしました。
※RgreyやtaRgreyについての説明は省きます。詳しくはこちらを参照してください。
アンチウイルス等ファイアウォールについてはFortiGateで行うためここでは考慮しません。
ハードウェア
- 本体:Dell PowerEdge R610
- CPU:Intel(R) Xeon E5502(1.86GHz)
- メモリ:4GB(DDR3 2GB×2)
- HDD:146GB×2 RAID1構成(2.5インチSAS 10000RPM) ※ホットプラグ対応
- 電源:717W
- OS:CentOS-5 (5.4)
- SMTP:Postfix(2.3.3)
- POP:Dovecot(1.0.7) ※IMAP対応
- その他:Postgrey(1.32)
# mkdir /etc/skel/Maildir
# chmod 700 /etc/skel/Maildir
※初回送受信時にMaildirの配下にNew(新着メール)、Cur(既読メール)、Tmp(配送中メール)が作られます。
Postfixのインストール
# yum install postfix
設定ファイル編集(変更や追記部分のみ表記)
# vi /etc/postfix/main.cf
FQDN形式でのホスト名(DNSで名前解決できるもの)
myhostname = mail.exsmple.com
自身のドメイン名
mydomain = exsmple.com
ローカルから発せられるメールのUserName@以降に付与
myorigin = $myhostname
待ち受けるネットワーク(ローカル、LANなど全て)
inet_interfaces = all
ローカルで受信するドメイン名およびそのサブドメイン(必要に応じてカンマ区切りで追記)
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain, www.$mydomain
ローカルで受信するユーザの存在マッピング
local_recipient_maps = unix:passwd.byname $alias_maps
ローカルのユーザが存在しないときのエラー
※安定するまで450(再送信依頼)で対応、その後は550(存在しません)で拒否するのがよい。
450で返すと正常なMTAは30分後ぐらいに送信してくる。
unknown_local_recipient_reject_code = 450
権限の与えられるクライアントネットワーク定義(接続や中継を許可するなどに利用)
mynetworks = 10.1.0.0/16, 127.0.0.0/8
メールのリレーを許可するドメインおよびそのサブドメイン
relay_domains = $mydestination
メールボックスの形式
home_mailbox = Maildir/ ※スラッシュを付け忘れないこと
ヘッダチェックなどの制限等をする定義ファイル(後でheader_checksファイルを編集)
header_checks = regexp:/etc/postfix/header_checks
メールサーバソフトの隠蔽化
smtpd_banner = ESMTP unknown
ここまでが基本設定となります。
このままでも稼動させることができますが、セキュリティ強化の設定を追記していきます。
vrfyコマンドを無効(ユーザが存在するかどうか問い合わせをさせない)
disable_vrfy_command = yes
HELO(EHLO)コマンドで自己紹介を要求(ホスト名を通知しない接続を拒否する)
smtpd_helo_required = yes
RFC821の形式に合わないアドレスは拒否
strict_rfc821_envelopes = yes
HELOコマンドの場面で適用される制限
smtpd_client_restrictions =
permit_mynetworks mynetworksで定義したネットワークは許可
reject_rbl_client bl.spamcop.net 外部ブラックリストに登録されている接続先は拒否
permit それ以外は許可
SMTP HELO(EHLO)コマンドの場面で適用される制限
smtpd_helo_restrictions =
permit_mynetworks mynetworksで定義したネットワークは許可
reject_unknown_hostname ホスト名のDNSでAまたはMXレコードない場合は拒否
reject_invalid_hostname ホスト名の文法が不正の場合は拒否
reject_non_fqdn_hostname ホスト名がFQDN形式ではない場合に拒否
※reject_unknown_hostname、reject_invalid_hostname、reject_non_fqdn_hostnameについては正常なホストでも"DNSで解決できない" "FQDN形式ではない"場合が多いため適用しないほうがよいと思われます。
SMTP Mail Fromコマンドの場面で適用される制限
smtpd_sender_restriction =
reject_non_fqdn_sender 送信者メールアドレスがFQDN形式でない場合は拒否
reject_unknown_sender_domain 送信者メールアドレスのドメインが存在しない場合は拒否
permit それ以外は許可
RCPT TOコマンドの場面で適用される制限
smtpd_recipient_restrictions =
permit_mynetworks mynetworksで定義したネットワークは許可
reject_non_fqdn_recipient 受信者メールアドレスがFQDN形式でない場合は拒否
reject_unauth_destination 受信者メールアドレスがmydestinationに属さない宛先は拒否
main.cfの入力を終了します。
header_checksファイルの編集(追記)
# vi /etc/postfix/header_checks
ヘッダのReceived部分を非表示
/^Received:/ IGNORE
大量送信用特殊メーラーからのメールを拒否(他にも色々あります)
/^X-Mailer:.*PostMaster General/ REJECT
GMTを利用して特定地域からのメールを拒否
例)ブラジル(フェルナンド ノローニャ諸島)地域
/^Date:.*-1100/ REJECT
header_checksの入力を終了します。
CentOSではMTAのデフォルトがsendmailのためデフォルトMTAをPostfixへ切り替えます。
まずsendmailを止めて自動起動しないようにします。
# /etc/init.d/sendmail stop
# chkconfig sendmail off
# alternatives --config mta
There are 2 programs which provide 'mta'.
Selection Command
-----------------------------------------------
* + 1 /usr/sbin/sendmail.sendmail ← 現在sendmailがMTAとなっている
2 /usr/sbin/sendmail.postfix ← postfixもあり
Enter to keep the current selection[+], or type selection number:2 ←2を入力
Postfixの起動
#/etc/init.d/postfix start
Postfixの自動起動を有効にする
# chkconfig postfix on
# chkconfig --list postfix
postfix 0:off 1:off 2:on 3:on 4:on 5:on 6:off ※2,3,4,5がONになっていれば問題なし
Postfixの基本環境は完了です。
その2でPostgrey等のインストール・設定を行います。
その2へ
2009年11月4日水曜日
DELL R610 RAIDドライバ
DELLから新しいドライバをダウンロードします。
# wget http://ftp1.us.dell.com/sas-raid/R211003-mptlinux-4.00.38.02-3.tar.gz
# tar zxvf R211003-mptlinux-4.00.38.02-3.tar.gz
dkms-2.0.19.1-1.noarch.rpm
mptlinux-4.00.38.02-3dkms.noarch.rpm
mptlinux-4.00.38.02-src.tar.gz
mptlinux-4.00.38.02.txt
DKMSパッケージとドライバをインストールします。
※DKMS (Dynamic Kernel Module Support) は、カーネルのアップグレード時にモジュールを簡単に再構築するために設計されています。この再構築のために、カーネルに依存するモジュール ソースが常駐できるフレームワークを作成します。
# rpm -ivh dkms-2.0.19.1-1.noarch.rpm
warning: dkms-2.0.19.1-1.noarch.rpm: Header V3 DSA signature: NOKEY, key ID 23b66a9d
Preparing... ########################################### [100%]
1:dkms ########################################### [100%]
# rpm -ivh mptlinux-4.00.38.02-3dkms.noarch.rpm
Preparing... ########################################### [100%]
1:mptlinux ########################################### [100%]
Creating symlink /var/lib/dkms/mptlinux/4.00.38.02/source ->
/usr/src/mptlinux-4.00.38.02
DKMS: add Completed.
Module build for the currently running kernel was skipped since the
kernel source for this kernel does not seem to be installed.
現在使用中のドライバがあるため再起動が必要です。
# shutdown -r now
新しいカーネルにアップグレードする場合は、DKMS が有効に設定されたドライバパッケージを再インストールする必要があるため以下のコマンドを使います。
dkms build -m <モジュール名> -v <モジュールのバージョン> -k <カーネルのバージョン>
dkms install -m <モジュール名> -v <モジュールのバージョン> -k <カーネルのバージョン>
# dkms build -m mptlinux -v 4.00.38.02 -k 2.6.18-164.el5 --kernelsourcedir=/usr/src/redhat/BUILD/kernel-2.6.18/linux-2.6.18.i386/
# dkms install -m mptlinux -v 4.00.38.02 -k 2.6.18-164.el5 --kernelsourcedir=/usr/src/redhat/BUILD/kernel-2.6.18/linux-2.6.18.i386/
# modinfo mptsas
filename: /lib/modules/2.6.18-164.el5/extra/mptsas.ko
version: 4.00.38.02
license: GPL
description: Fusion MPT SAS Host driver
author: LSI Corporation
srcversion: E51EE0D539AEBDC23494300
alias: pci:v00001000d00000062sv*sd*bc*sc*i*
alias: pci:v00001000d00000058sv*sd*bc*sc*i*
alias: pci:v00001000d00000056sv*sd*bc*sc*i*
alias: pci:v00001000d00000054sv*sd*bc*sc*i*
alias: pci:v00001000d00000050sv*sd*bc*sc*i*
depends: mptscsih,mptbase
vermagic: 2.6.18-164.el5 SMP mod_unload 686 REGPARM 4KSTACKS gcc-4.1
parm: mpt_pt_clear: Clear persistency table: enable=1 (default=MPTSCSIH_PT_CLEAR=0) (int)
parm: mpt_cmd_retry_count: Device discovery TUR command retry count: default=144 (int)
parm: mpt_disable_hotplug_remove: Disable hotpug remove events: default=0 (int)
parm: mpt_sdev_queue_depth: Max Device Queue Depth (default=64)
parm: max_lun: max lun, default=16895 (int)
# dkms status
mptlinux, 4.00.38.02, 2.6.18-164.el5, i686: installed (original_module exists)
mptlinux, 4.00.38.02, 2.6.18-164.2.1.el5, i686: installed-weak from 2.6.18-164.el5
2009年10月30日金曜日
Centos 5.4 + Dell R610 にOMSAをインストール
モニタリングツールでハードウェアの状態などがWebブラウザで確認できるツールです。
インストールはとても簡単で、まずはレポジトリを追加しOMSAをインストールするだけです。
1.レポジトリの追加(root権限が必要)
# wget -q -O - http://linux.dell.com/repo/hardware/latest/bootstrap.cgi | bash
2.インストール
# yum install srvadmin-all
※インストールの場所は/opt/dell/srvadmin/になります。
3.レポジトリの調整(勝手にupdateされないよう無効にしておく)
# vi /etc/yum.repos.d/dell-omsa-repository.repo
enabled=1→0に書き換える
完了!
https://サーバアドレス:1311/にアクセスしてrootでログインします。
※デフォルトではSSLで接続してポート1311です。
OMSAのアンインストール方法
yum remove srvadmin-allではアンインストールできません。
アンインストール専用のスクリプトがありますので、それを使います。
# /opt/dell/srvadmin/omil/supportscripts/srvadmin-uninstall.sh
または
# /usr/bin/srvadmin-uninstall.sh
実行すると対象パッケージ一覧が表示されアンインストールしてよいか聞いてきますので、yesを指定してアンインストール完了となります。
srvadmin-omcommon-6.1.0-648
srvadmin-idrac-components-6.1.0-648
srvadmin-racsvc-6.1.0-648
srvadmin-rac4-components-6.1.0-648
srvadmin-storage-6.1.0-648
srvadmin-racdrsc5-6.1.0-648
srvadmin-idracadm-6.1.0-648
srvadmin-standardAgent-6.1.0-648
srvadmin-omilcore-6.1.0-648
srvadmin-hapi-6.1.0-648
srvadmin-syscheck-6.1.0-648
srvadmin-omacore-6.1.0-648
srvadmin-isvc-6.1.0-648
srvadmin-cm-6.1.0-648
srvadmin-racadm4-6.1.0-648
srvadmin-wsmanclient-6.1.0-648.rhel5
srvadmin-racdrsc4-6.1.0-648
srvadmin-base-6.1.0-648
srvadmin-storageservices-6.1.0-648
srvadmin-rac5-components-6.1.0-648
srvadmin-jre-6.1.0-648
srvadmin-webserver-6.1.0-648
srvadmin-idrac-6.1.0-648
srvadmin-rac5-6.1.0-648
srvadmin-ssa-6.1.0-648.rhel5
srvadmin-deng-6.1.0-648
srvadmin-omhip-6.1.0-648
srvadmin-omauth-6.1.0-648.rhel5
srvadmin-rac4-6.1.0-648
srvadmin-idracdrsc-6.1.0-648
srvadmin-iws-6.1.0-648
srvadmin-racadm5-6.1.0-648
Are you sure you want to uninstall?
Press ('y' for yes | 'Enter' to exit):y ← yを入力してenterキー
Uninstalling Server Administrator.
Uninstalled Successfully.
レポジトリの削除
# rpm -qa | grep dell-omsa
dell-omsa-repository-2-5
# yum remove dell-omsa-repository-2-5
※/etc/yum.repos.d/dell-omsa-repository.repoは残ります。
以上で完了です。
ストレージ>SAS 6/iR Integrated(RAIDコントローラ)で警告が・・・ドライバが古すぎる・・・。
正常に稼動していると思われるのでこのままでも良い気がするがなんか気持ち悪い。
後日解決するとしよう。
参考サイト:http://linux.dell.com/repo/hardware/latest/
2009年10月28日水曜日
AD (Active Directory) リストア
このような場合に、複製障害が発生しているドメイン コントローラを復旧するには、バックアップ データからリストアする方法と、問題のドメイン コントローラを再昇格する方法の二つが考えられます。また、再昇格によってドメイン コントローラを復旧する際には、強制降格を実施した後、ドメイン内の任意のドメイン コントローラの 1 台にて、メタデータ クリーンナップ作業を行い、その上で再昇格を行う必要があります。
こちらで動画紹介されています。
2009年10月23日金曜日
CentOS 5.4 リリース
i386ではLiveCDも同時リリースされましたが、x86_64はリリースされませんでした。
x86_64のLiveCDは32bitもサポートするようでその分サイズがかなり大きくCD1枚では収まりきれない様子です。
LiveDVDでもいいんじゃないでしょうかね~
既に構築しているCentOS5.3などは26日までにはyumでupdateできるようになるようです。
リリースに関する情報はこちらを参照してください。
2009年10月15日木曜日
FortiClient 完全無償化
使用ライセンスに制限もなく商用利用も可能だというので企業でも安心して使用できます。
FortiGate自体が企業向けという観点からおそらく宣伝目的だと思われますが・・・。
機能 | 概要 | Standard | Preminum |
アンチウイルス/アンチスパイウェア | ウイルス、スパイウェア、キーロガー、トロイの木馬などから総合的に保護 | ● | ● |
ファイアウォール/VPN | ファイアウォールによる侵入検知、SSL及びIPsecVPN | ● | ● |
Webフィルタリング | 有害サイトやWebメールなどへのアクセスを制御可能 | ● | ● |
アプリケーション検知/WAN最適化 | FortiGate(FortiOS 4.0)と連携してWANの高速化及びアプリケーション及び検知・制御 | ● | ● |
アンチスパム | Windows PCのためのMicrosoft Outlook/Outlook expressと連携のアンチスパム | × | ● |
集中管理機能 | FortiManagerを使ったクライアントの集中管理、集中ロギング | × | ● |
エンドポイント制御 | FortiGate(FortiOS 4.0)と連携してエンドポイントのセキュリティ | ● | ● |
ライセンス数 | 定価(1年) | 更新(1年) |
1 | ¥14,000 | ¥6,000 |
2~9 | ¥9,900 | ¥3,600 |
10~24 | ¥9,000 | ¥3,100 |
25~99 | ¥8,200 | ¥2,800 |
●対応OS
- Windows 2000
- Windows XP
- Windows Vista
- Windows 7
- Windows Server 2003
- Windows Server 2008
Windows Server系でフリーのアンチウイルスが非常に少ないので重宝するのでは・・・
ダウンロードはこちらからどうぞ。
32bit版は「Download Now」からですが、64bit版はページ下の「DOWNLOAD FortiClient for Windows 64-bit」となります。注意してください。
FTPサーバの構築
指定ユーザのみがログインしてアップロードやダウンロードが行えるようにします。またChroot対応にしてユーザのホームディレクトリ(public_html)より上位ディレクトリには移行できないようにする。
- CentOS 5.3
- vsftpd-2.0.5-12.el5_3.1
接続ユーザにシェルを使わせないようにするため架空のシェルを登録しておく。
shellsファイルに「/bin/login」の1行を追記する。
# vi /etc/shells
/bin/login
chroot対応のユーザは/etc/localtimeの参照ができなくなるため時刻が狂うことがある。これを防ぐためユーザディレクトリの直下にetcディレクトリを作成してetcのlocaltimeファイルをコピーしてユーザ用localtimeファイルを設置するようにする。
ユーザ追加時に毎回public_htmlやlocaltimeを作るのは面倒なので、ユーザ追加と同時にこれらが作られるようにしておく。
# mkdir /etc/skel/public_html
# mkdir /etc/skel/etc
# cp /etc/localtime /etc/skel/etc
ユーザの追加とパスワードを設定する。(架空のシェルを割り当てるのでログインしても実質シェルは使えない)
# useradd -s /bin/login hoge
# passwd hoge
ユーザのホームディレクトリとlocaltimeの場所確認
/home/hoge/public_html
/home/hoge/etc/localtime
【インストール】
yumを使いRPMパッケージ版をインストールします。
# yum install vsftpd
【設定1】
confファイルを編集します。各項目は"オプション名=値"というスタイルですが、=(イコール)の前後にスペース等空白は入れないようにしてください。
# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.org (オリジナルを保存)
# vi /etc/vsftpd/vsftpd.conf
#ログインを必要とするため匿名ログインを許可しない
anonymous_enable=NO
#ローカルユーザのログインを許可する
local_enable=YES
#書き込みを許可する
write_enable=YES
#作成したディレクトリやアップロードしたファイルのパーミッションをログインユーザ限定にする
#Webのアップロード用に使いたいときは755になるように022を指定する
#計算方法:777(フル権限)-077(マスク)=700(設定権限)
local_umask=077
#ユーザーがメッセージファイルを持つディレクトリに入った時に、メッセージを表示する
#特に使いません
dirmessage_enable=NO
#ログ関連
xferlog_enable=YES
xferlog_file= /var/log/vsftpd.log
xferlog_std_format=NO
#転送用ポートを指定する
connect_from_port_20=YES
#アスキーモードを許可する
ascii_upload_enable=YES
ascii_download_enable=YES
#接続が確立された時点での情報表示を隠蔽する
ftpd_banner=unkown.
#chroot_listでchroot除外ユーザ(ホームディレクトリより上位へ移動可)を記述する
#ホームディレクトリをpublic_htmlとする
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
local_root=public_html
#ディレクトリ単位での削除やアップロードを許可する
ls_recurse_enable=YES
#スタントアロンモードで起動させる
listen=YES
#サービス名の指定
pam_service_name=vsftpd
#ユーザ制限
#接続許可を/vsftpd/user_listに記述してあるユーザに限定する
#/vsftpd/ftpusersに記述してあるユーザは無条件に接続を拒否する
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
#タイムゾーンをローカルのものを使用する
use_localtime=YES
#ドットファイル(.から始まる隠しファイル)は表示させない
force_dot_file=NO
上記以外にも様々な設定できます。詳しくはこちらを参考にしてください。
【設定2】
無条件に拒否するユーザを記述する(1ユーザ1行に記述するようにします)
/etc/passwordを参考にシステム系ユーザをすべて記述する(任意)
# vi /etc/vsftpd/ftpusers
# Users that are not allowed to login via ftp
root
bin
daemon
adm
lp
sync
shutdown
halt
news
uucp
operator
games
nobody
gopher
ftp
rpc
mailnull
smmsp
nscd
vcsa
sshd
rpcuser
nfsnobody
pcap
dbus
haldaemon
avahi
avahi-autoipd
xfs
ntp
ログイン許可するユーザを記述する(1ユーザ1行に記述するようにします)
デフォルトでシステム系のユーザが記述されていますのですべて削除または行頭に#を付けます。
ここでは最初に追加したユーザhogeを許可しています。
# vi /etc/vsftpd/user_list
# vsftpd userlist
# If userlist_deny=NO, only allow users in this file
# If userlist_deny=YES (default), never allow users in this file, and
# do not even prompt for a password.
# Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers
# for users that are denied.
#root
#bin
#daemon
#adm
#lp
#sync
#shutdown
#halt
#news
#uucp
#operator
#games
#nobody
hoge
chroot除外者用リストの作成
# vi /etc/vsftpd/chroot_list
※chroot除外するユーザを記述する(1ユーザ1行に記述するようにします)
【起動設定】
起動
# /etc/init.d/vsftpd start
自動起動
# chkconfig vsftpd on
ランレベル確認
# chkconfig --list vsftpd
vsftpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
【データ移行】
さてここから旧サーバからデータを移行します。ただ単に移行するだけではなく、タイムスタンプをそのまま引き継ぐようにしたいと思います。
※移行元もvsFTPDで構築されており設定もほぼ同じ構成になっています。
- 移行元サーバIP 192.168.0.5
- 移行先サーバIP 192.168.0.6
ユーザごとにデータ(public_html以下)をアーカイブして圧縮します。
サーバにログイン(ssh等)してrootになります。
# cd /home/hoge
# tar cvzf hoge_backupdata.tar.gz ./public_html/*
# ls -al
total 9860100
drwx------ 5 hoge hoge 4096 Oct 15 12:45 .
drwxr-xr-x 138 root root 4096 Sep 11 19:34 ..
-rw-r--r-- 1 hoge hoge 24 Dec 21 2004 .bash_logout
-rw-r--r-- 1 hoge hoge 191 Dec 21 2004 .bash_profile
-rw-r--r-- 1 hoge hoge 124 Dec 21 2004 .bashrc
-rw-r--r-- 1 hoge hoge 383 Dec 21 2004 .emacs
drwxr-xr-x 2 hoge hoge 4096 Jul 2 2005 etc
drwx------ 6 hoge hoge 4096 Sep 14 21:05 Maildir
-rw-r--r-- 1 root root 10086831455 Oct 14 19:59 hoge_backupdata.tar.gz
drwxr-xr-x 85 hoge hoge 4096 Oct 15 12:45 public_html
FTPのホームディレクトリに移動する。
# mv ./hoge_backupdata.tar.gz ./public_html
【移行先192.168.0.6での作業】
サーバにログイン(ssh等)してrootになります。
FTPコマンドを使用して移行元サーバにログインします。
# ftp 192.168.0.5
Connected to 192.168.0.5.
220 unknown.
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (192.168.0.5:root):hoge ← 移行元サーバのユーザ
331 Please specify the password.
Password: ← パスワード入力
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
ログインが成功しました。もし以下のようなメッセージが表示された場合はログインに失敗ですのでftpコマンドから抜けて再度ログインをします。
530 Login incorrect.
Login failed.
ftp> quit
# もう一度”ftp 192.168.0.5”でログインを試みます。
移行元サーバで作成したアーカイブデータをダウンロードします。
ftp>get hoge_backupdata.tar.gz
・
・
ftp>quit
移行先のpublic_html(/home/hoge/public_html)ディレクトリを削除します。
※public_htmlの中身があるときは事前にバックアップを取っておきます。
# tar zxvf hoge_backupdata.tar.gz
解凍後public_htmlが出来上がりますのでパーミッション等を変更して完了です。
# chown -R hoge.hoge ./public_html
# chmod -R 700 ./public_html
2009年10月14日水曜日
カーネルパニック
新サーバ立ち上げまで頑張ってもらうためkernel panicを起こしたら自動的に再起動するようしました。
カーネルパニックを検知したら5秒後に強制的に再起動するようrc.localファイルに以下の1行を追記して再起動します。
# vi /etc/rc.local
echo 5 > /proc/sys/kernel/panic
2009年9月30日水曜日
2009年9月17日木曜日
Apache configure エラー
# tar zxvf httpd-2.2.13.tar.gz
# cd httpd-2.2.13
# ./configure --prefix=/usr/local/apache --enable-so --enable-mods-shared=all
・
・
・
checking whether to enable mod_deflate... checking dependencies
checking for zlib location... not found
checking whether to enable mod_deflate... configure: error: mod_deflate has been requested but can not be built due to prerequisite failures
mod_deflateモジュールで条件が満たされていないため構築できないと言われてしまった。ということでzlib関連の状況を確認したところ・・・
# rpm -qa | grep zlib
zlib-1.2.3-3
あっzlib-develがありませんでした。
ソースからインストールするときは開発ライブラリが必要なんですね。
# yum install zlib-devel
これで解決です。
※mod_deflate(サーバからの出力データを圧縮する)詳しくはこちらを参照してください。
2009年9月8日火曜日
2009年9月4日金曜日
CentOS 5.4 いつ?
Hyper-V 2.0でも正式サポートされたように仮想化機能が強化されたようですね。
●発表資料より
Red Hat Enterprise Linuxの5.4ソリューションのはRed Hat Enterpriseの仮想化ポートフォリオの基盤であり、カーネルを含めると、仮想化機能を仮想マシンベースの拡大を実現監督のI / O用(KVM)の技術と、インテル®バーチャライゼーションテクノロジー(インテル® VT - d)およびPCI - SIGのSR - iovは、できるインテル® Xeon ®プロセッサー5500番台ベースのプラットフォームの直接I / Oデバイスを共有することで複数の仮想マシンです。 一方、認定済ハードウェアや顧客へのソフトウェアの広範なエコシステムを提供し続けて、リリースには、I / Oスループットおよび開発者のための追加のツールを含めることが改善しています。
※発表資料全文はこちら
CentOS5.4のリリースが待ち遠しいですね。
2009年7月28日火曜日
特定の国からのパケットを破棄
S25R+Greylistingである程度はスパム対策をしているつもりですが、
それをすり抜けてくるスパムが後を絶たない!
特に韓国、中国がひどく最悪です。また最近ではポーランド、ロシアも多くなっています。
そこでkrfilterというサイトを見つけて韓国、中国からのパケット自体を破棄していました。
(CIDR表記されたフィルターファイルをkrfiler様からダウンロードしてiptablesで読み込み定義する)
しかし最近そのフィルターがダウンロードできずフィルタリングできない状態です。
ということで、自分でAPNIC等からIPアドレス割当リストを取得してフィルターを作ることにしました。
とりあえず韓国と中国からのパケット(IPv4)を破棄するよう構築します。
その前に・・・
このフィルター設定で受けた不利益に対しては一切の責任を負えません。
必ず自己責任で行うようにしてください。
また、運用にはそれなりに負荷が掛かりますので非力なマシンでは注意してください。
1.アジア圏を管轄しているAPNICからIPアドレス割当リストの取得する。
2.リストからCIDR表記に変換してiptablesが読み込める形式でファイルを作成する。
3.iptablesを定義して2で作成したファイルを読み込む。
では実際に行ってみましょう。(尚、作業はrootで行います)
●準備
ファイル保存場所を作成する。
# mkdir /etc/myfilter
# cd /etc/myfilter
●IPアドレス割当リストの取得
# wget -O list_apnic ftp://ftp.apnic.net/pub/apnic/stats/apnic/delegated-apnic-latest
※wgetオプション-Oは別名でファイル保存します。
ですのでダウンロードするとlist_apnicというファイル名になります。
このリストは以下のような感じで羅列されています。
1列目:管轄先
2列目:国コード
3列目:IPv4またはIPv6の判断
4列目:IPv4なら開始IPアドレス
5列目:割当個数
apnicCNipv4203.128.32.0819220050311allocated
apnicIDipv4203.128.64.0819220000613allocated
apnicCNipv4203.128.96.0819220050314allocated
apnicKRipv4203.128.160.0819220050314allocated
●CIDR表記に変換
「うざい国からのアクセスを全て遮断」で公開されている変換スクリプトを使わせていただきます。
※公開に感謝いたします。
# wget http://www.42ch.net/~shutoff/prog/countryfilter.pl
CentOSで使うために一部修正が必要なので変更します。
91行目iptablesのpathを変更します。(事前に# which iptablesでpathを確認)
================================================
print "$CommentChar variables. change these values before run.\n";
if ($FilterType == 1) { # iptables
#print "IPTABLES=/usr/sbin/iptables\n"; ← コメント
print "IPTABLES=/sbin/iptables\n"; ← 追記
print "FILTERNAME=CKFILTER\n";
print "TARGET=CKFILTERED\n";
} elsif ($FilterType == 2) { # ipfw
================================================
countryfilter.plにオプションを渡して変換します。
# perl countryfilter.pl iptables KR,CN < ist_apnic > filter_apnic.sh
※<>は実際は半角で・・・
変換されたファイルは以下のような感じで羅列されています。
$IPTABLES -A $FILTERNAME -s 222.250.0.0/16 -j $TARGET
$IPTABLES -A $FILTERNAME -s 222.251.0.0/17 -j $TARGET
$IPTABLES -A $FILTERNAME -s 222.251.128.0/17 -j $TARGET
●iptables定義
iptablesを初期化する
# /etc/init.d/iptables restart
チェインを作成する
# iptables -N CKFILTER
# iptables -N CKFILTERED
チェインにルールを追記する(変換したファイル)
# sh filter_apnic.sh
フィルターに引っかからなかったパケットを許可するルールをCKFILTERチェインに追加する
# iptables -A CKFILTER -j ACCEPT
フィルターに引っかかったパケットを破棄するルールをCKFILTEREDチェインに追加する
さらに破棄されたパケットのログを取るようにする
# iptables -A CKFILTERED -j LOG --log-prefix "Reject-TCP "
# iptables -A CKFILTERED -j DROP
TCP接続開始パケットをINPUTからCKFILTERに飛ばすようにする
# iptables -A INPUT -p tcp -m state --state NEW -j CKFILTER
確認
# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
CKFILTER tcp -- anywhere anywhere state NEW
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain CKFILTER (1 references)
target prot opt source destination
CKFILTERED all -- 58.14.0.0/15 anywhere
CKFILTERED all -- 58.16.0.0/16 anywhere
CKFILTERED all -- 58.17.0.0/17 anywhere
CKFILTERED all -- 58.17.128.0/17 anywhere
・
・
・
こんな感じでリストが出てくればOKです。
ログの確認
# cat /var/log/messages
Jul 28 15:08:41 mail01 kernel: Reject-TCP IN=eth1 OUT= MAC=Macアドレス SRC=送信元IP DST=受けIP LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=5926 DF PROTO=TCP
SPT=42975 DPT=25 WINDOW=5840 RES=0x00 SYN URGP=0
こんな感じでログが書き込まれます。
私は一連の流れをスクリプト化して1日1回実行するようcronに登録しています。
※2009/10 1週間に1回に変更した。
アジア圏以外は以下からリストを取得することができます。
AfriNIC管轄:アフリカ地域
ftp://ftp.afrinic.net/pub/stats/afrinic/delegated-afrinic-latest
ARIN 管轄:アメリカ北部圏
ftp://ftp.arin.net/pub/stats/arin/delegated-arin-latest
LACNIC管轄:ラテンアメリカ及び西インド諸島地域
ftp://ftp.lacnic.net/pub/stats/lacnic/delegated-lacnic-latest
RIPE NIC管轄:ヨーロッパ地域
ftp://ftp.ripe.net/pub/stats/ripencc/delegated-ripencc-latest
参考にしたサイト
「うざい国からのアクセスを全て遮断」
krfilter - deny accesses from .kr
※2013/05/13 ご要望頂いたので自動化スクリプトを以下に公開しました。
2009年7月27日月曜日
2009年7月8日水曜日
PostgreSQL 8.4
使わない場合は、--disable-integer-datetimes オプションを指定してconfigureを実行する必要があります。
こちらに8.4に関する技術情報が詳しく掲載されています。
2009年7月2日木曜日
Redmine PDF 文字化け
# vi [RedmineインストールDir]/lang/ja.yml (ファイル自体UNICODEで書かれています)54行目付近
general_pdf_encoding: UTF-8
general_csv_encoding: UTF-8
↓
general_pdf_encoding: CP392
general_csv_encoding: CP392
文字数が関連しているのか?チケットの題名に全角22文字ぐらいを超えるとその部分が文字化けを起こすように思えます。ソースレベルでの検証はしていませんが・・・
環境:CentOS PostgreSQL Apache経由
Postfix メールキュー
復旧後、溜まったメールキューを送信しなければ・・・汗
コマンドなんだっけ???
大したコマンドじゃないけど、つい忘れちゃうんだよね。
ということで、残しておこう。
●未配送のメールキューがどれくらいあるか調べる。
# postqueue -p (mailqでも可能)
●キューをフラッシュ: キューにある全てのメールの配送を試みる。
# postqueue -f
●特定のキューをフラッシュ: hoge@example.com宛のメールのみの配送を試みる。
# postqueue -s hoge@example.com
●不要なキューを削除(指定のQueue ID)
# postsuper -d Queue ID
●メールの内容を見る(指定のQueue ID)
# postcat -q Queue ID
無事配送完了!
Mail queue is empty(メールキューは空です)
SQL Server DEFAULT 制約名を取得
●SQL Server 2005以降
SELECT
tb.id AS tb_id, --(テーブルID)
tb.name AS tb_name, --(テーブル名)
col.object_id AS col_id, --(フィールドID)
col.name AS col_name, --(フィールド名)
col.default_object_id AS const_id, --(制約ID)
const.name AS const_name --(制約名)
FROM sys.columns AS col
LEFT JOIN sysobjects AS tb ON col.object_id = tb.id
LEFT JOIN sys.default_constraints AS const ON col.default_object_id = const.object_id
WHERE (col.object_id IN(SELECT id FROM sysobjects WHERE (xtype = 'U'))) --ユーザーテーブルのみに限定
ORDER BY tb.id
●SQL Server 2000(SQL Server 2005も可能)
SELECT
tb.id as tb_id,
tb.name as tb_name,
col.name as col_name,
col.cdefault as const_id,
const.name as const_name
FROM syscolumns as col
LEFT JOIN sysobjects as tb on col.id = tb.id
INNER JOIN sysobjects as const on col.cdefault = const.id
WHERE tb.xtype IN('U', 'D') AND
OTDER BY tb.id
2009年6月30日火曜日
RedmineをPostgreSQLで
2010/07/20 PostgreSQL8.4.3インストールをアップしました。
PostgreSQLは既に構築されているものとします。
尚、ruby on Railsの構築およびRedmineのインストール等については、以前紹介したRedmine CentOSにインストールを参考にしてください。
環境:CentOS 5.3
PostgreSQL 8.3.7
Ruby 1.8.7
Rubygems 1.3.4
Rails 2.1.2
Redmine 0.8.4
尚、PostgreSQL/Ruby/Rubygemsはソースからのインストールで/usr/local/src/で展開しています。
データベース:DB名 redmine
DBユーザ redmine
ユーザパスワード:redmine
●データベース
postgresql運用ユーザで作業します。(当環境ではpostgresというユーザ)
# su - postgres
Redmine用のデータベースユーザを新規作成します。
$ createuser -P redmine
パスワードの設定
Enter password for new role:パスワード入力(redmine)
Enter it again:確認のためもう一回入力
スーパーユーザにしますか?
Shall the new role be a superuser? (y/n) n
データベース作成を許可しますか?
Shall the new role be allowed to create databases? (y/n) y
新しいユーザの作成を許可しますか?
Shall the new role be allowed to create more new roles? (y/n) n
空のデータベースを作成します。(UTF-8)
$ createdb redmine --owner redmine --encoding=UNICODE
PostgreSQL8.4以降の場合は以下のようにします。
$ createdb redmine --owner redmine --encoding=UNICODE --template=template0
●PostgreSQLアダプター
rootで作業をします。
pg_configへのpathを読み込む
# export PATH=$PATH:/usr/local/pgsql/bin (postgresqlのインストール先)
# gem install pg
Building native extensions. This could take a while...
Successfully installed pg-0.8.0
1 gem installed
Installing ri documentation for pg-0.8.0...
Installing RDoc documentation for pg-0.8.0...
pg (0.8.0)が存在するかチェックします。
# gem list
●接続設定
# vi /home/redmine/config/database.yml
production:
adapter: postgresql
database: redmine
host: localhost
username: redmine
password: "redmine"
●スキーマの作成
# cd /home/redmine/
# rake --trace db:migrate RAILS_ENV="production"
(in /home/redmine)
rake aborted!
libiconv.so.2: cannot open shared object file: No such file or directory - /usr/local/lib/ruby/1.8/i686-linux/iconv.so
/home/redmine/Rakefile:10
(See full trace by running task with --trace)
何やら怒られてしまった。libiconv.so.2が存在しない?
--trace オプションを付けるとエラーが発生したときわかりやすいのでお勧め
rubyのソースからインストール
# cd /usr/local/src/ruby-1.8.7-p160/ext/iconv/ (rubyの展開ソース)
# ruby extconf.rb
checking for iconv() in iconv.h... no
checking for iconv() in -liconv... yes
checking for const of iconv() 2nd argument... no
creating Makefile
# make
# make install
もう一度
# cd /home/redmine/
# rake --trace db:migrate RAILS_ENV="production"
(in /home/redmine)
rake aborted!
no such file to load -- openssl
またダメだ。今度はssl?
# yum install openssl-devel (必要なので事前に入れておく)
# cd /usr/local/src/ruby-1.8.7-p160/ext/openssl/
# ruby extconf.rb
・
・
=== Checking done. ===
creating extconf.h
creating Makefile
Done.
# make
# make install
再度実行(今度はどうだ!)
# cd /home/redmine/
# rake --trace db:migrate RAILS_ENV="production"
今度は大丈夫なようです。これでテーブル等が作成されました。
●デフォルトデータ
# rake redmine:load_default_data RAILS_ENV="production"
Select language: bg, ca, cs, da, de, en, es, fi, fr, he, hu, it, ja, ko, lt, nl, no, pl, pt, pt-br, ro, ru, sk, sr, sv, th, tr, uk, vn, zh, zh-tw [en]
ではjaを入力する。
データが作成されました。
以下省略
Ruby on Railsの構築はこちらを参照ください。(DBはMySQLですが)
2009年6月15日月曜日
FortiGate 初期化(工場出荷状態)
CUIでは次のコマンドで初期化できます。
# exe factoryreset
工場出荷状態になりますが続けますか?と聞かれますので"y"を押して実行します。
再起動が終了すれば初期化は完了です。
ちなみにHDD搭載のLogDiskは以下のコマンドで初期化できます。
# exe formatlogdick
FortiOS TFTP経由による初期化
FortiGate-50BにV3.00-b0741(MR7 Patch 5)を適用させました。
流れとしてはFortiGate起動>フォーマット>TFTPからファームウェアを読み込む、というようになります。
準備として以下のものを用意します。
・シリアルポート(D-sub9)を装備するWindowsPC
・シリアル接続ケーブル(fortigate付属品)
・適用するファームウェア
・TFTP
・スイッチングHUB
●TFTP
お勧めはTFTPD32です。以下よりダウンロードします。
http://tftpd32.jounin.net/tftpd32.htmlにアクセスしてDownloadを指定します。
最新版のZIPファイルを指定します。
解凍してできたフォルダをCドライブの直下に移動します。(C:\tftpd32.333)
そのフォルダ内にFortiGateのファームウェアFGT_50B-v300-build0741-FORTINET.outを配置させます。※リネームして名前を短くした方が後々便利かも。(C:\tftpd32.333\FGT_50B-v300)
●セッティング
FortiGateの電源はOFFにしておきます。
PCとFortiGateをシリアルケーブルで接続してさらにPCとFortiGateを用意したHUBにLANケーブルで接続します。PCに適当なIP(ここでは192.168.1.100/255.255.255.0)を固定で振ります。
※デフォルトゲートウェイ、DNSは設定する必要はありません。
●TFTPの起動
C:\tftpd32.333\tftpd32.exeをダブルクリックして起動します。
●ターミナルソフト
Windows付属のハイパーターミナルを使います。
スタート>すべてのプログラム>アクセサリ>通信>ハイパーターミナル
起動時以下のメッセージが表示されますが、「いいえ」を選択しておきます。
市外局番を入力します。(適当な数値でも構いません)
ただし以前に起動したことのある場合は省略されることがあります。
そのままOKを押します。
適当に名前欄に名称を入力します。
接続方法に接続したCOM番号を指定します。(通常はCOM1でしょう)
接続プロパティを以下のように設定します。
ビット/秒:9600
データビット:8
パリティ:なし
ストップビット:1
フロー制御:なし
FortiGateの電源を入れると起動内容が表示され"Press any key to display configuration menu・・・"で一時止まりますので素早くPC側で任意のキーを入力します。キー入力のタイミングが遅いとそのまま起動されてしまうので注意してください。その場合は再度電源を入れ直してください。
"Enter G,F,I,Q, or H"と表示され選択待ち状態になりますので"F"を押します。
次に"y"を押します。
再度"G,F,I,Q, or H"と表示され選択待ち状態になりますので今度は"G"を押します。
各アドレスやファームウェアのファイル名を入力します。
"Enter TFTP server adrress"に192.168.1.100(WindowsPCのIP)
"Enter Local adrress"に192.168.1.99(FortiGateのInternal IPとして適当に指定)
"Enter firmware image file name"にFGT_50B-v300-build0741-FORTINET.out
※Please connect TFTP server to Ethernet port "3".と出ているときはFortiGateのローカルポートを"3"にLANケーブルを接続してください。
※TFTPが起動していないと失敗しますので必ず起動しているか確認してください。
しばらくするとTFTPからファームウェアが転送されセーブするかどうかメッセージが表示されますので"D"を押します。
しばらくしてログインプロンプトが表示されたら初期化は完了です。
コンソール接続されているのでついでに簡単な初期設定をしておきましょう。
admin/パスワードなしでログインをします。
●インターナルのIPアドレス
※初期状態はNATモードになっています。
FGT9999999999 # config system interface
FGT9999999999 (interface) # edit internal
FGT9999999999 (internal) # set ip 192.168.1.254/24 ※環境に合わせて設定
FGT9999999999 (internal) # set allowaccess https ping ※必要に応じてhttpなど追記していく
FGT9999999999 (internal) # end
FGT9999999999 #
●Web管理画面の表示言語
ついでにタイムゾーン、ホスト名を同時に設定します。
FGT9999999999 # config system global
FGT9999999999 (global) # set language japanese
FGT9999999999 (global) # set timezone 60
FGT9999999999 (global) # set hostname FGT50B
FGT9999999999 (global) # end
FGT9999999999 #
わかりにくいところがありましたらコメントを残しておいていただけると助かります。