카테고리 없음2013. 6. 18. 10:12

 

19-2장. 원격지에서 리눅스 서버를 관리하기

 

 

● OpenSSH 서버 개요

 

 

텔넷은 오래 전부터 사용되어 왔으나, 요즘은 그냥 쓰기에는 좀 문제가 있다.

서버와 클라이언트간에 데이터를 전송할 때에 암호화를 하지 않으므로

해킹을 당할 우려가 있기 때문이다.

 

실제로 전송되는 데이터의 값을 알아내는 것은 별로 어려운 일이 아니다.

 

즉, 앞의 실습에서 Windows에서 리눅스로 접속할 때, 로그인한 아이디와 비밀번호가

네트워크 상에 그대로 전송이 되는 것이다.

 

이를 해결하기 위해서는 리눅스에서 지원하는 OpenSSH 서버를 사용하면 된다.

 

아래 그림을 보면 텔넷과 거의 동일하지만 데이터를 전송할 때 암호화를 한다는 점이 다르다.

 

※ 자체적으로 보안이 강화된 텔넷 서버도 있다. 하지만 SSH 서버를 일반적으로 더 많이 사용한다.

 

[OpenSSH 서버의 개념]

 

 

아래는 갼락한 OpenSSH 서버 구축 과정이다.

[OpenSSH 서버의 구축 과정]

 

 

 

 

< OpenSSH 서버를 구축해보자 >

 

 

텔넷 서버를 이해했다면 OpenSSH 서버는 아주 간단하다.

 

페도라는 기본적으로 OpenSSH 서버를 설치하고 가동시켜 주므로

원격지에서 별도의 클라이언트로 접속하면 된다.

 

 

[[ Fedora Server ]]

 

패키지가 설치되어 있는지 확인하자.

또, 서버의 서비스(데몬) 이름은 'sshd' 이다.

 

해당 서비스가 작동하는지 확인하자.

 


[sshd 데몬(서비스)의 실행 확인]

 

혹, 서비스가 실행되고 있지 않으면 "service sshd start"

또는 "/etc/init.d/sshd start" 명령으로 시작한다.

 

 

[[ Fedora Client ]]

 

리눅스 클라이언트에서 접속해 보자.

 

터미널 창을 하나 열고 "ssh 사용자명@호스트명 또는 IP"로 접속하면 된다.

텔넷 서버에서 만들었던 teluser로 접속해 보자.

 

접속한 후에는 텔넷과 동일하게 사용하면 된다.

암호화를 했기 때문에 텔넷에 비해 더 안전하다는 것 뿐이다.

 

"ifconfig eth0" 명령으로 확인하면 현재 Fedora Server의 IP인 192.168.100.111이 나올 것이다.

즉, Fedora Server에 접속되어 사용 중인 것이다.

 



[ssh 접속]

 

ssh teluser@192.168.100.111

 

※ 처음 접속할 때 "RSA Key"와 관련된 메시지가 나오면 "yes"를 입력해 준다.

(패스워드 입력)

 

접속 성공!

 

 

[[ Fedora Server ]]

 

지금 Fedora Client에서 바로 접속된 것은 Fedora Server에서

SSH의 포트인 22번을 이미 허용했기 때문이다.

 

"system-config-firewall" 명령으로 확인하면 '신뢰하는 서비스' 중에서

SSH인 22번 포트가 체크되어 있을 것이다.



system-config-firewall



[ssh 포트 허용 확인]

 

 

[[ 호스트OS=Windows 클라이언트 ]]

 

이번에는 Windows에서 접속해 보자.

 

telnet 클라이언트 프로그램은 Windows에서 기본적으로 제공하지만

ssh 클라이언트 프로그램은 Windows에서 제공하지 않으므로 인터넷에서 다운로드해서 설치한다.

대표적으로 '한글푸티' 라는 프로그램이 깔끔하게 잘 되어 있다.

 

http://kldp.net/projects/iputty/에서

HangulPuTTY-xxxx.exe 파일을 다운로드하고 설치하자.

 

설치는 그냥 기본 설정대로 설치한다.

(위 사이트가 접속이 안되면, 검색어 사이트에서 찾아보자)

 

설치후 PuTTY를 실행한다.

나는 한글은 아니고 그냥 PuTTY를 받았다.

(귀찮아서..)

 



 

[SSH 클라이언트]

 

[PuTTY Configuration] (PuTTY 설정) 창에서 호스트 이름에

Fedora Server의 IP 주소를 입력하고

<Open>(열기)를 클릭한다.

 

포트는 22번, 프로토콜은 SSH가 이미 선택되어 있을 것이다.

(서버 호스트 키 관련 메시지가 나오면 <예>를 클릭한다)

 

현재 나의 Fedora Server IP는 192.168.100.111로 설정되어 있다.

 

 

기존에 만들어 놨던 사용자 teluser로 접속해본다.


 

[ssh 접속 성공]

 

이제는 리눅스에서 접속하든, Windows에서 접속을 하든 완전히 동일하게 사용할 수 있다.

 

"exit" 명령을 입력하면 종료된다.

 

 

Posted by 아이맥스
카테고리 없음2013. 6. 18. 10:09

 

19-3장. 원격지에서 리눅스 서버를 관리하기

 

 

● VNC 서버 개요

 

텔넷 서버 및 SSH 서버를 설치하고 나면 모든 작업을 다 할 수 있지만,

텔넷이 지원하지 않는 것이 하나있다.

 

바로 X 윈도우 환경을 지원하지 않는 것이다. 그러므로 X 윈도우 전용 명령어를 사용할 수가 없다.

꼭 텍스트 모드에서 사용 가능한 명령어만 써야 한다.

 

최근 추세에 따라 X 윈도우 환경에서 사용되는 유틸리티나 명령어가 많으므로 이 점을 개선해서

이제는 X 윈도우 환경 자체를 원격지에서 사용해 보도록 하자.

 

원격지에서 X 윈도우 환경 자체를 사용할 수 있도록 해 주는 서버 프로그램으로 VNC 서버가 있다.

VNC 서버의 개념은 텔넷과 거의 동일하다.

 

다만 단점이 있다면, 텔넷은 전통적으로 오랫동안 사용되어 왔으므로 대부분의 OS에 "telnet" 이란 클라이언트 프로그램이 있는데 반해 VNC는 별도의 클라이언트 프로그램을 설치해 주어야 한다.

 

또한 원격지로 그래픽 확면을 전송하는 원리이므로, 텍스트만 전송하는 텔넷에 비해서 속도가 많이 느려진다.

 

 

[VNC 서버의 개념도]

 

 

[VNC 서버 설치 과정 요약]

 

 

 

 

< VNC 서버를 구축해보자 >

 

 

[[ Fedora Server ]]

 

VNC 서버를 설치하고 가동하자.

 

페도라 11에서 제공하는 tigervnc-server가 설치되어 있는지 확인하고

설치되어 있지 않다면 yum으로 설치한다.

 

 
[VNC 서버 설치]

 

rpm -qa | grep tigervnc

tigervnc 패키지가 깔려있는지 확인

(안깔려있는 것을 확인)

 

yum -y install tigervnc-server

yum 명령으로 VNC 서버 설치

 

 

서비스를 가동하자.


[vncserver의 가동 실패]

 

service vncserver status

vncserver의 현재 상태 확인

(현재 정지된 상태임을 확인)

 

service vncserver start

vncserver를 가동시킨다.

가동이 되지 않는다. VNC 서버는 서비스(데몬)를 가동하기 전에 여러가지 설정해 줘야 할 것이 있다.

 

※ 서비스가 작동하는지 확인하기 위해서 "service 서비스이름 status"를 사용해도 되지만

이것이 가끔 틀리게 응답하기도 한다.

그래서 "ps -ef | grep vnc"로 프로세스가 작동하고 있는지 확인해 봐야 할 때도 있다.

VNC 서버뿐 아니라 다른 서비스(데몬)에서도 이러한 경우가 종종 있으므로 주의하자.

 

 

[[ Fedora Server ]]

 

VNC 서버가 작동할 수 있도록 설정해 준다.

 

Fedora Server의 사용자 중에서 외부에서 VNC 클라이언트로 접속할 수 있는

VNC 전용 사용자를 별도로 생성해 줘야 한다.

 

새로 사용자를 만들어 줘도 되지만

이번 실습에서는 "root" 사용자로 외부에서 VNC 클라이언트로 접속할 수 있도록 해 보자.

(다른 사용자로 해도 마찬가지이지만, 약간 더 고려해야 할 사항이 있을 수 있다)

 

우선 vi 에디터나 gedit로 "/etc/sysconfig/vncservers" 파일의 제일 아래에

VNCSERVERS="1:root" 를 추가하고 저장한다.

 

여기서 숫자1은 디스플레이 번호를 의미한다.



vi /etc/sysconfig/vncservers



[/etc/sysconfig/vncservers 파일]

 

※ 대부분의 설정 파일 앞에 붙은 "#" 표시는 주석을 의미한다.

그러므로 삭제해도 상관없다.

 

위의 설정 파일에 입력한 사용자(이 경우는 root)의 홈 디렉토리에

".vnc"라는 디렉토리를 만들어 주고

그 디렉토리에 VNC 클라이언트로 접속할 때 사용할 6글자 이상의 암호를 새로 생성해 준다.

 

내 경우엔 암호는 그냥 항상 연습할때 쓰는 "암호1234."으로 입력했다.

(각자 임의대로 입력하면 된다)



[VNC 전용 암호 생성 파일]

 

"ls"로 확인해 보면 "passwd"라는 파일이 생성되어 있다.

 

※ 파일 이름이나 디렉토리 이름 앞에 점(.)이 들어간 것은 숨김 파일(Hidden File)을 의미한다.

"ls" 명령으로는 확인되지 않으며, "ls -a" 옵션을 줘야 확인할 수 있다.

 

이제 VNC 서버를 가동하고, 가동이 되었는지 확인한다.



[VNC 서비스(데몬) 가동]

 

service vncserver start

성공적으로 vncserver가 가동 되었다.

 

service vncserver status

현재 vncserver가 실행되고 있음을 확인

 

※ 혹시 서비스가 가동되지 않는 경우에는 대개 /etc/sysconfig/vncservers 파일의 편집 중에

오타가 생긴 경우가 많으니 대소문자에 유의해서 확인해보자.

 

 

[[ Fedora Client ]]

 

Fedora Client에서 서버로 접속해 보자.

 

master 사용자로 접속하고 터미널을 하나 연다.

(master는 임의로 내가 만든 사용자이니 각자 만든 임의의 사용자로 접속하면 된다)

 

Fedora Client에도 VNC 클라이언트 프로그램이 설치되어 있지 않으므로

"yum -y install 패키지명"으로 설치한다.

페도라 11에서 제공하는 VNC 클라이언트의 패키지명은 "tigervnc"다.

 

※ yum 설치를 위해서는 root 사용자로 접속해야 하지만, 하나의 명령어만 실행할 때는

su -c '명령어'를 사용하는 편이 간편하다.



[VNC 클라이언트 설치]

 

rpm -qa | grep vnc

vnc 패키지가 설치되어 있는지 확인한다.

 

su -c 'yum -y install tigervnc'

tigervnc를 관리자 권한으로 설치한다.

 

페도라 서버에 접속해 본다.

명령어는 "vncviewer 서버IP:디스플레이번호"이며

여기서 '디스플레이번호'는 아까 입력한 "/etc/sysconfig/vncservers" 파일의

디스플레이번호와 일치해야 한다.

나는 "1"이라고 입력했었다.

 

그런데 접속이 안 된다.

그 이유는 서버의 방화벽에서 VNC 서비스를 열어주지 않아서이다.



[VNC 서버로 접속 실패]

 

 

[[ Fedora Server ]]

 

VNC 서비스를 허용해 주자.

 

"system-config-firewall" 명령어로 VNC 서버의 서비스를 허용해 주자.

 

'그 외의 포트'를 선택하고 <추가>

'사용자 정의' 체크 -> '5901'의 tcp 프로토콜을 추가한다.

경고창이 나오면 <예>를 클릭하고 [방화벽 설정] 창을 닫는다.

 

※ 경우에 따라서 '5900' TCP 프로토콜도 허용해 줘야 한다.



system-config-firewall





[VNC 서버의 포트인 5901 허용]

 

또한, 우리는 root 사용자로 접속할 것이므로, /etc/securetty라는 파일이 있다면

아무 이름으로 다르게 바꾼다.



[/etc/securetty 파일의 이름 변경]

 

 

[[ Fedora Client ]]

 

다시 VNC 서버에 접속해 본다.

 

"vncviewer 서버IP:디스플레이번호"로 접속하면 password를 입력하는 창이 뜬다.

(내가 지정한 IP와 디스플레이 번호는 192.168.100.111:1)

여기에는 아까 생성한 VNC용 암호를 입력하고 엔터를 누른다.

(내가 지정했던 암호는 "암호1234.")



[VNC 암호 확인]

 

X 윈도우의 터미널이 하나 열린다.

이제는 Fedora Server에 X 윈도우 환경으로 원격 접속 되었다.

 

접속된 VNC 화면에서 웹 브라우저를 클릭해서 실행해 보자.

실제 Fedora Server에서 작업하는 것과 완전히 동일하게 사용이 가능하다.


 

현재 이 창이 VNC서버를 이용해 Fedora Client에서 Fedora Server로 접속한 모습이다.

오른쪽 위 최소화 버튼을 눌러보자.



[Fedora Server에 VNC로 접속]

 

원래의 Fedora Client의 바탕화면이 보인다.

 

 

[[ 호스트OS=Windows 클라이언트 ]]

이번에는 Windows에서 페도라 서버의 X 윈도우 환경을 사용해 보자.

Windows에도 VNC 클라이언트 프로그램이 필요하다.

 

http://www.tigervnc.com에 접속하여 Windows용을 다운로드한다.

또는 직접 http://sourceforge.net/projects/tigervnc/files/에 접속해도 된다.





[www.tighervnc.com에서 다운로드]

 

다운로드한 파일을 설치한다.

특별히 어려운건 없으나 설치 중에 [Select Additional Tasks] 창에서

아래의 그림과 같이 체크박스를 모두 해제한다.

 

지금 Windows에는 TigerVNC Server는 필요 없기 때문이다.



[Windows용 tigerVNC 설치]

 

설치가 완료되면

TigerVNC Viewer를 실행하자.



 

Server 칸에 "<서버IP>:<디스플레이번호>"를 입력하고

Password는 VNC 서버에서 설정한 VNC용 비밀번호를 입력한다.

(나는 "암호1234."으로 설정했다)




 

Windows에서도 Fedora Client에서 했던 것과 동일한 환경으로

Fedora Server에 접속하여 사용할 수 있다.



[Windows에서 Fedora Server에 접속]

 

이제는 어디를 가더라도 Windows 환경에서 Fedora Server의 X 윈도우 환경에 접속해서

사용할 수 있게 되었다.

 

 

[[ Fedora Server ]]

 

현재는 Fedora Server를 재부팅하면 vncserver를 또 시작해 줘야 한다.

페도라 서버가 부팅될 때 VNC 서버도 자동으로 가동되도록 설정해 보자.

 

터미널에서 "LANG=C"를 입력해서 잠깐 영문모드로 터미널 설정을 변경하자.

이는 다음에 실행할 명령이 깨져보이는 것을 방지하기 위함이다.

 

"ntsysv" 명령을 실행해서 [Services] 창이 열리면, 목록에서 'vncserver'를 찾자. (아래쪽에 있다)

그리고 스페이스를 눌러 "*"가 표시되도록 한다.

 

이는 리눅스가 시작되면 자동으로 실행되도록 설정하는 것이다.

[Tab]키를 눌러 <OK>를 누른다.



LANG=C

ntsysv

 


[자동 시작 설정]

 

이제는 Fedora Server를 재부팅해도, 자동으로 vncserver가 작동한다.

현재 터미널을 닫자.

 

Posted by 아이맥스
카테고리 없음2013. 6. 18. 10:06

 

20장. 부팅과정과 시스템 초기화

 

학습목표

 

- 리눅스의 부트로더인 GRUB에 대해서 파악한다.
- 리눅스 부팅시의 시스템 초기화의 과정을 이해한다.

 


● 부팅과정 요약
- 전원공급 -> Power On Self Test -> BIOS에 설정된 부팅장치

               -> MBR (Master Boot Record) -> 부트로더 (LILO, GRUB)

 

 

● LILO(리로) : LInux LOader
- 전통적인 부트로더
- /etc/lilo.conf 에 설정파일 저장

 

 

GRUB(그룹) : Grand Unified Bootloader
- 레드햇 7.x 부터 기본 부트로더로 제공
- LILO의 단정을 보완
- 사용이 편리
- 부트정보가 올바르지 않아도 부팅시에 바로 수정가능
- 윈도우 계열 외에 다른 OS와 멀티부팅 가능
- 대화형 모드 제공
- /boot/grub/grub.conf 에 설정파일 저장

 

 

/etc/grub.conf 또는 /boot/grub/grub.conf 설정파일
- timeout = 부팅시간(초)
   → 예) timeout = 10
- default 엔트리번호 : 기본값으로 부팅되도록 설정되어진 순서
   → 예) default 0
- fallback 엔트리번호 : 부팅실패시 차순위 부팅순서
   → 예) fallback 1
- splashimg (장치명, 파티션) 이미지파일
   → 예) splashimg (hd0,0) /boot/grub/splash.xpm.gz


- title 부팅제목
   → 예) title Redhat 9 (2.4.20)
- root (하드디스크 장치, 파티션)
   → 예) root (hd0,0)
- kernel /vmlinuz-버전 ro root=/dev/장치명
   → 예) kernel /vmlinux-2.4.20 ro root=/dev/hda2


- initrd 이미지파일명 : 시스템 초기화용 램디스크 이미지파일

 

 

● 패스워드 설정
- "password --md5 [md5포맷패스워드]" 추가

 

 

● Windows 설치후 GRUB이 없어졌을 때
- 리눅스 1번 CD로 부팅
- boot : vmlinuz root=/dev/hda2
- # grub-install /dev/hda

 

 

● Windows와 멀티부팅
- /etc/grub.conf 에 아래형식 추가
   → title 타이틀명
      ☞ 예) title Windows XP Pro
   → rootnoverify (장치명, 파티션)
      ☞ 예) rootnoverify (hd0,0)
   → makeactive
   → chainloader +1

 

● /etc/grub.conf 설정이 잘못되어 부팅이 안될 때
- GRUB 부팅화면에서 "e"키로 해당 메뉴 편집

 

 

 

[실습]

 

● GRUB 편집 및 변경
● GRUB 패스워드 설정

 

 

 


vi /etc/grub.conf

/etc/grub.conf 파일을 편집



파일을 살펴보면 title 이라는 이름으로 두개의 부분이 나누어져있다.

이게 처음 부팅할때 나오는 부분이며 위쪽에 default 부분이 0으로 되어있다는 것은

title 줄에 첫번째 목록을 지칭하는 것이다.

 

1이면 두번째가 되겠다.

 



커널 파일을 한번 찾아보자.

 

다른 터미널 창을 열고

ls -l /boot/vmlinuz-2.4.20-8smp

 

첫번째 커널이 사용하는 파일을 찾을 수 있다.



두번째 커널 파일을 찾아보자.

 

역시 다른 터미널 창에서

ls -l /boot/vmlinuz-2.4.20.8

 

이것 역시 잘 찾을 수 있다.

 

이처럼 처음 부팅할 때 리눅스는 이러한 커널 파일을 읽게 된다.



vi /etc/grub.conf

/etc/grub.conf 파일을 편집하자.

 

만약에 리눅스를 깔고 윈도우즈를 깔았다면

윈도우즈에 대한 부팅정보도 추가시킬 수 있다.

 

title Windows 

                       rootnoverify (hd1,0)

           makeactive

                chainloader +1

 

맨 아랫줄에 이렇게 편집하고 wq로 저장하고 나가자.

 

(hd1,0)에서 hd1은 하드디스크의 위치가 Primary의 slave에 있다는 의미다.

뒤의 0은 첫번째 파티션을 의미한다.

 

그리고 reboot로 재부팅을 한다.



리부팅 하고 처음 OS를 선택하는 부분에서

Windows 목록이 생겼다.



새 터미널을 하나 열고

 

grub 명령을 친다.

 

그리고 md5crypt 를 치면

Password를 물어본다.

(여기서 편의상 1234로 한다)

 

그럼 Encrypted : 암호화된 이상한 문자가 나온다.

이것을 마우스로 드래그해서 복사하기 하자.



그리고 다른 새 터미널을 열고

 vi /etc/grub.conf

 

/etc/grub.conf 파일을 편집해서

 

맨 윗줄에 password --md5 까지 쓰고 그 다음은

마우스 오른쪽 버튼을 눌러 붙여 넣기를 클릭한다.



그럼 암호화된 패스워드가 복사가 된다.

이제 편집을 저장하고 종료하자.



컴퓨터를 reboot 시킨다.



 

재부팅을 하면 첫번째 목록에서

GRUB을 편집하고 싶다 하면

"e"를 눌러야 한다.

 

하지만 아무 반응이 없다.

왜냐하면 GRUB 암호를 걸어놓았기 때문이다.

 

"p"를 눌러서 우리가 만들었던 GRUB 패스워드를 입력하자.

 

그리고 이제 'e'를 누르면 GRUB를 편집할 수 있다.

(이제 더 이상은 아무나 root 사용자의 비밀번호를 바꿀 수 없게 설정되었다)

 

Posted by 아이맥스