아파치 서버(소스 컴파일) 설치하기 실습
먼저 이미 설치되어 있는 Apache 버전이 있는지 확인해 본다.
Sun Microsystems Inc. SunOS 5.9 Generic May 2002
bash-2.05# pkginfo | grep httpd
bash-2.05# pkginfo | grep apache
bash-2.05# ps -ef | grep httpd
root 769 501 0 14:12:09 pts/6 0:00 grep httpd
--패키지로 설치 됐다면 삭제함.
pkgrm 명령어로 지움
--설치전 다음과 같은 패키지 설치
make -- make 설치후 링크 걸기
bash-2.05#ln -s /usr/local/bin/make /usr/bin/make
-- 패키지 설치
expat,
libiconv,
gdbm,
db-4.2.52.NC,
openssl-0.9.7g
libgcc
gcc
-- 패키지 설치 방법
bash-2.05# gunzip openssl-0.9.7g-sol9-sparc-local.gz
bash-2.05# pkgadd -d openssl-0.9.7g-sol9-sparc-local
-- 다음과 같이 모든 패키지를 설치한다.
--환경 변수(PATH) 를 다음과 같이 설정한다.
bash-2.05# cat /.bash_profile
export PS1='\u@\H:\w>'
export PATH=$PATH:/usr/sbin:/usr/bin:/usr/ccs/bin:/usr/local:/usr/local/lib:/usr/local/bin:/usr/local/doc
bash-2.05#
bash-2.05#source .bash_profile --환경변수 적용
먼저 아파치 최신판을 다운로드 받아보겠다. 아파치의 배포판은
http://apache.org 에서 다운로드 받아보겠다.
다음과 같이 최신 버전을 설치 httpd-2.0.54.tar.gz (소스 컴파일로 설치)
bash-2.05#gunzip httpd-2.0.54.tar.gz
bash-2.05#tar -xvf httpd-2.0.54.tar
bash-2.05# cd httpd-2.0.54
bash-2.05# ls
ABOUT_APACHE LICENSE VERSIONING config.nice include srclib
Apache.dsp Makefile acconfig.h config.status libhttpd.dsp support
Apache.dsw Makefile.in acinclude.m4 configure modules test
BuildBin.dsp Makefile.win apachenw.mcp.zip configure.in modules.c
CHANGES NOTICE build docs modules.lo
INSTALL NWGNUmakefile buildconf emacs-style modules.o
InstallBin.dsp README config.layout httpd os
LAYOUT README.platforms config.log httpd.spec server
bash-2.05#./configure --prefix=/usr/local/apache2 --enable-mods-shared=all
--enable-ssl=shared --enable-ssl --with-ssl=/usr/local/ssl
--configure 구성옵션 참조하기
http://httpd.apache.org/docs/2.0/ko/programs/configure.html
bash-2.05#make
bash-2.05#make install
--make 와 make install 동시에 실행하기
--bash-2.05#make && make install
--한번에 성공하길 ....
--만약 make 실패 제거 명령어
--bash-2.05#make clean
bash-2.05# pwd
/usr/local/apache2/conf
bash-2.05# ls
highperformance-std.conf httpd.conf mime.types
highperformance.conf httpd1.conf ssl-std.conf
httpd-std.conf magic ssl.conf
bash-2.05#
bash-2.05# pwd
/usr/local/apache2/conf
-------------------------------------
아파치 설정
-------------------------------------
bash-2.05# vi httpd.conf
328 #ServerName www.example.com:80
329 ServerName 203.247.202.47:80
--라인 주석 처리후 서버 IP 나 도메인 주소 입력
--후 포트 넘버 웹서버 80 명시
50 ServerRoot "/usr/local/apache2"
370 <Directory "/usr/local/apache2/htdocs">
--주석 제거후 다음과 같이 설정
345 DocumentRoot "/usr/local/apache2/htdocs"
--홈페이지 문서 루트 위치 지정함
410 #<Directory /home/*/public_html>
411 # AllowOverride FileInfo AuthConfig Limit Indexes
412 # Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
413 # <Limit GET POST OPTIONS PROPFIND>
414 # Order allow,deny
415 # Allow from all
416 # </Limit>
417 # <LimitExcept GET POST OPTIONS PROPFIND>
418 # Order deny,allow
419 # Deny from all
420 # </LimitExcept>
421 #</Directory>
--다음과 같이 주석 제거함
410 <Directory /home/*/public_html>
411 AllowOverride FileInfo AuthConfig Limit Indexes
412 Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
413 <Limit GET POST OPTIONS PROPFIND>
414 Order allow,deny
415 Allow from all
416 </Limit>
417 <LimitExcept GET POST OPTIONS PROPFIND>
418 Order deny,allow
419 Deny from all
420 </LimitExcept>
421 </Directory>
:wq!
--아파치 설정 다음과 같이 수정합니다.
------------------------------------
bash-2.05#./apachectl start --아파치 서버 가동
-- bash-2.05#./apachectl stop --아파치 서버 중지
bash-2.05# ps -ef | grep httpd --아파치 프로세스 확인
root 3037 535 0 15:57:33 pts/6 0:00 vi httpd.conf
root 3097 528 0 18:51:05 pts/5 0:00 grep httpd
nobody 2919 2912 0 7월 25 ? 0:00 /usr/local/apache2/bin/httpd -k start
nobody 2920 2912 0 7월 25 ? 0:00 /usr/local/apache2/bin/httpd -k start
nobody 2918 2912 0 7월 25 ? 0:00 /usr/local/apache2/bin/httpd -k start
nobody 2917 2912 0 7월 25 ? 0:00 /usr/local/apache2/bin/httpd -k start
nobody 2932 2912 0 7월 25 ? 0:00 /usr/local/apache2/bin/httpd -k start
nobody 2916 2912 0 7월 25 ? 0:00 /usr/local/apache2/bin/httpd -k start
root 2912 1 0 7월 25 ? 0:00 /usr/local/apache2/bin/httpd -k start
bash-2.05#
bash-2.05# cd htdocs/
bash-2.05# ls
index.html
bash-2.05# pwd
/usr/local/apache2/htdocs
--다음과 같이 문서 홈 루트(/usr/local/apache2/htdoc)에
--index.html 파일 생성
bash-2.05# cat index.html
<html>
<head><title>Apache Test</title></head>
<body>
Apache Song Dae Sung Wow!!!
</body>
</html>
bash-2.05#
--브라우저로 확인
--url://http://localhost
로 작동 여부 확인
2009년 2월 19일 목요일
아파치 서버(소스 컴파일) 설치하기 실습
2009년 2월 18일 수요일
솔라리스에 GCC, Make, Libiconv 설치하기
1. 먼저 libiconv와 gcc, make package 파일을 다운 받습니다.
http://www.sunfreeware.com 에서 필요한 파일을 다운 받습니다.
2. libiconv 패키지 설치(*는 파일명을 입력하시기 바랍니다.)
# gzip –d lib*
# pkgadd –d lib*
3. gcc 패키지 설치(*는 파일명을 입력하시기 바랍니다.)
# gzip –d gcc*
# pkgadd –d gcc*
4. make 패키지 설치(*는 파일명을 입력하시기 바랍니다.)
# gunzip make*
# pkgadd –d make*
4. 패쓰 설정 및 link
# ln -s /usr/local/bin/gcc /usr/bin/gcc
# ln -s /usr/local/bin/make /usr/bin/
5. 확인
# gcc
No Input file
# make
make: *** No targets specified and no makefile found. Stop.
이렇게 나오면 정상입니다
2009년 1월 7일 수요일
bash 쉘로 변경하기
리눅스의 기본쉘은 bash 쉘이라고 한다. 솔라리스는 기본적으로 Born 쉘이 적용이 된다..
쓰기 무자게 귀찬다..
인터넷 찾아보니.. 이케 하면 된다네.^^
#bash
Vi 명령어
※ 삽입 명령
a 커서 뒤에 입력
A 라인 끝에 입력
i 커서 앞에 입력
I 라인시작 부분에 입력
o 커서 있는 라인 밑에 입력
O 커서가 있는 라인 위에 입력
※ 커서 이동 명령
h 왼쪽으로 커서 한 칸 이동
H 화면의 처음으로 이동
L 오른쪽으로 한 칸 이동
L 화면 끝으로 이동
e 다음 단어의 마지막으로 이동
E 커서를 공백으로 구분된 다음 단어 끝으로 이동
b 한 단어 뒤로 이동
B 커서를 공백으로 구분된 이전 단어로 이동
w 커서를 한 단어 뒤로 이동
W 커서를 공백으로 구분된 다음 단어로 이동
k 커서를 한 라인 위로 이동
j 커서를 한 라인 아래로 이동
O 커서를 라인의 시작으로 이동
$ 커서를 라인의 끝으로 이동
Enter 커서를 다음 라인 시작으로 이동
- 커서를 전 라인의 시작으로 이동
Ctrl + F 다음 화면으로 이동
Ctrl + D 화면의 반만 앞으로 이동
Ctrl + B 전 화면으로 이동
Ctrl + U 화면의 반만 뒤로 이동
G 커서를 텍스트 마지막 라인으로 이동
숫자G 커서를 숫자 라인만큼 이동
M 커서를 화면 중간 라인으로 이동
“ 커서를 전 위치로 이동
( 문장의 시작으로 이동
{ 문단의 시작으로 이동
) 문장 끝으로 이동하여 다음 단어의 시작으로 커서 이동
} 문단 끝으로 이동
※ 방향키를 이용한 커서 이동 명령
<-, Del 왼쪽으로 커서 한 칸 이동
PageUp 화면 위로 이동
->, Space 오른쪽으로 한 칸 이동
PageDown 화면 아래로 이동
↑ 윗 줄로 커서 이동
Enter 다음 줄 첫 칸으로 이동
↓ 아래 줄로 커서 이동
Esc 다음 줄 첫 칸으로 이동
Home 줄 처음 칸으로 이동
※ 삭제 명령
x 커서가 있는 문자 삭제
X 커서가 있는 문자 앞에 있는 문자 삭제
dw 커서가 있는 단어 삭제
db 커서가 앞에 있는 단어 삭제
dW 공백으로 구분된 뒷 단어 삭제
dB 공백으로 구분된 앞 단어 삭제
dd 커서가 있는 라인 삭제
D 커서가 있는 라인의 나머지 삭제
d) 문장의 나머지 삭제
d} 문단의 나머지 삭제
dG 파일의 나머지 삭제
dH 화면의 시작까지 삭제
dL 화면의 나머지 삭제
J 커서와 다음 단어의 공백을 모두 삭제
※ 바꾸기 명령
r 커서에 있는 문자 대치
R 입력 모드로 한 문자씩 덮어씀
s 커서가 있는 문자 삭제 후 입력 모드로 전환
S 커서가 있는 줄을 삭제 후 입력 모드로 전환
cb 커서가 있는 앞 문자 삭제 후 입력 모드
cW 공백으로 구분된 뒷 단어를 삭제 후에 입력 모드
cB 공백으로 구분된 앞 단어 삭제 후 입력 모드
cc 커서가 있는 라인을 삭제하고 입력 모드
C 커서가 있는 라인의 나머지를 삭제하고 입력 모드로 전환
cO 커서에서부터 라인의 시작까지 텍스트 바꾸기
c 특정 텍스트 바꾸기
c) 문장의 나머지 바꾸기
c} 문단의 나머지 바꾸기
cG 파일의 나머지 바꾸기
cm 표시까지 모든 것 바꾸기
cL 화면의 나머지 바꾸기
ch 화면의 시작까지 바꾸기
※ 복사
yw 커서가 있는 단어를 복사
yb 커서가 있는 앞 단어를 복사
yW 공백으로 구분된 뒷 단어 복사
yB 공백으로 구분된 앞 단어를 복사
y 특정한 다음 텍스트 복사
yy 커서가 있는 라인을 복사, 커서가 가리키는 곳으로 라인을 이동
y) 문자의 나머지 복사
y} 문단의 나머지 복사
yG 파일의 나머지 복사
yH 화면의 시작까지 복사
yL 화면의 나머지 복사
※ 텍스트 이동
p 삭제나 복사된 텍스트를 커서가 있는 문자나 라인 뒤에 삽입
P 삭제나 복사된 텍스트를 커서가 있는 문자나 라인 앞에 삽입
dw p 커서가 있는 단어를 삭제한 후 이를 원하는 곳 커서 뒤로 삽입
dw P 커서가 있는 단어를 삭제한 후 이를 변경한 커서가 있는 곳으로 삽입
d p 지정한 다음 텍스트로 삭제한 후 커서가 가리키는 곳으로 이동
d) P 문장의 나머지로 이동
d} p 문단의 나머지로 이동
dG P 파일의 나머지로 이동
dH P 화면 시작 부분으로 이동
dL P 화면의 나머지를 이동
※ vi 에디터 종료 마치기 명령
:q 그대로 종료하기
:q! 변경된 내용을 저장하지 않고 강제로 종료하기
:wq 변경된 내용을 저장하고 종료하기
:x :wq와 동일한 명령
ZZ :wq와 동일한 명령
※ 검색
/pattern 텍스트에서 앞으로 패턴 검색
>pattern 텍스트에서 뒤로 패턴 검색
n 앞 또는 뒤로 이전 검색 반복
N 반대 방향으로 이전 검색 반복
/ 전 검색을 앞으로 반복
? 전 검색을 뒤로 반복
※ 문자열 치환
:s/old/new 현재 행의 처음 old를 new로 교체
:s/old/new/g 현재 행의 모든 old를 new로 교체
:10,20s/old/new/g 10행부터 20행까지 모든 old를 new로 교체
:-3,+4s/old/new/g 현재 커서 위치에서 3행 위부터 4행 아래까지 old를 new로 교체
:%s/old/new/g 문서 전체에서 old를 new로 교체
:%s/old/new/gc 문서 전체에서 old를 new로 확인하며 교체
:g/pattern/s/old/new/g Pattern이 있는 모든 행의 old를 new로 교체
:g/pattern/s//new/g :%s/old/new/g와 동일
옵션
옵션약어
기능
디폴트
autoindent
ai
들여 쓰기 가능, 탭으로 들여 쓰기 범위 지정
off
autoprint
ap
줄이 바뀔 때 현재 줄을 화면상에서 출력
on
errobells
ed
명령 에러가 발생시 삑 소리나게 함
off
number
nu
줄 번호를 나타나게 함
off
report
report
편집시 메시지를 보낼 편집 변화 크기 지정
5
showmatch
sm
가로 닫기 괄호를 사용할 때 일치하는 가로 열기 괄호를 보여줌
off
wam
wam
저장하지 않고 vi 종료할 때 경고 메시지를 뿌려 줌
on
ignorecase
ic
검색 패턴에 사용되는 대소문자 구별하지 않음
on
tabstopp=n
ts=n
탭 공백을 n 수만큼 지정
8
wrapmargin=n
wm=n
텍스트 오른쪽 여백을 n 수만큼 지정
0
※ Mark 사용
mx 현재 위치를 x 이름의 마크로 저장
`` 이전에 마크한 위치로 이동
`x 마크한 위치(행, 열)로 이동
‘’ 이전에 마크한 줄로 이동
‘x 마크한 줄로 이동
※ Named Buffer 사용
“ayy 현재 줄을 "a 버퍼에 복사
“Ayy 기존의 버퍼에 현재 줄을 버퍼에 추가
"ap “a 버퍼에 복사된 데이터를 붙여 넣기
☞ ‘a’ 부터 ‘z’ 까지 사용가능
※ 여러 문서 편집
vi filename1, filename2 … vi 로 여러 파일 열기
:n vi로 open한 여러 파일중 다음 파일로 전환
:N vi로 open한 여러 파일중 이전 파일로 전환
:4n 여러 파일중 4개 파일 skip후 파일 Open
:args 현재 열린 모든 파일중 현재 편집중인 파일 표시
2009년 1월 6일 화요일
Solaris Useradd, bash shell 설정
unix os 에서 root로 접속하여 사용하고 있다면 새로운 유저를 등록하도록 하여 사용하도록 하자. root 는 시스템을 관리하는 권한으로 일반적인 유저 사용시엔 root 사용자로 로그인을 자제하고 su 나 pfcsh, pfexec 등을 사용하는것이 보다 보안적인 측면에서의 unix 시스템 잘 이용할 수 있는 것이라 할 수 있다. 자 이제 새로운 유저를 등록 해보기로 하자. 새로운 유저등록을 위한 명령어는 useradd 로 다음과 같다.
(자세한 명령어 이용법은 man page 를 참조 하여 세부적인 사용자 정의를 하도록 하자.)
1. User add , password
#useradd -c 'System Admin' -d /export/home/NEWID -m -s /bin/bash NEWID
( additonal profile options
-P 'Primary Administrator,Network Management,Postgres Administration'
* 유저 홈 디렉토리를 만드려면 /export 에 /home 를 만들어 두어야 한다.
* 유저 프로파일 등록 옵션시 대문자 임에 주의한다. -P
#passwd *******
패스워드는 영어 숫자 특수문자 조합으로 설정을 하는 것이 좋다.
2. Shell 설정
bash 쉘의 alias 등의 설정은 자신 아이디의 홈 디렉토리에 bashrc 파일을 생성하여 만들 수 있다.
http://kldp.org/HOWTO/html/Adv-Bash-Scr-HOWTO/sample-bashrc.html
Text 파일(bashell.txt)
2009년 1월 5일 월요일
Solaris 정보확인 명령어
■ CDE 환경에서 정보 확인 (GUI)
CDE > Pannel > System Info
■ uname 명령어를 통한 정보 확인 (운영체제 확인
# uname –a
SunOS sun 5.10 Generic_127127-11 sun4u sparc SUNW,Sun-Fire-480R
■ /etc/release 파일을 통한 정보 확인
# cat /etc/release
■ ipcs 명령어를 사용한 큐, 공유메모리, 세마포어 설정 확인
# ipcs
[참고] sysdef 명령어를 사용해서도 확인이 가능하다
■ Solaris 버전을 확인
# cat /var/sadm/softinfo/INST_RELEASE
영체제 SunOS
서버명 sun
버전은 5.10
커널 패치127127이며
커널 패치의 리비전은 11
애플리케이션 아키텍쳐 sun4u
시스템 모델 Sun-Fire-480R
■설치된 OS 가 64 비트인지 32 비트인지 확인
/bin/isainfo –kv
<ex>
64-bit sparcv9 kernel modules
■ /usr/platform/`uname -i`/sbin/prtdiag
# /usr/platform/`uname -i`/sbin/prtdiag | more
주의) Intel Platform 인 경우 명령어가 존재하지 않는다.
- 시스템의 종류(범주)와 시스템 클럭
- 총 메모리 크기
- 구성되어 있는 시스템 보드의 수
- 각 시스템 보드의 CPU와 메모리의 수와 종류
- 메모리 읽기 방식(Interleave)
- 설치된 I/O 카드(네트워크나 채널 I/O 등)
- 시스템에 구성된 보드 중 발생한 장애와 현재 구성되어 있지만 사용하지 않는 시스템
정보도 언급된다. (이 경우 썬 서버만)
# /usr/platform/`uname -i`/sbin/prtdiag -v
# /usr/platform/`uname -i`/sbin/prtdiag –l
-l Log output. If failures or errors exist in the system,
output this information to syslogd(1M) only.
-v Verbose mode. Displays the time of the most recent AC
Power failure, and the most recent hardware fatal
error information, and (if applicable) environmental
status. The hardware fatal error information is useful
to repair and manufacturing for detailed diagnostics
of FRUs.
예) Brd Type MHz Slot Name Model
1 SBus 25 0 SUNW,sbus-gem
SUNW,sbus-gem 모델의 네트워크 카드가 Sbus 타입의 I/O 보드 1번의 0번 슬롯에 설치 되
어 있는것을 의미한다. SUNW,sbus-gem은 썬에서 제작한 sbus용 gem(기가비트 멀티모드
파이버 연결)카드다.
■ 모든패치에 대한 확인
# showrev -p | more
......
Patch: 114433-10 Obsoletes: 115485-01 Requires: Incompatibles: Packages: SUNWcsu,
SUNWcsl, SUNWesu, SUNWtoo, SUNWmdb, SUNWscpu, SUNWtnfc, SUNWcpcu, SUNWrcapu,
SUNWrmwbu
......
위의 내용을 해석하여 보면 114433-10 설치 되어 있으며 이 패치의 설치로 인해서
115485-01 쓸모없이 제거되었고(Obsoletes), 이 패치를 설치 하기위해서 먼저 필요한
패치는 없고(Requires), 관련 패키지는 SUNWcsu, SUNWcsl, SUNWesu....등이다.
■ 커널 패치에 대한 확인
# uname -srv
SunOS 5.9 Generic_118559-11
위의 내용을 해석하여 보면 설치된 운영체제 커널에 적용된 최신패치를 보여준다.
uname 명령어의 -a 옵션을 사용한 경우에도 보여 준다. 그 부분을 참고 하자.
■ swap
# swap -s
total: 45544k bytes allocated + 18984k reserved = 64528k used, 722236k available
# swap -l
swapfile dev swaplo blocks free
/dev/dsk/c1d1s1 102,129 8 1048936 1048936
[참고] SolarisMemroyAdmin.txt 파일 참조
■ 장착된 디스크(인식된 디스크, Device Reconfiguration)
/etc/path_to_inst, prtconf | grep -v not
# ls -l /dev/rdsk/*s2
lrwxrwxrwx 1 root root 54 Dec 7 04:20 /dev/rdsk/c0d0s2 -> ../../devices/pci@0,0/pci-ide@7,1/ide@0/cmdk@0,0:c,raw
# cat /etc/path_to_inst | grep sd
"/pci@0,0/pci-ide@7,1/ide@1/sd@0,0" 0 "sd"
# cat /etc/path_to_inst | grep dad
# cat /etc/path_to_inst | grep cmdk
"/pci@0,0/pci-ide@7,1/ide@0/cmdk@0,0" 0 "cmdk"
# prtconf | grep -v not
■ 디스크별 제조사와 모델명 확인
iostat -nE, format(inquiry)
# iostat –nE
-n Display names in descriptive format (for example,
cXtYdZ, rmt/N, server:/export/path).
-E Display all device error statistics.
[참고] format 명령어의 하위 명령어(inquirey)로도 확인이 가능하다.
# format
6. 파티션 정보 확인
■ prtvtoc
# prtvtoc /dev/rdsk/c0d0s2
* /dev/rdsk/c0d0s2 partition map
# df -h
Filesystem size used avail capacity Mounted on
/dev/dsk/c1d1s7 1.9G 2.0M 1.8G 1% /export/home
특정 슬라이스(파티션)의 폴더 단위의 용량 점검
# cd /export/home
# du -sh *
7K hacker
8K lost+found
7K user01
■ 인식된 모든 장치에 대한 목록 확인
# cat /etc/path_to_inst
■ 그래픽카드 확인
예) m64 그래픽카드라면
# prtconf | grep -i m64
(일반적인 그래픽카드 관리 명령어) : ffbconfig
해상도, 수직 주파수등을 알아 낼수 있다.
(m64 그래픽카드 관리 명령어) : m64config
# m64config –prconf
■ 네트워크 카드
# grep -i hme /etc/path_to_inst
# ifconfg -a
# cat /etc/path_to_inst | grep qfe
■ psrinfo
[/]# psrinfo
0 on-line since 10/15/2007 03:24:27
[/]# psrinfo –p
[/]# psrinfo -pv
The i386 physical processor has 1 virtual processor (0)
[/]# psrinfo -v
Status of virtual processor 0 as of: 10/15/2007 04:00:02
on-line since 10/15/2007 03:24:27.
[참고] uname -X
■ Physical Memory 확인(prtconf | grep Memory)
# prtconf | grep Memory
Memory size: 352 Megabytes
■ File Buffering Memory(prtmem)
File Buffering Memory는 MemTool을 이용하여 알아 볼수 있다. 결과는 다음과 같다.
# prtmem
[참고] prtmem 명령어는 솔라리스 기본 내장 명령어가 아니다. 설치 해서 사용해야 한다. 패키명은 RMCmem 이다.
■ Kernel Memory 확인(sar -k 1 1)
sar명령어를 이용하여 byte단위로 알아 볼수 있다.
# sar -k 1 1
■ Free Memory(vmstat 3)
Free Memory는 거의 항상 0 이다. 왜냐 하면 Buffer cache가 있기 때문이다.
Free Memory는 vmstat 명령어로 알아 볼수 있다.
vmstat 결과 나오는 첫번째 라인은 bootinf후 나오는평균치 이기 때문에 2번째 라인 부터 가 실질적인 결과이다.
# vmstat 3
procs memory page disk faults cpu
r b w swap free re mf pi po fr de sr f0 s2 s3 s4 in sy cs us sy id
0 0 0 81832 74792 0 12 75 4 93 0 36 0 1 1 1 265 1940 303 5 1 93
■ 각 프로세스 메모리 정보
# ps -el | more
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
19 T 0 0 0 0 0 SY fec28df4 0 ? 0:03 sched
8 S 0 1 0 0 40 20 d3c11808 331 d403ee16 ? 0:00 init
19 S 0 2 0 0 0 SY d3c11108 0 fec530a0 ? 0:00 pageout
19 S 0 3 0 0 0 SY d3c10a08 0 fed0d818 ? 0:00 fsflush
8 S 0 422 1 0 40 20 d3c10308 463 d4033d68 ? 0:00 sac
SZ 필드의 값이 프로세스가 사용하고 있는 가상메모리(Virtual Memory) 총량이다. 이 안
에는 매핑된 파일과 디바이스가 포함된다. 단위는 페이지 단위로 되어 있다.(pagesize(1))
# pagesize
4096
# expr 4096 \* 564
2310144
# expr 2310144 / 1024
2256
위의 결과와 같이 약 2M(2256 Kbytes) 정도의 메모리를 사용하고 있다는 것을 알수 있다.
■ 한개의 프로세스 메모리 사용량
/]# echo $$
925
[/]# /usr/proc/bin/pmap -x 925
925: dtksh
Address Kbytes RSS Anon Locked Mode Mapped File
08045000 12 12 4 - rwx-- [ stack ]
08050000 532 388 - - r-x-- dtksh
080E4000 52 52 8 - rwx-- dtksh
080F1000 8 - - - rwx-- dtksh
080F3000 88 84 12 - rwx-- [ heap ]
D2380000 4 4 - - rwx-- [ anon ]
D2390000 12 12 - - r-x-- libmp.so.2
D23A3000 4 4 - - rwx-- libmp.so.2
D23B0000 72 56 - - r-x-- libICE.so.6
D23D2000 4 4 - - rwx-- libICE.so.6
D23D3000 8 - - - rwx-- libICE.so.6
D23E0000 4 4 4 - rwx-- [ anon ]
D23F0000 32 32 - - r-x-- libSM.so.6
D2408000 4 4 - - rwx-- libSM.so.6
D2410000 80 56 - - r-x-- libXext.so.0
D2434000 4 4 - - rwx-- libXext.so.0
..... (중략)......
D2960000 496 420 - - r-x-- libtt.so.2
D29EC000 12 12 - - rwx-- libtt.so.2
D2A00000 344 224 - - r-x-- libDtSvc.so.1
D2A66000 8 8 - - rwx-- libDtSvc.so.1
D2A68000 8 4 - - rwx-- libDtSvc.so.1
D2A70000 4 4 4 - rwx-- [ anon ]
D2A80000 220 200 - - r-x-- libDtWidget.so.2
D2AC8000 16 16 - - rwx-- libDtWidget.so.2
D2ACC000 8 - - - rwx-- libDtWidget.so.2
D2AD0000 460 92 - - r-x-- libDtHelp.so.1
D2B52000 28 28 - - rwx-- libDtHelp.so.1
D2B6D000 4 4 4 - rwx-- libdl.so.1
D2B70000 4 4 - - r--s- dev:102,0 ino:36861
D2B80000 4 4 4 - rwx-- [ anon ]
D2B90000 324 324 - - r-x-- ld.so.1
D2BF1000 16 16 4 - rwx-- ld.so.1
D2BF5000 8 8 4 - rwx-- ld.so.1
-------- ------- ------- ------- -------
total Kb 7092 5756 60 -
pmap명령의 결과 ksh 프로세서가 5756k의 real memory를 사용 한다는 것을 알수 있다.
60k는 시스템의 다른 프로세서와 shared한다는 것도 알수 있다.
■ sysdef | more
# sysdef | more
.....
* Hostid
* Devices
* Loadable Objects
.....
# modinfo
Id Loadaddr Size Info Rev Module Name
5 fe933000 3f32 1 1 specfs (filesystem for specfs)
12 fe96a962 18f - 1 fssnap_if (File System Snapshot Interface)
..... (중략).....
# modinfo -i 5
Id Loadaddr Size Info Rev Module Name
5 fe933000 3f32 1 1 specfs (filesystem for specfs)
프로세스의 정보 확인
___________________________
메모리를 많이 사용하고 있는 프로세스 10개정도 확인
# ps -elf | head -1 ; ps -elf | sort -k 10 -r | head
F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD
8 S root 378 329 0 40 20 d461a728 4376 d4a5ce0a 10:09:27 ? 0:05 /usr/openwin/bin/Xsun :0 –nobanner
…(중략)
[참고] 사용하고 있는 메모리 계산하는 방법
메모리 사용량 = SZ * `pagesize`
예) 4376 * 4096(or 8192) = 17924096 bytes(약 17Mbytes)
■ netstat
1). IP 설정 확인
[/]# ifconfig -a
lo0: flags=1000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
inet 127.0.0.1 netmask ff000000
(2). Routing Table 확인
[/]# netstat -nr
Routing Table: IPv4
Destination Gateway Flags Ref Use Interface
-------------------- -------------------- ----- ----- ------ ---------
192.168.8.0 192.168.8.2 U 1 61 pcn0
224.0.0.0 192.168.8.2 U 1 0 pcn0
default 192.168.8.254 UG 1 62
127.0.0.1 127.0.0.1 UH 21 74190 lo0
(3). DNS Client 설정 확인
[/]# cat /etc/nsswitch.conf
......(생략).....
[/]# cat /etc/resolv.conf
nameserver 168.126.63.1
(4). 네트워크 활동량 점검
# netstat -an | more
UDP: IPv4
Local Address Remote Address State
-------------------- -------------------- -------
*.512 Idle
*.517 Idle
......(중략)
# netstat -s
RAWIP
rawipInDatagrams = 0 rawipInErrors = 0
rawipInCksumErrs = 0 rawipOutDatagrams = 0
.....(중략)
# netstat -m (# netstat -mv)
streams allocation:
cumulative allocation
current maximum total failures
streams 238 272 1794 0
queues 674 740 3895 0
mblk 791 1270 39888 0
…(중략)
# netstat -i 2
input pcn0 output input (Total) output
packets errs packets errs colls packets errs packets errs colls
44725 0 44926 0 0 45538 0 45739 0 0
11 0 11 0 0 11 0 11 0 0
…(중략)
■ quot -af
■ prtconf -vp | grep banner-name
■ eeprom
[출처] Solaris 정보확인 명령어|작성자 정광원
Soraris APM 설치(install)
더 설치해준 패키지
flex-2.5.4a-sol9-intel-local.gz
bison-1.875-sol9-intel-local.gz
gd-2.0.11.tar.gz
m4-1.4-sol9-intel-local.gz
콘피그 옵션
./configure --prefix=/usr/local/mysql --with-charset=euc_kr
*make할때 별다른 이유없이 리크루시브에러날때
gnu메이크 다운받아 bin폴더에 gmake로 변환해서 복사했을경우 이런에러 발생
gmake복사시 make이름으로도 같이복사하여 해결함
*siginfo컴파일에러시
/usr/local/lib/gcc-lib/i386-pc-solaris2.10/3.3.2/install-tools/mkheaders
를 실행하여 해결
*sql_lex.o에러시
해당 디렉토리에 객체파일(빈거)생성해준다.근데 또 sql에 맞지않다고 하여좌절
--결국 5.0버젼받어서 에러없이 설치함 ㅡㅡ;;
groupadd mysql
useradd -g mysql mysql
에스큐엘 빈폴더로 이동후
mysql_install_db
chown -R root /usr/local/mysql
chown -R mysql /usr/local/mysql/data
chown -R mysql /usr/local/mysql
mysqld_safe --user=mysql &
명령어패스지정 귀차녀서 sql실행파일을 명령어패스로 심볼링크함
mysql
---------------------------------------------------------------------------
4.자동 시작 스크립트 작성과 심볼릭 링크 생성
----------------------------------------------------------------------------------------------
[/etc/init.d/]#vi ./mysqld
case "$1" in
'start')
LD_LIBRARY_PATH=/usr/local/lib
export LD_LIBRARY_PATH
/usr/local/mysql/bin/mysqld_safe &
;;
'stop')
;;
*)
echo "Usage: $0 { start | stop |"
exit 1
;;
esac
exit 0
[/etc/init.d/]#ln -s /etc/init.d/mysqld /etc/rc2.d/S90mysql
[/etc/init.d/]#ln -s /etc/init.d/mysqld /etc/rc0.d/K10mysql
/*
reboot해서 확인 할것
*/
#ps -ef | grep mysqld
/*
root패스워드 변경
*/
[/usr/local/mysql/bin/]#mysqladmin -u root password '패스워드'
[/usr/local/mysql/bin/]#mysqladmin -u root -h host password '패스워드'
/*
접속 TEST
*/
[/usr/local/mysql/bin/]#./mysql -u root -p mysql
passwd : 패스워드 입력
or
[/usr/local/mysql/bin/]#./mysql -p mysql
설치전 기존에 기본으로 설치 되어 있는 패키지 삭제
#pkginfo | grep SUNWapch*
#pkgrm SUNWapchr
#pkgrm SUNWapchd
#pkgrm SUNWapchu
v2있을경우 v2전부삭제
환경설정
./configure \
> -- prefix=/usr/local/apache2 \
> -- enable-so \ <-- php연동시 필요
> -- enable-module=so \ <-- php여동시 필요
> -- enable-shared=max \
> -- enable-rule=SHARED_CORE \ <-- tomcast연동시 필요
> -- with-mpm=threadpool
make
make install
----------------------------------------------------------------
CFLAGS="-L/usr/local/mysql/lib/mysql -lmysqlclient"
./configure \
> --prefix=/usr/local/php \
> --with-apxs2=/usr/local/apache2/bin/apxs \
> --with-mysql=/usr/local/mysql \
> --disable-debug \
> --enable-track-vars=yes \
> --disable-debug \
> --with-expat \
> --with-xml \
> --enable-sockets \
> --with-language=korean \
> --with-charset=euc_kr \
> --enable-modules=so \
> --enable-trans-sid \
> --with-config-file-path=/usr/local/apache2/conf \
> --with-execdir=/usr/local/apache2/bin \
> --enable-versioning
gmake
gmake install
*make도중 zend_strtod.c에서 오류가 발생한다. u_int32_t 가 정의되어있지 않아
발생하는 문제로, 소스를 다음과 같이 수정해주면된다
Zend/zend_strtod.c의 130번째 라인 (PHP 4.3.10의 경우)
#if defined(__sparc__) || defined(__ppc__)
#define u_int32_t uint32_t
#endif
을
#if defined(__sparc__) || defined(__ppc__) || defined(__sun__) || \
defined(__hpux) || defined(__hppa)
#ifndef __linux__
#define u_int32_t uint32_t
#endif
#endif
으로 수정한다
---설치완료
[출처] 솔라리스 APM설치|작성자 맑은향기
솔라리스(64bit) 에서 gcc 및 Apache 설치관련
솔라리스9(64bit) 에서 gcc 및 Apache 설치관련
# uname -a
SunOS MINSAPP1 5.9 Generic_118558-11 sun4u sparc SUNW,Sun-Fire-V240
# isainfo -b
64
솔라리스는 기본적으로 gcc가 설치되어 있지않다
먼저, gcc를 설치한다
http://sunfreeware.com 에서 gcc 를 받는다.(64bit 걸 받는다)
# pkgadd -d gcc...
/usr/local/bin 아래 gcc가 설치된다
file /usr/local/bin/gcc
/usr/local/bin/gcc: ELF 64-bit MSB executable SPARCV9 Version 1, dynamically linked, not stripped
(64bit 바이너리 포맷으로 컴파일되었음)
여기서 아파치를 설치하면 libgcc 관련 동적라이브러리를 설치하라고 하는 메시지를 받는다
libgcc 패키지를 설치한다.
역시, http://sunfreeware.com 에서 libgcc를 받는다
# pkgadd -d libgcc...
/usr/local/lib 아래 해당 동적 라이브러리들이 설치된다
<주의사항>
/usr/local/lib 아래에 있는 파일들은 32bit 바이너리 포맷으로 컴파일되어있다
64bit 바이너리 포맷으로 컴파일된 동적 라이브러리는 /usr/local/lib/sparcv9 아래에 있다
# file `ls -l /usr/local/lib/*so | grep -v ^d | awk '{print $9}'`
lib-org-w3c-dom.so: ELF 32-bit MSB dynamic lib SPARC32PLUS Version 1, V8+ Required, dynamically linked, not stripped
lib-org-w3c-dom.so.5: ELF 32-bit MSB dynamic lib SPARC32PLUS Version 1, V8+ Required, dynamically linked, not stripped
lib-org-w3c-dom.so.5.0.0: ELF 32-bit MSB dynamic lib SPARC32PLUS Version 1, V8+ Required, dynamically linked, not stripped
lib-org-xml-sax.so: ELF 32-bit MSB dynamic lib SPARC32PLUS Version 1, V8+ Required, dynamically linked, not stripped
lib-org-xml-sax.so.5: ELF 32-bit MSB dynamic lib SPARC32PLUS Version 1, V8+ Required, dynamically linked, not stripped
lib-org-xml-sax.so.5.0.0: ELF 32-bit MSB dynamic lib SPARC32PLUS Version 1, V8+ Required, dynamically linked, not stripped
libffi-2.00-beta.so: ELF 32-bit MSB dynamic lib SPARC32PLUS Version 1, V8+ Required, dynamically linked, not stripped
libffi.so: ELF 32-bit MSB dynamic lib SPARC32PLUS Version 1, V8+ Required, dynamically linked, not stripped
libg2c.so: ELF 32-bit MSB dynamic lib SPARC32PLUS Version 1, V8+ Required, dynamically linked, not stripped
libg2c.so.0: ELF 32-bit MSB dynamic lib SPARC32PLUS Version 1, V8+ Required, dynamically linked, not stripped
libg2c.so.0.0.0: ELF 32-bit MSB dynamic lib SPARC32PLUS Version 1, V8+ Required, dynamically linked, not stripped
libgcc_s.so: ELF 32-bit MSB dynamic lib SPARC Version 1, dynamically linked, not stripped
libgcc_s.so.1: ELF 32-bit MSB dynamic lib SPARC Version 1, dynamically linked, not stripped
libgcc_s_sparcv7.so: ELF 32-bit MSB dynamic lib SPARC Version 1, dynamically linked, not stripped
libgcj.so: ELF 32-bit MSB dynamic lib SPARC32PLUS Version 1, V8+ Required, dynamically linked, not stripped
libgcj.so.5: ELF 32-bit MSB dynamic lib SPARC32PLUS Version 1, V8+ Required, dynamically linked, not stripped
libgcj.so.5.0.0: ELF 32-bit MSB dynamic lib SPARC32PLUS Version 1, V8+ Required, dynamically linked, not stripped
libobjc.so: ELF 32-bit MSB dynamic lib SPARC32PLUS Version 1, V8+ Required, dynamically linked, not stripped
libobjc.so.1: ELF 32-bit MSB dynamic lib SPARC32PLUS Version 1, V8+ Required, dynamically linked, not stripped
libobjc.so.1.0.0: ELF 32-bit MSB dynamic lib SPARC32PLUS Version 1, V8+ Required, dynamically linked, not stripped
libstdc++.so: ELF 32-bit MSB dynamic lib SPARC Version 1, dynamically linked, not stripped
libstdc++.so.6: ELF 32-bit MSB dynamic lib SPARC Version 1, dynamically linked, not stripped
libstdc++.so.6.0.1: ELF 32-bit MSB dynamic lib SPARC Version 1, dynamically linked, not stripped
libstdc++.so.6.0.3: ELF 32-bit MSB dynamic lib SPARC32PLUS Version 1, V8+ Required, dynamically linked, not stripped
동적 라이브러리는 모두 32bit 바이너리 포맷이다
따라서 여기에 있는 libgcc_s.so.1 을 사용하면 링크과정에서 에러를 발생시킨다
# file `ls -l /usr/local/lib/sparcv9/*so | grep -v ^d | awk '{print $9}'`
lib-org-w3c-dom.so: ELF 64-bit MSB dynamic lib SPARCV9 Version 1, dynamically linked, not stripped
lib-org-w3c-dom.so.5: ELF 64-bit MSB dynamic lib SPARCV9 Version 1, dynamically linked, not stripped
lib-org-w3c-dom.so.5.0.0: ELF 64-bit MSB dynamic lib SPARCV9 Version 1, dynamically linked, not stripped
lib-org-xml-sax.so: ELF 64-bit MSB dynamic lib SPARCV9 Version 1, dynamically linked, not stripped
lib-org-xml-sax.so.5: ELF 64-bit MSB dynamic lib SPARCV9 Version 1, dynamically linked, not stripped
lib-org-xml-sax.so.5.0.0: ELF 64-bit MSB dynamic lib SPARCV9 Version 1, dynamically linked, not stripped
libffi-2.00-beta.so: ELF 64-bit MSB dynamic lib SPARCV9 Version 1, dynamically linked, not stripped
libffi.so: ELF 64-bit MSB dynamic lib SPARCV9 Version 1, dynamically linked, not stripped
libg2c.so: ELF 64-bit MSB dynamic lib SPARCV9 Version 1, dynamically linked, not stripped
libg2c.so.0: ELF 64-bit MSB dynamic lib SPARCV9 Version 1, dynamically linked, not stripped
libg2c.so.0.0.0: ELF 64-bit MSB dynamic lib SPARCV9 Version 1, dynamically linked, not stripped
libgcc_s.so: ELF 64-bit MSB dynamic lib SPARCV9 Version 1, dynamically linked, not stripped
libgcc_s.so.1: ELF 64-bit MSB dynamic lib SPARCV9 Version 1, dynamically linked, not stripped
libgcc_s_sparcv9.so: ELF 64-bit MSB dynamic lib SPARCV9 Version 1, dynamically linked, not stripped
libgcj.so: ELF 64-bit MSB dynamic lib SPARCV9 Version 1, dynamically linked, not stripped
libgcj.so.5: ELF 64-bit MSB dynamic lib SPARCV9 Version 1, dynamically linked, not stripped
libgcj.so.5.0.0: ELF 64-bit MSB dynamic lib SPARCV9 Version 1, dynamically linked, not stripped
libobjc.so: ELF 64-bit MSB dynamic lib SPARCV9 Version 1, dynamically linked, not stripped
libobjc.so.1: ELF 64-bit MSB dynamic lib SPARCV9 Version 1, dynamically linked, not stripped
libobjc.so.1.0.0: ELF 64-bit MSB dynamic lib SPARCV9 Version 1, dynamically linked, not stripped
libstdc++.so: ELF 64-bit MSB dynamic lib SPARCV9 Version 1, dynamically linked, not stripped
libstdc++.so.6: ELF 64-bit MSB dynamic lib SPARCV9 Version 1, dynamically linked, not stripped
libstdc++.so.6.0.1: ELF 64-bit MSB dynamic lib SPARCV9 Version 1, dynamically linked, not stripped
libstdc++.so.6.0.3: ELF 64-bit MSB dynamic lib SPARCV9 Version 1, dynamically linked, not stripped
64bit 바이너리 포맷으로 컴파일 되었다
# vi /etc/profile
에서 LD_LIBRARY_PATH 에 /usr/local/lib/sparcv9 를 추가한다.(/usr/local/lib 가 아니다)
이제 본격적으로 아파치를 설치한다.
단, 컴파일 옵션에 -m64 옵션을 넣어준다
# CC="gcc -m64" ./configure --prefix=/usr/local/apache2 --enable-rule=SHARED_CORE --enable-module=so
# make && make install
참조url :
http://pari.math.u-bordeaux.fr/archives/pari-dev-0310/msg00037.html
SPARC / INTEL Solaris OpenSSH 패키지 설치하기
OpenSSH는 당신의 시스템에 보안을 제공하는 것을 의미한다. 만약 당신이 어떻게 사용하는지 똑바로 이해하지 못한다면 문제가 있는 것이다. 이러한 문제는 당신의 책임이다.
당신이 ssh를 설치하기 전에 아래의 설명서를 충분히 그리고 주의 깊게 읽어 주길 바란다.
ssh 와 sshd를 실행시키기 위해서는 다수의 패키지를 설치해야 할 필요가 있다. 네트워크 많은 곳에서 이 순서에 대해 자세하게 나올 것이다. 그중 가장 좋은 방법은 선 블루 프린트 웹 페이지와 Solaris 운영체제상의 ssh에 대한 문서를 참조하는 것이다.
나는 sun사의 블루 프린트 방법을 사용하지 않았다 왜냐하면 어떠한 것들이 문서가 만들어진 후로부터 바뀌었기 때문이다
ssh 는 각 머신이 정리된 random을 요구한다. Solaris9는 /dev/random 과 /dev/urandom이 built-in되어 있지 않다 그러나 패치를 하면 그 문제는 해결된다. 만약 패치를 설치하기 원하지 않고 고유의 패키지를 설치하기 원한다면 grngd 소프트웨어를 우선적으로 대신해서 사용할 것이다.
당신의 시스템에서 ssh를 사용하기 위해서는 일곱 개의 소프트웨어가 필요할 수 있을 것이다 opens니, OpenSSH, zlib, libgcc(만약 gcc3.2.3이 인스톨되어 있다면 필요없다)그리고
부 가적으로 egd, grngd, perl 그리고 tcp_wrappers. 또한 소스를 다운로드 하여 c컴파일러가 있다면 컴파일 해도 되고 sunfreeware.com에 가서 이미 컴파일 되어 패키지 화 되어 있는 것을 다운로드하여 사용할 수도 있다. 만약 시스템의 보안에 걱정이 되거나 어떤 사람이 이미 컴파일해서 패키지화 시켜놓은 것을 신뢰할 수 없다면 가장 좋은 방법은 소프트웨어를 직접 컴파일 하는 것이다. 직접 컴파일 하는 것은 큰 경험을 배우는 것이다.
이 각 다른 프로그램의 소스는 sunfreeware.com 혹은 각 소프트웨어의 홈페이지에 가면 직접 구할 수 있다
http://www.zlib.org zlib
http://www.perl.org perl
http://www.aet.tu-cottbus.de/personen/jaenicke/postfix_tls/prngd.html prngd
http://www.openssl.org openssl
http://www.OpenSSH.org OpenSSH
http://www.lothar.com/tech/crypto/ egd
ftp://ftp.porcupine.org/pub/security/index.html tcp_wrappers
나 는 부가적으로 tcp_wrappers 프로그램을 사용하였다.(향상된 방법을 사용하는 것이다) 이 tcp_wrappers 프로그램은 hosts.allow와 hosts.deny파일에 정의된 컴퓨터들이 ssh로그인을 제한할 수 있도록 도와준다.
--------------------------------------------------------------------
설치 과정
--------------------------------------------------------------------
처음 과정 : Solaris 8 random 패치하기
패치 파일을 구하는 사이트는 아래와 같다
http://www.sunmanagers.org/pipermail/summaries/2002-April/002956.html
이 과정을 절대로 뛰어넘어서는 않 된다. 이 버전의 OpenSSH는 /dev/random 패치가 설치되어 있어야 한다. 만약 구동중인 시스템에 패치를 적용해서 재 시작을 하더라도 끝나는 것은 아니다. 재 시작을 하지 않아도 패치 적용은 가능하다.
SPARC Solaris 8 패치 112438-01찾으려면, 112438-01 종류를 PatchID의 검색 창에 입력하거나 패치 찾기 버튼을 클릭해라. 그러면 패치가 설명되어 있는 페이지나 패치가 링크되어 있는 곳이 나타날 것 이다. 패치를 다운로드하고 설명서가 가리키는 대로 설치해라.
패치를 적용하기 위해서는 시스템의 재 시작이 필요할 수도 있다.
INTEL Solaris 8 패치를 위해서는 112439-01을 대신해서 찾고 같은 설명서를 참조하여 설치하라 많은 뉴스그룹에서 이러한 패치에 대해 게시물을 게시해 놓았을 것이다. google 그룹에 가서 112438-01 또는 112439-01 패치를 조사해라 그러면 도움 줄 만한 많은 이야기들을 발견 할 수 있을 것이다
1 단계 : 패키지 얻기
sunfreeware.com 에서의 OpenSSH 버전을 인스톨하기 위해서는 처음 화면으로 이동하여 오른쪽에 SPARC/Solaris8에 가서 해당 파일을 선택하라 SPARC에 대해 필요한 파일을 필요하다면 여기에서 다운로드 받아라.
OpenSSH-3.7.1p2-sol8-sparc-local.gz
openssl-0.9.7b-sol8-sparc-local.gz
tcp_wrappers-7.6-sol8-sparc-local.gz (optional, but recommended)
(unless you are using IPV6 - see the tcp_wrappers listing for details on this issue)
zlib-1.1.4-sol8-sparc-local.gz
libgcc-3.2.3.2-sol8-sparc-local.gz
perl-5.8.0-sol8-sparc-local.gz (optional)
prngd-0.9.25-sol8-sparc-local.gz (optional)
egd-0.8-sol8-sparc-local.gz (optional)
-INTEL의 경우
OpenSSH-3.7.1p2-sol8-intel-local.gz
openssl-0.9.7b-sol8-intel-local.gz
tcp_wrappers-7.6-sol8-intel-local.gz (optional, but recommended)
(unless you are using IPV6 - see the tcp_wrappers listing for details on this issue)
zlib-1.1.4-sol8-intel-local.gz
libgcc-3.2.3.2-sol8-intel-local.gz
perl-5.8.0-sol8-intel-local.gz (optional)
prngd-0.9.25-sol8-intel-local.gz (optional)
egd-0.8-sol8-intel-local.gz (optional)
만약 위의 파일 몇 개가 설치되어 있다면 다운로드하지 않아도 된다. 그렇지만 설치된 패키지 버전이 가장 최신 것이어야 된다.
-패키지 인스톨하기
파일 다운로드가 끝났으면 다운로드 받은 파일들이 저장되어 있는 디렉토리로 이동해라 그리고 그것들을 설치해라( INTEL 시스템이면 INTEL 패키지로 설치해야 된다)
# gunzip OpenSSH-3.7.1p2-sol8-sparc-local.gz
# gunzip openssl-0.9.7b-sol8-sparc-local.gz
# gunzip zlib-1.1.4-sol8-sparc-local.gz
# gunzip libgcc-3.2.3-sol8-sparc-local.gz(if you don't already have gcc 3.2.3 installed)
# gunzip tcp_wrappers-7.6-sol8-sparc-local.gz (again optional)
# pkgadd -d OpenSSH-3.7.1p2-sol8-sparc-local
# pkgadd -d openssl-0.9.7b-sol8-sparc-local
# pkgadd -d zlib-1.1.4-sol8-sparc-local
# pkgadd -d libgcc-3.2.3-sol8-sparc-local (if you don't already have gcc 3.2.3 installed)
# pkgadd -d tcp_wrappers-7.6-sol8-sparc-local (optional)
INTEL의 경우
# gunzip OpenSSH-3.7.1p2-sol8-intel-local.gz
# gunzip openssl-0.9.7b-sol8-intel-local.gz
# gunzip zlib-1.1.4-sol8-intel-local.gz
# gunzip libgcc-3.2.3-sol8-intel-local.gz(if you don't already have gcc 3.2.3 installed)
# gunzip tcp_wrappers-7.6-sol8-intel-local.gz (again optional)
# pkgadd -d OpenSSH-3.7.1p2-sol8-intel-local
# pkgadd -d openssl-0.9.7b-sol8-intel-local
# pkgadd -d zlib-1.1.4-sol8-intel-local
# pkgadd -d libgcc-3.2.3-sol8-intel-local (if you don't already have gcc 3.2.3 installed)
# pkgadd -d tcp_wrappers-7.6-sol8-intel-local (optional)
위의 패키지가 설치되었다면 /usr/local/밑에 다양한 서브디렉토리에 파일이 있을 것이다.
이제 ssh는 /usr/local/bin 그리고 sshd는 /usr/local/sbin안에 서 찾을 수 있을 것이다. /usr/local/bin 과 /usr/local/sbin의 경로는 확실하게 지정해라.
펄 스크립트는 부가적으로 egd 패키지안에 /usr/local/bin에서 찾을 수 있을 것이다.
만약 선 펄을 사용한다면 펄 프로그램은 /usr/bin 디렉토리에서 시작될 것이다.
3단계 : sshd 사용자 와 /var/empty 디렉토리 세팅하기
OpenSSH 에 새로운 보안 방법 설정은 privilege separation라고 불린다. 자세한 것은 ssh 소스 안의 README.privsep 파일에서 찾을 수 있을 것 이다. 이 방법은 ssh의 기본 값이다. 다른 것을 하기 전에 위의 README.privsep 문서를 읽기를 바란다. 이 과정은 루트 권한으로 실행해야 한다.
# mkdir /var/empty
# chown root:sys /var/empty
# chmod 755 /var/empty
# groupadd sshd
# useradd -g sshd -c 'sshd privsep' -d /var/empty -s /bin/false sshd
/var/empty는 반드시 어떠한 파일도 있어서는 안 된다.
만약 위 과정을 하지 않고 sshd를 시작하려고 시도한다면 에러 메시지가 뜨고 데몬은 시작되지 않을 것이다
4 단계 : tcp_wrapper 세팅
다음 과정은 tcp_wrappers 준비하는 것이다. tcp_wrappers가 어떻게 움직이는 것을 알기
위 하여 먼저 README.tcpwrappers를 읽어봐라 기본적으로 tcp_wrappers는 sshd 프로그램이 사용하는 포트 22번과 같이 통신포트에 한정된 컴퓨터 그룹들이 접근하는 것을 제한 하도록 사용되어진다. 만약 tcp_wrappers가 이미 구동되었다면 /etc/hosts.allow와 /etc/hosts.deny 파일에 당신이 원하는 설정을 정확히 설정하기만하면 된다. 만약 tcp_wrappers가 구동되지 않는다면 /etc/hosts.deny을 생성하고 한 줄을 입력하라
sshd: ALL
이 의미는 모든 접속을 차단하는 것이다
그 다음 /etc/hosts.allow 파일을 생성하고 입력하라 예를 들면
sshd: 203.241.228.58
위와 같이 접속을 허락하는 기계의 IP주소를 입력하라. 만약 hosts.deny에 ALL을 입력하고 hosts.allow에 아무것도 입력하지 않았다면 어떠한 접속도 허용되지 않을 것 이다.)
5단계 : ssh와 sshd 설치
마지막 과정이다 README.openssl와 INSTALL.openssl와 아울러 OpenSSH 문서
README.OpenSSH and INSTALL.OpenSSH을 꼭 읽어 보길 바란다.
ssh 클라이언트를 경유하여 통신하고 싶다면 sshd 데몬을 구동시켜야 된다. 그러나 첫 번째로 서버 머신에 대한 키 정보를 아래 세 줄을 이용하여 생성해야 된다. 다시 /usr/local/bin 과 /usr/local/sbin 경로를 확실히 해야 된다. 만약 sshd가 실행되기 전에 /usr/local/etc안에 키를 가지고 있다면 아래의 명령은 기존에 가진 키를 덮어 쓰게 될 것이다. 루트 권한으로 아래의 3줄의 명령어를 입력하라
# ssh-keygen -t rsa1 -f /usr/local/etc/ssh_host_key -N ""
# ssh-keygen -t dsa -f /usr/local/etc/ssh_host_dsa_key -N ""
# ssh-keygen -t rsa -f /usr/local/etc/ssh_host_rsa_key -N ""
그 리고 명령어 실행이 끝 날 때 까지 기다려라. 이 작업은 시스템 상황에 따라 몇 분이 걸릴 수도 있다. /usr/local/etc/ssh_config 와 /usr/local/etc/sshd_config 파일을 주의 깊게 살펴야 된다. 두 설정 파일은 각각 다른 설정 파일이다. sun사의 ssh와 sshd 버전은 /etc/ssh 안에 키 파일과 구성이 있다.
스 크립트를 완성시킴으로 sshd 데몬을 시작 시킬 수 있다. 여기서는 /etc/init.d 디렉토리 안에 존재하는 sshd라고 불리는 스크립트를 사용했다. 이 안의 스크립트는 몇몇은 수정이 되었을 것이다 자세한 것은 sun사의 홈페이지를 참조 바란다. (설치가 성공적으로 이루어졌다면 대부분 시스템에서는 이 스크립트는 만들어져 있을 것이다)
#!/bin/sh
pid=`/usr/bin/ps -e | /usr/bin/grep sshd | /usr/bin/sed -e 's/^ *//' -e 's/ .*//'`
case $1 in
'start')
/usr/local/sbin/sshd
;;
'stop')
if [ "${pid}" != "" ]
then
/usr/bin/kill ${pid}
fi
;;
*)
echo "usage: /etc/init.d/sshd {start|stop}"
;;
esac
끝으로 아래와 같이 하자
# chown root /etc/init.d/sshd
# chgrp sys /etc/init.d/sshd
# chmod 555 /etc/init.d/sshd
# ln -s /etc/init.d/sshd /etc/rc2.d/S98sshd
# /etc/rc2.d/S98sshd start
이렇게 수동으로 프로세스를 시작시킬 수 있다
# /etc/rc2.d/S98sshd stop
데몬은 정지될 것이다. 아래의 ps명령어로 확인할 수 있을 것이다
# ps -e | grep sshd
sshd 가 실행되는 것을 볼 수 있다. sshd는 실행되었다 그리고 tcp_wrappers는 여러분들이 원하는 방법으로 설정했다면 시스템을 테스트해보자. 물론 반드시 다른 ssh가 인스톨되어 있는 기계가 필요하다 sshd가 실행중인 시스템과 통신하기 위해서이다. OpenSSH 문서의 더욱 자세하게 봐라. tcp_wrappers가 실행중인지 시험하기 위해서는 기계의 IP주소를 hosts.allow 안에 입력하라 그리고 서버와 클라이언트간에 ssh가 되는지 봐라 그리고 기계의 IP주소를 hosts.allow에서 삭제시키고 다시 ssh로 접속해서 접근 거부가 되는지 봐라
만 약 이 프로그램의 자세한 사용법에 대해 궁금증이 있다면 OpenSSH의 웹사이트로 가서 문서를 읽어보길 바란다. 보안과 여러분의 시스템의 자세한 부분을 알기를 원하지 않는다. 보안 문제는 매우 중요하다고 강하게 주장한다. 나는 이 명령서를 만드는데 충분히 건설적인 제안을 기분 좋게 받아 드릴 수 있다.
--------------------------------------------------------------------
ⓒ Copyright 2003 Steven M. Christensen and Associates, Inc.
This page was last updated on November 11, 2003.
[출처] SPARC / INTEL Solaris OpenSSH 패키지 설치하기 |작성자 맑은향기
Solaris 네트워크 설정
# Internet host table
#
127.0.0.1 localhost
[ IP Address ] hostname loghost
파일을 열어 [ IP Address ] 란에 자신의 IP 주소를 적어준다.
2. /etc/defaultrouter
기본 Gateway를 지정하는 파일이다. 기본적으로 생성되어 있지 않기 때문에 새로 만들어 준다.
# vi /etc/defaultrouter
로그인 후 게이트웨이를 연결해 주는 명령은 다음과 같다.
# route add default xxx.xxx.xxx.xxx 1
3. /etc/nsswitch.conf
Nameserver를 지정하는 파일이다. nameserver로 DNS를 사용할 것이기 때문에 다음과 같이 추가해 준다.
# /etc/nsswitch.files:
#
# An example file that could be copied over to /etc/nsswitch.conf; it
# does not use any naming service.
#
passwd: files
group: files
hosts: files dns
ipnodes: files
networks: files
....
....
4. /etc/resolv.conf
이번에는 DNS를 사용하기로 하였으므로 실제적으로 DNS 서버를 지정해 준다.
# vi /etc/resolv.conf
nameserver xxx.xxx.xxx.xxx(DNS server IP)
5. /etc/netmasks
위 파일을 열어 자신의 Netmask 값을 넣어 준다.
# The netmasks file associates Internet Protocol (IP) address
# masks with IP network numbers.
#
# network-number netmask
#
# The term network-number refers to a number obtained from the Internet Network
# Information Center.
#
#
# Both the network-number and the netmasks are specified in
# "decimal dot" notation, e.g:
#
# 128.32.0.0 255.255.255.0
xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx
[네트워크 주소][서브넷 마스크]
6. Reboot
reboot 명령을 이용해 시스템을 재부팅하거나 다음과 같이 네트워크를 재시작한다.