안녕하세요. 썬구루입니다. 이 게시물에서는 OpenSSH 서버에 대해 알아보도록 하겠습니다. 저희가 VMware Workstation에 가상머신을 생성 후 CentOS 6.6을 설치하여 사용을 하고 있습니다.
Console View를 통해 CentOS 입출력을 모니터처럼 보고 있는 것입니다. 실무에서는 키보드, 마우스, 모니터 역할을 하는 KVM 스위치라는 것을 사용하여 8대 또는 16대 서버에 연결하여 하나의 KVM 스위치를 통해 여러 대 서버에 접속하여 관리합니다.
현장에 가면 보통 서버 랙 하나 당 KVM 스위치가 하나씩 장착되어 있죠. 이것을 사용하는 이유는 수많은 서버에 1 대 1로 모니터, 키보드, 마우스를 배치할 수 없기 때문입니다.
또는 LCD 모니터, 키보드, 마우스를 이동식 선반에 장착한 한 물건... 정확한 명칭은 Computer Crash Cart라고 하는데.. 우리나라 명칭은 모르겠음.. 이동식 콘솔(?) 아무튼 이것을 관리하려는 서버 뒤로 끌어 놓고 키보드, 마우스, 모니터 선을 연결한 후 서버에 접속 관리합니다.
이러한 접속을 로컬 접속(Local Access) 또는 콘솔 접속(Console Access)이라 합니다.
만약 원격지에서 서버에 접속하려면 어떻게 하면 될까요? 불가 몇 년 전만 하더라도 텔넷 서비스(Telnet)를 사용하여 서버에 원격접속을 했었습니다. 서버에는 텔넷 서비스 프로그램이 동작하고(실제는 inetd나 xinetd가 바인딩 처리) 원격지에 있는 PC나 노트북에서 텔넷 클라이언트 프로그램을 사용여 서버에 접속하는 것입니다.
이러한 접속을 원격 접속(Remote Access)라고 합니다.
요즘은 텔넷 서비스를 사용하지 않습니다. 텍스트(Text) 통신을 하기 때문에 중간에 패킷만 가로챌 수 있다면 접속 ID와 암호를 낚아챌 수 있기 때문입니다.
그래서 요즘 리눅스 또는 리눅스에 암호화된 통신을 하는 원격 접속을 하기 위해 SSH 서비스를 사용합니다. 이 게시물에서는 이것에 대해 알아보려 합니다.
■ OpenSSH 서버 버전 확인
아래와 같은 명령을 실행하면 CentOS 6.6에서 사용하는 SSH 서버 버전을 확인할 수 있습니다.
[root@sunguru ~]# rpm -qa | grep openssh-server
openssh-server-5.3p1-104.el6.x86_64 [root@sunguru ~]# [root@sunguru ~]# rpm -qi openssh-server-5.3p1-104.el6.x86_64 Name : openssh-server Relocations: (not relocatable) Version : 5.3p1 Vendor: CentOS Release : 104.el6 Build Date: Install Date: Build Host: c6b8.bsys.dev.centos.org Group : System Environment/Daemons Source RPM: openssh-5.3p1-104.el6.src.rpm Size : 710364 License: BSD Signature : RSA/SHA1, 2014년 10월 18일 (토) 오전 05시 02분 24초, Key ID 0946fca2c105b9de Packager : CentOS BuildSystem <http://bugs.centos.org> URL : http://www.openssh.com/portable.html Summary : An open source SSH server daemon Description : OpenSSH is a free version of SSH (Secure SHell), a program for logging into and executing commands on a remote machine. This package contains the secure shell daemon (sshd). The sshd daemon allows SSH clients to securely connect to your SSH server. [root@sunguru ~]# [root@sunguru ~]# rpm -ql openssh-server-5.3p1-104.el6.x86_64 | grep sbin/ssh /usr/sbin/sshd [root@sunguru ~]# |
■ OpenSSH 서버 서비스 및 프로세스 확인
[root@sunguru ~]# service sshd status
openssh-daemon (pid 2346)를 실행하고 있습니다.. [root@sunguru ~]# [root@sunguru ~]# ps -ef | grep sshd | grep -v grep root 2346 1 0 02:08 ? 00:00:00 /usr/sbin/sshd [root@sunguru ~]# [root@sunguru ~]# chkconfig --list sshd sshd 0:해제 1:해제 2:활성 3:활성 4:활성 5:활성 6:해제 [root@sunguru ~]# |
■ OpenSSH 서버 서비스 시작/종료
아래와 같은 명령을 사용하여 OpenSSH 서버 서비스 데몬(Daemon)인 sshd를 시작 또는 종료할 수 있다.
[root@sunguru ~]# service sshd status
openssh-daemon (pid 2346)를 실행하고 있습니다.. [root@sunguru ~]# [root@sunguru ~]# service sshd stop sshd 를 정지 중: [ OK ] [root@sunguru ~]# [root@sunguru ~]# service sshd status openssh-daemon가 정지되었습니다 [root@sunguru ~]# [root@sunguru ~]# service sshd start sshd (을)를 시작 중: [ OK ] [root@sunguru ~]# [root@sunguru ~]# service sshd status openssh-daemon (pid 4345)를 실행하고 있습니다.. [root@sunguru ~]# |
■ sshd 구성 파일
sshd 데몬의 주요 구성 파일은 /etc/ssh/sshd_config이다. 이 파일에서 주요 설정은 아래와 같다. 주석 기호는 # 이다.
root 계정으로 ssh 접속할 수 있도록 한다.
PermitRootLogin yes
|
sshd 서비스 포트 번호를 설정한다.
Port 22
|
sshd 서비스 IP 주소를 설정한다. 서버에 IP 주소가 여러 개일 경우 특정 IP로만 접속하도록 만들 수 있다.
ListenAddress 192.168.80.250
|
■ 윈도우용 SSH Client 프로그램 Putty
Free 소프트웨어로 많이 사용하는 SSH Client 프로그램이 Putty이다. 단일 파일 프로그램이며 이 파일은 아래 주소에서 다운로드할 수 있다.
https://the.earth.li/~sgtatham/putty/latest/x86/putty.exe
파일을 다운로드한 후 탐색기(Explorer)에서 파일을 더블 클릭하면 실행된다. Host Name or IP address에 IP 주소를 입력하고 Connection Type를 SSH로 선택한 후 Open 버튼을 선택하면 SSH 원격 접속을 시도한다.
그러면 보안에 관련된 창이 나타나는데 예(Y)를 선택하면 사용자 계정과 암호를 묻는다. 접속이 성공적으로 완료되면 터미널처럼 사용하면 된다.
관리자가 SSH를 사용하는 이유는 시스템 원격 관리를 하기 위해서이다. 원격지 시스템을 마치 로컬 시스템 관리하듯 사용할 수 있기 때문이다.
login as: user1
user1@192.168.80.250's password: [user1@centos01 ~]$ [user1@centos01 ~]$ id uid=500(user1) gid=500(user1) groups=500(user1),502(group1) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 [user1@centos01 ~]$ [user1@centos01 ~]$ ls file1 scripts test1 [user1@centos01 ~]$ |
■ ssh 명령
sshd는 SSH 서비스를 위해 사용되는 서비스 프로그램이다. /usr/bin/ssh 명령은 SSH 클라이언트 프로그램이다. 리눅스 또는 유닉스 운영체제에 대부분 설치되어 있다. 만약 CentOS 운영체제에서 다른 시스템으로 SSH 원격 접속을 해야 한다면 /usr/bin/ssh 명령을 사용할 수 있다.
1). 명령형식
ssh [옵션] SSH 서버_IP주소
2). 옵션
옵 션
|
내 용
|
-l USERNAME
|
SSH 접속을 위해 사용할 사용자 계정 이름을 입력할 때 사용한다. |
3). 예제
아래와 같이 ssh 명령 테스트를 하기 위해 localhost 즉 자기 자신에게 ssh 접속을 시도한다.
[root@sunguru ssh]# which ssh
/usr/bin/ssh [root@sunguru ssh]# rpm -qf /usr/bin/ssh openssh-clients-5.3p1-104.el6.x86_64 [root@sunguru ssh]# [root@sunguru ssh]# ssh -l user1 localhost user1@localhost's password: Last login: Wed Jul 13 05:00:46 2016 from 192.168.80.1 [user1@centos01 ~]$ [user1@centos01 ~]$ id uid=500(user1) gid=500(user1) groups=500(user1),502(group1) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 [user1@centos01 ~]$ [user1@centos01 ~]$ pwd /home/user1 [user1@centos01 ~]$ [user1@centos01 ~]$ exit logout Connection to localhost closed. [root@sunguru ssh]# |
여기까지 OpenSSH 서버 간단 설정에 대해 알아보았습니다.
사회생활하면서 웬만하면 암호가 나타나게 하는 옵션은 사용하지 않는 것을 진심으로 권합니다. 사회에서 암호 입력을 엿보는 놈들이 많기 때문입니다. 옆에 앉아 버젓이 여러분의 키보드 입력을 보고 있는 x 놈들도 있습니다. 암호를 입력할 때 여러분의 키보드 자판을 보는 놈들이 있다면 타자치는 것을 멈추고 그놈을 계속 쳐다보길 바랍니다. 그러면 자리를 떠날 것입니다. 뒤에서 보는 놈들도 있으니 암호 입력 시 조심하길 바랍니다. 아는 사람이나 친구가 여러분들이 암호를 입력할 때 옆에서 암호 입력하는 모습(특히 키보드 주시)을 보고 있다면 그 사람과 인간관계 빨리 정리하시길 바랍니다. 언젠가는 여러분들의 뒤통수를 칠 놈들입니다. 진심으로 경험담입니다.
다음 게시물에서는 시스템 로그에 대해 알아보도록 하겠습니다.
No comments:
Post a Comment