TELNETD(8)

명칭
telnetd - DARPA TELNET 프로토콜 서버

서식
/usr/libexec/telnetd [-BUhlkn] [-D debugmode] [-S tos] [-X authtype] [-a authmode] [-edebug] [-p loginprog] [-u len] [-debug [port]]

해설
telnetd 명령은, DARPA 표준 TELNET 가상 단말 프로토콜을 서포트하는 서버입니다. telnetd (은)는, 통상은 /etc/services 파일 ( services(5) 참조)에 기술되고 있다 TELNET 포트에의 접속 요구를 받아, 인터넷 서버 ( inetd(8) 참조)로부터 기동됩니다. -debug 옵션은, inetd(8) 대신에 telnetd (을)를 수동으로 기동하기 위해서 이용됩니다. 이와 같이 수동으로 기동되었을 경우에는, 대신의 TCP 포트 번호로 telnetd (을)를 움직이기 위해서(때문에) port (을)를 지정할 수가 있습니다.

telnetd 명령에는 이하의 옵션이 있습니다:

-a authmode
    이 옵션은, 어느 모드가 인증에 사용되는지를 지정하기 위해서 이용됩니다. 이 옵션은, telnetd 하지만 AUTHENTICATION 옵션을 서포트하는 설정으로 구축되었을 경우에 대해서만 도움이 되는 것에 주의해 주세요. 이하에 나타내는 것 같은 몇개의 authmode (이)가 있습니다:

    debug
        인증의 디버그 코드를 유효하게 합니다.

    user
        리모트 유저는, 자기 자신인 것 가리키기 위한 유효한 인증 정보를 제공했을 때에게만 접속이 허가됩니다. 이 경우, 지정된 어카운트에 대해서는, 패스워드의 제공없이 접속이 허가됩니다.

    valid
        리모트 유저가 자기 자신인 것을 나타내기 위한 유효한 인증 정보를 제공했을 때에게만 접속이 허가됩니다. 리모트 유저가 지정된 어카운트에 대한 자동적인 접속이 허가되어 없으면 login(1) 명령은, 필요한 유저 인증을 실시합니다.

    other
        어떤 종류의 인증 정보를 제공했을 경우만 접속을 허가합니다. 현재 이 옵션은 모든 인증 방법으로 서포트되어 있지 않기 때문에 -a valid 옵션을 지정했을 때와 같은 동작을 합니다.

    none
        디폴트에서는 이 상태입니다. 인증 정보는 요구되지 않습니다. 만약 인증 정보가 없기도 하고 불충분하면, login(1) 프로그램에 의해 필요한 유저 인증을 실시합니다.

    off 인증 코드를 무효로 합니다. 모든 유저 증명이 login(1) 프로그램에 의해 행해집니다.

-B  bftp 서버 모드를 지정합니다. 이 모드에서는, telnetd (은)는, 유저의 통상의 쉘대신에 bftp(1) 세션을 로그인에 개시시킵니다. bftp demon 모드에서는, 통상의 로그인은 서포트되지 않습니다. 이것은, 통상의 TELNET 포트 이외의 포토로 사용될 필요가 있습니다.

-D debugmode
    이 모드는 debug를 위해서(때문에) 이용됩니다. 이것에 의해 telnetd 하지만 디버그 정보를 표시해, 유저는 telnetd 하지만 무엇을 하고 있는지를 보는 것이 허락됩니다. 이하에 나타내는 것 같은 몇개의 debugmode (이)가 있습니다:

    options
        TELNET 옵션의 네고시에이션에 대한 정보가 표시됩니다.

    report
        options 그리고 표시되는 정보에 가세해, 어떠한 조작을 하고 있는가 하는, 몇개의 부가적인 정보가 표시됩니다.

    netdata
        telnetd 하지만 받은 데이터 스트림을 표시합니다.

    ptydata
        pty 에 쓰여진 데이터를 표시합니다.

    exercise
        아직 실장되고 있지 않습니다.

-debug
    telnetd 에 의해 만들어진 소켓에 대한 디버그를 가능하게 합니다 ( socket(2) 의 SO_DEBUG 참조).

-edebug
    telnetd 하지만 데이터의 암호화를 서포트하는 설정으로 구축되고 있는 경우에, -edebug 옵션은, 암호화 디버그 코드를 유효하게 하기 위해서 사용됩니다.

-h  로그인이 완료할 때까지 호스트에 특유의 정보를 표시하지 않게 합니다.

-k  이 옵션은, telnetd 하지만 linemode 와 kludge linemode 를 서포트하는 설정으로 구축되고 있다 때에게만 유효합니다. -k 옵션이 지정되어 있는 경우로, 만약 리모트의 클라이언트가 LINEMODE 옵션을 서포트하고 있지 않으면, telnetd (은)는, character at a time mode 로 움직입니다. 이와 같은 상태에서도 kludge linemode 를 서포트합니다만, 리모트의 클라이언트가 요구했을 경우만 kludge linemode 가 됩니다 (이것은, 클라이언트가 DONT SUPPRESS-GO-AHEAD (와)과 DONT ECHO (을)를 송신하는 것에 의해 행해집니다). -k 옵션은 kludge linemode 를 서포트하고 있지 않는 리모트 클라이언트가 있지만, (만약 클라이언트가 DO TIMING-MARK 에 대해서 WILL TIMING-MARK (을)를 응답하는 일로) 자기 발견적으로 kludge linemode 를 서포트한다고 인정된다 같은 경우에 매우 편리합니다.

-l  line mode 를 지정합니다. 클라이언트를 강제적으로 line-at-a-time mode 에 되도록(듯이) 시도합니다. 만약 LINEMODE 옵션이 서포트되지 않으면, kludge linemode 가 됩니다.

-n  TCP keep-alives 를 실시하지 않습니다. 통상, telnetd 하 TCP keep-alive 를 유효하게 하고 있습니다. 왜냐하면, 크래쉬 하거나 벌써 접속 할 수 없는 것 같은 머신으로부터의 아이돌 connection를 해소하기 위해서, 어느 기간 아이돌이었던 경우에 클라이언트와의 접속이 아직 존재하는지 어떤지를 조사할 필요가 있기 때문입니다.

-p loginprog
    로그인을 완료할 때에 실행되는 명령로서 login(1) 이외의 명령을 지정합니다. 지정된 명령은 통상의 login 와 같은 인수를 해석할 수 있을 필요가 있습니다.

-S tos

-u len
    이 옵션은, 리모트 호스트명을 보관 유지하고 있다 utmp 구조체의 필드의 크기를 지정하기 위해서 사용됩니다. 만약 해결된 호스트명이 len 보다 길면, 호스트명 대신에 닷으로 단락지어진 주소가 사용됩니다. 이것에 의해 필드를 넘는 것 같은 매우 긴 호스트명을 일의에 특정할 수 있도록(듯이) 합니다. -u0 (을)를 지정하는 것에 의해, 닷으로 단락지어진 주소만이 utmp 파일에 기입해지도록(듯이) 합니다.

-U  이 옵션은 telnetd 하지만, gethostbyaddr(3) routine를 통해 심볼에서의 이름에 MAP 되지 않는 것 같은 주소로부터의 connection를 거절하도록(듯이) 합니다.

-X authtype
    이 옵션은 telnetd 하지만 인증 옵션을 서포트하는 설정으로 구축되었을 때에 마셔 유효합니다. authtype 인증을 사용 불능으로 해, telnetd (을)를 재컴파일 하는 것 없이 특정의 인증 타입을 일시적으로 사용 불능으로 할 수가 있습니다.

telnetd (은)는 가상 단말 디바이스 ( pty(4) 참조)를 클라이언트에 할당합니다. 그리고, stdin, stdout, stderr (으)로서 가상 단말의 슬레이브측을 사용하는 login 프로세스를 생성합니다. telnetd (은)는, TELNET 프로토콜을 실장해, 리모트 클라이언트와 login 프로세스와의 사이의 캐릭터를 통과시키는 것으로, 가상 단말의 마스터측을 조작합니다.

TELNET 세션이 개시되면(자) telnetd (은)는 이하의 TELNET 옵션을 클라이언트 측에 송신해, 이러한 TELNET 옵션의 사용을 희망하고 있는 일을 전합니다. 이러한 옵션의 자세한 것은 붙어 이하에 설명되고 있습니다.

    DO AUTHENTICATION
    WILL ENCRYPT
    DO TERMINAL TYPE
    DO TSPEED
    DO XDISPLOC
    DO NEW-ENVIRON
    DO ENVIRON
    WILL SUPPRESS GO AHEAD
    DO ECHO
    DO LINEMODE
    DO NAWS
    WILL STATUS
    DO LFLOW
    DO TIMING-MARK

클라이언트에 할당할 수 있었던 가상 단말은, “cooked” 모드로 동작해, XTABS (와)과 CRMOD ( tty(4) 참조)가 유효한 상태로 조작하도록(듯이) 설정됩니다.

telnetd (은)는, 로컬측에서 유효한 이하에 나타낸다 TELNET 옵션을 서포트하고 있습니다:

WILL ECHO
    LINEMODE 옵션이 설정되어 있을 때에 단말 에코의 현재 상태를 나타내기 위해서(때문에) 클라이언트에 WILL ECHO 혹은 WONT ECHO 하지만 송신됩니다. 단말 에코가 불필요한 경우는, telnetd 하지만 에코가 필요한 데이터에 대한다 에코를 처리하는 일을 나타내기 위해서(때문에) WILL ECHO 하지만 송신되어 아무것도 에코 되지 않습니다. 단말 에코가 필요한 경우는, telnetd 하지만 어떠한 단말 에코도 실시하지 않는 것을 나타내기 위해서(때문에) WONT ECHO 하지만 송신되므로, 필요한 때는 단말 에코를 클라이언트측이 실시하지 않으면 안됩니다.

WILL BINARY
    클라이언트가, 통상의 네트워크 가상 단말이 이용하는 7 비트의 데이터 (이)가 아니고, 8 비트의 데이터를 송신하도록(듯이) 지정합니다.

WILL SGA
    IAC GA 즉 go ahead 명령을 송신하지 않게 지정합니다.

WILL STATUS
    클라이언트로부터 요구가 있었을 때에, 모든 TELNET 옵션의 현재의 상황을 송신하도록(듯이) 지정합니다.

WILL TIMING-MARK
    DO TIMING-MARK 명령이 수신되었을 경우에, 항상 그에 대해 WILL TIMING-MARK (을)를 대답합니다.

WILL LOGOUT
    DO LOGOUT 하지만 수신되면(자) WILL LOGOUT (을)를 대답해, TELNET 세션은 셧다운 됩니다.

WILL ENCRYPT
    telnetd 하지만 데이터의 암호화를 서포트하는 설정으로 구축되었을 경우만 송신되어 데이터열에 대해서 암호를 복호 하도록(듯이) 지정합니다.

telnetd (은)는 리모트측에서 유효한 이하에 나타낸다 TELNET 옵션을 서포트하고 있습니다:

DO BINARY
    telnetd 하지만 8 비트의 데이터열을 수신하도록(듯이) 지정합니다.

DO LFLOW
    클라이언트가 flow control 캐릭터를 리모트측에서 처리하도록(듯이) 지정합니다.

DO ECHO
    이 명령은 실제로는 서포트됩니다만, 클라이언트가 4.2BSD telnet(1) 클라이언트 ( WILL ECHO 에 올바르게 응답하지 않는다)일까를 판단하기 위해서(때문에) 송신됩니다. 만약, WILL ECHO 하지만 수신되었을 경우는, 그에 대해 DONT ECHO 하지만 송신됩니다.

DO TERMINAL-TYPE
    접속의 클라이언트 측에 할당할 수 있었던 단말 타입의 이름을 요구할 수 있도록(듯이) 지정합니다.

DO SGA
    IAC GA 즉 go ahead 명령을 수신할 필요가 없게 지정합니다.

DO NAWS
    윈도우 (디스플레이)의 사이즈가 바뀌었을 경우에, 클라이언트가 그것을 서버에 알리는 일을 요구합니다.

DO TERMINAL-SPEED
    클라이언트에 할당할 수 있었던 시리얼 라인의 속도에 관한 정보를 요구할 수 있도록(듯이) 지정합니다.

DO XDISPLOC
    telnet 클라이언트가 사용하고 있는 X 윈도우의 디스플레이의 이름을 요구할 수 있도록(듯이) 지정합니다.

DO NEW-ENVIRON
    RFC 1572 에 나타나고 있는 환경 변수에 관한 정보를 요구할 수 있도록(듯이) 지정합니다.

DO ENVIRON
    RFC 1408 에 나타나고 있는 환경 변수에 관한 정보를 요구할 수 있도록(듯이) 지정합니다.

DO LINEMODE
    telnetd 하지만 linemode 를 서포트하는 설정으로 구축되었을 경우만 송신되어 클라이언트에 행 단위의 처리를 실시하는 일을 요구합니다.

DO TIMING-MARK
    telnetd 하지만 linemode 및 kludge linemode 의 양쪽 모두를 서포트하는 설정으로 구축되어 클라이언트가 WONT LINEMODE (을)를 답장했을 경우만 송신됩니다. 클라이언트가 WILL TM (을)를 답장했을 경우는, 클라이언트가 kludge linemode 를 서포트하고 있다고 판단됩니다. [-k] 옵션에 의해 이 기능을 무효로 할 수가 있습니다.

DO AUTHENTICATION
    telnetd 하지만 인증 기능을 서포트하는 설정으로 구축되었을 경우만 송신되어 자동 로그인에 사용하는 인증 정보를 수신하도록(듯이) 합니다.

DO ENCRYPT
    telnetd 하지만 데이터의 암호화를 서포트하는 설정으로 구축되었을 경우만 송신되어 데이터열에 대해서 암호를 복호 하도록(듯이) 지정합니다.

주
디폴트에서는, telnetd 하 /etc/gettytab (으)로부터 he, hn, im 의 케이파비리티를 읽어, (존재한다면) 이 정보를 사용해 login: prompt의 전에 무엇을 표시해야할 것인가를 결정합니다. im 케이파비리티에 우선한다 if 케이파비리티를 사용해, System V 스타일의 /etc/issue 파일을 사용할 수도 있습니다. im 또는 if (으)로 지정되는 정보는, 콘솔과 리모트 로그인의 양쪽 모두로 표시됩니다.

주
디폴트에서는, telnetd 하 /etc/gettytab (으)로부터 he, hn, im 의 케이파비리티를 읽어내, (존재하면) 이러한 정보를 사용해, login: prompt전에 무엇을 표시하는지를 판정합니다. if 케이파비리티를 사용해, System V style 스타일의 /etc/issue 파일도 사용할 수 있습니다. 이것은, im 에 우선합니다. im 또는 if (으)로 지정된 정보는, 콘솔과 리모트의 양쪽 모두의 로그인에 대해서 표시됩니다.

관련 파일
/etc/services
/etc/gettytab
/etc/iptos
    (서포트되고 있는 경우)
/usr/ucb/bftp
    (서포트되고 있는 경우)

관련 항목
bftp(1), login(1), gettytab(5), telnet(1) (서포트되고 있는 경우)

표준
RFC-854
    TELNET PROTOCOL SPECIFICATION
RFC-855
    TELNET OPTION SPECIFICATIONS
RFC-856
    TELNET BINARY TRANSMISSION
RFC-857
    TELNET ECHO OPTION
RFC-858
    TELNET SUPPRESS GO AHEAD OPTION
RFC-859
    TELNET STATUS OPTION
RFC-860
    TELNET TIMING MARK OPTION
RFC-861
    TELNET EXTENDED OPTIONS - LIST OPTION
RFC-885
    TELNET END OF RECORD OPTION
RFC-1073
    Telnet Window Size Option
RFC-1079
    Telnet Terminal Speed Option
RFC-1091
    Telnet Terminal-Type Option
RFC-1096
    Telnet X Display Location Option
RFC-1123
    Requirements for Internet Hosts -- Application and Support
RFC-1184
    Telnet Linemode Option
RFC-1372
    Telnet Remote Flow Control Option
RFC-1416
    Telnet Authentication Option
RFC-1411
    Telnet Authentication: Kerberos Version 4
RFC-1412
    Telnet Authentication: SPX
RFC-1571
    Telnet Environment Option Interoperability Issues
RFC-1572
    Telnet Environment Option

버그
몇개의 TELNET 명령은 부분적 밖에 실장되어 지금 없습니다.

오리지날의 4.2BSD 의 telnet(1) 의 버그에 대처하기 위해(때문에), telnetd (은)는, 어떤 종류의 애매한 프로토콜 변환을 실시하는 것으로, 리모트 클라이언트가 실제로 4.2BSD 의 telnet(1) 인지 어떤지를 판단하려고 합니다.

바이너리 모드는 잘 닮은 operating system (이 경우 Unix) 간 이외에서는 호환성이 없습니다.

리모트 클라이언트로부터 받은 단말 타입의 이름은 소문자에 변환됩니다.

telnetd (은)는, TELNET IAC GA (go ahead) 명령을 절대로 보내지 않습니다.

역사
IPv6 서포트는, WIDE/KAME 프로젝트가 추가했습니다.