centos 6 mini安装(内容极其精简)
红帽官方中文文档
http://docs.redhat.com/docs/zh-CN/Red_Hat_Enterprise_Linux/index.html
默认邮件服务器就是postfix
升级系统
# yum install epel-release -y
# yum update
精简服务
1、chkconfig ip6tables off 关闭ipv6防火墙
2、chkconfig iscsi off 关闭iscsi服务
3、chkconfig iscsid off 关闭iscsi相关服务
4、chkconfig netfs off 关闭NFS,smaba和NetWare网络文件系统
5、chkconfig auditd off linux的审计功能
6、chkconfig nfslock off 关闭TCP/IP网络共享文件的协议的NFS的文件锁功能
7、chkconfig rpcgssd off 关闭 NFS v4
8、chkconfig rpcbind off 关闭RPC服务
9、chkconfig rpcidmapd off 关闭 NFS v4
10、chkconfig lvm2-monitor off 关闭系�y对Logical Volume Manager 逻辑磁区的支持
11、chkconfig lldpad off 关闭邻近发现协议
安装基本配置程序(cronie 为安装Cron)
# yum install -y setuptool ntsysv system-config-firewall-tui system-config-network-tui cronie wget vim unzip openssh-clients screen rsync ftp telnet (13)
setuptool Python的 distutilsde工具的增强工具(py2.3.5以上 64位py2.4)
ntsysv 设置系统的各种服务
system-config-firewall-tui 命令行用户接口(TUI)的防火墙客户端
system-config-network-tui 安装Fedora网络配置的工具
记录每次bash命令的执行时间
vi /etc/profile
这个文件是每个用户登录时都会运行的环境变量设置,当用户第一次登录时,该文件被执行. 并从/etc/profile.d目录的配置文件中搜集shell的设置。
加入(centos6最好加到第54行)
HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S "
export HISTTIMEFORMAT
安全配置
禁用selinux
编辑# vi /etc/selinux/config
/etc/selinux/config是/etc/sysconfig/selinux软连接的一个原文件 提供强制访问控制(MAC)安全系统
SELINUX=disabled
su加固
编辑配置文件
# vi /etc/pam.d/su
大约第六行去掉#
#auth required pam_wheel.so use_uid
禁用非wheel用户是用su
运行
# echo "SU_WHEEL_ONLY yes" >> /etc/login.defs
SU_WHEEL_ONLY yes 只允许wheel用户su到root
/etc/login.defs 设置用户帐号限制的文件,在这里我们可配置密码的最大过期天数,密码的最大长度约束等内容。该文件里的配置对root用户无效。
设置可以su的用户到wheel组
# useradd -G wheel yezhiqiu
# passwd yezhiqiu
SSH部分
# vim /etc/ssh/sshd_config
配置sshd服务器
修改端口号
大约第13行
1、Port 58022 定义ssh的连接端口
不允许用root进行登录
大约第42行
2、PermitRootLogin no
不允许空密码登录
大约第65行
3、PermitEmptyPasswords no
禁用DNS
大约第81行
4、GSSAPIAuthentication no
大约第122行
5、UseDNS no
最后一行只允许指定用户登录ssh
6、AllowUsers yezhiqiu
编辑防火墙文件
# vi /etc/sysconfig/iptables
加入
-A INPUT -m state --state NEW -m tcp -p tcp --dport 58022 -j ACCEPT
重启服务
# /etc/init.d/sshd restart
# /etc/init.d/iptables restart
添加监控宝的snmpd监控
# yum -y install net-snmp 是一个免费的、开放源码的网络监控
# vi /etc/snmp/snmpd.conf
# ------添加监控宝账号------
rocommunity jiankongbao 60.195.249.83 “rocommunity”表示这是一个只读的访问权限,监控宝只可以从你的服务器上获取信息,而不能对服务器进行任何设置
“jiankongbao”相当于密码
如果您使用的是插件 此处的ip 应该安装采集器的机器的ip
rocommunity jiankongbao 60.195.252.107
rocommunity jiankongbao 60.195.252.110
重启服务
# /etc/init.d/snmpd start
# chkconfig snmpd on
修改防火墙配置
# vi /etc/sysconfig/iptables
# ------添加防火墙规则------
-A INPUT -p udp -m udp --dport 161 -j ACCEPT
开启udp协议
重启防火墙
# /etc/init.d/iptables restart
校时
# yum install -y ntp
# /usr/sbin/ntpdate time.nist.gov IP为时间服务器IP
硬件同步
# /sbin/hwclock --systohc
加入备份脚本
# crontab -e
5 */6 * * * /usr/sbin/ntpdate time.nist.gov > /dev/null 2>&1
有些机房禁用UDP 可以使用rdate
# yum install -y rdate
5 */6 * * * /usr/bin/rdate -s stdtime.gov.hk > /dev/null 2>&1
安装第三方软件仓库
EPEL
# wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# rpm -ivh epel-release-6-8.noarch.rpm
修改enabled = 0默认不启用
# vim /etc/yum.repos.d/epel.repo
# yum --enablerepo=epel -y install htop pbzip2
rpmforge逐步淘汰不用
# wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
# rpm -ivh rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
修改enabled = 0默认不启用
# vim /etc/yum.repos.d/rpmforge.repo
# yum --enablerepo=rpmforge -y install htop unrar axel
htop实时监控
unrar 压缩软件60%以上压缩比
axel 一种下载软件 实行分段下载
优化Linux内核参数
# vi /etc/sysctl.conf
是配置一些系统信息,而且它的内容全部是对应于/proc/sys/这个目录的子目录及文件。
在末尾增加以下内容:
引用
# Add
1、net.ipv4.tcp_max_syn_backlog = 65536
表示用于向外连接的端口范围。缺省情况下很小:32768到61000,改为1024到65000。
2、net.core.netdev_max_backlog = 32768
每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目
3、net.core.somaxconn = 32768
定义了系统中每一个端口最大的监听队列的长度,这是个全局的参数,默认值为1024
4、net.core.wmem_default = 8388608
该文件指定了发送套接字缓冲区大小的缺省值(以字节为单位)。
5、net.core.rmem_default = 8388608
该文件指定了接收套接字缓冲区大小的默认值(以字节为单位)
6、net.core.rmem_max = 16777216
指定了接收套接字缓冲区(接收窗口)大小的最大值(以字节为单位) 最大的TCP数据接收缓冲
7、net.core.wmem_max = 16777216
指定了发送套接字缓冲区(接收窗口)大小的最大值(以字节为单位) 最大的TCP数据发送缓冲
8、net.ipv4.tcp_timestamps = 0
以一种比重发超时更精确的方法(请参阅 RFC 1323)来启用对 RTT 的计算;为了实现更好的性能应该启用这个选项,时间戳在(请参考RFC 1323)TCP的包头增加12个字节
9、net.ipv4.tcp_synack_retries = 2
syn-ack握手状态重试次数,默认5,遭受syn-flood(Dos与DDos)攻击时改为1或2
10、net.ipv4.tcp_syn_retries = 2
外向syn握手重试次数,默认4
11、net.ipv4.tcp_tw_recycle = 1
默认0,tw快速回收
12、#net.ipv4.tcp_tw_len = 1
表示开启重用。允许将TIME-WAIT sockets 重新用于新的TCP连接,默认为0,表示关闭
13、net.ipv4.tcp_tw_reuse = 1
表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;
14、net.ipv4.tcp_mem = 94500000 915000000 927000000
确定 TCP 栈应该如何反映内存使用;每个值的单位都是内存页(通常是 4KB)。第一个值是内存使用的下限。第二个值是内存压力模式开始对缓冲区使用应用压力的上限。
第三个值是内存上限。在这个层次上可以将报文丢弃,从而减少对内存的使用。对于较大的 BDP 可以增大这些值(但是要记住,其单位是内存页,而不是字节)
15、net.ipv4.tcp_max_orphans = 3276800
系统中最多有多少个TCP套接字不被关联到任何一个用户文件句柄上。如果超过这个数字,孤儿连接将即刻被复位并打印出警告信息。
这个限制仅仅是为了防止简单的DoS攻击,你绝对不能过分依靠它或者人为地减小这个值,更应该增加这个值(如果增加了内存之后)
16、#net.ipv4.tcp_fin_timeout = 30
表示如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间。
17、#net.ipv4.tcp_keepalive_time = 120
表示当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时,改为20分钟。
18、net.ipv4.ip_local_port_range = 1024 65535
指定端口范围的一个配置,默认是32768 61000
目前可以确定的是
#######
19、fs.aio-max-nr = 1048576
同时可以拥有的的异步IO请求数目
20、fs.file-max = 6815744
系统中可以同时打开的文件数目。
21、kernel.shmall = 2097152
参数是控制共享内存页数
22、kernel.shmmax = 536870912
内核参数定义单个共享内存段的最大值
23、kernel.shmmni = 4096
整个系统共享内存段的最大数目。
24、kernel.sem = 250 32000 100 128
表示设置的信号量,这4个参数内容大小固定。
25、net.ipv4.ip_local_port_range = 9000 65500
表示用于向外连接的端口范围。缺省情况下很小:32768到61000,改为1024到65000。
26、net.core.rmem_default = 262144
该文件指定了接收套接字缓冲区大小的默认值(以字节为单位)。
27、net.core.rmem_max = 4194304
指定了接收套接字缓冲区(接收窗口)大小的最大值(以字节为单位) 最大的TCP数据接收缓冲
28、net.core.wmem_default = 262144
该文件指定了发送套接字缓冲区大小的缺省值(以字节为单位)。
29、net.core.wmem_max = 1048586
指定了发送套接字缓冲区(接收窗口)大小的最大值(以字节为单位) 最大的TCP数据发送缓冲
#######
使配置立即生效:
/sbin/sysctl -p
-p 从指定的文件加载系统参数,如不指定即从/etc/sysctl.conf中加载;
调整ulimit
# vi /etc/security/limits.conf
Linux PAM中 pam_limits.so 的配置文件,而且只针对于单个会话。
在文件末加上:
* soft nofile 65535
* hard nofile 65535
soft nofile:单个用户可用的最大进程数量(软限制)
hard nofile:单个用户可用的最大进程数量(硬限制)
# vi /etc/security/limits.d/90-nproc.conf
修改
* soft nproc 1024
为
* soft nproc 65535
soft nproc: 可打开的文件描述符的最大数(软限制)
hard nproc: 可打开的文件描述符的最大数(硬限制)
设置logwatch发给指定邮箱
# yum install logwatch -y logwatch 日志监视器
# echo "MailTo = [email protected]" >>/etc/logwatch/conf/logwatch.conf
添加
MailTo = [email protected]
删除对httpd的日志分析在 /usr/share/logwatch/default.conf/logwatch.conf加入大约在86行
Service = "-http"
不监控的服务前面加 “-” , 如 -httpd , 即不监控 httpd 服务 , 可以写多条
如果需要自己编译软件
# yum install gcc gcc-c++ make automake autoconf patch
LAMP服务器做如下步骤:
# yum --enablerepo=epel install cronolog
cronolog日志切割工具
# yum install httpd mysql-server
# yum install postgresql-devel mysql-devel httpd-devel openssl-devel libxml2-devel zlib-devel curl-devel libmcrypt-devel mhash-devel libjpeg-devel libpng-devel gd-devel freetype-devel libtool-ltdl-devel
# yum install libevent-devel libc-client-devel readline-devel
# yum install libXpm-devel libxslt-devel krb5-devel net-snmp-devel
# cd /usr/lib64
# ln -s /usr/lib64/mysql/libmysqlclient.so
# yum install php53 php53-gd php53-devel php53-mbstring php53-mysql php53-xml php53-xmlrpc
附:
硬件检测:
# wget http://aspersa.googlecode.com/svn/trunk/summary
# chmod +x summary
# ./summary
CentOS升级流程:
yum clean all
yum update glibc\* -y
yum update yum\* rpm\* pyth\* -y
yum clean all
yum update mkinitrd nash -y
yum update selinux\* -y
yum update -y
shutdown -r now
安装常用附加软件
# yum install screen sysstat iptraf
iptraf :CLI 流量监控软件
screen:远程会话管理
sysstat:系统性能分析工具包
磁盘IO测试
yum --enablerepo=rpmforge install iozone
去掉atime提高文件系统性能:
可以在/etc/fstab中增加,noatime,nodiratime参数
降低文件系统权限
nosuid,noexec,nodev参数
杀毒软件
# yum --enablerepo=epel install clamd
升级病毒库
# freshclam --verbose
# clamscan -i -r /dir
备选库
http://rpms.famillecollet.com/
可以安装在centos5等低版本中安装php-fpm等软件