FAITHD(8)

명칭
faithd - FAITH IPv6/v4 변환 demon

서식
faithd [-dp] [-f configfile] service [serverpath [serverargs]]

해설
faithd 유틸리티는 IPv6 로부터 IPv4 에의 TCP 릴레이 기능을 제공합니다.

faithd (은)는 IPv4/v6 듀얼 스택 라우터상에서 기동하지 않으면 안됩니다.

TCPv6 트래픽이 발견되면(자), faithd (은)는 그 TCPv6 트래픽을 TCPv4 에 릴레이 합니다. 릴레이 한다 TCPv4 connection의 종점은, 원의 IPv6 종점의 말미 4 8중창으로부터 결정됩니다. 예를 들면, faithd 용으로 3ffe:0501:4819:ffff:: 하지만 예약되고 있어, TCPv6 종점 주소가 3ffe:0501:4819:ffff::0a01:0101 (이)라면, 이 트래픽은 IPv4 의 종점 10.1. 1.1 (을)를 향해 릴레이 됩니다.

faithd 에 의한 변환 서비스를 이용하려면 , IPv4 주소를 MAP하기 위한 IPv6 주소 프리픽스를 예약해 둘 필요가 있습니다. 커널은, 거기서 예약한 IPv6 아드레스프레픽스에의 모든 TCP connection를, route(8) (을)를 이용해 유사 인터페이스 faith(4) 에 루팅 하도록(듯이), 적절히 구축되어 있지 않으면 안됩니다. 또, sysctl(8) (을)를 이용해 net.inet6.ip6.keepfaith (을)를 1 (으)로 설정해 두어야 합니다.

라우터는, 예약되었다 IPv6 아드레스프레픽스행의 모든 TCP 트래픽을 잡도록(듯이) 설정하지 않으면 안됩니다. 이 때문에는 route(8) (와)과 sysctl(8) 의 명령을 사용합니다.

faithd 유틸리티는, 이름으로부터 주소에의 특별한 변환 기구를 필요로 해, 호스트명으로부터 특별한 IPv6 아드레스프레픽스에 해결합니다. 소규모의 인스톨에서는, hosts(5) (을)를 사용해 주세요. 대규모 인스톨에서는, 특별한 어드레스 변환을 서포트하는 DNS 서버가 유용하겠지요. totd (으)로 불리는 실장이 http://www.vermicelli.pasta.cs.uit.no/ipv6/software.html 그리고 입수 가능합니다. 변환된 DNS 레코드가 일반의 DNS 군에게 전파 되지 않게, 주의해 주세요. 매우 유해합니다.

  demon 모드
faithd 하지만 스탠드얼론 프로그램으로서 기동되면(자), faithd (은)는 자기 자신을 demon화합니다. faithd 유틸리티는 TCPv6 의 포트 service (을)를 listen 합니다. 포트 service 에의 TCPv6 트래픽을 찾아내면(자), connection를 릴레이 합니다.

faithd 하지만 TCP 포트 service (을)를 listen 하므로, inetd(8) (이)나 다른 표준적인 구조를 이용해, 그 라우터상에서 service 포트를 사용하는 로컬인 TCP demon를 동작시킬 수 없습니다. faithd 에 대해서 serverpath (을)를 지정하는 것으로, 라우터상에서 로컬 demon를 달리게 할 수가 있습니다. 종점 주소가 로컬의 인터넷 주소이면, faithd 유틸리티는 serverpath 에 두어 로컬 demon를 기동합니다. 그 이외의 경우, faithd (은)는 IPv4 TCP 에의 변환을 실시합니다. 로컬 demon의 인수는 serverargs (을)를 이용해 지정할 수가 있습니다.

다음의 옵션이 사용 가능합니다:

-d  syslog(3) (을)를 이용해 디버그 정보를 출력합니다.

-f configfile
    액세스 제어용의 설정 파일을 지정합니다. 후술을 참조해 주세요.

-p  IPv4 TCP connection를 최종의 종점전용으로 릴레이 할 때, faithd (은)는 소스 포트로서 특권 TCP 포토를 사용합니다. ftp(1) (이)나 rlogin(1) (을)를 릴레이 할 때는 본옵션은 불필요합니다. 그것을 위한 특별한 프로그램 코드가 포함되어 있습니다.

faithd 유틸리티는 통상의 TCP 데이터도 대역외 TCP 데이터도 릴레이 합니다. TCP half close 를 에뮤레이트 하는 일도 가능합니다. faithd 유틸리티는 ftp(1) (와)과 rlogin(1) 그리고 이용되는 프로토콜에 대해서, 특별한 서포트를 실시합니다. FTP 프로토콜을 전송 할 때는, faithd (은)는, PORT/LPRT/EPRT 명령 및 PASV/LPSV/EPSV 명령에 있어서의 네트워크 레벨 주소도 변환합니다. RLOGIN 프로토콜에 대해서는, faithd (은)는, 서버측의 rlogind(8) (으)로부터 클라이언트측의 rlogin(1) 에의 역방향 connection도 릴레이 합니다.

액티브하지 않은 세션은 30 분에 절단 합니다. 이것은, 사용하지 않게 된 세션의 탓으로 리소스가 소비되는 것을 막기 (위해)때문입니다. 서비스에 따라서는 이 기능은 적절하지 않을지도 모릅니다. (이 기능을 배치 가능하게 해야 할까요? )

  inetd 모드
faithd 하지만 inetd(8) (으)로부터 기동되면(자), faithd 유틸리티는 표준 입력으로부터 건네받는 connection를 취급합니다. connection의 종점이, 예약한 IPv6 아드레스프레픽스의 범위내의 경우, faithd (은)는 connection를 릴레이 합니다. 그 이외의 경우, faithd (은)는 서비스에 대응한다 telnetd(8) (와)과 같은 demon를 기동해, inetd(8) (으)로부터 건네받는 명령 인수를 사용합니다.

faithd (은)는, 로컬인 TCP 포트 번호를 바탕으로 동작 모드를 결정해, 필요한 때/가능한 때에는 특별한 프로토콜 처리를 유효하게 합니다. 예를 들면, faithd 하지만 FTP 포트상에서 inetd(8) (으)로부터 기동되면(자), 이것은 FTP 릴레이로서 동작합니다.

이 동작 모드에서는, inetd(8) 안에 faithd 용무의 특별한 서포트를 필요로 합니다.

  액세스 제어
악의 있는 액세스를 막기 위해, faithd (은)는 단순한 주소 베이스의 액세스 제어를 실장하고 있습니다. /etc/faithd.conf (또는 -f 그리고 지정했다 configfile) 그리고, faithd (은)는 바라지 않는 트래픽의 중계를 막습니다. faithd.conf (은)는, 다음의 서식의 지시문을 포함합니다:

•   src/slen deny dst/dlen

    문의의 시점 주소가 src/slen 에 합치하는 경우로, 변환 후의 종점 주소가 dst/dlen 에 합치하는 경우, 접속을 거부합니다.

•   src/slen permit dst/dlen

    문의의 시점 주소가 src/slen 에 합치하는 경우로, 변환 후의 종점 주소가 dst/dlen 에 합치하는 경우, 접속을 허가합니다.

이러한 지시문은 차례로 평가되어 최초로 합치하는 엔트리가 효과를 가집니다. 합치하지 않으면 (이것이 룰 세트의 최후인 경우) 트래픽은 거부됩니다.

inetd 모드에서는, inetd(8) 의 액세스 제어 기능으로 트래픽을 필터 가능합니다.

사용예
faithd (을)를 기동하기 전에, faith(4) 인터페이스를 적절히 설정해 둘 필요가 있습니다.

    # sysctl net.inet6.ip6.accept_rtadv=0
    # sysctl net.inet6.ip6.forwarding=1
    # sysctl net.inet6.ip6.keepfaith=1
    # ifconfig faith0 up
    # route add -inet6 3ffe:501:4819:ffff:: -prefixlen 96 ::1
    # route change -inet6 3ffe:501:4819:ffff:: -prefixlen 96 -ifp faith0

  demon 모드의 샘플
telnet 서비스를 변환해, 그리고 로컬인 telnet 서비스를 제공하지 않는 경우는, 다음과 같이 faithd (을)를 기동합니다:

    # faithd telnet

만약 /usr/libexec/telnetd 에 있다 telnetd(8) 에 의한 로컬 telnet 서비스를 제공하고 싶은 경우는, 다음의 명령행을 사용합니다:

    # faithd telnet /usr/libexec/telnetd telnetd

로컬 demon에게 추가의 인수를 건네주고 싶은 경우는:

    # faithd ftp /usr/libexec/ftpd ftpd -l

다른 사용예입니다. rsh/rlogin 서비스를 변환하려면 -p 하지만 필요할지도 모릅니다.

    # faithd ssh
    # faithd login /usr/libexec/rlogin rlogind
    # faithd shell /usr/libexec/rshd rshd

그렇지만, rlogin 나 rsh 의 connection를 변환할 경우에는 주의가 필요합니다. 한층 더 상세한 것에 대하여는 보안의 고찰 (을)를 참조해 주세요.

  inetd 모드의 샘플
inetd.conf(5) 에 다음의 행을 추가합니다. 구문은 operating system에 의해 여러가지이겠지요.

    telnet  stream  tcp6/faith  nowait  root  /usr/sbin/faithd  telnetd
    ftp     stream  tcp6/faith  nowait  root  /usr/sbin/faithd  ftpd -l
    ssh     stream  tcp6/faith  nowait  root  /usr/sbin/faithd  /usr/sbin/sshd -i

inetd(8) (은)는, listen 하는 소켓을 오픈해, 커널의 TCP 릴레이 서포트를 유효화합니다. connection가 도착하면(자), faithd 하지만 inetd(8) (으)로부터 기동됩니다. connection의 종점이, 예약한 IPv6 아드레스프레픽스의 범위내의 경우, faithd (은)는 connection를 릴레이 합니다. 그 이외의 경우, faithd 유틸리티는 서비스에 대응한다 telnetd(8) (와)과 같은 demon를 기동합니다.

  액세스 제어의 예
이하에 단순한 faithd.conf 설정을 나타냅니다.

    # 3ffe:501:ffff::/48 로부터의 모두에게 변환기의 사용을 허락해,
    # 다음의 IPv4 의 종점에 접속시킵니다:
    # - 10.0. 0.0/8 으로 127.0. 0.0/8 이외의 모두
    # 다른 접속은 허락하지 않습니다.
    #
    3ffe:501:ffff::/48 deny 10.0. 0.0/8
    3ffe:501:ffff::/48 deny 127.0. 0.0/8
    3ffe:501:ffff::/48 permit 0.0. 0.0/0

반환값
성공하면(자) faithd 유틸리티는 EXIT_SUCCESS (0) 그리고 종료해, 에러가 있는 경우는 EXIT_FAILURE (1) 그리고 종료합니다.

관련 항목
faith(4), route(8), sysctl(8) Jun-ichiro itojun Hagino, Kazu Yamamoto, An IPv6-to-IPv4 transport relay translator, RFC3142, ftp://ftp.isi.edu/in-notes/rfc3142.txt, June 2001.

역사
faithd 유틸리티는 WIDE Hydrangea IPv6 프로토콜 스택 킷으로 처음으로 등장했습니다.

KAME 프로젝트 (http://www.kame.net/) 스택에 기초를 두는 IPv6, IPsec 서포트는, FreeBSD 4.0 그리고 처음으로 통합되었습니다.

보안의 고찰
faithd ( 및 다른 TCP 릴레이 서비스) 그리고 릴레이 된 connection에 대해, rhosts(5) (을)를 시작으로 하는 IP 주소 베이스의 인증을 이용하는 것은 몹시 위험합니다.

faithd.conf 혹은 IPv6 패킷 필터를 사용해, faithd 에의 액세스 제한을 실시하는 것을, 관리자에게 추천합니다. 이것은 faithd (을)를 악의 어떤 사람들로부터 방어하는 것이어, 서비스/밴드폭을 도둑맞지 않게 하는 것을 의미합니다. IPv6 의 종점 주소에 대해서는, route(8) (을)를 이용해, faith(4) (을)를 가리키는 경로 엔트리를 주의 깊게 설정하는 것으로, 제한 가능합니다. IPv6 의 시점 주소에 대해서는, 패킷 필터로 필터 할 필요가 있습니다. 관련 항목 에 열거한 문서에, 본건에 관한 한층 더 논의가 기술되고 있습니다.