Ads 468x60px

วันจันทร์ที่ 10 ตุลาคม พ.ศ. 2554

ติดตั้ง Sun Freeware บน Solaris

ติดตั้ง Sun Freeware บน Solaris
เว็บไซต์ Sunfreeware.com เป็นแหล่งรวม free software ที่ถูก compile ให้อยู่ในรูปแบบ package (.pkg)  ทำให้สะดวกต่อการติดตั้งบน Solaris  ไฟล์ที่มีให้ดาวน์โหลดมีตั้งแต่ Solaris 2.5 จนถึงเวอร์ชั่นล่าสุด Solaris 10 ทั้งสำหรับรันบนเครื่อง SPARC และ Intel (x86)
การดาวน์โหลดไฟล์เพื่อนำมาติดตั้งมีขั้นตอนดังนี้
  • เลือกเวอร์ชั่นของ Solaris เป็น SPARC หรือ Intel x86 (Pick Processor/OS)
  • เลือก Package ที่จะติดตั้ง
  • อ่านรายละเอียดของ Package นั้น เช่น ต้องติดตั้งโปรแกรมอะไรก่อน (Dependencies)
  • คลิ้กดาวน์โหลดไฟล์ที่ต้องใช้
บทความนี้ขอนำเสนอตัวอย่างการติดตั้ง apache-2.2.11 โดยจะทดลองบน Solaris  10(x86)

เลือกเวอร์ชั่นของ Solaris

คลิ้กเลือก x86/Solaris 10
Sunfreeware Pick Processor/OS

เลือก Package

คลิ้กเลือก apache-2.2.11
Sunfreeware - Select Package

อ่านรายละเอียด Package

รายละเอียดของ apache-2.2.11-sol10-x86-local.gz มีดังนี้
apache-2.2.11-sol10-x86-local.gz Apache 2 – the popular web server – installs in /usr/local/apache2. Dependencies: expat, libiconv, openldap, sasl, zlib, openssl-0.9.8k, and either the libgcc-3.4.6 or gcc-3.4.6. Documentation can be found in /usr/local/apache2/doc/apache2. The configuration files in /usr/local/apache2/conf must be edited to fit your site’s needs, including ssl support.
Sunfreeware - Package Details
จากรายละเอียด
  • การติดตั้ง apache จะถูกติดตั้งไว้ใน /usr/local/apache2
  • ต้องดาวน์โหลดไฟล์อื่นๆ ด้วย (Dependencies) ในที่นี้มี expat, libiconv, openldap, sasl, zlib, openssl-0.9.8k สามารถคลิ้กลิ้งค์ที่ชื่อไฟล์ได้เลย โดยแต่ละไฟล์อาจมี Dependencies ที่ต้องลงอีก สามารถอ่านรายละเอียดของแต่ละไฟล์ เช่น libiconv ต้องใช้  db-4.2.52.NC
  • สำหรับ libgcc_s.so.1 สามารถเลือกไฟล์ติดตั้ง ได้สองแบบคือ libgcc-3.4.6 คือ gcc-3.4.6 แบบแรกไฟล์ libgcc-3.4.6 จะขนาดเล็กกว่าแต่มีเฉพาะ library ที่จำเป็นต้องใช้ ไม่มี compiler เพื่อใช้คอมไพล์โปรแกรมเหมือน gcc-3.4.6 ได้
คลิ้กลิงค์ที่ไฟล์ต่างๆ เพื่อดาวน์โหลดไฟล์ทั้งหมดที่ต้องใช้

ติดตั้ง package

สำหรับการติดตั้ง apache-2.2.11 ถ้าคลิ้กลิ้งค์ไปเรื่อยๆ ตาม Dependencies ไฟล์ที่ต้องใช้มีดังนี้ (24 May 2009)
# ls -l
total 47568
-rw-r--r--   1 user1    other    7873798 May 24 21:20 apache-2.2.11-sol10-x86-local.gz
-rw-r--r--   1 user1    other    3942221 May 24 21:20 db-4.2.52.NC-sol10-intel-local.gz
-rw-r--r--   1 user1    other     299057 May 24 21:20 expat-2.0.1-sol10-x86-local.gz
-rw-r--r--   1 user1    other     526342 May 24 21:20 libgcc-3.4.6-sol10-x86-local.gz
-rw-r--r--   1 user1    other    1451349 May 24 21:20 libiconv-1.11-sol10-x86-local.gz
-rw-r--r--   1 user1    other    6436151 May 24 21:20 openldap-2.4.11-sol10-x86-local.gz
-rw-r--r--   1 user1    other    3174076 May 24 21:20 openssl-0.9.8k-sol10-x86-local.gz
-rw-r--r--   1 user1    other     540742 May 24 21:20 sasl-2.1.21-sol10-x86-local.gz
รัน gzip เพื่อ unzip ไฟล์
# gzip -dv *.gz
apache-2.2.11-sol10-x86-local.gz:        75.3% -- replaced with apache-2.2.11-sol10-x86-local
db-4.2.52.NC-sol10-intel-local.gz:       84.1% -- replaced with db-4.2.52.NC-sol10-intel-local
expat-2.0.1-sol10-x86-local.gz:  65.7% -- replaced with expat-2.0.1-sol10-x86-local
libgcc-3.4.6-sol10-x86-local.gz:         71.7% -- replaced with libgcc-3.4.6-sol10-x86-local
libiconv-1.11-sol10-x86-local.gz:        36.8% -- replaced with libiconv-1.11-sol10-x86-local
openldap-2.4.11-sol10-x86-local.gz:      72.1% -- replaced with openldap-2.4.11-sol10-x86-local
openssl-0.9.8k-sol10-x86-local.gz:       71.3% -- replaced with openssl-0.9.8k-sol10-x86-local
sasl-2.1.21-sol10-x86-local.gz:  71.4% -- replaced with sasl-2.1.21-sol10-x86-local
รัน pkgadd เพื่อติดตั้ง package ต่างๆ
หมายเหตุ ไม่จำเป็นต้องรัน pkgadd เพื่อติดตั้งไฟล์ตาม Dependencies
# pkgadd -d apache-2.2.11-sol10-x86-local
The following packages are available:
  1  SMCap2211     apache
                   (x86) 2.2.11
Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]: all
Processing package instance <SMCap2211> from </usr/local/src/apache-2.2.11-sol10-x86-local>
apache(x86) 2.2.11
The Apache Group
Using </usr/local> as the package base directory.
## Processing package information.
## Processing system information.
## Verifying disk space requirements.
## Checking for conflicts with packages already installed.
## Checking for setuid/setgid programs.
Installing apache as <SMCap2211>
## Installing part 1 of 1.
/usr/local/apache2/bin/ab
/usr/local/apache2/bin/apachectl
/usr/local/apache2/bin/apr-1-config
/usr/local/apache2/bin/apu-1-config
/usr/local/apache2/bin/apxs
/usr/local/apache2/bin/checkgid
/usr/local/apache2/bin/dbmmanage
/usr/local/apache2/bin/envvars
/usr/local/apache2/bin/envvars-std
/usr/local/apache2/bin/htcacheclean
/usr/local/apache2/bin/htdbm
/usr/local/apache2/bin/htdigest
/usr/local/apache2/bin/htpasswd
/usr/local/apache2/bin/httpd
...
...
...
/usr/local/doc/apache/docs/manual/vhosts/name-based.html.ja.utf8
/usr/local/doc/apache/docs/manual/vhosts/name-based.html.ko.euc-kr
/usr/local/doc/apache/docs/manual/vhosts/name-based.html.tr.utf8
/usr/local/doc/apache/httpd.spec
[ verifying class <none> ]
Installation of <SMCap2211> was successful.
# pkgadd -d expat-2.0.1-sol10-x86-local
The following packages are available:
  1  SMCexpat     expat
                  (x86) 2.0.1
Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]: all
Processing package instance <SMCexpat> from </usr/local/src/expat-2.0.1-sol10-x86-local>
expat(x86) 2.0.1
James Clark et al
Using </usr/local> as the package base directory.
## Processing package information.
## Processing system information.
   1 package pathname is already properly installed.
## Verifying disk space requirements.
## Checking for conflicts with packages already installed.
The following files are already installed on the system and are being
used by another package:
* /usr/local/bin <attribute change only>
* - conflict with a file which does not belong to any package.
Do you want to install these conflicting files [y,n,?,q] y
## Checking for setuid/setgid programs.
Installing expat as <SMCexpat>
## Installing part 1 of 1.
/usr/local/bin/xmlwf
/usr/local/doc/expat/COPYING
/usr/local/doc/expat/Changes
/usr/local/doc/expat/MANIFEST
/usr/local/doc/expat/README
...
...
...
/usr/local/lib/libexpat.so.0 <symbolic link>
/usr/local/lib/libexpat.so.0.4.0
/usr/local/lib/libexpat.so.1 <symbolic link>
/usr/local/lib/libexpat.so.1.5.2
/usr/local/man/man1/xmlwf.1
[ verifying class <none> ]
Installation of <SMCexpat> was successful.
# pkgadd -d libiconv-1.11-sol10-x86-local
The following packages are available:
  1  SMCliconv     libiconv
                   (x86) 1.11
Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]: all
Processing package instance <SMCliconv> from </usr/local/src/libiconv-1.11-sol10-x86-local>
libiconv(x86) 1.11
Bruno Haible
Using </usr/local> as the package base directory.
## Processing package information.
## Processing system information.
   6 package pathnames are already properly installed.
## Verifying disk space requirements.
## Checking for conflicts with packages already installed.
The following files are already installed on the system and are being
used by another package:
* /usr/local/share <attribute change only>
* /usr/local/share/doc <attribute change only>
* - conflict with a file which does not belong to any package.
Do you want to install these conflicting files [y,n,?,q] y
## Checking for setuid/setgid programs.
Installing libiconv as <SMCliconv>
## Installing part 1 of 1.
/usr/local/bin/iconv
/usr/local/doc/libiconv/ABOUT-NLS
/usr/local/doc/libiconv/AUTHORS
/usr/local/doc/libiconv/COPYING.LIB
/usr/local/doc/libiconv/ChangeLog
...
...
/usr/local/share/doc/iconv.1.html
/usr/local/share/doc/iconv.3.html
/usr/local/share/doc/iconv_close.3.html
/usr/local/share/doc/iconv_open.3.html
/usr/local/share/doc/iconvctl.3.html
[ verifying class <none> ]
Installation of <SMCliconv> was successful.
# pkgadd -d openssl-0.9.8k-sol10-x86-local
The following packages are available:
  1  SMCossl     openssl
                 (x86) 0.9.8k
Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]: all
Processing package instance <SMCossl> from </usr/local/src/openssl-0.9.8k-sol10-x86-local>
openssl(x86) 0.9.8k
The OpenSSL Group
Using </usr/local> as the package base directory.
## Processing package information.
## Processing system information.
   1 package pathname is already properly installed.
## Verifying disk space requirements.
## Checking for conflicts with packages already installed.
## Checking for setuid/setgid programs.
Installing openssl as <SMCossl>
## Installing part 1 of 1.
/usr/local/doc/openssl/CHANGES
/usr/local/doc/openssl/CHANGES.SSLeay
/usr/local/doc/openssl/FAQ
/usr/local/doc/openssl/INSTALL
/usr/local/doc/openssl/INSTALL.DJGPP
...
...
...
/usr/local/ssl/misc/c_hash
/usr/local/ssl/misc/c_info
/usr/local/ssl/misc/c_issuer
/usr/local/ssl/misc/c_name
/usr/local/ssl/openssl.cnf
[ verifying class <none> ]
Installation of <SMCossl> was successful.
# pkgadd -d db-4.2.52.NC-sol10-intel-local
The following packages are available:
  1  SMCdb     db
               (intel) 4.2.52.NC
Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]: all
Processing package instance <SMCdb> from </usr/local/src/db-4.2.52.NC-sol10-intel-local>
db(intel) 4.2.52.NC
Sleepycat Software
Using </usr/local> as the package base directory.
## Processing package information.
## Processing system information.
## Verifying disk space requirements.
## Checking for conflicts with packages already installed.
## Checking for setuid/setgid programs.
Installing db as <SMCdb>
## Installing part 1 of 1.
/usr/local/BerkeleyDB.4.2/bin/db_archive
/usr/local/BerkeleyDB.4.2/bin/db_checkpoint
/usr/local/BerkeleyDB.4.2/bin/db_deadlock
/usr/local/BerkeleyDB.4.2/bin/db_dump
/usr/local/BerkeleyDB.4.2/bin/db_load
...
...
...
/usr/local/BerkeleyDB.4.2/lib/libdb-4.2.la
/usr/local/BerkeleyDB.4.2/lib/libdb-4.2.so
/usr/local/BerkeleyDB.4.2/lib/libdb-4.so <symbolic link>
/usr/local/BerkeleyDB.4.2/lib/libdb.a
/usr/local/BerkeleyDB.4.2/lib/libdb.so <symbolic link>
[ verifying class <none> ]
Installation of <SMCdb> was successful.
# pkgadd -d libgcc-3.4.6-sol10-x86-local
The following packages are available:
  1  SMClgcc346     libgcc
                    (x86) 3.4.6
Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]: all
Processing package instance <SMClgcc346> from </usr/local/src/libgcc-3.4.6-sol10-x86-local>
libgcc(x86) 3.4.6
FSF
Using </usr/local> as the package base directory.
## Processing package information.
## Processing system information.
   1 package pathname is already properly installed.
## Verifying disk space requirements.
## Checking for conflicts with packages already installed.
## Checking for setuid/setgid programs.
Installing libgcc as <SMClgcc346>
## Installing part 1 of 1.
/usr/local/lib/libg2c.so <symbolic link>
/usr/local/lib/libg2c.so.0 <symbolic link>
/usr/local/lib/libg2c.so.0.0.0
/usr/local/lib/libgcc_s.so <symbolic link>
/usr/local/lib/libgcc_s.so.1
/usr/local/lib/libstdc++.so.6 <symbolic link>
/usr/local/lib/libstdc++.so.6.0.3
[ verifying class <none> ]
Installation of <SMClgcc346> was successful.
# pkgadd -d openldap-2.4.11-sol10-x86-local
The following packages are available:
  1  SMColdap     openldap
                  (x86) 2.4.11
Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]: all
Processing package instance <SMColdap> from </usr/local/src/openldap-2.4.11-sol10-x86-local>
openldap(x86) 2.4.11
The OpenLDAP Group
Using </usr/local> as the package base directory.
## Processing package information.
## Processing system information.
   7 package pathnames are already properly installed.
## Verifying disk space requirements.
## Checking for conflicts with packages already installed.
## Checking for setuid/setgid programs.
Installing openldap as <SMColdap>
## Installing part 1 of 1.
/usr/local/bin/ldapadd <symbolic link>
/usr/local/bin/ldapcompare
/usr/local/bin/ldapdelete
/usr/local/bin/ldapexop
/usr/local/bin/ldapmodify
...
...
...
/usr/local/var/openldap-data/__db.005
/usr/local/var/openldap-data/alock
/usr/local/var/openldap-data/dn2id.bdb
/usr/local/var/openldap-data/id2entry.bdb
/usr/local/var/openldap-data/log.0000000001
[ verifying class <none> ]
Installation of <SMColdap> was successful.
# pkgadd -d sasl-2.1.21-sol10-x86-local
The following packages are available:
  1  SMCsasl     sasl
                 (x86) 2.1.21
Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]: all
Processing package instance <SMCsasl> from </usr/local/src/sasl-2.1.21-sol10-x86-local>
sasl(x86) 2.1.21
The SASL Team
Using </usr/local> as the package base directory.
## Processing package information.
## Processing system information.
   7 package pathnames are already properly installed.
## Verifying disk space requirements.
## Checking for conflicts with packages already installed.
## Checking for setuid/setgid programs.
Installing sasl as <SMCsasl>
## Installing part 1 of 1.
/usr/local/doc/sasl2/AUTHORS
/usr/local/doc/sasl2/COPYING
/usr/local/doc/sasl2/ChangeLog
/usr/local/doc/sasl2/INSTALL
/usr/local/doc/sasl2/NEWS
...
...
...
/usr/local/man/man8/sasldblistusers2.8
/usr/local/man/man8/saslpasswd2.8
/usr/local/sbin/saslauthd
/usr/local/sbin/sasldblistusers2
/usr/local/sbin/saslpasswd2
[ verifying class <none> ]
Installation of <SMCsasl> was successful.

ตรวจสอบ package ที่ติดตั้ง

รันคำสั่ง pkginfo เพื่อตรวจสอบ package ที่ติดตั้ง ดูเฉพาะที่มีชื่อ SMC
# pkginfo | grep SMC
application SMCap2211                        apache
application SMCdb                            db
application SMCexpat                         expat
application SMClgcc346                       libgcc
application SMCliconv                        libiconv
application SMColdap                         openldap
application SMCossl                          openssl
application SMCsasl                          sasl
system      SUNWmgts                         Trusted Extensions, SMC
application SUNWtsmc                         Trusted Extensions SMC Server

รันเว็บเซิร์ฟเวอร์ apache

ใช้คำสั่ง apachectl เพื่อรัน apache
# /usr/local/apache2/bin/apachectl start
# ps -ef | grep apache
  daemon  1016  1011   0 22:13:43 ?           0:00 /usr/local/apache2/bin/httpd -k start
  daemon  1013  1011   0 22:13:43 ?           0:00 /usr/local/apache2/bin/httpd -k start
  daemon  1012  1011   0 22:13:43 ?           0:00 /usr/local/apache2/bin/httpd -k start
  daemon  1015  1011   0 22:13:43 ?           0:00 /usr/local/apache2/bin/httpd -k start
  daemon  1014  1011   0 22:13:43 ?           0:00 /usr/local/apache2/bin/httpd -k start
    root  1011     1   0 22:13:42 ?           0:00 /usr/local/apache2/bin/httpd -k start

เพิ่มความปลอดภัยให้ Solaris 10 แบบง่าย

เพิ่มความปลอดภัยให้ Solaris 10 แบบง่าย
วันนี้ขอเขียนเกี่ยวกับ Solaris 10 ซะหน่อย ช่วงนี้ได้รับมอบหมายให้เพิ่มความปลอดภัย (secure) ให้กับเครื่อง Solaris  แต่มีข้อแม้ไม่อยากให้ลง JASS (Solaris Security Toolkit) ก็เลยลองทำดู และเรียบเรียงมาเป็นบทความให้ผู้สนใจทั่วไป
การเพิ่มความปลอดภัยในบทความนี้  คือการปิดเซอร์วิสที่ไม่ได้ใช้งานโดยไม่กระทบกับงานที่ลูกค้าใช้  ซึ่งนอกจากจะปิดช่องโหว่ที่อาจเกิดขึ้นแล้ว ยังได้ free memory เพิ่มคืนมาอีกด้วย

ปิด remote services ตอนติดตั้ง Solaris

วิธีการหนึ่งที่ช่วยปิดเซอร์วิสเก่าๆ สำหรับการ remote services ไม่ว่าจะเป็น telnet, rlogin, ftp  เหลือแค่ Secure Shell (SSH) สามารถทำได้ตั้งแต่ระหว่างการติดตั้ง Solaris ในหน้าจอที่เลือก “Enabling remote services” ให้เลือก [x] No สำหรับ “Remote services enabled
Solaris 10 Installation - Disable Remote Services

ปิดเซอร์วิส CDE-Login (X Window)

หากคุณไม่เคยเดินไปที่หน้าจอคอนโซลของเครื่อง login เข้า CDE หรือ W Window แล้ว  สามารถปิดเซอร์วิสนี้ไปได้เลย เหลือแค่เป็นคอนโซล แบบ text ธรรมดา ให้สามารถ login ได้
ใช้คำสั่ง svcs เพื่อตรวจสอบสถานะ cde-login
# svcs cde-login
 STATE          STIME    FMRI
 online         13:34:58 svc:/application/graphical-login/cde-login:default
ตัวอย่างหน้าจอ cde-login
Solaris 10 - CDE Login
ใช้คำสั่ง svcadm disable เพื่อปิดเซอร์วิส cde-login
# svcadm disable cde-login
ตรวจสอบสถานะ cde-login หลังจากปิดเซอร์วิสแล้ว
# svcs cde-login
 STATE          STIME    FMRI
 disabled       13:36:59 svc:/application/graphical-login/cde-login:default
ตัวอย่าง text console login หลังจากปิดเซอร์วิส cde-login
After Disable CDE Login

ปิดเซอร์วิส Sun Java Web Console

Sun Java Web Console เป็นเซอร์วิสของ Solaris เพื่อสร้างเป็นจุดรวมของโปรแกรมประเภท system management ผ่านทาง web-based โดยผู้ใช้สามารถเรียกผ่าน https ได้
Sun Java Web Console
หากเราใช้แต่ command line เพื่อแก้ไขคอนฟิกเครื่อง เราสามารถปิดเซอร์วิสนี้ได้
ใช้คำสั่ง svcs เพื่อตรวจสอบสถานะ webconsole
# svcs webconsole
 STATE          STIME    FMRI
 online         14:01:06 svc:/system/webconsole:console
ใช้คำสั่ง svcadm disable เพื่อปิดเซอร์วิส webconsole
# svcadm disable webconsole
ตรวจสอบสถานะ webconsole หลังจากปิดเซอร์วิสแล้ว
# svcs webconsole
 STATE          STIME    FMRI
 disabled       14:41:47 svc:/system/webconsole:console

คอนฟิก Solaris IP Filter

คอนฟิก Solaris IP Filter
บทความนี้กล่าวถึงวิธีการใช้คำสั่ง ipf เพื่อสร้าง rule ของ Solaris IP Filter แบบง่ายๆ เพื่อใช้กำหนด packet เข้าออกเครื่อง

Solaris IP Filter เป็นโปรแกรม Firewall ที่ควบคุม packet เข้า/ออก เครื่องที่ติดตั้ง Solaris ได้
ipf เป็นคำสั่งที่ใช้ในการแก้ไขกฎ (rule) ของ Solaris IP Filter
หมายเหตุ
  • ตัวอย่างในบทความนี้ทดสอบบนเครื่องที่ติดตั้ง Solaris 10 10/09 s10x_u8wos_08a X86
  • ทดสอบกับเครื่องที่สามารถคอนโซลหน้าจอได้เท่านั้น เพราะถ้าคอนฟิก rule ของ Firewall ผิดพลาด อาจทำให้คุณไม่สามารถ remote เช่น Secure Shell ได้

1. เปิด (Start) เซอร์วิส ipfilter

โดยดีฟอลต์จากการติดตั้ง เซอร์วิส IP Filter จะถูกปิดการใช้งาน
ใช้คำสั่ง svcs ตรวจสอบสถานะ
# svcs -av | grep ipfilter
disabled       -             15:25:36      - svc:/network/ipfilter:default
ใช้คำสั่ง svcadm เพื่อเปิดการเซอร์วิส
# svcadm enable ipfilter
# svcs -av | grep ipfilter
online         -             15:27:14      - svc:/network/ipfilter:default

2. เปิดคุณสมบัติ (Enable) IP Filter

ขั้นต่อมา ใช้คำสั่ง ipf -E เพื่อเปิดคุณสมบัติ IP Filter
# ipf -E

3. ทดลองการสร้าง rule แบบง่ายๆ

สร้างไฟล์ /etc/ipf/ipf.conf เพื่อกำหนด rule ที่ต้องการ
ตัวอย่างเช่น ต้องการสร้าง rule เพื่อกำหนดให้เฉพาะเครื่องที่มี IP 192.168.1.2 เท่านั้นที่สามารถ ping (ICMP) เข้ามาที่เครื่องทางพอร์ต e1000g0 ได้
# cat /etc/ipf/ipf.conf
block in on e1000g0 proto icmp from any to any
pass in on e1000g0 proto icmp from 192.168.1.2/32 to any
หลังจากสร้างไฟล์เรียบร้อย พิมพ์คำสั่ง ipf -f ตามด้วยไฟล์ ipf.conf เพื่อเริ่มการบังคับใช้ rule ที่สร้างขึ้น
# ipf -f /etc/ipf/ipf.conf
*** 4. ลบ (Flush) rule ออกไป ***
หากต้องการยกเลิก rule ที่สร้างขึ้น ใช้คำสั่ง ipf -F เพื่อ ลบ (flush) rule ที่มีออกไป
# ipf -F a

5. ปิดคุณสมบัติ (Disable) IP Filter

ใช้คำสั่ง ipf -D เพื่อปิดคุณสมบัติ IP Filter
# ipf -D

ตัวอย่าง rule

มีตัวอย่างการสร้างไฟล์ ipf.conf เพื่อกำหนด rule แบบต่างๆ /usr/share/ipfilter/examples/

คอนฟิก SNMP บน Solaris 10

คอนฟิก SNMP บน Solaris 10
SNMP เป็นเครื่องมือหนึ่งที่สามารถใช้ดูการทำงานของเครื่อง เก็บประวัติการใช้ resource ต่างๆ ของเครื่อง ไม่ว่าจะเป็น CPU, Memory, Disk, Network แล้วสามารถนำมาใช้สร้างเป็นกราฟ รายงาน เพื่อวางแผนการเพิ่ม hardware เมื่อจำเป็นได้
ในบทความนี้จะอธิบายวิธีการคอนฟิกและรัน SNMP Server บน Solaris 10 เพื่อให้สามารถใช้โปรแกรม SNMP เช่น MRTG, Cacti, NMS  มาเก็บค่าต่างๆ ได้

ระบบทดสอบ

บทความนี้ทดสอบบน Solaris 10 (x86) 10/09
# cat /etc/release
                       Solaris 10 10/09 s10x_u8wos_08a X86
           Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
                        Use is subject to license terms.
                           Assembled 16 September 2009

รันเซอร์วิส sma

โปรแกรมชุด SNMP หรือ System Management Agent ใน Solaris 10 ได้มาจาก Net-SNMP ซึ่งเป็น freeware โดยจะถูกติดตั้งใน path ที่ชื่อ /usr/sfw/ ดังนี้น เวลารันคำสั่ง อาจต้องมีการระบุ PATH เพิ่มเติม
System Management Agent บน Solaris 10 ถูกควบคุมด้วยเซอร์วิสที่ชื่อ sma
ใช้คำสั่ง svcs เพื่อตรวจสอบว่ารันเซอร์วิส sma อยู่หรือไม่
# svcs -a | grep sma
disabled       13:50:30 svc:/application/management/sma:default
หมายเหตุ ต้องระบุออปชั่น ‘-a’ เพื่อดูชื่อเซอร์วิสทั้งหมด ทั้งที่ enable และ disable ไว้
ไฟล์คอนฟิกของ SNMP Server คือ /etc/sma/snmp/snmpd.conf
# cat /etc/sma/snmp/snmpd.conf
...
###########################################################################
#
# SECTION: Access Control Setup
#
#   This section defines who is allowed to talk to your running
#   snmp agent.
# rocommunity: a SNMPv1/SNMPv2c read-only access community name
#   arguments:  community [default|hostname|network/bits] [oid]
rocommunity  public
...
ดีฟอลต์ SNMP Community String แบบ read-only คือ “public” แนะนำให้เปลี่ยน เช่นเปลี่ยนเป็น “test_public_read”
# cat /etc/sma/snmp/snmpd.conf
...
rocommunity  test_public_read
...
ใช้คำสั่ง svcadm เพื่อรันเซอร์วิส sma
# svcadm enable svc:/application/management/sma:default
# svcs -a  | grep sma
online         14:18:37 svc:/application/management/sma:default
ใช้คำสั่ง ps เพื่อตรวจสอบ process ของ snmpd (SNMP Server)
# ps -ef | grep snmp
    root  1008     1   0 14:18:38 ?           0:00 /usr/sfw/sbin/snmpd
ทดลองใช้คำสั่ง snmpwalk เพื่อ walk ค่าต่างๆ ผ่านทาง SNMP
# /usr/sfw/bin/snmpwalk -v 1 -c test_public_read 127.0.0.1 system
SNMPv2-MIB::sysDescr.0 = STRING: SunOS sol10u8-zfs64a 5.10 Generic_141445-09 i86pc
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.3
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (12062) 0:02:00.62
SNMPv2-MIB::sysContact.0 = STRING: "System administrator"
SNMPv2-MIB::sysName.0 = STRING: sol10u8-zfs64a
SNMPv2-MIB::sysLocation.0 = STRING: "System administrators office"
SNMPv2-MIB::sysServices.0 = INTEGER: 72
SNMPv2-MIB::sysORLastChange.0 = Timeticks: (64) 0:00:00.64
SNMPv2-MIB::sysORID.1 = OID: IF-MIB::ifMIB
SNMPv2-MIB::sysORID.2 = OID: SNMPv2-MIB::snmpMIB
SNMPv2-MIB::sysORID.3 = OID: TCP-MIB::tcpMIB
...

เพิ่มดิสก์ใหม่บน Solaris 10

เพิ่มดิสก์ใหม่บน Solaris 10
เช่นเดียวกับระบบปฏิบัติการ OS อื่นๆ เมื่อมีการเพิ่มดิสก์ก้อนใหม่เข้าไปในเครื่องที่ติดตั้ง Solaris 10 ต้องมีกระบวนการ หรือต้องรันคำสั่งก่อนที่จะเริ่มใช้ดิสก์ก้อนใหม่ได้

ในบทความนี้ทดสอบการเพิ่มดิสก์ก้อนใหม่ 1 ก้อน บน Solaris 10 (x86)
ใช้คำสั่ง format เพื่อดูว่า Solaris มองเห็นดิสก์อะไรบ้าง
# format
Searching for disks...done
AVAILABLE DISK SELECTIONS:
       0. c1t0d0 <DEFAULT cyl 4866 alt 2 hd 255 sec 63>
          /pci@0,0/pci1000,30@10/sd@0,0
       1. c1t1d0 <DEFAULT cyl 4867 alt 2 hd 255 sec 63>
          /pci@0,0/pci1000,30@10/sd@1,0
Specify disk (enter its number):
ดิสก์ก้อนใหม่ที่เพิ่มเข้ามาคือดิสก์หมายเลข 1 “c1t1d0″
พิมพ์หมายเลขของดิสก์แล้วกด [Enter] เพื่อเข้าสู่โหมดจัดการของดิสก์ก้อนที่ระบุ
Specify disk (enter its number): 1
selecting c1t1d0
[disk formatted]
FORMAT MENU:
        disk       - select a disk
        type       - select (define) a disk type
        partition  - select (define) a partition table
        current    - describe the current disk
        format     - format and analyze the disk
        fdisk      - run the fdisk program
        repair     - repair a defective sector
        label      - write label to the disk
        analyze    - surface analysis
        defect     - defect list management
        backup     - search for backup labels
        verify     - read and display labels
        save       - save new disk/partition definitions
        inquiry    - show vendor, product and revision
        volname    - set 8-character volume name
        !<cmd>     - execute <cmd>, then return
        quit
พิมพ์คำสั่ง partition เพื่อเข้าสู่โหมดการแบ่ง partition
format> partition
WARNING - This disk may be in use by an application that has
          modified the fdisk table. Ensure that this disk is
          not currently in use before proceeding to use fdisk.
หากเจอข้อความ WARNING แบบด้านบน ให้พิมพ์คำสั่ง fdisk เพื่อแก้ไข
format> fdisk
No fdisk table exists. The default partition for the disk is:
  a 100% "SOLARIS System" partition
Type "y" to accept the default partition,  otherwise type "n" to edit the
 partition table.
y
format>
พิมพ์คำสั่ง partition อีกครั้ง
format> partition
PARTITION MENU:
        0      - change `0' partition
        1      - change `1' partition
        2      - change `2' partition
        3      - change `3' partition
        4      - change `4' partition
        5      - change `5' partition
        6      - change `6' partition
        7      - change `7' partition
        select - select a predefined table
        modify - modify a predefined partition table
        name   - name the current table
        print  - display the current table
        label  - write partition map and label to the disk
        !<cmd> - execute <cmd>, then return
        quit
partition>
พิมพ์คำสั่ง print เพื่อแสดงการแบ่ง partition
partition> print
Current partition table (original):
Total disk cylinders available: 4866 + 2 (reserved cylinders)
Part      Tag    Flag     Cylinders        Size            Blocks
  0 unassigned    wm       0               0         (0/0/0)           0
  1 unassigned    wm       0               0         (0/0/0)           0
  2     backup    wu       0 - 4865       37.28GB    (4866/0/0) 78172290
  3 unassigned    wm       0               0         (0/0/0)           0
  4 unassigned    wm       0               0         (0/0/0)           0
  5 unassigned    wm       0               0         (0/0/0)           0
  6 unassigned    wm       0               0         (0/0/0)           0
  7 unassigned    wm       0               0         (0/0/0)           0
  8       boot    wu       0 -    0        7.84MB    (1/0/0)       16065
  9 unassigned    wm       0               0         (0/0/0)           0
partition>
เริ่มต้น ทดลองสร้าง partition 0 มีขนาด 10 GB
partition> 0
Part      Tag    Flag     Cylinders        Size            Blocks
  0 unassigned    wm       0               0         (0/0/0)           0
Enter partition id tag[unassigned]:
Enter partition permission flags[wm]:
Enter new starting cyl[0]:
Enter partition size[0b, 0c, 0e, 0.00mb, 0.00gb]: 10gb
ใช้คำสั่ง print เพื่อแสดง partition
partition> print
Current partition table (unnamed):
Total disk cylinders available: 4866 + 2 (reserved cylinders)
Part      Tag    Flag     Cylinders        Size            Blocks
  0 unassigned    wm       0 - 1305       10.00GB    (1306/0/0) 20980890
  1 unassigned    wm       0               0         (0/0/0)           0
  2     backup    wu       0 - 4865       37.28GB    (4866/0/0) 78172290
  3 unassigned    wm       0               0         (0/0/0)           0
  4 unassigned    wm       0               0         (0/0/0)           0
  5 unassigned    wm       0               0         (0/0/0)           0
  6 unassigned    wm       0               0         (0/0/0)           0
  7 unassigned    wm       0               0         (0/0/0)           0
  8       boot    wu       0 -    0        7.84MB    (1/0/0)       16065
  9 unassigned    wm       0               0         (0/0/0)           0
หลังจากแก้ไข partition พิมพ์คำสั่ง label เพื่อบันทึกข้อมูลลงดิสก์
partition> label
Ready to label disk, continue? y
partition> ^D
กดปุ่ม [Ctrl]+[D] เพื่อออกจากคำสั่ง format
ใช้คำสั่ง newfs เพื่อสร้าง filesystem บน partition ที่เพิ่งสร้างขึ้น
หมายเหตุ ชื่อไฟล์ device ของดิสก์ c1t1d0 – partition 0 คือ /dev/rdsk/c1t1d0s0
# newfs /dev/rdsk/c1t1d0s0
newfs: construct a new file system /dev/rdsk/c1t1d0s0: (y/n)? y
Warning: 870 sector(s) in last cylinder unallocated
/dev/rdsk/c1t1d0s0:     20980890 sectors in 3415 cylinders of 48 tracks, 128 sectors
        10244.6MB in 214 cyl groups (16 c/g, 48.00MB/g, 5824 i/g)
super-block backups (for fsck -F ufs -o b=#) at:
 32, 98464, 196896, 295328, 393760, 492192, 590624, 689056, 787488, 885920,
 20055584, 20154016, 20252448, 20350880, 20449312, 20547744, 20646176,
 20744608, 20843040, 20941472
แนะนำให้ใช้คำสั่ง fsck เพื่อตรวจสอบความถูกต้องของ filesystem ที่สร้างขึ้น ต้องไม่มีข้อความ error ใดๆ
# fsck -y /dev/rdsk/c1t1d0s0
** /dev/rdsk/c1t1d0s0
** Last Mounted on
** Phase 1 - Check Blocks and Sizes
** Phase 2 - Check Pathnames
** Phase 3a - Check Connectivity
** Phase 3b - Verify Shadows/ACLs
** Phase 4 - Check Reference Counts
** Phase 5 - Check Cylinder Groups
2 files, 9 used, 10331200 free (16 frags, 1291398 blocks, 0.0% fragmentation)
สร้าง mount point สำหรับ partition ใหม่
# mkdir /mnt/new-disk0
# mount /dev/rdsk/c1t1d0s0 /mnt/new-disk0
mount: /dev/rdsk/c1t1d0s0 not a block device
สำหรับ Solaris เวลาใช้คำสั่ง newfs หรือ fsck ชื่อ device ที่ระบุคือ /dev/rdsk/… แต่เวลาใช้คำสั่ง mount ต้องระบุชื่อ device เป็น /dev/dsk/…
# mount /dev/dsk/c1t1d0s0 /mnt/new-disk0
ใช้คำสั่ง df เพื่อตรวจสอบ mount point
# df -h
Filesystem             size   used  avail capacity  Mounted on
/dev/dsk/c1t0d0s0       34G   3.7G    30G    11%    /
/devices                 0K     0K     0K     0%    /devices
ctfs                     0K     0K     0K     0%    /system/contract
proc                     0K     0K     0K     0%    /proc
mnttab                   0K     0K     0K     0%    /etc/mnttab
swap                   1.6G   932K   1.6G     1%    /etc/svc/volatile
objfs                    0K     0K     0K     0%    /system/object
sharefs                  0K     0K     0K     0%    /etc/dfs/sharetab
/usr/lib/libc/libc_hwcap1.so.1
                        34G   3.7G    30G    11%    /lib/libc.so.1
fd                       0K     0K     0K     0%    /dev/fd
swap                   1.6G     8K   1.6G     1%    /tmp
swap                   1.6G    20K   1.6G     1%    /var/run
/dev/dsk/c1t0d0s7      1.9G   210M   1.6G    12%    /export/home
/dev/dsk/c1t1d0s0      9.9G    10M   9.7G     1%    /mnt/new-disk0
หากใช้งาน partition ใหม่ได้ถูกต้องเรียบร้อยแล้ว ต้องเพิ่มคอนฟิกเข้าไปในไฟล์ /etc/vfstab เพื่อให้เวลาบู๊ตเครื่องใหม่ มีการ mount partition ใหม่นี้โดยอัตโมมัติ
# cat /etc/vfstab
#device         device          mount           FS      fsck    mount   mount
#to mount       to fsck         point           type    pass    at boot options
#
fd      -       /dev/fd fd      -       no      -
/proc   -       /proc   proc    -       no      -
/dev/dsk/c1t0d0s1       -       -       swap    -       no      -
/dev/dsk/c1t0d0s0       /dev/rdsk/c1t0d0s0      /       ufs     1       no      -
/dev/dsk/c1t0d0s7       /dev/rdsk/c1t0d0s7      /export/home    ufs     2       yes     -
/devices        -       /devices        devfs   -       no      -
sharefs -       /etc/dfs/sharetab       sharefs -       no      -
ctfs    -       /system/contract        ctfs    -       no      -
objfs   -       /system/object  objfs   -       no      -
swap    -       /tmp    tmpfs   -       yes     -
# new disk
/dev/dsk/c1t1d0s0       /dev/rdsk/c1t1d0s0      /mnt/new-disk0  ufs     2       yes     -

Blogger templates