Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 10 Aug 2000 04:21:38 +0900 (JST)
From:      akr@m17n.org
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   kern/20508: process in jail(8) with 127.0.0.2 cannot connect servers on 127.0.0.1. 
Message-ID:  <20000809192138.54089404@flux.etl.go.jp>

next in thread | raw e-mail | index | archive | help

>Number:         20508
>Category:       kern
>Synopsis:       process in jail(8) with 127.0.0.2 cannot connect servers on 127.0.0.1
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Wed Aug 09 12:30:00 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator:     Tanaka Akira
>Release:        FreeBSD 4.0-RELEASE i386
>Organization:
m17n
>Environment:

FreeBSD flux 4.0-RELEASE FreeBSD 4.0-RELEASE #0: Fri Jul  7 00:53:54 JST 2000     akr@flux:/usr/src/sys/compile/AKR  i386

>Description:

When jail is created with 127.0.0.2 and jailed process try to connect
127.0.0.1:79 (finger daemon), it cannot connect.

This problem is reproduced for all daemons that is explicitly bind to
127.0.0.1 and not reproduced for daemons that accepts connection for all
interfaces.

>How-To-Repeat:

Insert following lines in /etc/rc.conf.

  ifconfig_lo0_alias0="inet 127.0.0.2 netmask 0xffffffff" 
  inetd_flags="-wW -a 127.0.0.1"

Check lo0 configuration.

# ifconfig lo0
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x5 
        inet6 ::1 prefixlen 128 
        inet 127.0.0.1 netmask 0xff000000 
        inet 127.0.0.2 netmask 0xffffffff 

Check inetd.  inetd listens 127.0.0.1:79.

inetd listens 127.0.0.1:79 and telnet to it works well
even if source IP address is specified as 127.0.0.2.

# netstat -n -a |grep 79
tcp4       0      0  127.0.0.1.79           *.*                    LISTEN
# grep finger /etc/inetd.conf
finger  stream  tcp     nowait/3/10 nobody /usr/libexec/fingerd fingerd -s
finger  stream  tcp6    nowait/3/10 nobody /usr/libexec/fingerd fingerd -s
# ps auxww|grep inetd
root      372  0.0  0.5  1020  660  p0  S+    4:11AM   0:00.00 grep inetd
root      160  0.0  0.5  1012  676  ??  Ss    4:05AM   0:00.02 inetd -wW -a 127.0.0.1
# grep \^finger /etc/services
finger           79/tcp
finger           79/udp

Without jail, telnet to it works well even if source IP address is
specified as 127.0.0.2.

# telnet -s 127.0.0.2 127.0.0.1 79
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
root
Login: root                             Name: Charlie Root
Directory: /root                        Shell: /bin/csh
Last login Tue Aug  8 14:59 (JST) on ttyv1
No Mail.
No Plan.
Connection closed by foreign host.

Setup jail to run telnet.

# cd /var/tmp
# mkdir jail
# cd jail
# mkdir -p usr/lib usr/libexec 
# cp /usr/libexec/ld-elf.so.1 usr/libexec
# ldd /usr/bin/telnet 
/usr/bin/telnet:
        libncurses.so.5 => /usr/lib/libncurses.so.5 (0x2807a000)
        libcrypto.so.1 => /usr/lib/libcrypto.so.1 (0x280b9000)
        libkrb.so.3 => /usr/lib/libkrb.so.3 (0x28156000)
        libcrypt.so.2 => /usr/lib/libcrypt.so.2 (0x2816f000)
        libcom_err.so.2 => /usr/lib/libcom_err.so.2 (0x28184000)
        libmp.so.3 => /usr/lib/libmp.so.3 (0x28186000)
        libipsec.so.0 => /usr/lib/libipsec.so.0 (0x28190000)
        libc.so.4 => /usr/lib/libc.so.4 (0x2819a000)
# cp /usr/lib/libncurses.so.5 /usr/lib/libcrypto.so.1 /usr/lib/libkrb.so.3 /usr/lib/libcrypt.so.2 /usr/lib/libcom_err.so.2 /usr/lib/libmp.so.3 /usr/lib/libipsec.so.0 /usr/lib/libc.so.4 usr/lib
# cp /usr/bin/telnet .

Run telnet and it fails.

# jail /var/tmp/jail xxx 127.0.0.2 /telnet 127.0.0.1 79
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
telnet: Unable to connect to remote host

I think it shouldn't be failed.

>Fix:


>Release-Note:
>Audit-Trail:
>Unformatted:


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20000809192138.54089404>