2009. 4. 24. 19:04

PC에서 구성하는 사무실 환경(後/3),ssh , ftp의 사용

SSH서버를 이용한 원격로그인

-> SSH서버는?

예전에 유닉스를 만져본 분들이라면 telnet이라는 원격접속을 기억한다. 지금은 이 telnet을 쓰는 시스템이 별로없다. 왜냐하면 보안에 취약하기 때문이다. 그래서 ssh라는 서버를 이용해서 원격로그인한다. ssh는 암호화된 코드로 데이타를 주고받기 때문에 telnet보다는 보안성이 있다는 야그다. 중요하진 않다. ssh를 이용해서 다른 작업도 많이 하지만, 우선은 ssh를 이용해서 원격로그인을 해보자.

터미날상에서

[root@localhost /]# service sshd restart
Stopping sshd:                                             [  OK  ]
Starting sshd:                                             [  OK  ]
[root@localhost /]#

이렇게 치면 ssh가 재가동된다.

물론 root만 가능하다. ssh는 22번포트를 이용한다는 점과 보안이 telnet보다는 나은점..

그리고 별도의 설치없이 가장 기본이 되는 서버라 어느 배포판이나 기본 필수로 설치되고 부팅시 자동 서버데몬이 시작한다는 것이다...

--> ssh접속을 위한 윈도우즈용 프로그램

telnet의 경우 윈도우 도스창에서 telnet IP를 치면 자동으로 접속되었으나 , ssh의 경우 별도의 클라이언트가 필요하다. 그것이 바로 putty프로그램이다..

우선 터미날상에서

[root@localhost /]# useradd sunnyfm
[root@localhost /]# passwd sunnyfm
Changing password for user sunnyfm.
New UNIX password:
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[root@localhost /]#

위와같이 새로운 사용자를 추가한다.

계정 sunnyfm 비번 sunnyfm으로 만들었다.

[root@localhost /]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:B0:6C:02
          inet addr:192.168.241.128  Bcast:192.168.241.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:feb0:6c02/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:94831 errors:0 dropped:0 overruns:0 frame:0
          TX packets:31488 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:128237530 (122.2 MiB)  TX bytes:2846215 (2.7 MiB)
          Interrupt:18 Base address:0x2000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:1428 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1428 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:71771 (70.0 KiB)  TX bytes:71771 (70.0 KiB)

[root@localhost /]#

ifconfig명령으로 자신의 ip를 확인한다. 192.168.241.128이다..DHCP로 아이피를 할당받았기에 ip를 모를것이다. 이것은 새로 설치한 리눅스의 Gnome의 터미날에서 알아보고, 이제 윈도우즈로 와서 한글putty를 실행한다.

 

아까 확인한 ip를 호스트에 타이핑하고 포트는 22번 SSH를 선택해주고 열기로 열어준다.

해당 서버로 ssh가 접속되며,login id를 물어본다. 아까 생성한 새로운 계정과 비번을 넣으면

[sunnyfm@localhost ~]$ _   이런 것이 뜬다. sunnyfm으로 localhost에 접속했다는 야그다. 나중에 네트웍이름을 도메인설정하면 [sunnyfm@domain.com  ~]$요런식으로 뜨게된다. 나중 야그고..

ssh는 기본적으로 root로 원격로그인을 불가하게 만들었다. 그러므로 ssh접속시는 일반계정으로 접속후 su - 명령으로  root권한을 획득한다. su - 명령후 root의 비번을 입력하면 root권한을 행사하게 된다.

이제부터 대개의 작업은 이 putty를 가지고 이루어진다. 간혹가다가 vncserver라는것을 이용해서 xwindow로그인을 하게되지만 주가 putty로 인한 작업이다. 실제머신에서는 실제머신에 접근하지 않고 원격으로만 작업을 할수 있다. 즉 리눅스머신을 구축후엔 윈도우즈 클라이언트만 있으면 제집 드나들듯 마음대로 할수 있다는것이다..

ssh는 22번 포트를 이용하기에 외부 네트워크망에서 접속을 하려한다면 공유기의 22번포트를 포트포워딩해주어야 외부네트워크망에서 접속이 가능하다. 리눅스머신이 두대 이상 한네트워크망에 있다면 22번 포트는 제일할일 없는 서버에 만들어주것도 한 요령이다. ssh도 보안이 강화되었지만, 언제나 안전한것은 아니기 때문이다. root비번이 뚤리면 허사니깐... 같은 리눅스상에서는 프롬프트에서 ssh IP명령으로 바로 ssh접속이 가능하기에 외부에서는 B컴으로 접속하고 B컴으로 A의 SSH서버에 접속하면 그만큼 더 보안이 나아지니깐말이다.. (하긴 그다지 효용성은 별로)

[sunnyfm@localhost ~]$

[root@localhost ~]#

두개의 프롬프트는 차이가 있다. 끝이 $와 #로 끝난다.

눈치챘겠지만 $는 일반유져의 프롬프트이고 #는 루트권한의 프롬프트이다..

나중에 알게되겠지만 리눅스의 autoexec.bat격인 .bash_profile화일에서 설정이 가능하다..

3. vi에디터

vi에디터는 처음 리눅스를 사용하는 윈도우즈 사용자에게는 너무 볼품없는 프로그램이다. 하지만, 어느 리눅스교재이건 vi에디터에 대해서는 신봉과 칭찬이 마르지 않는다.

아무 디렉토리이건간에 vi test라고 쳐보자.

헉 이게 모다냐..

즉 리눅스의 기본 텍스트 에디터이다. 물론 xwindows상에서 gedit라는 훌륭한 에디터가 존재하지만 이상하게도 xwindows상에서도 vi에디터를 쓰게됨은 묘한일이다.

123456이라고 쳐보자. 아무런 반응도 안한다. ㅋ

이제 a쳐보자

아래가 insert로 바뀐다..

눈치가 있으신분들은 이해하셨으리라..

이제부터 텍스트를 입력할수 있다...

아무런 글을 친후 ESC키 를 누룬다음 :wq 를 입력해보자..

셀이 빠져나간다..

test라는 텍스트화일이 저장된후 나간것이다.

확인해보자.

[root@localhost /]# cat test
test
[root@localhost /]#

 

즉 vi에디터는 명령어만 알면 너무나도 쉽게 이용할수 있다.

저장않고 끝내기 위해서는 esc > :q! 를 입력하면 된다.

(vi명령어만 여러 포스팅이 가능할정도이다. 여기서는 이정도만 알고 넘어가자)

3. FTP서버의 설치

페도라 배포판 설치시 ftp서버를 설치하기로 했다.

만약 하지 않았다면, 루트로 yum -y install vsftpd로 설치하자.

<yum은 새로운 프로그램을 설치할때 쓰이는 명령어이다. 리눅스의 새로운 프로그램설치시 의존성이라는것이 매우 큰 어려움이었는데, yum의 개발로 상당히 쉬워졌다>

[sunnyfm@localhost ~]$ rpm -qa | grep vsftpd    (rpm명령으로 vsftpd가 설치되었는지 알아본다.)
[sunnyfm@localhost ~]$ yum -y install vsftpd      (도중에 y물음에 y로 답하면서 설치하라)
Loaded plugins: refresh-packagekit
You need to be root to perform this command.
[sunnyfm@localhost ~]$ su -
?뷀샇:
su: incorrect password
[sunnyfm@localhost ~]$ su -
?뷀샇:
[root@localhost ~]# rpm -qa | grep vsftpd
[root@localhost ~]# yum -y install vsftpd
Loaded plugins: refresh-packagekit
fedora                                                   | 2.4 kB     00:00
updates                                                  | 2.6 kB     00:00
Setting up Install Process
Parsing package install arguments
Resolving Dependencies
--> Running transaction check
---> Package vsftpd.i386 0:2.0.6-3.fc9 set to be updated
filelists.sqlite.bz2                                     |  10 MB     02:25
filelists.sqlite.bz2                                     | 7.5 kB     00:00
--> Finished Dependency Resolution

Dependencies Resolved

=============================================================================
Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
vsftpd                  i386       2.0.6-3.fc9      fedora            144 k

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

Total download size: 144 k
Downloading Packages:
(1/1): vsftpd-2.0.6-3.fc9.i386.rpm                       | 144 kB     00:06
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing: vsftpd                       ######################### [1/1]

Installed: vsftpd.i386 0:2.0.6-3.fc9
Complete!
[root@localhost ~]#

설치후 ftp데몬을 구동해보자

[root@localhost etc]# service vsftpd start
Starting vsftpd for vsftpd:                                [  OK  ]

OK명령이 떨어지면 vsftp 서버데몬이 발동하는것이다.

또한 방화벽에서 ftp 포트인 21번 포트를 허용해주어야 한다.

[root@localhost ~]# export LANG=c
[root@localhost ~]# system-config-firewall-tui

화면을 영문으로 바꾸는 명령어 (코드들이 깨지므로) 이전버젼에서는 system-config-securitylevel-tui로 설정한다.

customize 선택

FTP서버를 *마크하여 허용해주자.. 21번포트 외부에서 접속가능하게 허용해준다는 뜻이다.

알FTP로 접속해보자. (외부접속하기 위해서는 21번포트를 포트포워딩해놔야 한다.)

sunnyfm으로 ftp접속은 성공하였지만, 읽는것과 쓰기기능이 불가하다. 그것은 SElinux가 활성화 되어 있어서이다.  SElinux는 국내 linux서책 저자들도 집필을 꺼릴만큼 어렵다고 한다. 워낙 보안보안 하니 linux 배포판의 버젼이 높아질수록 따로 보안관련 서적을 보지 않으면 풀어내지 못할만큼 어려워지고 있다..

하여간 SElinux보안을 풀어보자.

[root@localhost vsftpd]# setenforce 0
[root@localhost vsftpd]#

다시 sunnyfm으로 접속해보자..

정상적으로 화일이 업이 되었다..이로서 리눅스 3대 서버인 ftp서버 기능은 활성화되었다.

다음 포스트부터는 웹서버를 설치해보겠다.

우선 JDK부터 설치할것이다...