SSH 서비스 및 사례 분석 심화

1. SSH 개요     전통 적 인 네트워크 액세스 프로그램 인 telnet 은 통신 할 때 매우 안전 하지 않다. 왜냐하면 이것 은 명문 방식 으로 구령 과 데 이 터 를 전송 하기 때문에 기술적 인 수단 을 통 해 이러한 구령 과 데 이 터 를 쉽게 차단 할 수 있 기 때문이다.이 서비스 프로그램의 안전 검증 방식 도 약점 이 있다.그 는 검증 메커니즘 이 없어 '브로커' 방식 으로 실제 서버 를 사칭 해 서버 에 전 송 된 데 이 터 를 받 아들 이면 심각 한 문제 가 발생 한다 SSH (Secure SHell)모든 전송 데 이 터 를 암호 화 할 수 있 습 니 다. 이러한 * * 방식 은 성공 할 수 없 을 뿐만 아니 라 DNS 와 IP 사 기 를 막 을 수 있 습 니 다. 또 하나의 추가 적 인 장점 은 SSH 가 전송 한 데 이 터 를 압축 하여 전송 속 도 를 가속 화 할 수 있다 는 것 입 니 다. 현재 자주 사용 하 는 SSH 소프트웨어 는 OpenSSH 입 니 다. SSH 는 두 가지 버 전 V1 과 V2 가 존재 합 니 다. Red Hat Enterprise Linux 5 는 V2 를 사용 합 니 다. V1 에 비해 V2 가 추 가 됩 니 다.SSH 가 연결 을 만 들 때 뿐만 아니 라 통신 에서 도 키 정 보 를 확인 할 수 있 는 인증 방식 이 강 화 됩 니 다. OpenSSH 는 이 두 가지 버 전 1.1, SSH 설정 파일 을 지원 합 니 다.    SSH 에서 자주 사용 하 는 프로필 은/etc/ssh/ssh config --> 클 라 이언 트 프로필,/etc/ssh/sshd config --> 서버 엔 드 프로필 1.1.1, 클 라 이언 트 프로필 이 있 습 니 다. 이 파일 의 형식 은 '필드 값' 입 니 다. 필드 는 대소 문 자 를 무시 합 니 다. 자주 사용 하 는 필드 를 간단하게 소개 하 겠 습 니 다. Host *     #설정 이 적 용 된 호스트 를 지정 합 니 다. 설 정 된 호스트 는 다른 설정 을 사용 합 니 다. * "모든 컴퓨터 Forward Agent 를 표시 합 니 다.    #연결 이 인증 프 록 시 를 거 쳤 는 지 설정 (존재 할 경우) 원 격 컴퓨터 Forward X11 에 전송       #안전 한 채널 과 디 스 플레이 집합 으로 xll 연결 이 자동 으로 재 설정 되 었 는 지 여부 RhostsRSAAuthentication  #rsa 알고리즘 을 사용 할 지 여 부 를 설정 하 는 rhosts 기반 보안 검증 RSAAuthentication   #rsa 알고리즘 을 사용 하여 보안 검증 을 할 지 설정 합 니 다. StrictHostKeyChecking  #yes 로 설정 하면 ssh 는 자동 으로 컴퓨터 키 를 $home/. ssh/known hosts 파일 에 추가 하지 않 습 니 다. 컴퓨터 키 가 바 뀌 면 BatchMode 연결 을 거부 합 니 다.      #yes 로 설정 하면 passphrase/password 의 알림 이 금 지 됩 니 다. 암 호 를 대화 식 으로 입력 할 수 없 을 때 이 옵션 은 스 크 립 트 파일 과 일괄 처리 작업 에 매우 유용 합 니 다. CheckHostIP\# ssh 를 설정 하면 서버 에 연 결 된 호스트 IP 주 소 를 볼 지 여 부 를 설정 합 니 다. DNS 사 기 를 방지 하려 면 yes Port 22 로 설정 하 는 것 을 권장 합 니 다.     #원 격 호스트 에 연 결 된 포트 설정 Identity File  #사용자 의 rsa 보안 인증 표지 프로 토 콜 을 읽 을 파일 설정      #클 라 이언 트 설정 ssh 버 전 Cipher 사용        #암호 화 방식 설정 EscapeChar    #escape 문자 1.1.2, 서버 측 프로필 을 설정 합 니 다. 이 파일 의 형식 은 '필드 값' 입 니 다. 필드 는 대소 문 자 를 무시 합 니 다. 자주 사용 하 는 필드 Port 22 를 간단하게 소개 합 니 다.   #sshd 감청 포트 번호 설정 ListenAddress 0.0.0.0   #sshd 서버 에 연 결 된 IP 주 소 를 설정 합 니 다. 0.0.0.0 은 모든 주 소 를 검색 하 는 것 을 의미 합 니 다. HostKey/etc/ssh/sshhost_key   #컴퓨터 개인 키 를 포함 하 는 파일 설정 ServerKeyBits 768    #서버 키 자릿수 정의 LoginGraceTime 2m    #사용자 가 성공 적 으로 로그 인 할 수 없 을 때 연결 을 끊 기 전에 서버 가 기 다 려 야 할 시간 (초) KeyRegeneration Interval 1h   #몇 초 후에 서버 키 를 자동 으로 다시 생 성 합 니 다. 키 복호화 로 캡 처 한 정 보 를 도용 하지 않도록 하기 위해 서 입 니 다. PermitRootLogin no   #루트 가 SSH 로 로그 인 할 수 있 는 지 설정 합 니 다. 서버 의 안전 을 위해 yes IgnoreUserKnownHosts no 로 설정 하지 않 는 것 을 권장 합 니 다.   #ssh daemon 이 rhostsrsaauthentication 보안 검증 을 할 지 여 부 를 설정 할 때 사용자 의 $home/. ssh/known 을 무시 합 니 다.hosts IgnoreRhosts yes      #인증 을 설정 할 때 rhosts 와 shosts 파일 strictmodes yes 를 사용 할 지 여부       #로그 인 요청 을 받 기 전에 사용자 디 렉 터 리 와 rhosts 파일 의 권한 과 소유권 을 확인 할 지 여부 입 니 다. 디 렉 터 리 와 파일 을 누구 에 게 나 쓰기 권한 이 있 는 X11 Forwarding yes 로 설정 하지 않도록 합 니 다.     #xll 전송 허용 여 부 를 설정 합 니 다 PrintMotd yes         #sshd 가 사용자 로그 인 할 때/etc/motd 의 정보 loglevel info 를 표시 할 지 설정 합 니 다.         #로그 메 시 지 를 기록 하 는 차원 의 Password Authentication 설정  yes   #암 호 를 사용 하여 PermitEmptyPasswords 를 검증 할 수 있 는 지 설정 합 니 다.  no  #사용자 암호 가 비어 있 는 계 정 으로 Allowusers tom 에 로그 인 할 지 설정 합 니 다.           #허 용 된 사용 자 를 설정 합 니 다. 수량 은 여러 개 이 고 빈 칸 으로 2, OpenSSH 설정 파일 2.1, 암호 인증 기본 상황 에서 SSH 는 전통 적 인 암호 인증 을 사용 합 니 다.이러한 인증 방식 을 사용 할 때 어떠한 설정 도 하지 않 아 도 사용 자 는 SSH 서버 에 존재 하 는 계 정과 암 호 를 사용 하여 원 격 호스트 에 로그 인 할 수 있다.모든 전 송 된 데 이 터 는 암호 화 되 지만 암호 인증 은 연 결 된 서버 가 진정한 목적 서버 라 는 것 을 보장 할 수 없습니다.만약 다른 서버 가 사칭 하고 있다 면 클 라 이언 트 는 중개인 을 받 을 가능성 이 높다"의 * * *. 2.2. 키 인증 키 인증 은 키 에 의존 해 야 합 니 다. 먼저 키 한 쌍 을 만 들 고 키 를 원 격 서버 에 저장 합 니 다. 원 격 호스트 에 로그 인 할 때 클 라 이언 트 소프트웨어 는 서버 에 요청 을 보 내 자신의 키 로 인증 을 요청 합 니 다. 서버 에서 요청 을 받 은 후 먼저 서버 의 사용자 홈 디 렉 터 리 에서 공개 키 를 찾 은 다음 확인 합 니 다.키 가 합 법 적 인지 여 부 는 합 법 적 이면 공개 키 암호 로 무 작위 수 를 생 성하 여 클 라 이언 트 에 게 되 돌려 줍 니 다. 클 라 이언 트 소프트웨어 가 서버 의 응답 을 받 은 후 비밀 키 를 사용 하여 데 이 터 를 서버 에 복호화 합 니 다. 공개 키 로 암호 화 된 데 이 터 는 비밀 키 로 만 복호화 되 기 때 문 입 니 다. 서버 를 비교 해 보면 해당 클 라 이언 트 연결 의 합 법성 을 알 수 있 습 니 다. 2.2.1, 사례: 만약 에 한 회사 내부 에 비밀 키 가 있다 면여러 대의 서버 입 니 다. 관리 자 는 서버 의 안전성 을 확보 하기 위해 전용 시스템 계 정 test 를 설정 하고 OpenSSH 를 사용 하여 원 격 관리 설정 과정 을 다음 과 같이 선택 하 였 습 니 다.
a. 원 격 서버 의/etc/ssh/sshd conf 파일 편집 
  • PasswordAuthentication 필드 를 수정 하여 no 로 설정 하고 암호 인증 을 금지 하 며 키 증 만 사용 할 수 있 습 니 다. 

  • PasswordAuthentication no
     
  • b. 클 라 이언 트 에서 키 생 성 

  • [root@station41 ~]# ssh-keygen -d  
  • Generating public/private dsa key pair.  

  • Enter file in which to save the key (/root/.ssh/id_dsa): /home/test/.ssh/id_dsa  
  • Enter passphrase (empty for no passphrase):   

  • Enter same passphrase again:   
  • Your identification has been saved in /home/test/.ssh/id_dsa.    #비밀 키 파일 

  • Your public key has been saved in /home/test/.ssh/id_dsa.pub.    #공개 키 파일 
  • The key fingerprint is:  

  • 12:a6:98:09:b3:fd:99:7e:36:14:8f:fd:62:14:46:bc [email protected]  
  • [root@station41 ~]# cd /home/test/.ssh/ 

  • [root@station41 .ssh]# ls  
  • id_dsa  id_dsa.pub  
  •  

  • c. 공개 키 발표 
  • [root@station41 .ssh]# ssh-copy-id -i /home/test/.ssh/id_dsa.pub 172.16.50.22  

  • 26  
  • The authenticity of host '172.16.50.22 (172.16.50.22)' can't be established.  

  • RSA key fingerprint is 98:08:cc:c1:2b:da:c2:34:c2:5d:fe:20:58:ec:b7:1b.  
  • Are you sure you want to continue connecting (yes/no)? yes  

  • Warning: Permanently added '172.16.50.22' (RSA) to the list of known hosts.  
  • [email protected]'s password:   

  • Now try logging into the machine, with "ssh '172.16.50.22'", and check in:  
  •  

  •   .ssh/authorized_keys  
  •  

  • to make sure we haven't added extra keys that you weren't expecting.  
     
  • d, 원 격 서버 연결 

  • [root@station41 ~]# ssh -l test 172.16.50.22  
  • Last login: Fri Apr  5 23:51:44 2013 from 172.16.50.22 

  •  
    다음으로 전송:https://blog.51cto.com/jilili/1172257

    좋은 웹페이지 즐겨찾기