September 4, 2011
常用MYSQL安全设置加固
"1.修改root用户口令,删除空口令 2.删除默认数据库和数据库用户 3.改变默认mysql管理员帐号 4.关于密码的管理 5.使用独立用户运行msyql 6.禁止远程连接数据库 7.限制连接用户的数量 8.用户目录权限限制 9.命令历史记录保护 10.禁止MySQL对本地文件存取 11.MySQL服务器权限控制 12.使用chroot方式来控制MySQL的运行目录 13.关闭对无关的Web程序访问的支持 14.数据库备份策略 15. Mysqld安全相关启动选项 16.information_schema 安全\n1.修改root用户口令,删除空口令\n缺省安装的MySQL的root用户是空密码的,为了安全起见,必须修改为强密码,所谓的强密码,至少8位,由字母、数字和符号组成的不规律密码。使用MySQL自带的命令mysaladmin修改root密码,同时也可以登陆数据库,修改数据库mysql下的user表的字段内容,修改方法如下所示:\n# /usr/local/mysql/bin/mysqladmin -u root password “upassword” //使用mysqladmin …"
September 4, 2011
常用PHP安全设置加固
"1.隐藏php版本 2.禁用危险的php函数 3.命令注入攻击 4.SQL注入攻击 5.xss攻击 6.会话劫持攻击 7.关闭注册全局变量 8.上传文件 9.远程包含、本地包含 10.Php.ini包含补丁文件,我们可以根据需要,通过它包含或者nginx的模块\n1.隐藏php版本\nexpose_php=off\n2.禁用危险的php函数 popen,pentl_exec,passthru,exec,system,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,show_source,escapeshellcmd,escapeshellarg,curl_exec,curl_multi_exec,parse_ini_file,assert 至于eval函数,我们用suhosin把这些全部都加进eval的黑名 …"
September 2, 2011
linux下ssh使用rsa认证教程[原创]
"下面我们来对linux(centos)平台如何使用ssh的rsa认证功能来实现安全登录服务器的教程.为了安全我们一般不直接使用root这个用户,而使用其它用户来代替.如果需要root权限的时候,直接在服务器上进行su命令进行用户切换就可以了.\n一.配置/etc/ssh/ssh_config文件\nServerKeyBits 1024 //# 注释取消,将768改为1024 PermitRootLogin no //# 注释取消,将yes改为no 禁止root登录 RSAAuthentication yes //# 启用 RSA 认证 PubkeyAuthentication yes //# 启用公钥认证 AuthorizedKeysFile //# .ssh/authorized_keys # 验证公钥的存放路径 PermitEmptyPasswords no //# 取消注释,禁止空密码登录 PasswordAuthentication no //# 取消注释,禁止使用密码方式登录,有密钥谁还用密码啊 注意一下,在centos5.0之前SSH服务需要指明版本,#Protocol 2,1 …"
September 2, 2011
Nginx中的gzip模块简介
"gzip 语法: gzip on|off\n默认值: gzip off\n作用域: http, server, location, if (x) location\n开启或者关闭gzip模块\ngzip_buffers 语法: gzip_buffers number size\n默认值: gzip_buffers 4 4k/8k\n作用域: http, server, location 设置系统获取几个单位的缓存用于存储gzip的压缩结果数据流。例如 4 4k 代表以4k为单位,按照原始数据大小以4k为单位的4倍申请内存。 4 8k 代表以8k为单位,按照原始数据大小以8k为单位的4倍申请内存。\n如果没有设置,默认值是申请跟原始数据相同大小的内存空间去存储gzip压缩结果。\ngzip_comp_level 语法: gzip_comp_level 1..9\n默认值: gzip_comp_level 1\n作用域: http, server, location\ngzip压缩比,1 压缩比最小处理速度最快,9 压缩比最大但处理最慢(传输快但比较消耗cpu)。\ngzip_min_length 语法: …"
September 2, 2011
Facebook是怎么做MySQL备份的?
"Facebook的用户每天创造大量的数据,为了确保数据可靠的存储,我们每天进行数据备份.我们通过将原来的逻辑备份改成定制化的物理备份,显著地提升了备份的速度(不增加体积的情况下).\n从mysqldump到Xtrabackup\n我们使用mysqldump来进行每日的数据库备份,mysqldump对数据进行逻辑备份,就像应用访问数据库那样,mysqldump以SQL语句的方式从数据库中读取一张张表,将表结构和数据转保存到文本文件.mysqldump最大的问题是速度太慢(对于我们的一些大的数据库,通常要花24小时,甚至更久),并且以SQL语句的方式读取数据可能造成磁盘的随机读,这就会造成主机的load增大,影响性能.对于时间太长,我们可以跑多个实例来并发的做备份,这能缩短备份的时间,但是会造成更多的load,更影响主机的性能.\n另外一个可行的备份方式是进行物理备份(我们称之为二进制备份,binary backup),通过操作系统层面,读取数据库磁盘文件,而非通过SQL语句.这样的话在备份的过程中,数据不能像SQL读取的时候保持事务上一致的.只有当备份的数据文件在数据库里复原了,他们才又一致 …"
September 1, 2011
Linux系统监控工具之vmstat详解
"vmstat是一个十分有用的Linux系统监控工具,使用vmstat命令可以得到关于进程、内存、内存分页、堵塞IO、traps及CPU活动的信息。\n一、前言\n很显然从名字中我们就可以知道vmstat是一个查看虚拟内存(Virtual Memory)使用状况的工具,但是怎样通过vmstat来发现系统中的瓶颈呢?在回答这个问题前,还是让我们回顾一下Linux中关于虚拟内存相关内容。\n二、虚拟内存运行原理\n在系统中运行的每个进程都需要使用到内存,但不是每个进程都需要每时每刻使用系统分配的内存空间。当系统运行所需内存超过实际的物理内存,内核会释放某些进程所占用但未使用的部分或所有物理内存,将这部分资料存储在磁盘上直到进程下一次调用,并将释放出的内存提供给有需要的进程使用。\n在Linux内存管理中,主要是通过“调页Paging”和“交换Swapping”来完成上述的内存调度。调页算法是将内存中最近不常使用的页面换到磁盘上,把活动页面保留在内存中供进程使用。交换技术是将整个进程,而不是部分页面,全部交换到磁盘上。\n分页(Page)写入磁盘的过程被称作Page-Out,分页(Page)从磁盘重新回到 …"
September 1, 2011
PHP-FPM高负载的解决办法
"这里只是介绍了php-fpm的优化方法的,但一般情况下和nginx组合使用的时候,单独优化其中一项的话,作用不是特别的大,同时还需要对nginx进行优化.nginx的做法方法参考:.上面的优化前和优化后的图,看得出前后差距还是特别的大的.\n导致nginx 502 bad gateway的PHP-CGI(FASTCGI)\nNGINX频爆502 BAD GATEWAY的错误,看了网上的教程,仍没有彻底解决。\n目前我总结的解决502 BAD GATEWAY的方式有:\n1.视服务器的性能,在php-fmp.conf里增加max_children的值,我目前用的15.\n2.用reload参数定时重载php-fpm。这个主要原因是php脚本执行时间过长造成的,重载php-fpm能杜绝这个问题。如何彻底解决php-cgi脚本占用大量内存从而导致502错误的产生还值得进一步探讨,目前该做法不失为一种好办法。\n具体的做法是,用crontab让php-fpm平滑重启,从而不影响PHP脚本的运行。\n*/10 * * * * /usr/local/php/sbin/php-fpm reload …"
September 1, 2011
Linux主分区,扩展分区,逻辑分区的联系和区别
"言归正传,在安装 CentOS5.3 的过程中,会遇到磁盘分区的界面,下拉式菜单中有 4 个选项,这时你不要选择默认,打开下拉式菜单,选择最后一项(翻译成中文意思是:建立自定义的分割模式)。然后选择右下角的确认,在下一个对话界面里依序建立 / 、 /home 及 swap ,完成后如图。确认设置后的分割区。\n为强调重点,把图中重要内容,再写一遍。\n/ 根目录 ext3 hda1\n/home 用户目录 ext3 hda2\nSwap 交换分区 swap hda3\n对 hda1 的解释:\nhd : IDE 硬盘。如果是 SCSI 硬盘,则为 sd ,这个只能记住,没有更好的办法。\na: : 第一块硬盘。如果是第二块硬盘,则为 b ,依此类推 c,d……\n1 : 主分区。其中 1 , 2 , 3 , 4 都是主分区,从第 5 开始为逻辑分区,最大到 16\n磁盘容量与主分区、扩展分区、逻辑分区的关系:\n硬盘的容量=主分区的容量+扩展分区的容量扩展分区的容量=各个逻辑分区的容量之和\n一块物理硬盘只能有 : 一到四个主分区 ( 但其中只能有一个是活动的主分区 ), 或一到三个主分区 , 和一个扩展分 …"
September 1, 2011
Linux(nginx)下安装awstats日志分析软件
"这里用的是centos的系统,linux上的安装方法基本上都一样的.\n一.下载awstats软件\n从地址可以下载,这里使用的是最新的7.0的版本\n#cd /usr/local #wget http://cdnetworks-kr-1.dl.sourceforge.net/project/awstats/AWStats/7.0/awstats-7.0.zip#unzip awstats-7.0.zip awstats #chmod +x /usr/local/awstats/tools/awstats_configure.pl #chmod +x /usr/local/awstats/wwwroot/cgi-bin/awstats.pl #chmod +x /usr/local/awstats/tools/awstats_buildstaticpages.pl #用来存放swstats的数据文件 #mkdir /var/lib/awstats\n二.创建配置文件\n#cd /usr/local/awstats/tools/ #perl ./awstats_configure.pl\n根据提示信 …"
September 1, 2011
Linux下如何查看 CPU 信息, 包括位数和多核信息
"查看当前操作系统内核信息 # uname -aLinux redcat 2.6.31-20-generic #58-Ubuntu SMP Fri Mar 12 05:23:09 UTC 2010 i686 GNU/Linux\n查看当前操作系统发行版信息\n#cat /etc/issue\nUbuntu 9.10 n l查看cpu型号# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c\n2 Intel(R) Core(TM)2 Duo CPU P8600 @ 2.40GHz\n(看到有2个逻辑CPU, 也知道了CPU型号)查看物理cpu颗数\n# cat /proc/cpuinfo | grep physical | uniq -c2 physical id : 0\n(说明实际上是1颗2核的CPU)查看cpu运行模式\ngetconf LONG_BIT32(说明当前CPU运行在32bit模式下, 但不代表CPU不支持64bit)查看cpu是否支持64bit# cat /proc/cpuinfo | grep flags | grep ‘ …"