ntpdate us.pool.ntp.org我习惯用vim,不带代码高亮的vi用着很痛苦
shell> mv /bin/vi /bin/vi.bakshell> ln -s /usr/bin/vim /bin/vi二、配置YUM 1)备份初始的CentOS-Base.repo 2)关闭fastmirror 3)添加自定义镜像源源,南方电信用163,北方网通用搜狐;有必要的话再添加epel源 4)修改yum.conf排除一些包的升级,如php*5.3、kernel*等
shell>mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bakshell>vi /etc/yum/pluginconf.d/fastestmirror -->enable = 0shell>wget http://mirrors.163.com/.help/CentOS5-Base-163.reposhell>vi /etc/yum.conf -->exclude=php*5.3* exclude=kernel*三、设置Selinux、SSHD、iptables与其他服务 关闭selinux可以通过setup或者修改/etc/selinux/config来实现,记得重启
shell>vi /etc/selinux/config -->SELINUX=disabledSSH服务,只允许使用SSH2协议,使用1024位加密,禁止root登录,禁止空密码
shell>vi /etc/ssh/sshd_configport xxxx #最好指定一个10000以上的端口Protocol 2 #只是用SSH2ServerKeyBits 1024 #使用1024位加密MaxAuthTries x #指定一个密码错误的最大重试次数UseDNS noPasswordAuthentication yesPermitRootLogin no #禁止root登录修改/etc/sysconfig/i18n解决中文乱码,关闭不必要的众多系统服务
shell>vi /etc/sysconfig/i18n LANG="en_US.UTF-8" #指定系统使用的字符集 LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN" #指定应用程序使用的字符集,这行可以不要,注销掉 SUPPORTED="zh_CN.UTF-8:zh_CN:zh:en_US.UTF-8:en_US:en" #系统支持的字符集,重要 SYSFONT="latarcyrheb-sun16"使用Putty或SecureCRT等ssh客户端时,记得指定字符集为UTF8,与上面例子中的字符集对应。 四、修改系统时区,配置NTPD服务,严重不建议使用ntpdate这种断点式的时间更新方法,可能会引发很严重的问题 五、安装Apache+Mysql+PHP 通过Yum安装,过程很简单,安装之前记得yum list php mysql httpd,看看所获取的软件包版本是否是自己需要的
#安装/更新公用库和一些常用的RPMyum -y install gcc gcc-c++ autoconf make libtool libXaw dialog expect ntp expat-devel libxml2-devel libevent libevent-devel screen #安装/更新Apache/PHP/MySQL/MemCacheyum -y install httpd php php-devel mysql mysql-server mysql-devel memcachedyum -y install php-pecl-memcache #安装常用PHP扩展yum -y install php-mysql php-gd php-xml php-mcrypt php-mbstring php-pear php-snmp libdbi-dbd-mysql #Zend和eacclerator如果能找rpm包,也可以通过这种方式安装分别为apache和mysql建立用户,创建文档目录,日志目录,设置权限等等,日志和数据目录最好在不同的挂载点上#创建一个脚本来完成目录的创建于权限设置htdocs="/www/htdocs"mysql="/data/mysql"PHPLOG="/var/log/php"MYSQLLOG="/var/log/mysql" if [ ! -d $mysql ]; then mkdir -p $mysqlfi chown -R mysql:mysql $mysqlchmod 700 $mysql if [ ! -d $htdocs ]; then mkdir -p $htdocsfichown -R apache:apache $htdocs if [ ! -d $PHPLOG ]; then mkdir -p $PHPLOGfichown -R apache:apache $PHPLOG if [ ! -d $MYSQLLOG ]; then mkdir -p $MYSQLLOGfichown -R mysql:mysql $MYSQLLOGchmod 700 $MYSQLLOGchown -R apache:apache /var/lib/php/session六、配置Proftpd建立ftp服务 Purefptd和Proftpd都很不错,我是因为找不到Pureftpd的RPM包,而且越来越不愿意手动编译安装所以才选用了Proftpd,同样支持虚拟用户/mysql,使用ftpasswd的命令创建/修改/删除用户的时候要输入的参数是在比较多,我写过一个很烂但是可以很简单的执行这些操作的脚本,写的很丑,就不贴出来了:-)
shell>yum install proftpdshell>chkconfig –level 3 proftpd onshell>vi /etc/proftpd.conf#简单的配置文件修改 #添加下面代码进配置文件:AuthUserFile /etc/ftpd.passwdAuthGroupFile /etc/ftpd.group#关闭检测 shells:RequireValidShell off #设置仅使用虚拟用户认证:AuthOrder mod_auth_file.c #禁止PAM认证:PersistentPasswd offAuthPAM off #限制改变根目录:DefaulRoot ~ #结束shell>cd /usr/sbin/shell>wget http://www.castaglia.org/proftpd/contrib/ftpasswdshell>chmod +x ftpasswdftpasswd工具的格式如下:添加用户:ftpasswd -passwd -file /etc/proftpd/ftpd.passwd -uid {uid} -gid {gid} -home {home} -shell /sbin/nologin -des -name {username} 更改密码: ftpasswd -passwd -change-password -file /etc/proftpd/ftpd.passwd -name {username}删除用户: ftpasswd -passwd -delete-user -file /etc/proftpd/ftpd.passwd -name {username}更多命令执行 ftpasswd -help或查看:http://www.castaglia.org/proftpd/contrib/ftpasswd.html proftpd详细的配置文件说明在 这里,常见问题在 这里七、配置Awstats流量统计 到Awstats.org下载最新的RPM包安装即可,当然,按日统计的话,Apache里要配置Cronolog进行日志轮询
shell> yum -y install perl-libwww-perl.noarchshell> wget http://prdownloads.sourceforge.net/awstats/awstats-7.0-1.noarch.rpmshell> rpm -ivh awstats-7.0-1.noarch.rpmshell> cd /usr/local/awstats/tools/shell> ./awstats_configure.pl八、配置服务器监测报告 1)配置Logwath进行系统监控,不支持Sendmail的话可以配置MSMTP使用SMTP发送邮件
shell>vi /usr/share/logwatch/default.conf/logwatch.confMailto = logtome@domain.com #接受报告的邮箱Range = yestoday #报告的范围,默认昨天Detail = 10 #报告内容的详细程度Service = All #默认全部,可以单独指定mailer="/usr/local/msmtp/bin/msmtp -t" #我机器上没有sendmail,使用的是msmtpMSMTP我没有找到YUM安装包,开始手动编译安装 wget http://downloads.sourceforge.net/msmtp/msmtp-1.4.16.tar.bz2tar jxvf msmtp-1.4.16.tar.bz2cd msmtp-1.4.16./configure –prefix=/usr/local/msmtpmake && make install
配置MSMTP帐户cd /usr/local/msmtp/etcvi etc/msmtprc
#示例# Set default values for all following accounts.defaultslogfile /var/log/msmtp.logaccount srvlogwatch# SMTP邮件服务器地址host mail.rexian.net.cn# 发送的邮件Emailfrom log@abc.comauth login# 邮件服务器登录账号user xxx@ab.com# 邮件服务器登陆密码password xxxxx# Set a default accountaccount default : srvlogwatch
保存退出,然后chmod 600 msmtprc注:msmtprc设置属性为600后,如果web用户没有对这个文件的读取权限会导致无法在web或其他应用中使用shell里执行: /usr/local/msmtp/bin/msmtp youremail@test.com
输入任意字符,按Ctrl+D退出,看看是否能够收到邮件
还可以通过mutt发送(指定发件人/带附件/有抄送)echo "邮件内容" | mutt -e "my_hdr from:kuka<lucky@crsay.com>" -a /root/file.txt.zip -s "邮件主题" "用户1<user1@gmail.com>" -c user2@gmail.com 2)配置服务器厂商的硬件检测软件,如戴尔的Dset等,如果有办法定时检测,通过邮件发送就好了,还没研究 九、系统流量监控 我用的是轻量级的Monitorix,感觉还行,其他的那些功能强悍的以后再说吧 十、优化内核,修改文件句柄数 1)修改sysctl.confshell>vi /etc/sysctlnet.ipv4.tcp_max_syn_backlog = 65536net.core.netdev_max_backlog = 32768net.core.somaxconn = 32768net.ipv4.tcp_max_tw_buckets = 180000net.ipv4.tcp_sack = 1net.ipv4.tcp_window_scaling = 1net.ipv4.tcp_rmem = 4096 87380 4194304net.ipv4.tcp_wmem = 4096 16384 4194304 net.core.wmem_default = 8388608net.core.rmem_default = 8388608net.core.rmem_max = 16777216net.core.wmem_max = 16777216 net.ipv4.tcp_timestamps = 0net.ipv4.tcp_synack_retries = 2net.ipv4.tcp_syn_retries = 2 net.ipv4.tcp_tw_recycle = 1#net.ipv4.tcp_tw_len = 1net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_mem = 94500000 915000000 927000000net.ipv4.tcp_max_orphans = 3276800 ##################################################net.ipv4.tcp_fin_timeout = 30#net.ipv4.tcp_keepalive_probes = 5#net.ipv4.tcp_keepalive_intvl = 15#net.ipv4.tcp_keepalive_time = 1800#net.ipv4.ip_local_port_range = 1024 65535 net.nf_conntrack_max = 655360 net.netfilter.nf_conntrack_tcp_timeout_established = 1200 net.ipv4.ip_forward = 0net.ipv4.conf.default.rp_filter = 1net.ipv4.conf.default.accept_source_route = 0kernel.sysrq = 0kernel.core_uses_pid = 1net.ipv4.tcp_syncookies = 1kernel.msgmnb = 65536kernel.msgmax = 65536kernel.shmmax = 68719476736kernel.shmall = 4294967296 net.ipv6.conf.all.disable_ipv6 = 1修改完成后sysctl -p立即生效2)关于文件句柄 在Linux下,用ulimit -n 命令看到的是单个进程能够打开的最大文件句柄数量(socket连接也算在里面)。系统默认值1024。
shell>vi /etc/security/limits.conf#* soft core 0#* hard rss 10000#@student hard nproc 20#@faculty soft nproc 20#@faculty hard nproc 50#ftp hard nproc 0#@student - maxlogins 4* - nofile 65536增加最后一行,修改句柄数量为65536
*表示针对所有用户
hard/soft分别是指硬性限制还是软性限制 65536是指句柄数量