Ports Tree を最新に保つ
昔は cvsup を利用していたが、今は portsnap を利用するようだ。
portsnap と cvsupについて
CVSup の短所は
- CVSup is insecure. The protocol uses no encryption or signing, and any attacker who can intercept the connection can insert arbitrary data into the tree you are updating.
- CVSup isn't end-to-end. Related to the previous point, this means that anyone who can compromise a CVSup mirror can feed arbitrary data to the people who are using that mirror.
- CVSup isn't designed for frequent small updates. While CVSup is very good at distributing CVS trees, and is very efficient for updating a tree which has been significantly changed (eg, by a month or more of commits), it transmits a list of all the files in the tree, which makes it quite inefficient if only a few files have changed.
- CVSup uses a custom protocol. This can cause problems for people behind firewalls -- outgoing connections on port 5999 need to be permitted -- and it needs a heavyweight server (cvsupd).
Secure FreeBSD ports tree updating
要するに、
- CVSup は暗号化されていないし、電子署名も使われていないから、安全とは言えない。
- CVSup の通信は end-to-end (通信路上に伝送誤りや故障の可能性がある以上、エンドシステム間でのデータの検証が必要だという認識) ではない。よって、通信経路上で通信内容の変更が可能である。
- CVSup は小さな変更を反映する用途には向かない。CVSup はわずかな変更であっても、ツリー全体を更新してしまうため、非効率である。
- CVSup は独自プロトコル(5999番ポート/TCP)を利用しているため、ファイヤーウォールの背後にいるユーザーの利便性が下がる。また、リソースを多く必要とする cvsupd サーバーの稼動が必要になる。
という点が挙げられる。
portsnap の特長
だからこそ、portsnap を下記の理由で利用する。
Portsnap avoids these problems by operating over HTTP (using FreeBSD's fetch(1) utility and a new experimental pipelined HTTP client), signing the snapshots using OpenSSL, and using more sophisticated delta compression to distribute the snapshots.
- 通信には HTTP プロトコルを採用する。
- OpenSSL を用いて snapshots の認証を行っている。
- snapshots の流通に delta 圧縮(Binary diff/patch utility)を採用している
portsnap 利用時の注意点
Please note that when extracting a copy of the FreeBSD ports tree, portsnap will remove existing files. If you have any local changes (eg, extra patches which you've added into a port's files/ directory) then you'll have to put those back after updating the ports tree.
http://www.daemonology.net/portsnap/