Search Results for '분류 전체보기'

125 POSTS

  1. 2008.11.25 Solaris messages log(inetd, netbios)
  2. 2008.11.24 RAID
  3. 2008.11.13 Solaris9 SCSI HDD 추가하기
  4. 2008.11.07 Solaris8 에서 APM 및 라이브러리 설치
  5. 2008.11.07 Solaris APM Setting
  6. 2008.11.06 서버설치후 해야할 일
  7. 2008.11.06 chattr 와 lsattr 파일 권한

Solaris messages log(inetd, netbios)

Posted 2008. 11. 25. 14:47


inetd[292]: netbios-ns/udp: server failing (looping), service terminated

inetd[292]: netbios-ns/udp: bind: Address already in use

등과 같은 로그를 남긴다면 아래를 참고하세요~!

netbios-ns 는 포트 137를 사용하는데 삼바가 run 중이라면 삼바의 named 가 사용하고 있을겁니다.
만약 삼바를 사용하시다면 위의 메세지를 그냥 무시하시고 사용하셔야 합니다. 밑의 내용을 따라하시면 삼바가 제대로 작동이 되지 않습니다.
inetd.conf 을 찾아서(대부분 /etc/inetd.con or /etc/inetd/inetd.conf) 내용안에 netbios-ns 항목을 #으로 막아 주세요.

또한 netbios-ssn 항목도 #로막아주세요.

RAID

Posted 2008. 11. 24. 16:35


 

RAID (Redundant Array of Independent Disks)는 여러 개의 하드디스크를 통하여


대용량 디스크 또는, 데이타 속도 증가, 데이타 백업, 안정성을 높이는데 사용이 된다.


RAID는 설치 할 때 용도에 맞게 선택을 잘 하여야만 하는데, 이는 득이 될 수도 있고


실이 될 수도 있으니 초기 세팅시에 주의를 하여야 한다.


왜냐하면, 사용 도중 다른 레벨로 세팅을 하거나 다른 환경 변화에 따라 대용량의


주요 데이타를 유실되거나 백업하는 수고가 생기가 된다.


수 많은 RAID가 있지만 가장 많이 사용하고 있는 몇 가지 레벨만 기술하려 한다.

 

1. 개별하드 방식
  1) 최소 하드디스크 개수 : 1
  2) 최대 용량 : 하드디스크 용량
  3) 설명 : 컴퓨터 내부에 있는 하드디스크의 D: E: F: G: 처럼 사용을 하는 것인데, 대부분
         JBOD라고 하지만 실제적으로 JBOD의 의미와는 다른 것이다.
         또한, RAID에는 개별하드 방식이란 것은 없다.
         다만, RAID를 설명하기 위하여 기술을 하였다.
  4) 장점 : RAID를 사용하지 않기 때문에 디스크를 이리 저리 옭기는 이동성이 좋다.
         디스크 장애시에 장애 디스크의 데이타만 유실된다.
  5) 단점 : 컴퓨터에 많은 디스크가 보여 관리하기 힘들고, 대용량 파일 저장이 힘들다.

 

2. RAID 0 (스트라이핑(striping))
  1) 최소 하드디스크 개수 : 2
  2) 최대 용량 : 하드디스크의 수 x 하드디스크 용량
  3) 설명 :
    -. 일반적으로 데이타 속도를 높인다던가 대용량 디스크로 만들어 사용하는 영상편집
       작업용 스토리지에 사용된다.
    -. 컴퓨터에서 1개의 하드디스크 처럼 보이는데, 각 하드디스크를 계속 합하는것과 같다.
    -. 하드디스크가 증가 할 수록 디스크 용량 및 속도가 증가한다.
  4) 장점 :
    -. 데이타 속도가 가장 빠르다.(이론상 하드디스크 1개 속도 x 하드디스크의 수)
    -. 컴퓨터에서 1개의 디스크만 보이므로 관리하기 편하다.
    -. 대용량 디스크가 되므로 대용량 파일을 용이하게 저장 할 수 있다.
    -. 150MB/s 이상 속도의 영상편집의 작업용으로 적합하다.
  5) 단점 :
    -. 1개의 하드디스크가 장애가 나면 전체 하드디스크의 데이타를 유실하므로
       가장 불안전하다.
    -. 필히 디스크의 데이타를 실시간 백업을 해야한다.

 

3. RAID 1 (미러링(mirroring))
  1) 최소 하드디스크 개수 : 2
  2) 최대 용량 : (하드디스크의 수/2) x 하드디스크 용량
  3) 설명 :
    -. 원본 하드디스크와 복사본 하드디스크가 있다고 생각하면 된다.
    -. 전체 하드디스크 중 반은 원본 데이타가 있고 반은 복사본 데이타가 있다고

       생각하면 된다.
    -. 따라서, 실제적으로 절반의 하드디스크만 사용하게 된다.
    -. 데이타를 안전하게 보존 하는 용도로 사용 된다.
    -. 컴퓨터에서는 2개 중 1개만 보이게 된다.(4개 중 2개......)
  4) 장점 :
    -. RAID 중 가장 데이타를 안전하게 보존한다.
    -. 1개의 하드디스크 장애시 새로운 하드디스크 장착으로 데이타를 복구 시킬 수 있다.
  5) 단점 :
    -. 하드디스크를 절반만 사용하게 되므로 백업 디스크가 매우 아깝고 그 만큼 돈도

       많이 든다.


  
4. RAID 5 (Parity)
  1) 최소 하드디스크 개수 : 3
  2) 최대 용량 : (하드디스크의 수-1) x 하드디스크 용량
  3) 설명 :
    -. 각 하드디스크에 데이타 정보가 들어있는 Parity를 저장한다.
    -. 1개의 하드디스크 장애시 새로운 하드디스크 장착으로 데이타를 복구 시킬 수 있다.
    -. 데이타를 안전하게 보존 하는 용도로 사용 된다.
    -. 컴퓨터에서 1개의 하드디스크 처럼 보인다.
  4) 장점 :
    -. RAID 1에 비하여 더 많은 용량의 데이타를 사용 할 수 있다.
    -. 데이타를 안전하게 보존한다.
  5) 단점 :
    -. 2개 이상의 하드디스크 장애시 데이타 손실이 일어난다.
    -. 디스크 생성 및 복구(rebuild)시에 많은 시간이 소요된다.
       (예 : 500G x 4EA = 2Tera 구성시 최소 12시간 이상 소요)
    -. 데이타 갱신시에 Parity 정보를 갱신해야 하기 때문에 속도가 느릴 수 있다.

 

5. RAID 0+1
  1) 최소 하드디스크 개수 : 4
  2) 최대 용량 : (하드디스크의 수/2) x 하드디스크 용량
  3) 설명 :
    -. RAID 0 생성 후에 RAID 1를 생성 한다고 생각하면 된다.
    -. 하드디스크를 합하고 복사본 하드디스크를 만드는 것과 같다.
    -. 대용량 데이타를 안전하게 보관하는 용도로 사용된다.
    -. RAID 1과 같이 실제적으로 절반의 하드디스크만 사용하게 된다.
    -. 컴퓨터에서 1개의 하드디스크 처럼 보인다.
  4) 장점 :
    -. 데이타 속도가 빠르다.(이론상 하드디스크 1개 속도 x (하드디스크의 수/2))
    -. 컴퓨터에서 1개의 디스크만 보이므로 관리하기 편하다.
    -. 대용량 디스크가 되므로 대용량 파일을 용이하게 저장 할 수 있다.
    -. 데이타를 안전하게 보존 한다.
    -. 1개의 하드디스크 장애시 새로운 하드디스크 장착으로 데이타를 복구 시킬 수 있다.
  5) 단점 :
    -. 하드디스크를 절반만 사용하게 되므로 백업 디스크가 매우 아깝고 그 만큼 돈도

        많이 든다.

 

6. RAID 레벨 비교
  1) 안정성 : RAID 1 > RAID 5 > RAID 0+1 > 개별하드방식 > RAID 0
  2) 속  도 : RAID 0 > RAID 0+1 > RAID 5 > 개별하드방식 > RAID 1

 

출처 : www.fgint.com www.colossus.co.kr


Solaris9 SCSI HDD 추가하기

Posted 2008. 11. 13. 11:12



Solaris9  SCSI HDD 추가하기


현재 용량이 제일 큰 3번 디스크에 Solaris9 설치되어있으며 0,1,2번 디스크를 새로 붙여 인식시키는 방법을 알려드리겠습니다.


bash-2.05# format


AVAILABLE DISK SELECTIONS:
       0. c0t0d0 <SUN4.2G cyl 3880 alt 2 hd 16 sec 135>
          /pci@1f,4000/scsi@3/sd@0,0
       1. c0t1d0 <SUN4.2G cyl 3880 alt 2 hd 16 sec 135>
          /pci@1f,4000/scsi@3/sd@1,0
       2. c0t2d0 <SUN4.2G cyl 3880 alt 2 hd 16 sec 135>
          /pci@1f,4000/scsi@3/sd@2,0
       3. c0t3d0 <SUN18G cyl 7506 alt 2 hd 19 sec 248>
          /pci@1f,4000/scsi@3/sd@3,0
Specify disk (enter its number): 0


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
        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
format> p


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> p

Current partition table (original):
Total disk cylinders available: 3880 + 2 (reserved cylinders)


Part      Tag    Flag     Cylinders        Size            Blocks
  0 unassigned    wm       0               0         (0/0/0)          0
  1       swap    wu       0 -  485      512.58MB    (486/0/0)  1049760
  2     backup    wm       0 - 3879        4.00GB    (3880/0/0) 8380800
  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


위에 보시면 1번 슬라이드에 swap이 있는데 이부분을 없애 버리도록 하겠습니다.


partition> 1
Part      Tag    Flag     Cylinders        Size            Blocks
  1       swap    wu       0 -  485      512.58MB    (486/0/0)  1049760


Enter partition id tag[swap]: unassigned
Enter partition permission flags[wu]: wm
Enter new starting cyl[0]: 0
Enter partition size[1049760b, 486c, 485e, 512.58mb, 0.50gb]: 0
partition> p
Current partition table (unnamed):
Total disk cylinders available: 3880 + 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    wm       0 - 3879        4.00GB    (3880/0/0) 8380800
  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


partition> label
Ready to label disk, continue? yes


이렇게 하면 저장이 됩니다.


partition>quit


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
        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
format> label
Ready to label disk, continue? yes


또 다시 한번 저장


format>quit

 


이젠 각각 인식 시킬 디스크들을 solaris에서 사용할 수 있도록 format을 하겠습니다.
여기서 newfs 는 윈도우에서 format과 같은 명령어입니다.


bash-2.05# newfs /dev/dsk/c0t0d0s2
newfs: /dev/rdsk/c0t0d0s2 last mounted as /a
newfs: construct a new file system /dev/rdsk/c0t0d0s2: (y/n)? y
/dev/rdsk/c0t0d0s2:     8380800 sectors in 3880 cylinders of 16 tracks, 135 sectors
        4092.2MB in 85 cyl groups (46 c/g, 48.52MB/g, 6080 i/g)
super-block backups (for fsck -F ufs -o b=#) at:
 32, 99536, 199040, 298544, 398048, 497552, 597056, 696560, 796064, 895568,
 7453616, 7553120, 7652624, 7752128, 7851632, 7948832, 8048336, 8147840,
 8247344, 8346848,

bash-2.05# newfs /dev/dsk/c0t1d0s2
newfs: /dev/rdsk/c0t1d0s2 last mounted as /oracle
newfs: construct a new file system /dev/rdsk/c0t1d0s2: (y/n)? y
/dev/rdsk/c0t1d0s2:     8380800 sectors in 3880 cylinders of 16 tracks, 135 sectors
        4092.2MB in 85 cyl groups (46 c/g, 48.52MB/g, 6080 i/g)
super-block backups (for fsck -F ufs -o b=#) at:
 32, 99536, 199040, 298544, 398048, 497552, 597056, 696560, 796064, 895568,
 7453616, 7553120, 7652624, 7752128, 7851632, 7948832, 8048336, 8147840,
 8247344, 8346848,

bash-2.05# newfs /dev/dsk/c0t2d0s2
newfs: /dev/rdsk/c0t2d0s2 last mounted as /user4
newfs: construct a new file system /dev/rdsk/c0t2d0s2: (y/n)? y
/dev/rdsk/c0t2d0s2:     8380800 sectors in 3880 cylinders of 16 tracks, 135 sectors
        4092.2MB in 85 cyl groups (46 c/g, 48.52MB/g, 6080 i/g)
super-block backups (for fsck -F ufs -o b=#) at:
 32, 99536, 199040, 298544, 398048, 497552, 597056, 696560, 796064, 895568,
 7453616, 7553120, 7652624, 7752128, 7851632, 7948832, 8048336, 8147840,
 8247344, 8346848,
bash-2.05#



이젠 mount 시킬 디렉토리를  / 에 만들겠습니다.


bash-2.05# mkdir new1
bash-2.05# mkdir new2
bash-2.05# mkdir new3
bash-2.05# ls
TT_DB       etc         lost+found  new3        sbin        xfn
bin         export      mnt         nsmail      tmp
cdrom       home        net         opt         usr
dev         kernel      new1        platform    var
devices     lib         new2        proc        vol



그리고 mount를 하도록 하겠습니다.


bash-2.05# mount /dev/dsk/c0t0d0s2 /new1
bash-2.05# mount /dev/dsk/c0t1d0s2 /new2
bash-2.05# mount /dev/dsk/c0t2d0s2 /new3



mount 확인 방법은 df -h 혹은 -k 명령어 입니다.

bash-2.05# df -h
Filesystem             size   used  avail capacity  Mounted on
/dev/dsk/c0t3d0s0      3.7G   2.0G   1.7G    54%    /
/proc                    0K     0K     0K     0%    /proc
mnttab                   0K     0K     0K     0%    /etc/mnttab
fd                       0K     0K     0K     0%    /dev/fd
swap                   1.3G    96K   1.3G     1%    /var/run
swap                   1.3G   320K   1.3G     1%    /tmp
/dev/dsk/c0t3d0s7       12G   364M    11G     4%    /export/home
/dev/dsk/c0t0d0s2      3.9G     9K   3.9G     1%    /new1
/dev/dsk/c0t1d0s2      3.9G     9K   3.9G     1%    /new2
/dev/dsk/c0t2d0s2      3.9G     9K   3.9G     1%    /new3
bash-2.05#


정상적으로 마운트 되어 있는걸 확인 할 수 있습니다.

 



마지막으로 Server가 재부팅이 되더라도 계속  mount가 되도록 설정을 하겠습니다.


bash-2.05# vi /etc/vfstab
"/etc/vfstab" 9 lines, 319 characters
#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/c0t3d0s1       -       -       swap    -       no      -
/dev/dsk/c0t3d0s0       /dev/rdsk/c0t3d0s0      /       ufs     1       no -
/dev/dsk/c0t3d0s7       /dev/rdsk/c0t3d0s7      /export/home    ufs     2 yes     -
swap    -       /tmp    tmpfs   -       yes     -


이렇게 되어있는걸 밑의 내용 처럼 추가 수정하시면 됩니다.



#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/c0t3d0s1       -       -       swap    -       no      -
/dev/dsk/c0t3d0s0       /dev/rdsk/c0t3d0s0      /       ufs     1       no      -
/dev/dsk/c0t3d0s7       /dev/rdsk/c0t3d0s7      /export/home    ufs     2       yes -
/dev/dsk/c0t1d0s2       /dev/rdsk/c0t1d0s2      /new1   ufs     3       yes     -
/dev/dsk/c0t2d0s2       /dev/rdsk/c0t2d0s2      /new2   ufs     4       yes     -
/dev/dsk/c0t3d0s2       /dev/rdsk/c0t3d0s2      /new3   ufs     5       yes     -
swap    -       /tmp    tmpfs   -       yes     -



그리고 마지막으로 mount 명령어를 한번 입력하세요.


bash-2.05# mount
/ on /dev/dsk/c0t3d0s0 read/write/setuid/intr/largefiles/xattr/onerror=panic/dev=800018 on Wed Nov 12 18:33:58 2008
/proc on /proc read/write/setuid/dev=3bc0000 on Wed Nov 12 18:33:57 2008
/etc/mnttab on mnttab read/write/setuid/dev=3c80000 on Wed Nov 12 18:33:57 2008
/dev/fd on fd read/write/setuid/dev=3cc0000 on Wed Nov 12 18:33:59 2008
/var/run on swap read/write/setuid/xattr/dev=1 on Wed Nov 12 18:34:01 2008
/tmp on swap read/write/setuid/xattr/dev=2 on Wed Nov 12 18:34:04 2008
/export/home on /dev/dsk/c0t3d0s7 read/write/setuid/intr/largefiles/xattr/onerror=panic/dev=80001f on Wed Nov 12 18:34:04 2008
/new1 on /dev/dsk/c0t0d0s2 read/write/setuid/intr/largefiles/xattr/onerror=panic/dev=800002 on Thu Nov 13 10:57:17 2008
/new2 on /dev/dsk/c0t1d0s2 read/write/setuid/intr/largefiles/xattr/onerror=panic/dev=80000a on Thu Nov 13 10:57:58 2008
/new3 on /dev/dsk/c0t2d0s2 read/write/setuid/intr/largefiles/xattr/onerror=panic/dev=800012 on Thu Nov 13 10:58:04 2008
bash-2.05#



이제 끝이 났습니다. 의문점은 댓글을 적어주시면 됩니다.


현재 제가 직접 설치한것을 토대로 글을 작성합니다. (2008.11.13)


환경 : Solaris 8 SPARC


1. 필요한  APM 및 라이브러리  다운

 

http://sunfreeware.com  에서 접속하여 오른쪽에 있는 해당 사항들을 클릭하여  아래에 적힌 목록
들을 다운

apache-2.2.9-sol8-sparc-local.gz
mysql-5.0.67-sol8-sparc-local.gz
ncurses-5.6-sol8-sparc-local.gz
php-5.2.6-sol8-sparc-local.gz
expat-2.0.1-sol8-sparc-local.gz
openldap-2.4.11-sol8-sparc-local.gz
sasl-2.1.21-sol8-sparc-local.gz
gcc-3.4.6-sol26-sparc-local.gz
libgcc-3.4.6-sol26-sparc-local.gz
libiconv-1.11-sol26-sparc-local.gz
libintl-3.4.0-sol26-sparc-local.gz
libxml2-2.6.31-sol26-sparc-local.gz
openssl-0.9.8i-sol26-sparc-local.gz
zlib-1.2.3-sol26-sparc-local.gz
libidn-1.10-sol8-sparc-local.gz
libpng-1.2.33-sol8-sparc-local.gz
curl-7.19.1-sol8-sparc-local.gz
fontconfig-2.4.2-sol8-sparc-local.gz
freetype-2.3.1-sol8-sparc-local.gz
gd-2.0.35-sol8-sparc-local.gz
jpeg-6b-sol8-sparc-local.gz
xpm-3.4k-sol8-sparc-local.gz


새로 Server를 설치하였다면 위의 목록들을 모두 받아놓는게 정신건강상 좋습니다.


꼭~ 필요한거에요.


아~ 혹시 위에 버젼보다 높은 버젼이 나왔다면 그걸 받아서 설치하셔도 됩니다.


위의 파일들은 모두 패키지 형식이기 때문에 gzip으로 압축만 풀고 간단한 명령어가 치면 자동으로

설치 됩니다.


예) #  gzip -d gcc-3.4.6-sol26-sparc-local.gz


이렇게 모두 압축을 풀어주세요

압축을 풀게 되면 gcc-3.4.6-sol26-sparc-local 이렇게만 남습니다.


그다음 패키지를 풀면됩니다.


예) # pkgadd -d gcc-3.4.6-sol26-sparc-local

Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]:  all

이렇게 모두 파일이름만 바꾸고 설치 하시면 됩니다.

 


2. PATH 설정


밑의 내용을 /etc/profile 에서 넣어주시면 됩니다.


# vi /etc/profile
# for Apache located at /usr/local/apache2
if [ -d /usr/local/apache2 ]
then
  LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apache2/lib; export LD_LIBRARY_PATH
  PATH=$PATH:/usr/local/apache2/bin; export PATH;
fi
# for MySQL located at /usr/local/mysql
if [ -d /usr/local/mysql/lib/mysql ]
then
  LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mysql/lib/mysql; export LD_LIBRARY_PATH
  PATH=$PATH:/usr/local/mysql/bin; export PATH;
fi



밑의 내용을 PATH  에 대해 적용 방법등을 적어놓았습니다.


현재 자신의 PATH 값을 보려면 아래와 같이 하면 됩니다.

# echo $PATH

 
그리고 PATH에 새로운 값을 추가하려면 아래와 같이 하면 됩니다.

 
# PATH=$PATH:/usr/local/bin:/usr/ccs/bin
# export PATH

 
위에서 /usr/local/bin 과 /usr/ccs/bin 디렉토리를 추가했습니다. 이제 /usr/local/bin에 있는 명령어를 아무곳에서나 경로명 없이 실행할 수 있습니다.

 
하지만 위의 방법은 로그아웃하기 전까지만 유효합니다. 다시 로그인하면 또 위와 같이 PATH를 설
정해줘야합니다.

그래서 이걸 자동적으로 적용되는 방법이 있는데 그건 사용자의 profile에 위의 내용들을 추가하는 겁니다.

 
# vi $HOME/.profile
PATH=$PATH:/usr/local/bin:/usr/ccs/bin
export PATH

만약 csh을 사용한다면 아래와 같이 하세요.
 
# vi $HOME/.login
setenv PATH $PATH:/usr/local/bin:/usr/ccs/bin


 

3. APM  설정


1) Apache


밑의 내용처럼  httpd.conf 파일을 수정해 주세요~!


# vi /usr/local/apache2/conf/httpd.conf
User nobody
Group nobody
daemon 으로 되어 있는걸 nobody로 수정


DefaultType text/plain
<IfModule mime_module>  이부분에

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
위 두 내용을 추가.

LoadModule alias_module modules/mod_alias.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule php5_module        modules/libphp5.so   
이부분 추가.


ServerName  192.168.1.69:80
IP 대신 도메인을 사용할 수 있음. test를 위해서는 일단 ip로 해도 괜찮아요.


Include conf/extra/httpd-mpm.conf
Include conf/extra/httpd-multilang-errordoc.conf
Include conf/extra/httpd-autoindex.conf
Include conf/extra/httpd-languages.conf
Include conf/extra/httpd-userdir.conf
Include conf/extra/httpd-info.conf
Include conf/extra/httpd-vhosts.conf
Include conf/extra/httpd-manual.conf
Include conf/extra/httpd-dav.conf
Include conf/extra/httpd-default.conf
Include conf/extra/httpd-ssl.conf
위의 사항들을 사용하고 싶다면 # 주석을 없애면 됩니다.


# /usr/local/apache2/bin/apachectl start


혹시 에러가 생기다면 필요한 라이브러리를 설치하지 않아 생겼을 테니 꼭 라이브러리를 설치하시길 바랍니다.


부팅시 자동으로 Apache를 구동할 수 있도록 스크립을 작성하겠습니다.
위의 사항들을 제대로 구성하셨으면 /etc/init.d/apache  라는 파일이 만들어져 있을껍니다.
이건 그냥 무시하시고 저는 간단하게 하기 위해 짧게 할 예정이라 한줄 밖에 안됩니다.
          
#vi /etc/init.d/apache2

#!/sbin/sh
#
# apache starting script
#

/usr/local/apache2/bin/apachectl start

더 이상 없습니다.


# chown root:sys /etc/init.d/apache2
소유자와 그룹을 root : sys로 변경

# chmod 744 /etc/init.d/apache2
파일 권한은 744로

# ln /etc/init.d/apache2 /etc/rc2.d/S99apache  
# ln /etc/init.d/apache2 /etc/rc1.d/K16apache
# ln /etc/init.d/apache2 /etc/rcS.d/K16apache
여기에 링크를 걸어주시면 부팅시 자동으로 Apache 데몬이 작동이 됩니다.



2) PHP

cp /usr/local/php/doc/php/php.ini-recommended /usr/local/php/lib/php.ini
/usr/local/php/doc/php/php.ini-recommended를 /usr/local/php/lib/php.ini 복사합니다.


테스트를 위해 아래 내용을 새로 작성

# vi /usr/local/apache2/htdocs/index.php
<?
  phpinfo()
?>

확인방법은 http://192.168.1.69/index.php  (이건 저의 셋팅에 따라 만든거에요)
제대로 되었다면 밑의 그림이 나올껍니다. 아~ 그리고 이 테스트는 APM 모두 설치 셋팅한다음 테스트를 하시길 바랍니다.





3) MySQL


# useradd -d /export/home/mysql -g staff -m -u 102 -s /bin/false mysql
MySQL을 사용할 계정을 추가


# cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf
# vi /etc/my.cnf
/usr/local/mysql/share/mysql 에 my-huge.cnf, my-large.cnf, my-medium.cnf, my-small.cnf 의 예제 설정 파일이 있다. 이를 /etc/my.cnf 으로 이름을 바꿔 복사하면 된다.


skip-networking
#log-bin
리플리케이션을 사용하지 않는다면 [log-bin]을 찾아 주석처리하고 외부에서 접속이 없다면 [skip-networking]의 주석을 푼다.


# /usr/local/mysql/bin/mysql_install_db
기본 MySQL DB를 생성


# chown -R mysql:staff /usr/local/mysql/var
기본 MySQL DB가 생성되는  /usr/local/mysql/var 의 디렉토리 및 파일들의 소유자를 mysql  그룹은 staff로 변경


# /usr/local/mysql/share/mysql/mysql.server start
MySQL 서버를 시작
종료는 /usr/local/mysql/share/mysql/mysql.server stop


# /usr/local/mysql/bin/mysqladmin -u root password 'PASSWORD'
MySQL의 root 패스워드를 변경
기본값은 없기 때문에 보안을 위해서 반드시 수정


# /usr/local/mysql/bin/mysqladmin -u root -h test -p password 'NEW-PASSWORD'
Enter password: PASSWORD
위처럼 하시면 새로운 패스워드로 변경이 됩니다. 위에서  test는 host 이름입니다.



부팅시 자동으로 Mysql를 구동할 수 있도록 스크립을 작성하겠습니다.

# vi /etc/init.d/mysql

#!/sbin/sh
#
# mysql starting script
#
 
/usr/local/mysql/bin/mysqld_safe &


# chown root:sys /etc/init.d/mysql
소유자와 그룹을 root : sys로 변경

# chmod 744 /etc/init.d/mysql
파일 권한은 744로

# ln /etc/init.d/mysql /etc/rc2.d/S99mysql  

이렇게 하면 mysql도 부팅시 자동으로 데몬이 올라오게 됩니다.



Solaris APM Setting

Posted 2008. 11. 7. 12:59
출처 :  http://wride.tistory.com/13


- Solaris 9에서 세팅 -

[MySQL 설치]

1. MySQL 4.0.16 설치(configure -> make -> make install 순서)
[root@www /usr/local/src/mysql-4.0.16]./configure --prefix=/usr/local/mysql \
--localstatedir=/var/lib/mysql \ -> MySQL데이터들이 쌓이는곳
--with-charset=euc_kr

make -> make install 후 몇가지 작업들 수행


[APACHE 설치]
2. Apache 1.3.37 설치(configure -> make -> make install 순서)
[root@www /usr/local/src/apache_1.3.37]./configure --prefix=/usr/local/apache \
--enable-module=so -> php를 DSO방식으로 설치하기 위한 옵션

make -> make install
후 /etc/rc.d/rc.local 파일에 다음줄 추가
/usr/local/apache/bin/apachectl start
이러면 자동으로 아파치가 실행된다.

apache에서 한번 configure 작업만 하고 PHP를 설치하고 다시 apache로 와서 설치를 마무리 하는
과정은 static으로 설치하는 방식이다.
여기서는 dynamic방식으로 설치하는것이므로 아파치를 완전히 설치한 다음 PHP를 설치한다.
해당하는 옵션이 바로 --enable-module=so 라는 옵션이다.
이것이 Apache 2.X일때는 --enable-so라는 옵션으로 주면 된다.


[PHP 설치]

3. PHP 4.4.5 설치(configure -> make -> make install 순서)
[root@www /usr/local/src/php-4.4.5]./configure --prefix=/usr/local/php \
--with-apxs=/usr/local/apache/bin/apxs \ Apache와의 연동을 위해
--with-mysql=/usr/local/mysql \ mysql의 위치 지정
--with-zlib \
--enable-track-vars \
--with-mod-charset \
--with-language=korean \
--with-charset=euc_kr \
--disable-debug

make -> make install
php.ini파일을 만들기 위해 다음과 같은 작업을 한다.
cp /usr/local/src/php-4.3.4/php.ini-dist /etc/php.ini


[APACHE + PHP 환경설정]

4. httpd.conf파일 수정
----------------------------------------------------------------------------------------
LoadModule php4_module modules/libphp4.so 부분을 찾아 아래에 다음을 추가하자.

AddType application/x-httpd-php .php .html .php3 .php4 .inc .htm .phtml .ph
AddType application/x-tttpd-source .phps
----------------------------------------------------------------------------------------
- 기타 ServerName, DocumentRoot, DirectoryIndex 등 변경

5. php.ini파일 수정.
----------------------------------------------------------------------------------------
4.4.5에서의 보안설정 부분만
----------------------------------------------------------------------------------------


[MySQL 관련]

6. 기존의 데이터 복구
재 설치 작업 이전에 html파일과 MySQL내의 모든 자료를 백업받아두었다고 가정하고 하는 얘기이다.
(제로보드의 관리자 모드에서의 백업이 아니라 mysqldump로 백업 받아야 아래의 내용이 맞아들어간다)

mysql로 접속한 다음 mysql 데이터베이스 내의 모든테이블들을 삭제한다.
다음 mysql을 빠져나온다음 프롬프트 상태에서 다음과 같이 명령을 내린다.
[root @www....] mysql mysql < mysql_db_bak_20080103.sql
(물론 백업받은 파일 이름은 각자 상황에 따라 다를 것이다)
처음에 mysql을 설치하면 아무 비밀번호도, 사용자도 지정되어 있지 않지만 위의 작업을 마치면 기존의
사용자들과 root의 비밀번호가 예전처럼 지정되게 된다.
다음으로 이 변경된 사용자와 비밀번호 등이 제대로 동작하기 위해 mysql을 restart하라.

/etc/rc.d/init.d/mysqld restart

다음으로 사용자별로 백업받은 mysql자료들을 복구한다.

mysql -uroot -pXXXXX yanemone < yanemone_db_bak_20080103.sql
mysql -uroot -pXXXXX sijiclub < sijiclub_db_bak_20080103.sql

이렇게 DB복구가 끝났으면 html파일을 복구한다.
이것은 기존에 tar로 묶어 두었던 파일을 그대로 풀어주면 된다.


[CGI 사용환경 설정]
---------------------------------------------------------------------------------------------
(1) /etc/apache/httpd.conf 파일 수정

# vi httpd.conf
342 번째줄 :  ServerName www.test.com            <--- 신청한 도메인 이름을 기입한다.
383 번째줄 :  Options FollowSymLinks MultiViews        <--- Indexes을 삭제한다.


// CGI를 쓰기 위해서는 아래와 같이 CGI를 쓸 수 있도록 해주어야 한다.
 <Directory "/var/apache/cgi-bin">
         AllowOverride None
                Options None
                Order allow,deny
                Allow from all
 </Directory>

    -> 아래 라인에 추가한다.
 <Directory "/*">
         AllowOverride None
         Options ExecCGI
         Order allow,deny
         Allow from all
 </Directory>

805 번째줄 :  # To use CGI scripts:
                    #
                    AddHandler cgi-script .cgi          <--- 주석(#)를 제거한다.
----------------------------------------------------------------------------------------

서버설치후 해야할 일

Posted 2008. 11. 6. 17:59

출처 Small is beautiful~* | 으랏차차
원문 http://blog.naver.com/jjaiwook79/30009020151


1. 네트워크 접근제한


1) /etc/hosts.allow, hosts.deny 파일을 편집하여 접근을 제한한다.

======================== hosts.allow ========================
#
# hosts.allow This file describes the names of the hosts which are
# allowed to use the local INET services, as decided
# by the '/usr/sbin/tcpd' server.
#
ALL : 218.232.117.*
ALL : 211.214.121.18
ALL : 203.250.136.217
ALL : 211.62.2.*
ALL : 211.62.6.*
ALL : 211.62.7.*
ALL : 211.62.8.*
ALL : 211.62.9.*
ALL : 211.62.15.*
ALL : 211.62.15.*
ALL : 211.196.157.14
===========================================================

======================== hosts.deny ========================
#
# hosts.deny This file describes the names of the hosts which are
# *not* allowed to use the local INET services, as decided
# by the '/usr/sbin/tcpd' server.
#
# The portmap line is redundant, but it is left to remind you that
# the new secure portmap uses hosts.deny and hosts.allow. In particular
# you should know that NFS uses portmap!
ALL : ALL
===========================================================

2) IPTABLE 을 사용하여 커널수준의 방화벽을 구성한다.

======================== rc.local ===========================
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F INPUT
iptables -F OUTPUT

# 웹서버일경우 80으로 들어오는 요청과 1.1.1.1 에서들어오는 ssh 요청을
# 받아들인다.
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -s 1.1.1.1 --dport 22 -j ACCEPT

# 1초에 15번 이상의 HTTP 접근을 할경우 (DOS공격) 접근을 차단한다.
iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 15 -connlimit-mask 24 -j DROP

# 메일서버의 경우 동시에 5개이상 SMTP 접근자(스팸머)의 경우 5분동안
# 접근을 제한한다.
iptables -A INPUT -m recent --name spammer --rcheck --seconds 300 -j drop
iptables -A INPUT -p tcp --syn --dport 25 -m connlimit --connlimit-above 5 -m recent --name spammer --set -j DROP

# STRING 필터기능
# MSN 문자열이들어간 패킷 차단
iptables -A FORWARD -m string --string "messenger.msn.com" -j DROP
# 싸이월드로 접속차단
iptables -A FORWARD -p tcp --dport 80 -m string --string "Host: cyworld.nate.com" -j DROP

# 포트스캔을 차단한다.
iptables -A INPUT -m psd -j DROP

# 만약서버가 해킹당해 DOS공격지로 사용될때 적용시킴.
# DNS 쿼리이외에 UDP 패킷이 나가는 것을 방지
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p udp ! --dport 53 -m state --state NEW -j DROP

# 이외 모든 접근을 차단한다.
iptables -A INPUT -j DROP
===========================================================


2. 시스템 보안


1) sshd를 변경한다. (/etc/ssh/)
======================== sshd_config ========================
# LINE 13 - SSH 포트변경
Port 250
# Line 37 - root계정으로 접근을 제한
PermitRootLogin no
===========================================================

2) 보안상취약한 TELNET 서비스중지
-----------------------------------------------------------
# setup <-- TELNET 해제
# chkconfig --list | grep telnet
krb5-telnet: 해제 <-- 확인
-----------------------------------------------------------

3) 명령어 보안

3-1) ADMIN그룹 사용자만 su 를 사용할 수 있도록 함
-----------------------------------------------------------
# groupadd admin
# useradd -g admin -c 'root 접근가능계정' jjaiwook79
# chgrp admin /bin/su
# chmod o-x /bin/su
-----------------------------------------------------------

3-2) 불법사용자가 다른 서버로 부터 파일을 가져 오지 못하게 제한한다
- 환경이 같으면 다른 서버의 바이너리파일을 가져와 사용할 수 있다
-----------------------------------------------------------
# cd /usr/bin
# chmod 700 scp wget curl lynx
-----------------------------------------------------------

3-3) 불법사용자가 해킹에 사용할 수 있는 명령어들의 권한을 제한한다.
-----------------------------------------------------------
# which nc (또는 netcat)
# chmod 700 /usr/bin/nc
# which gcc
# chmod 700 /usr/bin/gcc
# which cc
# chmod 700 /usr/bin/cc

# chgrp admin /usr/bin/ssh
# chmod o-x /usr/bin/ssh <-- 어드민사용할 수 있도록함. 경유지가되는 것을 막음.
-----------------------------------------------------------

4) 디렉터리보안

4-1) 커널취약성을 대비하여 불법사용자가 프로세스를 실행 못하게 한다.
-----------------------------------------------------------
# echo chmod 700 /proc >> rc.local <-- 부팅시마다 권한이 변하므로 rc.local에 등록해준다.
# chmod 700 /proc
-----------------------------------------------------------

4-2) 해킹에 자주악용되는 /tmp, /var/tmp, /dev/shm 등을 주기적으로 모니터링한다. 이상한 파일이 존재하는지 확인.


3. 보안도구 사용


1) modsecurity (http://www.modsecurity.org)]

웹서버 앞단에서 웹서버로 들어가는 URL요청들을 필터링 할 수 있다.


SecServerSignature " Microsoft-IIS/5.0"
SecFilterSelective THE_REQUEST "wget"
SecFilterSelective THE_REQUEST "lynx"
SecFilterSelective THE_REQUEST "mkdir"
SecFilterSelective THE_REQUEST "/tmp"
SecFilterSelective THE_REQUEST "/bin"
SecFilterSelective THE_REQUEST "/etc/passwd"
SecFilterSelective THE_REQUEST "/\.bash_history"


웹서버의 정보를 바꾸고 (Microsoft-IIS로 표시), 웹해킹에 자주사용되는 명령어 및 디렉터리들을 요청하는 http 접근을 차단한다.


2) promiscan (http://www.securityfriday.com/tools/promiscan_sla.html)

SNIFFING을 탐지할 수 있다.


3) chkrootkit, rkhunter

rootkit을 탐지 할 수 있다.


4) john the Ripper (http://www.openwall.com/john/)

알기쉬운 비밀번호를 사용하는 사용자를 체크한다.

chattr 와 lsattr 파일 권한

Posted 2008. 11. 6. 17:57

인용-
-----------Linux Security.com---------------
The Linux Community\'s Center for Security
WWW.LinuxSecurity.com

chattr과 lsattr를 알려드리겠습니다.
강력한 화일 보호법입니다. 바이러스가 들어와도
좀 안전하나?
슈퍼유저이외에는 이 명령을 쓸수가 없습니다.
다음은 예제입니다. 유심히 보세요 뭘 하는건지....

[root@ns1 testing]# source 1
bash: 1: No such file or directory
[root@ns1 testing]# touch 1
[root@ns1 testing]# ls
1
[root@ns1 testing]# ls -l
total 0
-rw-r--r-- 1 root root 0 Sep 17 17:50 1
[root@ns1 testing]# chattr +i 1
[root@ns1 testing]# ls -l
total 0
-rw-r--r-- 1 root root 0 Sep 17 17:50 1
[root@ns1 testing]# lsattr
----i--- ./1
[root@ns1 testing]# rm 1
rm: remove write-protected file `1\'? y
rm: cannot unlink `1\': Operation not permitted
[root@ns1 testing]# chattr -i 1
[root@ns1 testing]# rm 1
rm: remove `1\'? y
[root@ns1 testing]# touch 1
[root@ns1 testing]# chattr +a 1
[root@ns1 testing]# rm 1
rm: remove `1\'? y
rm: cannot unlink `1\': Operation not permitted
[root@ns1 testing]# ls -l
total 0
-rw-r--r-- 1 root root 0 Sep 17 17:51 1
[root@ns1 testing]# lsattr
-----a-- ./1
[root@ns1 testing]# chattr -a 1
[root@ns1 testing]# rm 1
rm: remove `1\'? y
[root@ns1 testing]# touch 1
[root@ns1 testing]# chattr +ia 1
[root@ns1 testing]# ls
1
[root@ns1 testing]# ls -l
total 0
-rw-r--r-- 1 root root 0 Sep 17 17:52 1
[root@ns1 testing]# lsattr
----ia-- ./1
[root@ns1 testing]# rm 1
rm: remove write-protected file `1\'? y
rm: cannot unlink `1\': Operation not permitted
[root@ns1 testing]# chattr -ia 1
[root@ns1 testing]# rm 1
rm: remove `1\'? y
[root@ns1 testing]#


+i : 는 파일변경이 안됩니다.또한 파일 delete, rename,링크도 못 만듭니
다.
+a : 오로지 파일내용에 추가할수 있습니다. (append)
슈퍼유저만이 설정,해제가 가능합니다.
예)
[root@ns1 testing]# chattr +i /bin/login
[root@ns1 testing]# chattr +a /var/log/messages
[root@ns1 testing]# lsattr /bin/login /var/log/messages
----i--- /bin/login
-----a-- /var/log/messages
[root@ns1 testing]#


인용-
-----------Linux Security.com---------------
The Linux Community\'s Center for Security
WWW.LinuxSecurity.com


« PREV : 1 : ··· : 4 : 5 : 6 : 7 : 8 : 9 : 10 : ··· : 18 : NEXT »