세이박스

'리눅스'에 해당되는 글 24건

  1. 리눅스 스카시 하드 파티션, 포멧, 마운트
  2. 리눅스 서버 하드웨어 사양 확인하는 명령어
  3. Apache httpd.conf 에서 서브 도메인 redirect시 RewriteRule 적용
  4. jpg 뿐만 아니라 gif 까지 썸네일 처리 할려면 netpbm 설치하기
  5. You don't have permission to access, client denied by server configuration 오류
  6. 리눅스 서버 rsync error - transferred (code 23) at main.c(****)
  7. 리눅스 메일 삭제 명령어 옵션, linux mail command
  8. 리눅스 서버 시간을 date 명령어로 손쉽게 변경하기
  9. 리눅스 서버 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
  10. 리눅스 네트워크 관련 설정 파일
  11. 리눅스 페도라 9 i386 다운로드 링크
  12. [보안] 서버 설치 후 기본적으로 해야할 보안 사항을 간단하게 정리 해보겠습니다.
  13. phpize 실행했는데 없을경우 설치 방법
  14. 리눅스 sulinux 2.0 + APM 설치후 아파치 실행시 아파치 오류 해결
  15. 리눅스 sulinux 2.0 설치후 Apache make시 오류 발생 처리
  16. 리눅스 페도라10 버전에 php-5.1.4 버전 설치하기
  17. 리눅스 페도라 10 버전에서 아파치 Httpd-2.0.49 설치 하기
  18. 리눅스 페도라(fedora) 10 버전에서 mysql 5.0.22 버전 설치하기
  19. 부팅시 xwindow 실행하도록 할려면 /etc/inittab 수정
  20. PHP 설치시 생길수 있는 오류 해결 방법
  21. [리눅스] zlib 설치시 gcc 오류
  22. 리눅스 netstat로 웹서버 사용자수 구하기
  23. Linux(프록시 서버 설치 및 구성)
  24. 부팅시 마운트 설정 변경 하려면

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

서버,보안
리눅스(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
-> 마운트 및 포멧 과정에서 제대로 처리 안된 경우이므로 다시 처음 부터 진행해 본다. 보통 하드디스크 파티션 명이 달라서 생기는 오류일 가능성이 높음. (포멧 과정에서)
* 위 정보는 시스템에 따라 상이할 수 있습니다. 제가 설치한 서버 기준으로 설명을 했습니다.

리눅스 서버 하드웨어 사양 확인하는 명령어

서버,보안

리눅스 서버 하드웨어 사양 확인하는 명령어

 

간혹 리눅스 서버에서 서버 하드웨어 사양을 조회하고 싶을때가 있는데 서비스를 중지하고 케이스를 열어서 직접 확인해보는게 가장 정확하겠지만 아래와 같이 명령어로 손쉽게 제공해주고 있다.

 

하드웨어 사양 확인 명령어 : dmidecode

 

1. 서버 모델 확인
dmidecode | grep Name

 

2. 시리얼 번호 확인
dmidecode | grep Serial

 

3. CPU
cat /proc/cpuinfo

 

4. 메모리
cat /proc/meminfo

Apache httpd.conf 에서 서브 도메인 redirect시 RewriteRule 적용

서버,보안

서브 도메인을 특정 도메인으로 redirect 할 경우 페이지를 찾을수 없는 경우가 발생하곤 하는데 이를 경우 방문자를 잃을수 있습니다.

예를들어 http://www.saybox.net 도메인으로 서비스를 하다가 어느날 http://www.saybox.co.kr 도메인으로 서비스를 이용하게 되어서
redirect / http://www.saybox.co.kr
처럼 redirect 할 경우 발생할 수 있는 문제점이 있습니다.

회원이 즐겨찾기 해둔 URL이 만약 http://www.saybox.co.kr/index.php 였다면 redirect에서 처리를 할 수 없게 됩니다.
그래서 뒤에 어떠한 URL 파라미터가 붙더라도 redirect 되도록 할려면 여러가지 방법이 있는데 그중 한가지가 RewriteEngine을 이용한 방법입니다.

일단, RewriteEngine을 On 해주시고, RewriteRule에 /.* 라고 적습니다.
즉, 도메인 / 뒤에 붙는 .* 모든 내용을 지정한 URL로 이동 시켜라 그런 내용입니다

<VirtualHost *:80>
..... 생략 ...
RewriteEngine On
RewriteRule /.* http://www.saybox.co.kr
</VirtualHost>


 

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
등의 명령을 사용하실 수 있습니다.

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

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

You don't have permission to access, client denied by server configuration 오류

서버,보안
평소와 동일하게 리눅스 OS와 APM 설치후 웹서비스 설정후 브라우저 접속을 했는데 다음과 같은 오류가 나타 나더군요.

Forbidden

You don't have permission to access /index.php on this server.


permission 오류의 경우 /home/개정 경로에 소유권 지정을 가끔 빠트린 경우 발생하곤 해서 소유권 확인해보니 chmod 755 * 설정 되어 있더군요.
즉, 디렉토리 소유권 지정 문제는 아니더군요.
그래서 아파치 로그를 확인 해봤습니다.

설치경로/apache/losg/
-rw-r--r-- 1 root root 1726  1월 10 11:05 error_log

로그 기록중 다음과 같은 메시지가 있더군요!
[Mon Jan 10 11:03:38 2011] [error] [client 192.168.100.100] client denied by server configuration: /home/test/public_html/index.php

오류 : client denied by server configuration

관련 오류는 httpd.conf 에 <Directory /> 설정 문제 였습니다.


원본 :

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Opions None
    Order deny,allow
    Deny from all
</Directory>

문제는 Deny from all 이었습니다. 모든 접속을 차단 하겠다라는 설정입니다.
평소에는 Allow from all 으로 기본 설정 되던것이 왜 Deny from all로 기록되었는지는 모르겠음.
암튼 다음과 같이 수정후 정상 접속이 되었습니다.

수정 :

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Opions None
    Order deny,allow
    #Deny from all
    Allow from all
</Directory>

서버를 많이 설치 해봤지만 아직도 모르는게 많은것 같네요.


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

리눅스 서버 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번까지 설치 할일이 없더군요.

[보안] 서버 설치 후 기본적으로 해야할 보안 사항을 간단하게 정리 해보겠습니다.

서버,보안
1. 서버패치 주기적으로 설치
서버 패치는 항상 주기적으로 해주셔야겠죠!
윈도우 서버의 경우 윈도우업데이트 기능이 있으며 리눅스의 경우 yum으로 편리하게 업데이트 가능하죠
yum -y upgrade

2. 비번 주기적으로 변경
루트 뿐만 아니라 일반 개정 까지 주기적으로 변경 해주시는게 좋습니다.
요즘, 같은 네트워크 대역의 서버 또는 라우트 등의 장비등이 해킹 당하면 지나 다니는 모든 패킷을 수집하여 관리자 개정등을 분석하여 접속하게 됩니다.
따라서, 주기적으로 변경 한다면 수집된 개정이 이전 개정이라 접속 못하게 되겠죠.
어디까지나 조금이라도 피해를 줄이기 위해선 변경 해주시는게 좋습니다.

3. OS 방화벽 및 포트 설정
윈도우든 리눅스든 OS 자체에 방화벽이 있습니다.
원리는 포트를 막느냐 열어 주느냐 정도 이지만 불필요한 포트를 막아 두므로써 취약한 서비스를 통해 공격 받는것을 최소화 할 수 있겠죠
리눅스의 경우
setup > Firewall.... 항목에서 방화벽 레벨을 high로 하시고 열어줄 port를 추가로 지정 해주시는게 좋습니다.
이때 포트는 기본 포트를 이용하시지 마시고 5자리 정도로 만들어 주세요!
예로 FTP의 경우 21포트 이지만 21포트는 막고 21123 처럼 5자리로 열어주시는게 좋습니다.
telnet 23 사용 하지 마시고 SSH 사용하시되 기본 포트인 22을 5자리로 변경해서 이용하세요.
기타 웹서비스를 하신다면 80포트는 기본 사용 하셔야겠죠.
외 DB를 이용하신다면 MySQL의 경우 3306 포트를 열어 두셔야겠죠.
물로 MySQL역시 포트를 변경 할 수 있습니다.
기본 포트를 그대로 이용하기 보다는 5자리 이상으로 변경해서 사용하시는게 좋습니다.
이유는 대부분 해킹 프로그램이 포트를 스켄할때 기본 포트 부터 스켄하며 높은 숫자로 갈수록 스켄하는 시간이 많이 걸리므로 그만큼 노출될 확률도 적어 집니다.

4. 라우팅테이블
라이우팅 테이블을 통해서 특정 공격 IP등을 차단하거나 허용하는 방식을 이용하세요!
만약 특정 서버에서만 접속을 하면 되는 서버라고 한다면 모든 IP를 다 막고 해당IP만 허용한다던지 하면 아주 좋겠죠.
글데 라우팅 테이블 관련된 건 자세히는 모르겠네요.
그냥 라우팅 관련해서 보안 할 필요가 있다고 들은적이 있어서 ^^;

5. 패턴분석차단
방어의 기본은 분석입니다.
분석을 위해선 로그를 쌓아야 분석하겠죠!
웹의 경우 아파치 로그, DB 의 DB로그 등등 서버는 여러가지의 로그들을 남기고 있습니다.
그리고, 프로그램을 추가로 설치하여 다양한 로그를 기록 하고 분석 할수 있습니다.

6. 웹로그 분석 차단
웹방화벽이 없다면 웹로그를 면밀히 분석해서 특정 스크립트를 웹소스에서 차단 하거나 특정 페이지를 특정IP가 지속적으로 요청하지 않는지 등 분석후 차단 적용 합니다.

7. 취약점 분석툴 설치 분석
서버의 취약점을 분석해주는 툴 프로그램을 설치 하셔서 내 서버의 어떤 취약점이 있는지 리포트를 통해서 점검 하셔서 보안 하시기 바랍니다.

8. 포토 50000~65000 사이로 설정
위에서 말한바 있듯이 포트 범위를 5만~6만5천 사이로 설정 해서 이용하세요.


이외에도 보안해야할 사항이 많고 많지만 제가 서버를 설치후 운영하면서 나름 보안하고 있는 사항입니다.
하지만, 위와 같이 힘들게 보안을 해도 뚤리게 마련입니다.
해커들은 나날이 발전하고 있으니깐요.
제생각엔 보안 담당자들 보다 해커들이 항상 우위를 차지 하고 있는 것 같습니다.
그러니, 언제든지 내가 관리하고 있는 서버는 뚤릴수 있다라는 생각으로 보안에 신경을 써야 겠습니다.
전 기획부터 개발까지 맡으면서도 서버 100여대를 혼자서 모두 관리 하고 있습니다.
그중에서도 가장 힘든게 서버 보안 인듯 하네요!
아무튼 보안 담당자님들 화이팅 입니다.

위 글은 세이박스에서 작성한 글이므로 마음껏 퍼가셔도 되지만 출처는 반드시 남겨 주세요!

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
(설치전 미리 먼저 설치 해두는게 좋음)


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

리눅스 페도라(fedora) 10 버전에서 mysql 5.0.22 버전 설치하기

서버,보안

기본적으로 MySQL을 설치 해본 사용자라는 것을 고려해서 간략하게 기록 해봤습니다.
따라서, 디테일한 설정은 아니므로 OS설치를 한 사용자마다 차이가 날 수 있습니다.
특히, 라이브러리가 OS설치시 제대로 설치되지 않아서 발생하는 오류가 간혹 있을수 있으니 오류가 발생할 경우 당황해 하지 마시구 오류메시지를 검색해보세요! (세이박스에서~)


1. APM 설치하기에 앞서 yum을 이용하여 관련 라이브러리들을 설치
yum -y install gcc cpp gcc+c++ flex libjpeg-devel libpng-devel freetype-devel gd-devel glibc


2. MySQL 5.0.22 다운로드 압축 풀기
wget http://ftp.superuser.co.kr/pub/mysql/mysql-5.0.22.tar.gz
tar xvzf mysql-5.0.22.tar.gz
cd mysql-5.0.22

※ 위 링크 주소가 접속이 안될 경우 세이박스 http://www.saybox.co.kr/bbs/board.php?bo_table=board01&wr_id=191 에 접속하셔서 로그인후 직접 다운로드 받으실 수 있습니다.


3. 환경설정(configure) 및 make install
./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/data --disable-shared --enable-assembler --with-thread-safe-client --with-mysql-user="mysql" --with-readline --without-debug --without-docs --without-bench --with-charset=euckr
make
make install


4. 설정파일 복사
cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf


5. 기본 DB 생성
/usr/local/mysql/bin/mysql_install_db


6. MySQL 운영할 사용자 생성 (홈 디렉토리 생성안할경우 -M 옵션 사용)
useradd -M mysql
passwd mysql


7. configure 시에 지정한 data가 저장될 디렉토리를 mysql 권한으로 변경
chown -R mysql:mysql /usr/local/mysql/data


8. MySQL 및 mysqldump를 사용할 수 있게 심볼릭링크를 걸어준다.
ln -s /usr/local/mysql/bin/mysql /usr/bin
ln -s /usr/local/mysql/bin/mysqldump /usr/bin


9. mysql 개정으로 MySQL 데몬을 백그라운드로 실행
su mysql
/usr/local/mysql/bin/mysqld_safe &



10. mysql root의 비밀번호를 설정 (초기비번없음:그냥엔터)
/usr/local/mysql/bin/mysqladmin -u root -p password "123456"


11. 데몬 확인 및 DB 접속후 확인
bash-3.2$ ps -ef | grep mysqld
mysql    23023     1  0 20:35 pts/0    00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe
mysql    23042 23023  0 20:35 pts/0    00:00:00 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/gooddayrss.pid --skip-locking --port=3306 --socket=/tmp/mysql.sock

/usr/local/mysql/bin/mysql -u root -p mysql
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| test               |
+--------------------+
quit


12. 어디서나 MySQL 실행 하도록 환경변수에 경로를 지정

PATH=$PATH:/usr/local/mysql/bin




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

부팅시 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 새로 설치 하니 오류 안떠더군요.
근데, 아마도 마지막 처리만으로 되는 문제 였던것 같기도 하네요 ^^;

[리눅스] zlib 설치시 gcc 오류

서버,보안

리눅스 OS 페도라 10 버전을 설치 한 후에 APM설치 하기전 zlib 을 설치 하기 위해 소스 파일 압축을 해지 하고 ./configure 를 했더니 No. 라는 메시지만 잔떡 나타난다.
이후 make 명령을 실행하면 다음과 같은 메시지가 나타난다.
make: cc: 명령을 찾지 못했음
페도라 5 또는 9 버전을 설치시엔 없었는 증상인데 아마도 설치시에 용량을 줄이기 위해 개발 패키지 체크를 모두 껐던게 문제였던것 같다.
어쨌거나 해결방법은 초간단.
yum 을 이용해 간단히 설치할 수 있다.
yum install gcc

자! 그럼, 두말하면 잔소리 에러난 증상과 설치 하는 과정을 쭈욱 보도록 합시다.


1. zlib 설치시 gcc 오류 발생


[root@ ]# tar xvfj zlib-1.2.3.tar.bz2
[root@ ]# cd zlib-1.2.3
[root@ zlib-1.2.3]# ./configure && make && make install
Checking for gcc...
Building static library libz.a version 1.2.3 with cc.
Checking for unistd.h... No.
Checking whether to use vs[n]printf() or s[n]printf()... using s[n]printf()
Checking for snprintf() in stdio.h... No.
  WARNING: snprintf() not found, falling back to sprintf(). zlib
  can build but will be open to possible buffer-overflow security
  vulnerabilities.
Checking for return value of sprintf()... No.
  WARNING: apparently sprintf() does not return a value. zlib
  can build but will be open to possible string-format security
  vulnerabilities.
Checking for errno.h... No.
Checking for mmap support... No.
cc -O -DNO_snprintf -DHAS_sprintf_void -DNO_ERRNO_H   -c -o example.o example.c
make: cc: 명령을 찾지 못했음
make: *** [example.o] 오류 127


2. yum 으로 gcc 설치

[root@ zlib-1.2.3]# yum install gcc
Loaded plugins: refresh-packagekit
Setting up Install Process
Resolving Dependencies
There are unfinished transactions remaining. You might consider running yum-complete-transaction first to finish them.
--> Running transaction check
---> Package gcc.i386 0:4.3.2-7 set to be updated
--> Processing Dependency: glibc-devel >= 2.2.90-12 for package: gcc-4.3.2-7.i386
--> Running transaction check
---> Package glibc-devel.i386 0:2.9-3 set to be updated
--> Processing Dependency: glibc-headers = 2.9-3 for package: glibc-devel-2.9-3.i386
--> Running transaction check
---> Package glibc-headers.i386 0:2.9-3 set to be updated
--> Processing Dependency: kernel-headers >= 2.2.1 for package: glibc-headers-2.9-3.i386
--> Processing Dependency: kernel-headers for package: glibc-headers-2.9-3.i386
--> Running transaction check
---> Package kernel-headers.i386 0:2.6.27.25-170.2.72.fc10 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

==============================================================================================================================
 Package                        Arch                 Version                                    Repository               Size
==============================================================================================================================
Installing:
 gcc                            i386                 4.3.2-7                                    fedora                  8.2 M
Installing for dependencies:
 glibc-devel                    i386                 2.9-3                                      updates                 2.1 M
 glibc-headers                  i386                 2.9-3                                      updates                 616 k
 kernel-headers                 i386                 2.6.27.25-170.2.72.fc10                    updates                 766 k

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

Total download size: 12 M
Is this ok [y/N]: y
Downloading Packages:
(1/4): gcc-4.3.2-7.i386.rpm                                                                            | 8.2 MB     00:08    
(2/4): glibc-devel-2.9-3.i386.rpm                                                                      | 2.1 MB     00:01    
(3/4): glibc-headers-2.9-3.i386.rpm                                                                    | 616 kB     00:00    
(4/4): kernel-headers-2.6.27.25-170.2.72.fc10.i386.rpm                                                 | 766 kB     00:00    
------------------------------------------------------------------------------------------------------------------------------
Total                                                                                         1.0 MB/s |  12 MB     00:11    
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : kernel-headers-2.6.27.25-170.2.72.fc10.i386                                                            1/4
  Installing     : glibc-headers-2.9-3.i386                                                                               2/4
  Installing     : glibc-devel-2.9-3.i386                                                                                 3/4
  Installing     : gcc-4.3.2-7.i386                                                                                       4/4

Installed:
  gcc.i386 0:4.3.2-7                                                                                                         

Dependency Installed:
  glibc-devel.i386 0:2.9-3          glibc-headers.i386 0:2.9-3          kernel-headers.i386 0:2.6.27.25-170.2.72.fc10        

Complete!


3. gcc 설치 끝 다시 zlib configure 실행


[root@ zlib-1.2.3]# ./configure
Checking for gcc...
Building static library libz.a version 1.2.3 with gcc.
Checking for unistd.h... Yes.
Checking whether to use vs[n]printf() or s[n]printf()... using vs[n]printf()
Checking for vsnprintf() in stdio.h... Yes.
Checking for return value of vsnprintf()... Yes.
Checking for errno.h... Yes.
Checking for mmap support... Yes.


4. configure 결과 모두 Yes.  make 역시 gcc로 잘 설치 되는군요

[root@ zlib-1.2.3]# make
gcc -O3 -DUSE_MMAP   -c -o example.o example.c
gcc -O3 -DUSE_MMAP   -c -o adler32.o adler32.c
gcc -O3 -DUSE_MMAP   -c -o compress.o compress.c
gcc -O3 -DUSE_MMAP   -c -o crc32.o crc32.c
gcc -O3 -DUSE_MMAP   -c -o gzio.o gzio.c
gcc -O3 -DUSE_MMAP   -c -o uncompr.o uncompr.c
gcc -O3 -DUSE_MMAP   -c -o deflate.o deflate.c
gcc -O3 -DUSE_MMAP   -c -o trees.o trees.c
gcc -O3 -DUSE_MMAP   -c -o zutil.o zutil.c
gcc -O3 -DUSE_MMAP   -c -o inflate.o inflate.c
gcc -O3 -DUSE_MMAP   -c -o infback.o infback.c
gcc -O3 -DUSE_MMAP   -c -o inftrees.o inftrees.c
gcc -O3 -DUSE_MMAP   -c -o inffast.o inffast.c
ar rc libz.a adler32.o compress.o crc32.o gzio.o uncompr.o deflate.o trees.o zutil.o inflate.o infback.o inftrees.o inffast.o
gcc -O3 -DUSE_MMAP -o example example.o -L. libz.a
gcc -O3 -DUSE_MMAP   -c -o minigzip.o minigzip.c
gcc -O3 -DUSE_MMAP -o minigzip minigzip.o -L. libz.a


5. 마지막으로 make install 완료

[root@ zlib-1.2.3]# make install
cp zlib.h zconf.h /usr/local/include
chmod 644 /usr/local/include/zlib.h /usr/local/include/zconf.h
cp libz.a /usr/local/lib
cd /usr/local/lib; chmod 755 libz.a
cd /usr/local/lib; if test -f libz.so.1.2.3; then \
          rm -f libz.so libz.so.1; \
          ln -s libz.so.1.2.3 libz.so; \
          ln -s libz.so.1.2.3 libz.so.1; \
          (ldconfig || true)  >/dev/null 2>&1; \
        fi
cp zlib.3 /usr/local/share/man/man3
chmod 644 /usr/local/share/man/man3/zlib.3


* 리눅스를 다룬지 8년 정도 되었지만 가끔씩 얘기치 않은 오류가 생기면 잠시 당황스럽더군요.
하지만 차근차근 원인을 찾아 보면 간단한 문제 인데 ^^;
여튼 동일 오류로 고민하는 분들이 생기면 저의 글을 보고서 손쉽게 해결 하시라고 이렇듯 작성했으니 만이 도움이 되시길 바랍니다.
* 본 게시글은 CCL에 따릅니다.

리눅스 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를 이용한것입니다 ^ㅡ^;;

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 에서 이름을 변경해주고 재부팅하시면 이름이 서로 변경되어 마우트 될겁니다.