==================================================================================================

※ 해당 내용의 경우 VMware를 이용한 로컬 네트웍 상에서 작업을 하는 내용을 안내하여 드립니당~!

[ 시스템 설정을 위한 내용 ]

설치된 Base Windows  : Windows 7 Pro
설치된 CentOS Server  : CentOS 6.4
설치된 VMware Program : VM workstation 9.0.2

==================================================================================================


 - SSH(Secure SHell) -

1. 정의

   - 원격관리 서비스 중 하나로써 데이터 통신시 암호화되는 가장 널리 쓰이는 서비스



2. 특징

   - 데이터 통신간에 암호화("RSA" 알고리즘)되어 통신하고, 암호화된 키를 Host 와 서버가

      확인하여 세션을 연결하므로 키가 없으면 데이터를 복호화 할 수 없기 때문에 보안이 강화



3. Package
   - server : openssh-server  : SSH 서비스를 제공하는 패키지


   - client  : openssh-clients : SSH 접속이 가능하도록 접속할 수 있는 패키지

                 (Window의 puTTy와 유사)



4. sshd 활성화

   - #/etc/rc.d/init.d/sshd restart



5. 동작상태 확인

   - #netstat -atunp | grep sshd



6. 이용

  - #ssh [Server IP] : 상대방 서버 접속시 현재 서버에 로그인한 계정으로 접속을 요청한다.
                               (root로 이용하는 경우 자주 사용) / ※ 보안설정이 되면 접속이 허가되지 않는다.


  - #ssh -l [계정명] [Server IP]
  - #ssh [계정명]@[Server IP]  => 실무에서 자주 사용하는 형태
    : 로그인을 위한 계정명을 입력한 상태로 ssh 서버로 접속하는 방식



7. SSH 원격 접속 프로그램
  - puTTy : 무료 프로그램으로 가장 널리 쓰이는 프로그램 중 하나
               (검색엔진에서 putty로 검색하면 열라 많이 나옴 - 한글버전도 나옴)


  - SecureCRT : 상용화 프로그램으로 puTTy보다 강력한 기능을 지원한다.
            (http://www.vandyke.com/download/securecrt/download.html : 회원가입필요)


  - XShell : 상용화 프로그램으로 특정사용자들이 즐겨 쓴다.



8. 설정파일
   * /etc/ssh/sshd_config

※ 해당 내용은 간단하게 실습 가능한 부분만 알려드리며, 설정파일의 자세한 내용은 아래의 글을 참고해주시기 바랍니다.

    - Port : SSH 서비스의 Port 번호 (기본값 : 22)
             단, 위 설정항목을 변경하는 경우 방화벽에서 해당 포트를 해제하여야 통신이 가능.


    - Protocol : SSH 통신의 버전 (기본값:2)
        ㄱ. 1 : 사용자 인증 방식 사용
        ㄴ. 2 : 키(RSA) 인증 방식 사용


    - ListenAddress : 접속을 허가하는 특정 호스트를 입력할 수 있다. (기본값 : 0,0,0,0 / ::)


    - KeyRegenerationInterval : 암호화 키의 갱신 시간을 의미 (기본값 : 1h)


    - SyslogFacility : syslogd의 SSH의 인증 정보를 기록하는 방식
        ㄱ. AUTH : 사용자 관련 정보
        ㄴ. AUTHPRIV : 인증절차 관련 정보(키) (기본값)


    - LogLevel : syslogd의 SSH의 Log 정보를 쌓아주는 형태를 지정
        ㄱ. INFO : 기본정보를 보여주는 수준부터 기록 (기본값)
        ㄴ. WARNING : 단순 경고 메세지를 출력할 수 있는 수준부터 기록 (실무 적용)
        ㄷ. CRIT : 데몬 또는 서브시스템을 종료 해야하는 수준부터 기록
        ㄹ. EMERG : 시스템이 다운되거나 타격을 입을 수 있는 수준부터 기록


    - LoginGraceTime : 원격접속시 로그인까지의 인터벌 시간(기본값:2분)


    - PermitRootLogin : root 사용자로 접속하는 것을 정의 (no)
              => Sniffing 공격시 암호화 알고리즘을 아는 사람은 해킹이 가능하므로
                  root 사용자 접속은 위험하니 불가능하도록 설정 -> 보안설정


    - MaxAuthTries : ssh 프로그램으로 접속 시도시 인증실패의 최대값(기본값:6)


    - MaxSessions : ssh 접속 연결 최대 제한 갯수 (기본값:10)


    - Last = Subsystem : SSH 서비스가 동작이 되면 자동으로 동작시킬 프로그램을 입력
                               (기본 동작 프로그램 : sftp)

 

   ※ SSH 이용시 유의사항

      * 상대방 접속시 없는 사용자로 접근하면 오류 발생



9. 동작환경

 [ 그림참조 ]

 



[ sftp(Secure FTP) ]
1. 정의 : 원격 접속 서버와 파일을 전송할 때 암호화 된 통신을 한다.
           (SSH 서비스와 연동되어 제공한다.)


2. 형식 : - 보안설정 X : #sftp [대상서버]
            - 보안설정 O : #sftp [계정명]@[대상서버]


   ※ SFTP 이용시 유의사항

      * ssh 설정파일내 "보안설정(PermitRootLogin=no)"이 적용된 서버는
        사용자로 로그인을 해야 한다. → 권한에 대한 제약이 발생
         => 파일 전송시 업/다운로드 관련 DIR 및 File 의 권한 (p.73 참조)




[ scp(Secure CoPy) ]
1. 정의 : 원격 접속 서버와 자신의 서버로 복사형태를 띄면서 암호화 통신을 한다.
           (openssh-clients 패키지에 내장된 명령어)

2. 형식
  - #scp [옵션] [원본경로] [대상경로]  -> cp명령어와 유사
     (단, 원격서버의 경우 - [계정명]@[Server IP]:[경로])
       ※ 원격서버의 경로를 입력할 때 "절대경로"를 사용할 것!


  [다운로드 형태]
  - #scp 10.1.1.50:/backup/fstab /backup/         : 원본에 원격지 주소를 사용한 경우

  [업로드 형태]
  - #scp /backup/fstab 10.1.1.50:/backup/         : 대상에 원격지 주소를 사용한 경우

 

AND