많은 위치가 Telnet으로 시스템에 연결하지 않고 대신 SSH를 사용하도록 의무화하고 있습니다. 그 근거는 더 큰 보안입니다. Telnet을 사용하여 로그인하면 암호와 다른 데이터가 일반 텍스트로 전송됩니다. 네트워크 분석기를 가진 사람은 누구나 보낸 내용을 읽을 수 있습니다. 반면, SSH는 모든 데이터를 암호화하여 읽을 수 없게 만듭니다. 가정은 텔넷과 SSH 데몬이 상호 교환 가능한 사용자 환경을 제시한다는 것입니다. 이것은 올바르지 않습니다.
첫째, 많은 다른 SSH및 텔넷 클라이언트가 있습니다. 이들은 서로 다른 사용자 인터페이스를 가지고 있으며 다른 터미널 유형을 사용할 수 있습니다. 동일한 단말 유형을 사용하는 경우에도 단말에 에뮬레이션되고 에뮬레이션이 완벽하지 않기 때문에 다르게 행동할 수 있습니다. 그러나 클라이언트 소프트웨어의 차이를 할인하더라도 텔넷 데몬 (텔넷 또는 telnet_msd)에 연결된 세션과 SSH 데몬에 연결된 세션 사이에는 몇 가지 미묘하고 미묘한 차이가 있습니다. 또한 버그의 숫자가 있습니다, 나는 다룰 것이다. OpenVOS 릴리스 2.1.0k에 대한 인터넷 보안 팩 (ISP)에서 SSH 데몬을 사용하고 있음을 명심하십시오. 이것은 내가 이것을 쓴 시간에 사용할 수있는 최신 버전입니다.
사용자 이름:
로그인하기 전에 Telnet과 SSH가 사용자 이름을 처리하는 방식에 차이가 있습니다. Telnet 데몬은 사용자 이름의 고유한 변형으로 로그인할 수 있으며 이름은 둔감한 경우입니다. Noah_Davids 사용자 이름을 감안할 때 Telnet을 사용할 때 Noah_D, noah_d, NoAh_D 또는 NoAh_DaViDs 로그인할 수 있지만 SSH로 작동하는 유일한 것은 Noah_Davids. ND의 내 별칭은 같은 방식으로 작동합니다. 텔넷을 사용하면 ND, ND 또는 nD를 사용할 수 있지만 SSH만 으로는 ND만 작동합니다.
그룹 이름:
Telnet 연결과 함께 제공되는 로그인 프롬프트를 사용하면 그룹 이름을 지정할 수 있습니다.
텔넷 164.152.77.217 노력... 164.152.77.217에 연결됩니다. 탈출 문자는 '^]'입니다. 오픈보스 출시 17.1.0ax, 모듈 %phx_vos#m17 로그인 15:24:14 로그인 nd. SysAdmin 암호? 【여기에 입력된 암호】 Noah_Davids. SysAdmin은 12-12-12 15:24:55 mst에서 %phx_vos#m17에 로그인했습니다. |
그림 1 – 그룹 이름이 있는 텔넷 로그인 |
그러나 SSH 프로토콜은 사용자 이름만 허용합니다. 그룹 이름을 포함하면 사용자 이름의 일부로 처리되고 로그인이 실패합니다.
>시스템>은 열다..빈>ssh nd. [email protected] Nd. SysAdmin@164.152.77.217의 암호: [여기에 입력된 암호] 사용 권한이 거부, 다시 시도하십시오. Nd. [email protected]의 암호: |
그림 2 – 그룹 이름으로 SSH 로그인 |
로그인하면 하위 로그인으로 그룹을 변경할 수 있습니다(현재 제한 사항은 아래 ssl-403 섹션 참조).
암호 차이:
Telnet과 SSH 연결 간의 암호 처리의 가장 큰 차이점은 SSH가 인증을 위해 암호를 필요로 하지 않는다는 것입니다. 공용/비공개 키 쌍을 설정하고 전체 암호 입력 단계를 건너뛸 수 있습니다. Stratus STCP SSH 를 설정하여 공개 키 인증을 사용하여 이를 설정하는 방법에 대한 설명을 살펴보십시오.
암호를 사용하는 경우 처리해야 하는 몇 가지 차이점이 있습니다. 첫째, 암호 만료는 다르게 처리됩니다. Telnet을 사용하면 로그인 프롬프트가 암호가 만료될 때 경고하며 암호를 변경할 수 있습니다.
텔넷 164.152.77.217
노력...
164.152.77.217에 연결됩니다.
탈출 문자는 '^]'입니다.
오픈보스 출시 17.1.0ax, 모듈 %phx_vos#m17
로그인 14:04:40
로그인 nd
암호? 【현재 암호는 여기에 입력】
암호는 5일 후에 만료됩니다.
새 암호(첫 번째 항목)?
|
그림 3 – 텔넷 연결 암호 만료 경고/프롬프트 |
SSH는 경고하지만 변경할 수있는 옵션이 없습니다. 암호를 무효화하려면 change_password 명령을 사용해야 하며, 다음에 로그인할 때 암호를 변경해야 합니다.
ssh [email protected] [email protected]의 암호: [현재 암호는 여기에 입력] 암호는 5일 후에 만료됩니다. Noah_Davids.CAC는 13-01-09 13:06:35 mdt에서 %phx_vos#m17에 로그인했습니다. 환영. 준비 13:06:35 change_password 암호가 더 이상 유효하지 않습니다. 다음에 로그인할 때 변경해야 합니다. 준비 13:06:49 |
그림 4 – SSH 연결 암호 만료 경고 change_password 명령 |
암호가 만료되면 (또는 change_password 명령으로 무효화) 당신은 그것을 변경하라는 메시지가 표시됩니다. Telnet과 달리 이 옵션은 선택 사항이 아니며 이 시점에서 암호를 변경해야 합니다. 암호를 변경한 후 자동으로 로그아웃되며 다시 로그인해야 합니다.
ssh [email protected] [email protected]의 암호: 경고: 암호가 만료되었습니다. 지금 암호를 변경하고 다시 로그인해야합니다! 현재 암호? 【현재 암호는 여기에 입력】 새 암호(첫 번째 항목)? [여기에 입력된 새 암호] 새 암호(두 번째 항목)? [여기에 입력된 새 암호] 연결164.152.77.217 마감. |
그림 5 – SSH 연결 중 암호 변경 |
또 다른 차이점은 Telnet 연결이 수행하는 동안 SSH 연결이 챌린지 응답 암호를 지원하지 않는다는 것입니다.
하위:
Telnet을 사용하여 모듈에 처음 연결할 때 로그인 명령을 사용하면 하위 시스템을 선택할 수 있습니다.
오픈보스 출시 17.1.0ax, 모듈 %phx_vos#m17
로그인 11:23:40
로그인-양식-사용
--------------------------------- 로그인 -------------------------------
User_name:
-권한: 등록된 대로
- 암호 :
-change_password: 아니요
- 우선 순위 :
-home_dir:
-모듈:
- 하위 시스템 :
|
그림 6 – 텔넷 연결을 사용하면 하위 시스템 이름을 지정할 수 있습니다. |
ssh 프로토콜에는 하위 시스템 이름을 지정하는 메커니즘이 없습니다. 등록 데이터베이스 항목에 must_use_subsystem 플래그가 설정된 경우 등록 항목에 지정된 첫 번째 하위 시스템이 자동으로 사용됩니다. 비트가 설정되지 않으면 하위 시스템이 사용되지 않습니다. (릴리스 전에 ISP 2.1.0j는 must_use_subsystem 비트가 설정되지 않은 경우에도 첫 번째 하위 시스템을 사용합니다. 실제로 로그인하기 전에 사용 가능한 로그인 명령에 대한 인수에는 해당 옵션에 로그인한 후 하위 시스템(그림 6 참조)을 지정하는 방법이 포함되어 있지만 더 이상 사용할 수 없습니다(그림 7 참조).
로그인-양식-사용 --------------------------------- 로그인 ------------------------------- group_name: CAC - 특권 : 예 - 우선 순위 : - 암호 : -모듈: |
그림 7 – 하위 로그인 명령줄 아그먼트 |
로그인한 후 하위 시스템에 들어갈 수 있는 유일한 방법은 Telnet을 다시 시스템으로 다시 로그인하고 다시 로그인하는 것입니다.
텔넷 127.0.0.1 노력... 127.0.0.1에 연결됩니다. 탈출 문자는 '^]'입니다. 오픈보스 출시 17.1.0ax, 모듈 %phx_vos#m17 로그인 11:37:34 로그인 nd-서브 시스템 test_ss 암호? Noah_Davids.CAC는 12-12-13 11:37:49 mst에서 %phx_vos#m17에 로그인했습니다. 이것은 테스트 하위 시스템입니다. 준비 11:37:49 |
그림 8 – 텔넷에서 루프백 주소로 다시 로그인하여 하위 시스템에 도착합니다. |
액세스 제어:
Telnet 및 SSH 연결모두 TCP 래퍼를 지원하여 IP 주소를 기반으로 액세스를 제한할 수 있지만 Telnet 데몬을 사용하면 TCP 래퍼가 활성화되지 않았으며 -tcpwrapper_check 제어 인수로 명시적으로 사용하도록 설정해야 합니다. SSH 데몬 TCP 래퍼를 기본적으로 사용할 수 있지만 비활성화할 수 있는 방법은 없습니다. TCP 래퍼 hosts.allow 구성 파일의 모든 SSH 연결을 허용하여 효과적으로 비활성화할 수 있습니다.
텔넷 -양식 -사용
텔넷 ------------------------------ -------------------------------
-service_file: >시스템>stcp>텔넷서비스
-tcpwrapper_check: 아니요
-숫자: 예
|
그림 9 – 텔넷데몬에서 TCP 래퍼 사용 가능 |
telnet_msd-양식-사용
------------------------------ telnet_msd ----------------------------
-network_port: 24
-max_sessions: 28
-error_severity: 2
-separate_log: 예
-log_dir: >시스템>stcp>로그
-vterm_starname: 텔넷*
-vterm_login: 예
- vterm_slave_id:
-확장: 133
-force_edit: 예
-EC_decimal_value: 8
-EL_decimal_value: 21
-tcpwrapper_check: 아니요
- 숫자 : 아니오
|
그림 10 – telnet_msd 데몬에서 TCP 래퍼 사용 가능 |
sshd daemon은 또한 ssh(AllowUsers 및 AllowGroups 지시문)를 사용하여 액세스가 허용되거나 ssh(DenyUsers 및 DenyGroups 지시문)를 사용하여 액세스가 거부되는 사용자 또는 그룹을 지정할 수 있도록 sshd_config 파일의 옵션을 지원합니다. 이러한 지침을 사용하면 사용자 이름 또는 소스 도메인 또는 조합을 지정할 수 있습니다. corp.stratus.com noah_davids 허용하지만 az.stratus.com 거부 할 수 있습니다.
허용 사용자 *@*stratus.com 니덴사용자 *@*az.stratus.com |
그림 11 – sshd_config 사용자 및 DenyUsers 지시문 허용 |
>시스템>은 [email protected]을 엽니다. [email protected]의 암호: 사용 권한이 거부, 다시 시도하십시오. [email protected]의 암호: |
그림 12 – DenyUsers 지시문으로 인해 거부된 phxtest-m15.az.stratus.com 로그인 |
명령 환경:
Telnet 연결에 로그인하면 표준 VOS 명령 환경이 제공됩니다. SSH를 사용하면 관리자가 표준 명령 환경 또는 bash 셸 환경을 지정할 수 있습니다. 이 작업은 포트 번호를 기반으로 수행됩니다.
d sshservices %phx_vos#m17_mas>옵트>는 sshservices 12-12-13 12:31:31 mst를 엽니다. ssh "window_term" "" "로그인" 1 s$pt_log.m16 ssh2200 "window_term""-쉘" "bash" 1 s$pt_log.m16 |
도 13 – sshservices 파일, 포트 22는 표준 VOS 명령줄, 포트 2200은 배쉬 쉘입니다. |
>시스템>오픈슐>빈>ssh [email protected] -p 2200 [email protected]의 암호: 환영. sh-2.05$ |
그림 14 – 포트 2200을 사용하여 SSH 연결을 사용하고 배쉬 쉘을 얻습니다. |
환경 변수:
기본적으로 텔넷 연결은 6개의 환경 변수만 설정한 반면 SSH 연결은 12를 설정합니다.
환경을 홈=SysAdmin/Noah_Davids 로그네임=루트 PATH=.:/ 시스템/command_library:/시스템/applications_library:/시스템/maint_librar +y:/system/nio/command_library:/시스템/tools_library:/옵트/아파치/빈:/옵트/리브Xml +2/빈:/옵트/php/bin:/opt/openssl/bin:/opt/mysql/bin:/시스템/stcp/command_library +:/system.17.1/gnu_library/빈 VOS_INCLUDE_PATH=.:/ 옵트/아파치/포함:/옵트/오픈/포함:/옵트/mysql/포함/m +ysql:/시스템/stcp/include_library/compat:/시스템/include_library VOS_OBJECT_PATH=.:/ 옵트/아파치/리브:/옵트/오픈/리브:/옵트/mysql/lib/mysql:/system/ +stcp/object_library/complib:/시스템/posix_object_library/pthread:/시스템/posix_ +object_library:/시스템/c_object_library:/시스템/object_library TERM=vt100 |
그림 15 – 텔넷 연결에서 설정된 환경 변수 |
환경을 홈=SysAdmin/Noah_Davids PATH=.:/ 시스템/command_library:/시스템/applications_library:/시스템/maint_librar +y:/system/nio/command_library:/시스템/tools_library:/옵트/아파치/빈:/옵트/리브Xml +2/빈:/옵트/php/bin:/opt/openssl/bin:/opt/mysql/bin:/시스템/stcp/command_library +:/system.17.1/gnu_library/빈 VOS_INCLUDE_PATH=.:/ 옵트/아파치/포함:/옵트/오픈/포함:/옵트/mysql/포함/m +ysql:/시스템/stcp/include_library/compat:/시스템/include_library VOS_OBJECT_PATH=.:/ 옵트/아파치/리브:/옵트/오픈/리브:/옵트/mysql/lib/mysql:/system/ +stcp/object_library/complib:/시스템/posix_object_library/pthread:/시스템/posix_ +object_library:/시스템/c_object_library:/시스템/object_library TERM=vt100 TZ=mst+07:00:00 사용자=Noah_Davids 로그네임=Noah_Davids 메일=/var/스풀/메일/Noah_Davids SHELL=/빈/sh SSH_CONNECTION=164.152.77.34 49573 164.152.77.217 22 SSH_TTY=#s$pt_log.m16_3 |
그림 16 – SSH 연결에 설정된 환경 변수 |
장치 유형:
마지막으로, 이것은 텔넷과 SSH의 차이점이 아니라 텔넷과 sshd 데몬과 telnet_msd 데몬 사이의 차이입니다. 텔넷과 sshd 모두 window_term 장치를 사용하는 반면 telnet_msd vterm 장치를 사용합니다. Vterms와 window_term 장치가 명령줄의 일부 함수 키(예: Cancel)를 처리하는 방식과 원시 화면 출력을 처리하는 방식 사이에는 몇 가지 차이점이 있습니다. 자체 양식을 만들고 새 s$control을 사용하도록 업데이트되지 않은 일부 응용 프로그램은 window_term 장치를 사용하여 해당 양식을 올바르게 표시하지 OP_CODES. 이러한 응용 프로그램을 처리하는 두 번째 가장 좋은 방법은 시스템에 연결하는 SSH 터널을 사용하는 것입니다, 터널은 telnet_msd 데몬에 연결하도록 구성된다. 응용 프로그램을 처리하는 가장 좋은 방법은 물론, 새로운 OP_CODES 사용하도록 업데이트하는 것입니다.
텔넷과 SSH에 내재된 위의 차이점 외에도 향후 릴리스에서 수정될 몇 가지 버그가 있습니다.
ssl-403 사용 가능한 그룹:
Telnet에 연결할 때 등록 항목에 지정된 모든 그룹은 서브로고인에 사용할 수 있지만 처음 5개 그룹만 사용할 수 있습니다.
내가 그룹에 등록 되어 주어진, CAC, SysAdmin, Group_3, Group_4, Group_5, Group_6. 텔넷 연결의 모든 그룹을 사용하여 하위 로그인을 수행할 수 있습니다.
텔넷 164.152.77.217 노력... 164.152.77.217에 연결됩니다. 탈출 문자는 '^]'입니다. 오픈보스 출시 17.1.0ax, 모듈 %phx_vos#m17 로그인 15:38:02 로그인 nd 암호? 【현재 암호는 여기에 입력】 Noah_Davids.CAC는 12-12-12 15:38:08 mst에서 %phx_vos#m17에 로그인했습니다. 로그인 Group_5 Noah_Davids.Group_5는 12-12-12 15:39:39 mst에서 %phx_vos#m17에 로그인했습니다. 준비 15:39:39 Logout 로그인 Group_6 Noah_Davids.Group_6은 12-12-12 15:40:13 mst에서 %phx_vos#m17에 로그인했습니다. 준비 15:40:13 |
그림 17 – 텔넷 연결이 있는 하위 로그인 |
그러나, ssh와 함께, 내가 사용 하려고 할 때 Group_6 오류가 발생 합니다.
>시스템>은 [email protected]을 엽니다. [email protected]의 암호: Noah_Davids.CAC는 12-12-12 15:41:02 mst에서 %phx_vos#m17에 로그인했습니다. 준비 15:41:02 로그인 Group_5 Noah_Davids.Group_5는 12-12-12 15:41:24 mst에서 %phx_vos#m17에 로그인했습니다. 준비 15:41:24 Logout 로그인 Group_6 로그인: 인수에서 잘못된 형식입니다. Group_6 group_name 허용되지 않습니다. 준비 15:41:59 |
그림 18 – SSH 연결이 있는 하위 로그인 |
ssl-418 – sub_process_level:
Telnet을 통한 로그인은 sub_process 수준인 0을 가지며 SSH를 통한 로그인수준은 sub_process 3입니다.
텔넷 164.152.77.217
노력...
164.152.77.217에 연결됩니다.
탈출 문자는 '^]'입니다.
오픈보스 출시 17.1.0ax, 모듈 %phx_vos#m17
로그인 14:15:34
로그인 nd
암호? 【현재 암호는 여기에 입력】
Noah_Davids.CAC는 12-12-13 14:15:39 mst에서 %phx_vos#m17에 로그인했습니다.
준비 14:15:39
display_line (process_info sub_process_level)
0
준비 14:15:49
|
그림 19 – 텔넷 연결에서 설정된 Sub_process 레벨 |
>시스템>은 [email protected]을 엽니다. [email protected]의 암호: [현재 암호는 여기에 입력] Noah_Davids.CAC는 12-12-13 14:12:23 mst에서 %phx_vos#m17에 로그인했습니다. 준비 됨 14:12:23 display_line (process_info sub_process_level) 3 준비 됨 14:12:37 |
그림 20 – SSH 연결에서 설정된 Sub_process 레벨 |
업데이트 2013년 1월 14일: 이것은 버그가 아닌 기능으로 밝혀졌습니다. sshd 프로세스는 start_process 청취 프로세스를 시작하도록 완료될 때 먼저 분기되며, 두 번째는 sshd가 연결을 수락하고 사용자 로그인 프로세스가 생성될 때 세 번째로 분기됩니다. Telnet은 다른 메커니즘을 사용하여 위조된 프로세스가 발생하지 않는 사용자 프로세스를 시작합니다.
표준 시간대 문제:
마지막으로 일광 절약과 표준 시간 사이의 변화와 관련된 여러 가지 문제가 있거나 일반적으로 표준 시간대를 변경하는 것과 관련된 여러 가지 문제가 있었다고 말하고 싶습니다. SSH를 통해 로그인한 세션은 새 기본값을 반영하지 않습니다. 이러한 문제는 모두 이 최신 릴리스(2.1.0k)에서 수정되어야 합니다.