统一帐号管理

你还在自己写脚本批量增加机器的用户名、分组和修改密码或者同步主机的/etc/passwd吗?你还在使用脚本批量对用户设置权限吗?如果有一台帐号主机能够提供所有服务器的帐号、密码、权限控制,如此一来,如果想要增加、修改、刪除用户,只要到这台服务器上面处理即可,这样是不是很方便?


1. LDAP

  • 统一管理各种平台帐号和密码,包括但不限于各种操作系统(Windows、Linux),Linux系统sudo集成,系统用户分组,主机登入限制等;
  • 可与Apache,HTTP,FTP,SAMBA,ZABBIX,Jenkins等集成;
  • 支持密码策略(密码强度、密码过期时间、强制修改、超过验证错误次数锁定帐号)等;
  • 支持插件式鉴别模块PAM;
  • 不同平台权限的设定、划分。


2. jumpserver

一款由python编写开源的跳板机(堡垒机)系统,实现了跳板机应有的功能。基于ssh协议来管理,客户端无需安装agent,目前本版本处于beta阶段,线上环境慎用。试用了一下demo,感觉在统一帐号管理方面并不成熟。


3. NIS

类似于LDAP。

 

自动化部署

1. Fabric

优点

小巧,无需装agent,可以做一些简单的服务器部署操作,使用简单,容易上手,但功能比较有限,用了两天就切到ansible了。


缺点

部署机与服务器交互不太友好。


2. Ansible

  • 无需agent,基于ssh实现,对新申请的机器做初始化扩展不错;
  • 特性较多,日常部署需要的功能基本上都覆盖了,比如git、打包解压、copy文件、yum安装等等都已经集成到了核心模块里面,alternatives、xattr等模块也有所集成,当然,理论上所有操作都能用命令模块来完成。


缺点

  • 比较依赖网络的健壮性,网络不好的话会比较坑;
  • 还有SaltStack、Pupet、Chef等。

 

DNS

1. dnsmasq

  • 提供 DNS 缓存,DNS重定向、记录转发,DNS反向解析, DHCP 服务功能,配置简单;
  • 可以配置对上层DNS轮询请求记录;
  • 配置支持通配符,不用批量修改hosts。


2. pdnsd

  • 提供DNS缓存服务;
  • 设置向上级DNS请求方式(TCP、UDP,Both);
  • 设置多个上级DNS并设置请求规则;
  • 配置缓存保留时间。


3. namebench

  • Google自行研发的一款DNS测速工具;
  • 还有Bind等。


压力测试

1. ApacheBench

  • 创建多并发线程模拟多用户对URL访问进行压力测试;
  • Apache中有个自带的,名为ab的程序,ab可以创建很多的并发访问线程,模拟多个访问者同时对某一URL地址进行访问。


2. TCPcopy、UDPcopy

  • 直接对某一机器流量copy到另一机器进行压力测试;
  • 提到压力测试,可能大多数人首先想到的就是ApacheBench,但ab是模拟访问,模拟毕竟是模拟,然而线上会遇到的错误可能往往无法预知,其实国内已经有人开发了一款线上流量copy的工具,就是TCPcopy、UDPcopy,能够之间copy线上流量到测试环境,大大减少了上线前的风险。支持设置copy流量倍数放大、缩小,修改流量的客户端IP源地址。

3. TCPburn

  • 类似ApacheBench;
  • tcpburn是由网易自主研发的能够模拟千万级别并发用户的一个软件,目的是能够用较少的资源来模拟出大量并发用户,并且能够更加真实地进行压力测试, 以解决网络消息推送服务方面的压力测试的问题和传统压力测试的问题。

 

安全

1. PortSentry

对端口扫描的机器做防御策略;


特点

  • 给出虚假的路由信息,把所有的信息流都重定向到一个不存在的主机;
  • 自动将对服务器进行端口扫描的主机加到TCP-Wrappers的/etc/hosts.deny文件中
  • 利用Netfilter机制、包过滤程序,比如iptables和ipchain等,把所有非法数据包(来自对服务器进行端口扫描的主机)都过滤掉;
  • 通过syslog()函数给出一个目志消息,甚至可以返回给扫描者一段警告信息。


2.fail2ban

  • 对SSH密码暴力破解的机器做防御策略;
  • 防御 SSH 服务器的暴力破解攻击,对安全性要求过高的服务器还是建议禁止密码登入,使用密钥或者密钥+密码验证。


3. Google Authenticator

  • 可以将第二部验证设置为通过短信或语音电话接收验证码,同时也支持 Android、iPhone 或 BlackBerry 设备来生成验证码;
  • 一款开源的,可基于开放规则(如 HMAP/基于时间)生成一次性密码的软件。Google公司同时也支持插件式鉴别模块PAM,使其能和其他也适用PAM进行验证的工具(如OpenSSH)协同工作。