Hardening production servers

Paul Smith paul at cnt.org
Tue Jul 8 18:29:46 PDT 2003

Gregory Bond <gnb at itga.com.au> wrote on 08/Jul/03 at  6:35 PM:
> Here's what we do:
> For the system:
>  - A separate build box, spec'd no higher than the lowest production machine
>  - keep a CVS repository on the build box
>  - buildbox /etc/make.conf has KERNCONF="SERVER CLIENT1 CLIENT2..."
>  - run make update / make buildworld / make buildkernel on the build box
>  - Install kernel & world on the build box, run mergemaster, etc as documented
>  - run the build box for a couple of days (rebuilding ports etc) to check it 
>    out
>  - NFS mount /usr/src and /usr/obj readonly on each client
>  - client /etc/make.conf has KERNCONF=CLIENTn
>  - installkernel / installworld / mergemaster on the client in the normal way
> For the ports:
>  - use portupgrade on build box and clients
>  - build box has the union of all the client package sets installed on it
>  - build box does "portupgrade -p" to build packages
>  - client boxes NFS mount /usr/ports/ (including /usr/ports/packages)
>      (can also do it with a local CVSup'd /usr/ports and using FTP to 
>       the build box to get the packages, but that's harder to get right.)
>  - clients run portupgrade -PP to use the packages only
> This works well enough for us with a similar number of servers.

Say a system like this were put into place to support existing production
servers. What's the cleanest/most elegant/least destablizing way to remove
the compiler tools on those machines?

Paul Smith <paul at cnt.org>
Webmaster/Systems Administrator
Center for Neighborhood Technology
Chicago, Illinois USA

More information about the freebsd-stable mailing list