📄 readme
字号:
PKCIPE - public key based configuration tool for CIPEOlaf Titz, November 2000This is alpha stuff, much of it does not work as intended - basicfunctionality only. More to come. Expect bugs and hopefully not tooincompatible changes.This package allows to manage CIPE links without the need forstatically configuring secret keys. It also eases the use of CIPE withdynamic carrier addresses.Installation instructions:1. Make sure you have the necessary prerequisites (i.e. OpenSSL).2. Install CIPE as usual.3. Look at the ip-up and ip-down samples in this package. Install the snippets in your global ip-up and ip-down. They manage the PID files and act on the ARG parameter, without this pkcipe won't work correctly.4. Set up options files for your peers in /etc/cipe/pk/NAME and copy their public keys there. See below.It works like this: each machine in the VPN has an identity (may beits host name) and a public/private RSA key pair. Its private key isstored in /etc/cipe/identity.priv. For every allowed CIPE connection,the public key of the other part is stored, along with configurationparameters, in /etc/cipe/pk/NAME (where NAME is the identity of the otherpart). Thus storing a public key gives permission to connect, similarto the SSH package (it is important to know how this works to not openholes).The pkcipe program uses these keys to authenticate against otherinstances. For this a signed Diffie-Hellman key exchange (which alsoproduces the formerly-known-as-"static key" for ciped) is performed.The identities are checked and configuration options are negotiated.When everything is right, pkcipe spawns ciped.The pkcipe program can act as a server or client but this is only forTCP connection establishment, the protocol is symmetric. Inparticular, each host is authenticated against each other.It is invoked as follows, NAME gives the own identity and defaultsto the host name:pkcipe -i NAME to be invoked from inetdpkcipe -c HOST:PORT NAME to connect to HOST:PORTOther arguments to pkcipe are: -k keyfile gives location of private key file -r ipaddr routing IP address. Only for unusual cases, s.b. -D flags Debugging flags. -E Use stderr instead of syslog. (Debugging only, incompatible with -i.) -p proto Fall back to given protocol level. -t secs Set timeout.After successful authentication and parameter exchange, pkcipegenerates an options file under /var/run/cipe and invokes ciped withthis options file. /etc/cipe/options is only used for defaults, itshould not contain stuff specific to any link (e.g. it may contain"ipaddr" but not "ptpaddr").To generate keys, use the "rsa-keygen" script:rsa-keygen NAME writes the private key into the file NAME.priv and the correspondingpublic key into NAME. It should be invoked on each host, the privatekey should be moved to /etc/cipe/identity.priv and the public keyshould be copied to the other machine(s). The public key files aretext files, it is possible (and necessary) to append options in theusual format to these files _after_ the key."make install" generates a key and stores it in the /etc/cipe directory.Note: option negotiation does not really work in this version. Theonly options currently handled by pkcipe are: key, me, peer, arg. (arg_must_ contain the peer's identity; the ip-up script needs to act onthis.) All other options (currently) have to be set in the public keyfiles. These are the options _we_ want to use when talking to thatpeer, not the peer's options (e.g. "ipaddr" is our own address).This is already enough to manage dynamic carriers: the dynamic endcalls pkcipe -c HOST:PORT with the static end as HOST, it will pick upits own IP address and report this to the static end which tells it toits ciped. (For two dynamic ends use a dynamic-DNS service on one endand pretend that's the static one. Again, there is no distinctionbetween server and client; each one tells the other its current IPaddress.) On the static end pkcipe will need to run from inetd.The "routing IP address" argument is used to find out the right deviceand IP address for connecting to the peer. This is usually the peer IPaddress itself but when connecting through a tunnel or proxy, it maybe necessary to explicitly tell pkcipe the real address.This needs the OpenSSL package (http://www.openssl.org), version 0.9.6or later. The configure script tries to find the right path forincludes and libraries.Do not use the --enable-bug-compatible configuration for CIPE.PCKIPE can not check this.TO DO: implement real parameter negotiation. Protocol hooks are there,PPP-style.TO DO: Currently the use of "ciped-cb" is hardcoded. This is one ofthe next deficiencies to be fixed; it will be possible to select anavailable device type.TO DO: clean up the code. Too many globals, no module separation, etc.TO DO: write better docs.$Id: README,v 1.6 2001/11/18 18:27:04 olaf Exp $
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -