세이박스

리눅스 스카시 하드 파티션, 포멧, 마운트

서버,보안
리눅스(linux)에서 스카시(scsi) 하드디스크(hdd)를 파티션 설정과 포멧 그리고 마운트 까지의 과정을 설정 하겠습니다.

 

1. 리눅스 파티션 설정
1) 파티션 상태를 확인 합니다.
fdisk -l
[root@ ~]# fdisk -l
Disk /dev/sda: 73.4 GB, 73407868928 bytes
255 heads, 63 sectors/track, 8924 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 8924 71577607+ 8e Linux LVM
Disk /dev/sdb: 73.4 GB, 73407868928 bytes
255 heads, 63 sectors/track, 8924 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 * 1 8924 71681998+ 8e Linux LVM
Disk /dev/sdc: 73.4 GB, 73407868928 bytes
255 heads, 63 sectors/track, 8924 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdc1 * 1 13 104391 83 Linux
/dev/sdc2 14 8924 71577607+ 8e Linux LVM
2) 설정할 하드가 sdc 인경우
[root@ ~]# fdisk /dev/sdc
The number of cylinders for this disk is set to 8924.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Command (m for help): d
Partition number (1-4): 1
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-8924, default 1): 엔터
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-13, default 13): 엔터
Using default value 13
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
fdisk /dev/sdc
3) 파티션 삭제
d -> 1 클릭
d 클릭 (파티션이 2개면 2번 d 클릭)
4) 파티션 생성
n -> p -> 1 -> 엔터 -> 엔터 -> w
- n : new partition
- p : pramary로 설정 (마운트로 붙일려면 프라머리로 설정)
- 1 : 1개의 파티션으로 설정
- 용량 설정 : 디폴터 엔터 2번
- w : 적용하고 종료

 

2. 스카시 하드디스크 포멧하기
[root@ ~]# fdisk -l
Disk /dev/sda: 73.4 GB, 73407868928 bytes
255 heads, 63 sectors/track, 8924 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 8924 71577607+ 8e Linux LVM
Disk /dev/sdb: 73.4 GB, 73407868928 bytes
255 heads, 63 sectors/track, 8924 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 * 1 8924 71681998+ 8e Linux LVM
Disk /dev/sdc: 73.4 GB, 73407868928 bytes
255 heads, 63 sectors/track, 8924 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdc1 1 8924 71681998+ 83 Linux
1) 일단 파티션 생성 확인
fdisk -l
2) 포멧
[root@ ~]# mkfs -t ext3 /dev/sdc1
mke2fs 1.39 (29-May-2006)
/dev/sdc is entire device, not just one partition!
Proceed anyway? (y,n) y
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
8962048 inodes, 17921843 blocks
896092 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
547 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 27 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
mkfs -t ext3 /dev/sdc1
- 한참 기다리고 있으면 알아서 포멧하고 종료함.
- 포멧 시스템을 ext3 로 했는데 간혹 시스템에 따라 ext2 인 경우도 있음.

 

3. 스카시 하드디스크 마운트 하기
1) 마운트할 폴더 생성
mkdir /backup
2) 마운트
mount /dev/sdc1 /backup
- /dev/sdc1 은 디바이스 장치명
- /backup 은 마운트 할 대상
- 간혹 마운트시 파일 시스템을 지정해줘야 할 경우가 있습니다. 예를들어 usb 외장하드, 시디롬 또는 fat32 등으로 포멧된 하드인 경우 파일 타입 옵션을 추가해 줘야 합니다. usb외장하드 마운트는 별도로 게시 할 예정입니다.
팁1) 부팅시 자동으로 마운트 되도록 설정
vi /etc/rc.local
mount /dev/sdc1 /backup 추가
오류1) mount /dev/sdc1 /backup
mount: you must specify the filesystem type
-> 마운트 및 포멧 과정에서 제대로 처리 안된 경우이므로 다시 처음 부터 진행해 본다. 보통 하드디스크 파티션 명이 달라서 생기는 오류일 가능성이 높음. (포멧 과정에서)
* 위 정보는 시스템에 따라 상이할 수 있습니다. 제가 설치한 서버 기준으로 설명을 했습니다.

jpg 뿐만 아니라 gif 까지 썸네일 처리 할려면 netpbm 설치하기

서버,보안
리눅스 서버 설치후 보통 GD 설치로 이미지 썸네일 처리를 하지만 gif 포멧 리사이징 또는 비율 자동으로 잘라주는 유용한 썸네일 기능을 하고자 한다면 netpbm 설치하면 편리합니다.
뿐만 아니라 간단한 포토샵 필터 기능도 적용할 수 있습니다.
투명처리 등 다양한 옵션을 이용할 수 있습니다.

netpbm-10.35-1.fc5.i386.rpm
netpbm-devel-10.35-1.fc5.i386.rpm
netpbm-progs-10.35-1.fc5.i386.rpm
위 3개의 파일을 rpm 방식으로 설치 하면 됩니다.

먼저 기존에 설치된 rpm이 있는지 찾아 봅니다.

# rpm -qa | grep netpbm

만약 이미 설치된 rpm이 출력된다면 설치되어 있으니 그냥 이용하시거나 지우고 다시 설치 하시면 됩니다.
기존 설치된 rpm을 지울려면

# rpm -e --nodeps netpbm-10.35-6.SUL2

처럼 뒤에 파일명만 동일하게 적어주고 삭제 하시면 됩니다.

# rpm -Uvh netpbm-10.35-1.fc5.i386.rpm
경고: netpbm-10.35-1.fc5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 4f2a6fd2
준비 중...                  ########################################### [100%]
   1:netpbm                 ########################################### [100%]

# rpm -Uvh netpbm-devel-10.35-1.fc5.i386.rpm
경고: netpbm-devel-10.35-1.fc5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 4f2a6fd2
준비 중...                  ########################################### [100%]
   1:netpbm-devel           ########################################### [100%]

# rpm -Uvh netpbm-progs-10.35-1.fc5.i386.rpm
경고: netpbm-progs-10.35-1.fc5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 4f2a6fd2
준비 중...                  ########################################### [100%]
   1:netpbm-progs           ########################################### [100%]

위처럼 3개를 설치 해주시면 됩니다.

그럼, 기본 설치 경로는 /usr/bin/ 아래 설치되며
/usr/bin/djpeg
/usr/bin/giftopnm
/usr/bin/pnmscale
등의 명령을 사용하실 수 있습니다.

옵션 사용법은 다음에 올리도록 하겠습니다.

 ▶ 최신영화, 최신 미국드라마 무료 다운로드... 

리눅스 서버 rsync error - transferred (code 23) at main.c(****)

서버,보안

Rsync 명령은 서버와 서버간에 지정한 폴더 내의 파일들을 동기화 시켜주는 명령어로서 싱크 대상이 되는 서버와 파일을 받아가는 싱크 클라이언트 서버로 구분합니다.
위 오류 메시지는 파일을 받아가는 서버에서 싱크시 발생할 수 있는 오류중 하나로써 파일 소유권 설정 문제에 대한 오류 메시지 입니다.

rsync err - transferred (code 23) //전송 오류 code 23

구체적인 원인은 웹페이지의 파일의 소유권이 nobody로 대부분 되어 있는데 만약 Apache 설정에서 일반 사용자 개정으로 변경 했다면 싱크 대상 서버에 /etc/rsync.conf 설정과 달라서 생기는 오류 입니다.


[HOME]
path = /home/
comment =
uid = nobody
gid = nobody
....


uid, gid 항목에 nobody를 Apache에서 지정한 개정으로 변경 하시던지 Apache 권한 설정을 nobody로 변경하시던지 하시면 됩니다.

Apache에서 소유권 변경을 할 경우엔 두 서버 모두 같이 변경 하셔야하며 파일들도 소유권 변경 해야만 싱크가 될 수 있으니 주의 해서 설정 변경을 하시기 바랍니다.



  최신영화, 최신 미국드라마 무료 다운로드... 


[출처] 세이박스 - http://www.saybox.co.kr/bbs/board.php?bo_table=board01&wr_id=220

리눅스 메일 삭제 명령어 옵션, linux mail command

서버,보안
리눅스(linux) 에서 기본적으로 사용하는 메일 명령어는 mail 이다.
리눅스 서버에서 오류 메시지 등을 해당 mail로 전송하곤 하는데 잘못된 오류로 인해 지속적으로 쌓인 로그가 양이 어마어마 한 경우가 간혹 있다.

이와 같이 쌓인 메일을 지우기 위한 명령어와 그외 mail 관련 명령어를 설명 해드리겠습니다.

1. mail 삭제

# mail 명령어 실행

"/var/spool/mail/root": 3 messages 3 new
>N 1
 N 2
 n 3

처럼 메일 갯수와 메일 리스트 항목이 쭉 나타 날겁니다.
위 3건 모두를 지우고 싶다면

& d 1-3
& q

d는 삭제 명령이며 1-3 은 첫번째 메일부터 3번까지의 메일을 삭제하라고 하는 명령입니다.
q는 좀전 실행한 명령을 저장하고 나가기 입니다.
q를 하지 않고 x또는 exit로 mail을 종료할 경우 처음으로 초기화 한 후 종료 됩니다.

[기타 mail 명령어 설명]

명령어 옵션을 볼려면 mail 실행후 help 또는 ? 를 입력하면 됩니다.

mail -u 유저명
선택한 유저의 메일 박스에 있는 메일 리스트가 출력되고 mail 명령어 모드 상태가 되며 실행

t 메일번호 : 지정된 메일의 내용을 출력
예) t 1 : 1번 리스트의 메일 내용을 출력

n : 다음 메일의 내용을 출력

e 메일번호 : ex 명령 모드를 이용해 메일을 편집

f 메일번호 : 지정된 리스트를 출력
예) f 1-10 : 1번 부터 10번까지 메일 리스트 출력

d 메일번호 : 지정된 메일 삭제 (위 설명 중복)
예) d 1-10 : 1번 부터 10번까지 메일을 삭제

s 메일번호 : 지정된 메일을 파일로 저장
예) s 1 mail.txt : 1번 메일을 mail.txt 파일로 저장

u 메일번호 : 삭제한 메일을 복구
예) u 1 : 삭제되었던 1번 메일 복구 (q를 실행해서 종료 하기전 가능)

R 메일번호 : 해당 번호 메일 보낸사람에게 답방 메일 보내기

r 메일번호 : 지정된 메일에 대해 모든 참조자를 포함하여 답변 보냄

pre 메일번호 : make messages go back to /usr/spool/mail

m 유저 리스트 : 원하는 유저에게 메일을 보냄

q : mail 모드에서 모든 상태를 저장후 종료
mail 모드에서 한번 읽었던 메일은 q 명령로 바져나갈 경우 메일방스에서 삭제되고 mbox 파일로 저장됨

x : mail 초기 상태로 돌려 놓고 바져나감
mail  모드에서 읽거나 삭제한 메일도 x 명령으로 빠져나가면 초기 상태로 복구 된다.

h : 메세지 리스트를 출력함.
예) h : 메일박스 첫 리스트를 출력, h 2 : 2번 메일 부터 리스트 출력

! : 쉘 명령을 실행
예) !pwd  pwd 명령을 실행 (현재 디렉토리 출력)

cd 디렉토리 : 입력한 디렉토리로 이동
예) cd /home/users

리눅스 서버 시간을 date 명령어로 손쉽게 변경하기

서버,보안
리눅스(linux) 서버에서 날짜를 보는 명령어는 다음과 같다.

[root@ ~]# date
2010. 04. 13. (화) 14:37:05 KST

위와 같이 현재 시간을 표시하게 되는데 위 시간에서 1분만 더 늦추거나 1시간 더 빠르게 등
특정 분,시간 단위로 +,- 하는 방법을 알려 드립니다.

date --set='-30 minutes'
date --set='-1 hours'
date --set='+1 hours'

[root@ ~]# date --set='-2 minutes'
2010. 04. 13. (화) 14:35:06 KST
[root@ ~]# date
2010. 04. 13. (화) 14:35:07 KST

위 예처럼 -2 minutes 경우 현재 시간보다 -2분전으로 변경 됩니다.

하지만 주의 사항으로 crontab 설정에 아래와 같이 특정 시간에 날짜를 받아 와서 갱신 하도록 해 두셨다면
해당 시간에 원래 시간으로 돌아오게 되니 crontab 설정을 확인 하시기 바랍니다.
00 05 * * * /usr/bin/rdate -s time.bora.net

리눅스 서버 apache php 오류 Cannot load /usr/local/apache/libexec/libphp4.so into server: /usr/local/apache/libexec/libphp4.so: cannot restore segment prot after reloc: Permission denied

서버,보안

아파치 서버에 PHP를 이용시 아래와 같은 오류가 발생시 :

[root@ ~]# /usr/local/apache/bin/apachectl restart
/usr/local/apache/bin/apachectl restart: httpd not running, trying to start
Syntax error on line 56 of /usr/local/apache/conf/httpd.conf:
Cannot load /usr/local/apache/libexec/libphp4.so into server: /usr/local/apache/libexec/libphp4.so: cannot restore segment prot after reloc: Permission denied
/usr/local/apache/bin/apachectl restart: httpd could not be started

해결 방법 :

[root@ ~]# chcon -t texrel_shlib_t /usr/local/apache/libexec/libphp4.so

위 명령어 한번 실행 해 주고나서 apache 다시 시작 해 보세요!
간단히 해결 되죠!

리눅스 네트워크 관련 설정 파일

서버,보안
리눅스 네트워크 관련 설정 파일

1) IP, 서브넷 마스크, 게이트웨이
/etc/sysconfig/network-scripts/ifcfg-eth0

2) 컴퓨터이름, 게이트웨이
/etc/sysconfig/network

3) DNS 정보
/etc/resolv.conf

4) 간이 네임서버 파일 (자주 사용하는 IP와 문자 주소를 등록하는 파일)
/etc/hosts

리눅스 페도라 9 i386 다운로드 링크

서버,보안
현재 페도라 11버전까지 나왔지만 10 버전이나 11버전보다 저의 경우 9버전이 제가 설치 하는 모듈들과 가장 잘 호완이 되더군요.

yum 업그레이드도 잘 지원되고 해서 크게 불편한점은 없습니다.

다만 보안상 최신버전으로 언젠가는 업그레이드 해야겠죠. ㅡㅡ;

리눅스 페도라 9 i386 버전으로써 카이스트 ftp 서버에서 다운로드 제공 합니다.

http://ftp.kaist.ac.kr/fedora/linux/releases/9/Fedora/i386/iso/



* DVD 버전 (4.7G 이상 dvd 1장)

http://ftp.kaist.ac.kr/fedora/linux/releases/9/Fedora/i386/iso/Fedora-9-i386-DVD.iso


* CD 버전 (650MB 이상 5장)

http://ftp.kaist.ac.kr/fedora/linux/releases/9/Fedora/i386/iso/Fedora-9-i386-disc1.iso

http://ftp.kaist.ac.kr/fedora/linux/releases/9/Fedora/i386/iso/Fedora-9-i386-disc2.iso

http://ftp.kaist.ac.kr/fedora/linux/releases/9/Fedora/i386/iso/Fedora-9-i386-disc3.iso

http://ftp.kaist.ac.kr/fedora/linux/releases/9/Fedora/i386/iso/Fedora-9-i386-disc4.iso

http://ftp.kaist.ac.kr/fedora/linux/releases/9/Fedora/i386/iso/Fedora-9-i386-disc5.iso

6번 iso 파일도 있긴 한데 저의 경우엔 6번까지 설치 할일이 없더군요.

phpize 실행했는데 없을경우 설치 방법

서버,보안

phpize 명령어를 실행시 아무런 반응이 없는경우
설치가 안되었거나 path가 설정 안되어서 그렇습니다.

일단, 설치하실려면 yum 을 이용해서 간단히 설치 하실 수 있습니다.

yum -y install php-devel.i386

[root@ ssh2-0.11.0]# yum install php-devel.i386
Loaded plugins: refresh-packagekit
Setting up Install Process
Parsing package install arguments
Resolving Dependencies
--> Running transaction check
---> Package php-devel.i386 0:5.2.9-2.fc9 set to be updated
--> Processing Dependency: php = 5.2.9-2.fc9 for package: php-devel
--> Running transaction check
---> Package php.i386 0:5.2.9-2.fc9 set to be updated
--> Processing Dependency: httpd-mmn = 20051115 for package: php
--> Processing Dependency: php-common = 5.2.9-2.fc9 for package: php
--> Processing Dependency: php-cli = 5.2.9-2.fc9 for package: php
--> Processing Dependency: httpd for package: php
--> Running transaction check
---> Package httpd.i386 0:2.2.9-1.fc9 set to be updated
--> Processing Dependency: httpd-tools = 2.2.9-1.fc9 for package: httpd
---> Package php-cli.i386 0:5.2.9-2.fc9 set to be updated
---> Package php-common.i386 0:5.2.9-2.fc9 set to be updated
--> Running transaction check
---> Package httpd-tools.i386 0:2.2.9-1.fc9 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

===================================================================================================================
 Package                     Arch                 Version                     Repository                      Size
===================================================================================================================
Installing:
 php-devel                   i386                 5.2.9-2.fc9                 updates-newkey                 551 k
Installing for dependencies:
 httpd                       i386                 2.2.9-1.fc9                 updates-newkey                 975 k
 httpd-tools                 i386                 2.2.9-1.fc9                 updates-newkey                  69 k
 php                         i386                 5.2.9-2.fc9                 updates-newkey                 1.2 M
 php-cli                     i386                 5.2.9-2.fc9                 updates-newkey                 2.3 M
 php-common                  i386                 5.2.9-2.fc9                 updates-newkey                 238 k

Transaction Summary
===================================================================================================================
Install      6 Package(s)        
Update       0 Package(s)        
Remove       0 Package(s)        

Total download size: 5.3 M
Is this ok [y/N]: y
Downloading Packages:
(1/6): httpd-tools-2.2.9-1.fc9.i386.rpm                                                     |  69 kB     00:00    
(2/6): php-common-5.2.9-2.fc9.i386.rpm                                                      | 238 kB     00:00    
(3/6): php-devel-5.2.9-2.fc9.i386.rpm                                                       | 551 kB     00:00    
(4/6): httpd-2.2.9-1.fc9.i386.rpm                                                           | 975 kB     00:00    
(5/6): php-5.2.9-2.fc9.i386.rpm                                                             | 1.2 MB     00:00    
(6/6): php-cli-5.2.9-2.fc9.i386.rpm                                                         | 2.3 MB     00:00    
-------------------------------------------------------------------------------------------------------------------
Total                                                                              3.9 MB/s | 5.3 MB     00:01    
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : php-common                                                                                  1/6
  Installing     : php-cli                                                                                     2/6
  Installing     : httpd-tools                                                                                 3/6
  Installing     : httpd                                                                                       4/6
  Installing     : php                                                                                         5/6
  Installing     : php-devel                                                                                   6/6

Installed:
  php-devel.i386 0:5.2.9-2.fc9                                                                                    

Dependency Installed:
  httpd.i386 0:2.2.9-1.fc9      httpd-tools.i386 0:2.2.9-1.fc9 php.i386 0:5.2.9-2.fc9 php-cli.i386 0:5.2.9-2.fc9
  php-common.i386 0:5.2.9-2.fc9

Complete!


실행 경로는 저의 경우 /usr/bin/phpize 경로에 있더군요.

yum 으로 설치 하셨다면 바로 path 설정 될테니

# phpize

라고 바로 실행 하시면 됩니다.

실행 결과는 다음처럼 나타날겁니다.

[root@ ssh2-0.11.0]# phpize
Configuring for:
PHP Api Version:         20041225
Zend Module Api No:      20060613
Zend Extension Api No:   220060519

이후에 # ll 해보시면 파일이 여러개 생긴걸 보시게 될겁니다.
이후 ./configure ~ make 등 실행 하셔서 원하는 파일 설치 하시면 되겠습니다.


위 글은 세이박스(http://www.saybox.co.kr) 에서 작성된 글입니다.

리눅스 sulinux 2.0 + APM 설치후 아파치 실행시 아파치 오류 해결

서버,보안
리눅스 sulinux 2.0을 설치후 APM을 겨우 설치를 마치고 apache를 실행을 했더니 아래와 같은 오류가 발생한다.

# /usr/local/apache/bin/apachectl restart
httpd: Could not determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

이와 같은 오류는 httpd.conf 파일 내용중 아래 ServerName 이라는 부분이 주석(#) 처리 되어 있는데 해당 부분에 주석을 제거하고 도메인 또는 서버의 IP를 입력해 주시면 됩니다.

#
# ServerName gives the name and port that the server uses to identify itself.
# This can often be determined automatically, but we recommend you specify
# it explicitly to prevent problems during startup.
#
# If this is not set to valid DNS name for your host, server-generated
# redirections will not work.  See also the UseCanonicalName directive.
#
# If your host doesn't have a registered DNS name, enter its IP address here.
# You will have to access it by its address anyway, and this will make
# redirections work in a sensible way.
#
#ServerName exam.defaultdoman....:80

ServerName 127.0.0.1:80

잘 모르겠으면 위처럼 127.0.0.1:80 이라고 하셔도 됨.

리눅스 sulinux 2.0 설치후 Apache make시 오류 발생 처리

서버,보안

IBM 345 서버에 페도라 10을 설치할려고 하니 Raid 카드 인식이 되지 않아 결국 sulinux 2.0 을 설치 하였다.
역시 IBM에서 지원하는 OS라 그런지 쉽게 Raid카드가 인식되어 설치 성공하였다.
문제는 mysql 설치 후 apache를 설치 하는 과정중 make시에 다음과 같은 오류가 나타났다.

sockopt.c: In function 'apr_socket_opt_set':
sockopt.c:216: error: 'SCTP_NODELAY' undeclared (first use in this function)
sockopt.c:216: error: (Each undeclared identifier is reported only once
sockopt.c:216: error: for each function it appears in.)
make[4]: *** [sockopt.lo] 오류 1
make[4]: Leaving directory `/usr/local/src/httpd-2.0.49/srclib/apr/network_io/unix'
make[3]: *** [all-recursive] 오류 1
make[3]: Leaving directory `/usr/local/src/httpd-2.0.49/srclib/apr/network_io/unix'
make[2]: *** [all-recursive] 오류 1
make[2]: Leaving directory `/usr/local/src/httpd-2.0.49/srclib/apr'
make[1]: *** [all-recursive] 오류 1
make[1]: Leaving directory `/usr/local/src/httpd-2.0.49/srclib'
make: *** [all-recursive] 오류 1

위와 같은 오류가 발생시 lksctp-tools-devel 을 yum 으로 손쉽게 설치를 하고 나면 이후엔 오류가 발생하지 않았었다. 하지만, 이상하게도 아래와 같은 오류가 나타났다.
페도라10과 sulinux 2.0에서 yum 설치시 요청하는 업데이트 서버가 틀린가 보다.

# yum install lksctp-tools-devel
Setting up Install Process
Parsing package install arguments
Requested dep: lksctp-tools-devel is provided by installed package
Nothing to do

그래서 rpm을 직접 받아서 설치후 make 성공 하였다.

lksctp-tools-devel 다운로드 받는 곳 :
http://sourceforge.net/projects/lksctp/files/

여기서 자신의 os에 해당하는 파일 다운로드
저의 경우 lksctp-tools-devel-1.0.10-1.i386.rpm 로 다운 받았습니다.
http://sourceforge.net/projects/lksctp/files/lksctp/lksctp-tools-1.0.10/lksctp-tools-devel-1.0.10-1.i386.rpm/download

다운로드 페이지에 광고가 있는데 잘 찾아 보시면 하늘색으로 된 "direct link" 라는 링크가 있을꺼에요 그걸 클릭하시면 됩니다.
또는 서버에서 해당 링크를 wget으로 받으셔도 됩니다.

wget http://downloads.sourceforge.net/project/lksctp/lksctp/lksctp-tools-1.0.10/lksctp-tools-devel-1.0.10-1.i386.rpm?use_mirror=jaist

* rpm 설치
rpm -Uvh lksctp-tools-devel-1.0.10-1.i386.rpm



그리고 기존에 설치 하셨던 apache는 삭제 하시고 원소스를 다시 압축 푸셔서 처음부터 다시 configure > make 진행 하세요!

세이박스에서는 제가 접한 오류들을 해결하는 과정을 매일 기록하고 있습니다.
전문적인 답변은 아닐지라도 분명 어떤분께는 도움일 자료가 될거라 생각합니다.

해당글은 세이박스에서 작성한 글이므로 퍼가실땐 꼭 출처를 남겨 주세요! ^^ ㅋㅋ

리눅스 페도라10 버전에 php-5.1.4 버전 설치하기

서버,보안

1. php-5.1.4 버전 다운로드 및 압축 풀기
wget http://ftp.linux.co.kr/pub/php/php-5.1.4.tar.bz2
tar xvfj php-5.1.4.tar.bz2
cd php-5.1.4

* 위 URL로 PHP를 다운로드 안 받아 질경우 아래 파일 직접 다운로드


2. 환경설정
중요한 세팅을 할 필요가 있다. 바로 환경변수부분인데..
/etc/profile 파일을 열어서 제일 상단에 아래부분을 추가하도록 하자.
# vi /etc/profile
=======================================================================================
APACHE_HOME=/usr/local/apache
ORACLE_HOME=/usr/lib/oracle
LD_LIBRARY_PATH=/usr/lib/oracle
export APACHE_HOME ORACLE_HOME LD_LIBRARY_PATH
export NLS_LANG=.KO16KSC5601
=======================================================================================
파일을 수정했다면 시스템에 반영하도록 한다.
# source /etc/profile

CFLAGS="-O3 -march=i686 -funroll-loops -fomit-frame-pointer" ./configure --with-apxs2=/usr/local/apache/bin/apxs --with-zlib --with-gd --with-ttf --with-png --with-expat-dir=/usr --with-gmp --with-xml --with-mysql=/usr/local/mysql --with-language=korean --with-charset=euc_kr --disable-debug --disable-posix --disable-rpath --enable-safe-mode --enable-magic-quotes --disable-dmalloc --enable-bcmath --enable-dio --enable-gd-native-ttf --enable-sysvsem --enable-wddx --enable-versioning --enable-pic --enable-inline-optimization --enable-memory-limit --enable-mbstring --enable-mbregex --enable-mbstr-enc-trans --with-config-file- --enable-ftp --disable-debug --enable-track-vars=yes --with-jpeg-dir --with-freetype-dir --enable-gd-native-ttf --enable-dl
make && make install


3. php.ini 파일 복사
cp php.ini-dist /usr/local/lib/php.ini


4. Zend Optimizer 다운로드 압축 풀기
http://www.zend.com/download/140 에서 최신 버전을 다운 받거나 아래 파일을 다운로드
tar xvzf ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz
cd ZendOptimizer-3.3.9-linux-glibc23-i386
./install.sh

* 위 사이트 접속후 다운로드 받기 귀찮을 경우 아래 다운로드 (회원가입해야함)


5. 아파치에서 php를 인식하도록 추가
vi /usr/local/apache/conf/httpd.conf
# 위의 부분이 추가되어 있는지 확인하자.
LoadModule php5_module        modules/libphp5.so

#  DirectoryIndex 조회후  index.php index.phtml 추가
DirectoryIndex index.html index.html.var index.php index.phtml

# AddType application/x-gzip .gz .tgz 이 내용 바로 밑에 붙여주면 좋겠죠
AddType application/x-httpd-php .php .phtml
AddType application/s-httpd-php-source .phps


6. 아파치 재시작
/usr/local/apache/bin/apachectl restart


* 아파치 실행시 libphp5.so error 발생시
/usr/local/apache/bin/apachectl restart
Syntax error on line 232 of /usr/local/apache/conf/httpd.conf:
Cannot load /usr/local/apache/modules/libphp5.so into server: /usr/local/apache/modules/libphp5.so: cannot restore segment prot after reloc: Permission denied

cd /usr/local/apache/modules
restorecon -v libphp5.so
chcon -t texrel_shlib_t libphp5.so


* make Warning 발생시
Warning: Cannot use a scalar value as an array in phar://install-pear-nozlib.phar/PEAR/ChannelFile.php on line 1391
Warning: Cannot use a scalar value as an array in phar://install-pear-nozlib.phar/PEAR/ChannelFile.php on line 1396
.........

http://www.pear-forum.org/post-5065.html 참고

make test
php 설치된 디렉토리에 하부 .channels 라는 디렉토리 내용만 지워주면 됨

위 글은 세이박스에서 작성한 글이므로 퍼가기 하실때에는 반드시 출처를 남겨 주세요.
 

리눅스 페도라 10 버전에서 아파치 Httpd-2.0.49 설치 하기

서버,보안

아파치를 이미 설치 해보신 분이 설치하는 것으로 생각하며 디테일한 설명은 생략했으니 참고하셔서 활용 하시기 바랍니다.
아파치는 PHP보다 먼저 설치 되어야 하며 한 서버에 MySQL도 같이 설치 하신다면 아파치 보다 MySQL이 먼저 설치 되어야 합니다.
설치순서 : MySQL > Apache > PHP

1. 아파치 설치전 yum 으로 필요한 라이브러리 설치
yum install lksctp-tools-devel


2. 다운로드 후 압축풀기
wget http://ftp.superuser.co.kr/pub/apache/httpd-2.0.49.tar.gz
tar xvzf httpd-2.0.49.tar.gz
cd httpd-2.0.49

* 위 url로 다운로드 되지 않을 경우 아래 파일을 직접 받으셔도 됩니다.



3. 소스파일 일부 수정
vi server/mpm/prefork/prefork.c
수정전 : #define DEFAULT_SERVER_LIMIT 256
수정후 : #define DEFAULT_SERVER_LIMIT 4096

vi server/mpm/worker/worker.c
수정전 : #define DEFAULT_SERVER_LIMT 16
수정후 : #define DEFAULT_THREAD_LIMT 256


4. 환경설정
./configure --enable-so --prefix=/usr/local/apache
make
make install


5. 아파치를 어디에서나 실행할 수 있게 환경변수를 등록
PATH=$PATH:/usr/local/apache/bin


* 아파치 실행시 libphp5.so error 발생시
cd /usr/local/apache2/modules
restorecon -v libphp5.so
chcon -t texrel_shlib_t libphp5.so


* 아파치 설치시 make 오류
sockopt.c: In function 'apr_socket_opt_set':
sockopt.c:216: error: 'SCTP_NODELAY' undeclared (first use in this function)
sockopt.c:216: error: (Each undeclared identifier is reported only once
sockopt.c:216: error: for each function it appears in.)
make[4]: *** [sockopt.lo] 오류 1
make[4]: Leaving directory `/usr/local/src/httpd-2.0.49/srclib/apr/network_io/unix'
make[3]: *** [all-recursive] 오류 1
make[3]: Leaving directory `/usr/local/src/httpd-2.0.49/srclib/apr/network_io/unix'
make[2]: *** [all-recursive] 오류 1
make[2]: Leaving directory `/usr/local/src/httpd-2.0.49/srclib/apr'
make[1]: *** [all-recursive] 오류 1
make[1]: Leaving directory `/usr/local/src/httpd-2.0.49/srclib'
make: *** [all-recursive] 오류 1

yum install lksctp-tools-devel
(설치전 미리 먼저 설치 해두는게 좋음)


위 내용은 세이박스에서 작성한 내용으로 퍼가실때에는 반드시 출처를 남겨 주세요!

부팅시 xwindow 실행하도록 할려면 /etc/inittab 수정

서버,보안

부팅시 자동으로 xwindow로 띄우거나 콘솔로 띄우고자 할 경우 /etc/inittab 파일에서 id:3:initdefault: 부분의 숫자 3 부분을 변경 해 주면된다.
vi /etc/inittab

# Default runlevel. The runlevels used by RHS are:
#   0 - halt (Do NOT set initdefault to this)
#   1 - Single user mode
#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
#   3 - Full multiuser mode
#   4 - unused
#   5 - X11
#   6 - reboot (Do NOT set initdefault to this)
#
id:3:initdefault:


Run Level 0 : 시스템을 종료할 때 사용하는 레벨이다.
Run Level 1 : 싱글 유저 모드(Single user mode)라고 하며, 기본적으로 관리자 권한 셸을 얻게 된다. 그러나 대부분의 데몬들이 실행되지 않으므로 기능은 제약되어 있다.
Run Level 2 : NFS(Network File System)를 지원하지 않는 다중 사용자 모드다.
Run Level 3 : 일반적인 셸 기반의 인터페이스를 가진 다중 사용자 모드다.
Run Level 4 : 기본적으로 사용되지 않으나 임의로 정의해서 사용할 수 있는 레벨이다.
Run Level 5 : 기본적으로 실행 3과 같으나, GUI 환경을 지원한다.
Run Level 6 : 재부팅한다.

따라서, Xwindow 를 띄울땐 :
id:5:initdefault:

기본적으로 콘솔로 띄울땐 :
id:3:initdefault:

출처 : http://www.saybox.co.kr/bbs/board.php?bo_table=board01&wr_id=190

PHP 설치시 생길수 있는 오류 해결 방법

서버,보안
오류1:
configure: error: DBA: Could not find necessary header file(s).

해결:
관련 라이브러리를 설치하면 됩니다.
yum install gdbm-devel


오류2:
configure: error: Cannot find ldap.h

해결:
위와 같은 오류 발생의 원인은 필요한 패키지가 설치되지 않아서 생긴 오류 입니다.
즉, 리눅스 설치 하실때 개발 패키지라고 있죠 그거 왠만해선 체크해서 설치 해주시는게 좋습니다.
특히 소스 설치시에 필요한 패키지가 없어서 위와 같은 오류가 생기는 것으로써 소스 설치시에 필요한 것들을 yum 으로 모두 설치 해주는게 좋습니다.
이미 설치된것은 설치를 하지 않으니 yum 이 아주 편리하죠.

yum -y install gcc cpp gcc-c++ compat-gcc-32-g77 flex libjpeg-devel libpng-devel libtiff-devel freetype-devel openldap-devel pam-devel sendmail-cf vsftpd telnet-server

위 패키지 설치후

vi /etc/selinux/config
SELINUX=enforcing -> disabled


수정후 서버 재부팅 한뒤에 PHP 새로 설치 하니 오류 안떠더군요.
근데, 아마도 마지막 처리만으로 되는 문제 였던것 같기도 하네요 ^^;

리눅스 netstat로 웹서버 사용자수 구하기

서버,보안

netstat로 웹서버 사용자수 구하기

전체연결수
netstat -n|grep -F :80|egrep '(ESTAB|SYN)'|sed 's/:[0-9]*//'|sort -u|wc -l

unique연결수
netstat -n|grep -F :80|egrep '(ESTAB|SYN)'|awk '{print $3}'|sed 's/:[0-9]*//'|sort -u|wc -l

-- 설명

netstat 은 네트워크의 상황을 나타내주는 유틸리티입니다.
옵션 -n은 재분석을 하지 않는옵션으로 빠른 결과출력 속도를 가져오죠.

grep는 정규표현식시 일치하는 줄만을 출력하는 쉘입니다.
-F옵션은 정규표현식을 사용하지 않겠다는 옵션이고.. ":80"은 netstat에서 ":80"을 포함한 줄만을 출력한다는 것이죠.. 즉. http프로토콜만을 출력하겠다는 것입니다.

egrep는 grep -E 와 같은 것으로 좀더 많은 정규표현식을 사용할 수 있습니다. 옵션은 '(ESTAB|SYN)' 으로 주었는데 이는 정규표현식으죠.. 정규표현식을 알고싶으시면 아래의 URL으로..
http://kldp.org/HOWTO/html/Adv-Bash-Scr-HOWTO/x10468.html 을 참조하세요.

awk 는 각 줄에서 공백을 기준으로 필드로 나누며 '{print $5}'는 5번째 필드만을 출력하겠다는 것입니다.

sed 는 비대화형 줄단위 편집기입니다. 정규표현식을 사용하며 's/:[0-9]*//'옵션을 분리하면 s/// 안에 :[0-9]가 들어가있는 것으로 "s/이것//" 는 각 줄에서 "이것"이라는 글자만 지운다는 것으로 정규표현식 :[0-9] 을 나눠보면 ":" 으로 시작하는 모든 숫자를 나타냅니다.
([0-9]는 모든 숫자를 가리킴)

sort는 참 유용한 쉘입니다. 말 그대로 정렬한다는 것인데
printf "1\n5\n3\n"|sort 라고 쉘에서 처보면 순서대로 1,3,5로 출력되는것을 확인할 수 있습니다.
여기서. 옵션 -u는 출력 내용이 같은 것은 한번만 출력하는것입니다.

wc 이것 또한 참 유용한 쉘이죠 ~ 단어의 수를 알아내는 것으로 한줄에 한해서만 단어의 수를 샙니다. 이를 이용해서 몇줄이 나왔는지를 알수있는데 -ㅣ 옵션을 주면 몇줄이 출력되었는지만을 나타냅니다.

전체적으로 분석을 하면
netstat -n|grep -F :80|egrep '(ESTAB|SYN)'|awk '{print $5}'|sed 's/:[0-9]*//'|sort -u|wc -l
명령은 netstat유틸을 이용해서 네트워크의 상황을 출력하고 이 중에 grep 를 이용해 :80 문자만을 나타내고있는 줄만 출력하며 egrep를 이용해 ESTAB이나 SYN이있는 줄만 출력하며 awk를 이용해 접속하고있는 클라이언트만을 표시하며 sed를 이용해 클라이언트의 포트를 제거하고 sort를 이용해서 중복된 IP를 제거하고 마지막으로 숫자만을 출력하기위해 wc를 이용한것입니다 ^ㅡ^;;

Apache Web Server 의 DOS공격 막기

서버,보안
작성자 : 좋은진호(truefeel, http://coffeenix.net/ )
작성일 : 2003.8.20(수) apache v1.3.x
수정일 : 2003.8.25(월) apache v2.x 부분 추가

특정 URL이나 IP일 경우나 특정한 브라우저를 이용하여 DoS(Denial of Service, 서비스거부)
공격이 들어온다면 httpd.conf 에서 SetEnvIf, SetEnvIfNoCase 등과 Allow, Deny 설정으로
간단히 막을 수 있겠지만 일정한 유형이 없다면 해결점을 찾기가 쉽지 않다.

다행히 Apache용 mod_dosevasive 모듈로 DoS 공격을 쉽게 막을 수 있다.
며칠전 1.7버전 발표로 apache 2.x에서도 정상적으로 이 모듈을 이용할 수 있게 됐다.

1. mod_dosevasive 설치

http://www.nuclearelephant.com/projects/dosevasive/
에서 mod_dosevasive (현재 최신버전은 1.7)을 받아온다.

1) 기존에 사용하던 apache 1.3.x에 모듈만 추가할 때

mod_dosevasive.tar.gz 을 푼다음 apxs로 설치

----------------------------------------------
# tar xvfz mod_dosevasive.tar.gz 
# cd dosevasive
# /bin/apxs -iac mod_dosevasive.c
...
[activating module `dosevasive' in /usr/local/apache/conf/httpd.conf]
cp mod_dosevasive.so /usr/local/apache/libexec/mod_dosevasive.so
chmod 755 /usr/local/apache/libexec/mod_dosevasive.so
...
----------------------------------------------

httpd.conf의 LoadModule, AddModule는 apxs가 알아서 추가해준다.

2) apache 1.3.x부터 새로 컴파일할 할 때

mod_dosevasive.tar.gz 을 apache_source_홈/src/modules 에 푼 다음
기존에 apache 컴파일하는 것과 동일한 방법으로 하되, --add-module=... 옵션만
추가해준다.

----------------------------------------------
./configure --prefix=/usr/local/apache \
--enable-module=all --enable-shared=max \
--add-module=src/modules/dosevasive/mod_dosevasive.c  <-- 추가함
make
make install
----------------------------------------------

3) apache 2.x에 모듈만 붙일 때

/bin/apxs -iac mod_dosevasive20.c

2. 설정

httpd.conf 에 아래 설정이 있는지 확인한다.

apache 1.3.x
----------------------------------------------
...
LoadModule dosevasive_module libexec/mod_dosevasive.so
...
AddModule mod_dosevasive.c
----------------------------------------------

apache 2.x
----------------------------------------------
LoadModule dosevasive20_module modules/mod_dosevasive20.so
----------------------------------------------

httpd.conf에는 다음과 같이 설정을 추가한다.
( 단, 아래 설정 중에 apache 2.x일 때는 < IfModule mod_dosevasive20.c> 로 )
----------------------------------------------
< IfModule mod_dosevasive.c>
  DOSHashTableSize  3097
  DOSPageCount    3
  DOSSiteCount    50
  DOSPageInterval   1
  DOSSiteInterval   1
  DOSBlockingPeriod  30
< /IfModule>
----------------------------------------------
DOSHashTableSize  3097

hash table의 크기. IP, URI등을 분석하기 위한 공간으로 쓰이는 것 같은데 정확히는
모르겠다. 접속이 많은 서버이면 수치를 높인다.

DOSPageCount    3
DOSPageInterval   1

DOSPageInterval에서 지정한 시간(초단위)동안 같은 페이지를 3번 요청한 경우
해당 클라이언트 IP를 블럭킹한다. 블럭킹되는 동안에 사용자에게는 403(Forbidden)
코드가 전송된다.

DOSSiteCount    50
DOSSiteInterval   1

DOSSiteInterval에서 지정한 시간동안 어느 페이지나 이미지든 요청 건수가 50번을 넘는
경우 해당 클라이언트 IP를 블럭킹한다. 403코드 보내는 것은 마찬가지.
HTML 내에 이미지가 10개이면 요청 건수는 HTML포함하여 11번이 되므로 이미지가 많은
사이트는 숫자를 크게한다.

DOSBlockingPeriod  30

블럭킹된 IP는 30초동안 접속을 할 수 없다.

3. 모듈 사용을 중지하려면

차단 기능을 이용하지 않기 위해

DOSPageCount 0
DOSSiteCount 0

와 같이 하면 모듈 내부의 default값을 이용해서 동작하므로 LoadModule, AddModule를
주석 처리하는 방법을 써야한다. 또는 Count값을 상당히 큰 수를 지정할 수도 있겠다.

4. 차단하는지 테스트

간단한 테스트 툴로 test.pl을 제공한다.
12번째 줄에

printf("%03d ", $_ );

를 추가하고

apache를 실행시킨 다음 perl test.pl을 해보면 200 OK, 403 Forbidden 된 것을 쉽게
확인할 수 있을 것이다.

DOSPageCount, DOSSiteCount 수치를 너무 낮게 하면 정상적인 접속에 대해서도 차단될 수
있으므로 주의해야 한다. 수치를 낮추고, 같은 페이지를 reload(Ctrl+R)를 여러번했더니
바로 403 페이지가 등장.

403 페이지를 별도로 만드는 것이 좋을 듯 싶다. httpd.conf에 ErrorDocument 403 ... 설정
으로 html을 만들어두면 방문자에게 도움이 되지 않을까...

이젠 ab, lynx 등으로 게시물 조회수를 순간적으로 올린다거나, 시스템 로드를 증가시키는
것까지도 어느정도 막을 수 있을 것이다.

※ syslog 로 로그 남기는 기능과 DOSEmailNotify, DOSSystemCommand 옵션은 제대로 적용
  되지 않아 이 글에 적지 않았다. 정상동작이 확인되면 그 때 추가할 것이다


Linux(프록시 서버 설치 및 구성)

서버,보안
리눅스에서 프록시 서버 구성은 스퀴드 프록시 소프트웨어를 사용합니다.
기본으로 전체 설치를 했으면 스퀴드가 설치가 되어 있을것입니다.
확인방법은
#rpm -qa | grep squid
 
설치가 되지 않았다면 설치시디에 스퀴드 패키지가 있으므로 설치할 수 있습니다.
 여기서는 소스로 설치하는 방법을 설명하겠습니다.
 소스다운로드 : http://www.squid-cache.org
 파일을 받아 압축을 해제 합니다.
#tar xvfz squid-3.0.STABLE2.tar.gz
#cd squid-3.0.STABLE2
#./configure --prefix=/usr/local/squid
#make
#make install
설치중 별다른 에러 메시지 없이 제대로 설치가 되었다면 /usr/local 디렉토리에 스퀴드 디렉토리가 생성되어 있습니다.
 
설정파일 위치는 /usr/local/squid/etc/squid.conf
시동 파일 위치 /usr/local/squid/sbin/squid
 
우선 스퀴드 설정을 합니다.
# vi /usr/local/squid/etc/squid.conf
스퀴드에 접속하기 위한 포트 설정
http_port 3128를 8080으로 변경
cache_mem 항목을 16MB 로 변경
cache_dir 항목 디렉토리 경로는 기본으로  사용하고 캐시 데이터를 보존하는 용량을 100mb 에서 200으로 변경
acl 항목에 네트워크 이름과 네트워크 주소를 입력합니다. ex(thom src 192.168.0.0/255.255.255.0
http_access 항목에 http_access allow thom으로 추가
:wq
#/etc/rc.d/init.d/squid start

부팅시 마운트 설정 변경 하려면

서버,보안
/etc/fstab
 
에는 부팅시 마운트 하는 설정 값이 들어 있습니다.
 
만약 
/home 10G
/home2 20G
 
였는데 10G 를 /home2 로 20G를 /home2 로 변경하고자 할때
보통 mv /home /home_bak -> mv /home2 /home -> mv /home_bak /home2
이런 과정을 생각하실 겁니다. 하지만 아마도
장치가 사용중입니다. 라는 메시지가 나타나는경우 마운트 된 폴더라 변경이 안된다는 겁니다.
 
그럴경우 /etc/fstab 에서 이름을 변경해주고 재부팅하시면 이름이 서로 변경되어 마우트 될겁니다.