I have a couple questions about pipsecd and OpenSSL on FreeBSD...  I
cannot find a pipsecd document or anything, so I am mailing you, hoping
to find answers.

1) Is there a good document that covers OpenSSL usage?  I found
openssl.org's documentation section to be rather...  lacking...
2) What kind of key generation do I need for pipsecd?
3) where does the priate key get generated if you openssl genrsa -o
keyfile, if any?  
3.5) If not rsakeygen, how do I go about creating key pairs for
client/server or server/server authentication?
4) Have any of you used pipsecd?  Good?  Bad?  Ugly?
5) Can anyone recommend a book on SSL?

I am looking at a replacement for our current VPN using PPP over SSH,
and ipsec seems to be the way to go.

Attached is the only readme for pipsecd, and the sample configuration
file, in case it helps.

Thanks very much in advance.

--README--
$Id: README,v 1.11 1999/06/28 16:03:28 beyssac Exp $

Currently implements:

        - IPSEC-compliant IP tunnelling (i.e., tunnel-mode only):
            - authentication: IP-AH (RFC 2402) and HMAC (RFC 2104) with:
                        RFC 2403: MD5 (HMAC-MD5-96)
                        RFC 2404: SHA1 (HMAC-SHA1-96)
                        RIPEMD160 (HMAC-RIPEMD160-96)
            - encryption: IP-ESP (RFC 2406) with:
                        Blowfish in CBC mode.
                        RFC 2405: DES in CBC mode.
                        DES3 in CBC mode.
                        CAST in CBC mode.
                        IDEA in CBC mode.
              Additional authentication is supported too, with the same
methods
              as in AH mode.
        - IP tunnels over UDP with MD5 (simple keyed hash)
authentication.
        - IP tunnels over ICMP ECHO REPLY with HMAC-MD5-96
authentication.

You NEED to first install the OpenSSL "crypto" library (previously
part of SSLeay). See http://www.openssl.org/ for download and mirrors.

- compile and install
- under *BSD: make a kernel with the "tun" device, by adding the
following
  line to your kernel configuration:

        pseudo-device tun 1

  Then remake a kernel (config MYKERNEL; cd ../../compile/MYKERNEL;
        make depend; make; mv /kernel /kernel.old; cp kernel /)

- under Linux: install the "userlink" module, port of the BSD tun driver

- create the file /etc/ipsec/pipsecd.conf (see pipsecd.conf.sample
  for an example)

- start /usr/local/sbin/pipsecd

- under *BSD:
        ifconfig tun0 <virtual_local_ip> <virtual_dest_ip> netmask
<mask> mtu 1440

- under Linux 2.0.x:
        ifconfig ul0 <virtual_local_ip> pointopoint <virtual_dest_ip>
netmask <mask> mtu 14
40
        route add <virtual_dest_ip> ul0

- under Linux 2.2.x, approximately this (I need to check the MTU stuff):
        ifconfig ul0 <virtual_local_ip> pointopoint <virtual_dest_ip>
netmask <mask>
        ip route add <virtual_dest_ip> mtu 1440 dev ul0
  (portability? what do you mean?)

- once this works, you can create the script /etc/ipsec/startup
  and make it executable. It's run after the program starts, you
  can put there any interface configuration, routes, mtu and such.

- this should be done on both ends, of course. Then a ping to the remote
  point to point virtual address (the one ifconfig shows) should work.

>From then on, add any routes or routing protocols of your liking.
Be careful, however, that the route to the REAL IP address of the
other end of the tunnel is not routed _through_ the tunnel, as it
would create a loop (the program detects this and warns you but is
unable to correct it).
--README--

--CONFIG--
#
# $Id: pipsecd.conf.sample,v 1.3 1999/08/17 10:15:08 beyssac Exp $
#
# Syntax:
#
# Security Association lines:
#
# For authentication:
#       sa <encap_type> spi=<spi> auth=<auth> [dest=<dest_ip>]
akey=<auth_key>
#       <encap_type>: ipah, icmp or udp.
#       <auth>: hmac-md5-96, sha1-md5-96 or hmac-rmd160-96.
#       <akey>: authentication key
#
# For encryption:
#       sa <encap_type> spi=<spi> enc=<encr> [dest=<dest_ip>]
ekey=<encrypt_key>
#               [auth=<auth> akey=<auth_key>] [noiv]
#       <encap_type>: "ipesp"
#       <encr>: blowfish_cbc, cast_cbc, des_cbc, des3_cbc, null.
#       <ekey>: encryption key
#       optional <auth>: hmac-md5-96, sha1-md5-96 or hmac-rmd160-96.
#       optional <akey>: authentication key
#       optional "noiv": use an implicit initialization vector made
#                        from the sequence number (OpenBSD-compatible
mode,
#                        untested)
#
# Common parameters for SA descriptions:
#       <dest_ip>: (optional) REAL IP address of the remote end,
#                  to define a remote SA.
#                  If not included, the SA is considered local.
#       
# Interface lines:
#       if <device_path> local_spi=<local_spi> remote_spi=<remote_spi>
#
#       <device_path>: path to the tunnel device for this virtual link
#       <local_spi>: SPI for the local SA
#       <remote_spi>: SPI for the remote SA
#
#
sa ipah spi=1000 auth=hmac-md5-96 akey=0102030405060708090a0b0c0d0e0f
dest=1.2.3.4
sa ipah spi=1000 auth=hmac-md5-96 akey=deadbeefdeadc0deadbeefdeadc0de
sa ipesp spi=1001 enc=blowfish_cbc ekey=f1f2f3f4f5f6f7f8f9fafbfcfdfeff
dest=5.6.7.8
sa ipesp spi=1001 enc=blowfish_cbc ekey=d00db00fd00d00d00db00fd00dc00e
if /dev/tun0 local_spi=1000 remote_spi=1000
if /dev/tun1 local_spi=1001 remote_spi=1001
--CONFIG--

-- 
Brian Nelson                                             Network Minion
mailto:[EMAIL PROTECTED]                      PocketScience, Inc.
*                   Press every key to continue.
begin:vcard 
n:Nelson;Brian
x-mozilla-html:FALSE
org:PocketScience, Inc;Network Operations
adr:;;;;;;
version:2.1
email;internet:[EMAIL PROTECTED]
title:Network Daemon
x-mozilla-cpt:;0
fn:Brian Nelson
end:vcard

Reply via email to