我不是一个有经验的系统pipe理员。 但是,我公司向客户远程分发软件,这意味着我偶尔需要在UNIX机器上调整或安装小脚本或服务。 这些服务器(虚拟的或物理的)通常是新鲜的,开箱即用,总是花费很多时间。
因此,我的问题是:你在一台新的“处女”机器上的第一步是什么? 哪些工具特别有用,顺序是什么? 另外,安装“太多”是否有任何伤害(我在想为什么不安装所有stream行的软件包(Java,mySQL,Apache,Tomcat等)?什么是好的做法,使生活更容易后来pipe理员?
这是我迄今为止所做的:
* Find out release: cat /etc/*-release * Kernel info: uname -a * Complier version: gcc -v * cpuinfo: cat /proc/cpuinfo * try out by hand whether apt-get, yum, up2date or fink exist
我宁愿保持尽可能简单的事情。 这意味着我首先准备新的安装,然后,一旦机器被locking和安全,安装我需要的应用程序。 我更喜欢做基地/最小安装的操作系统,然后添加包,因为我需要他们,而不是安装在开始的一切。
1)设置主机名/时区2)closures不需要的服务3)configurationnetworking4)configuration防火墙丢弃一切(进出)5)configuration包pipe理器指向本地回购6)包pipe理器更新(yum update / apt 7)创build用户帐户/设置SUDO 8)configurationSSHD,通过防火墙启用9)configurationsendmail / outbound邮件,通过防火墙启用10)在需要的地方推出私钥/公钥11)安装monitoring / logwatch
在这一点上,我会尝试离开系统(如果它是新的硬件)的一些烧伤。
然后,我会继续安装Apache / MySQL的任何需要。
我做的第一件事就是设置防火墙,所以只有ssh可用。 当我安装和configuration这些服务时,这是开放的更多的服务。
我安装的第一个工具是,如果他们还没有安装:
然后我把/ etc的一个档案副本,所以我可以在安装时参考系统状态。
安装“太多”会带来危害 – 它增加了你的潜在攻击范围,更多的服务安装和运行意味着更多的事情要补救,更多的事情要错过,configuration更多的东西等等。
如果您正在设置许多几乎完全相同的系统,为什么不设置一个系统并将其虚拟出来。 您可以编写一个脚本,以便在部署ghost映像后更改用户名,密码,主机名等以使系统具有唯一性。 另外,看看自动集中pipe理任务“傀儡” 。
如果是linux,你大部分的发行版本都会附带ls_release ,它会给你一些introrsting的信息:
user@rocket:~$ lsb_release -a Distributor ID: Ubuntu Description: Ubuntu 8.04.3 LTS Release: 8.04 Codename: hardy
谁在安装这些服务器? 贵公司是否对所提供的应用程序所需的软件,库等有最低要求?
我build议做一个主服务器的基础,可以用作一个模板,以相同的方式安装所有的客户服务器,就像RH或Fedora下的kickstart一样。 该模板可能包含您需要的所有软件。
否则,将服务器上的服务和软件减less到最低限度 – 只需要真正需要的东西。
用键configurationssh。 禁用通过ssh进行rootlogin。 使用sudo来pipe理服务器。 configuration防火墙(iptables)。