September 5, 2011
Linux下做软RAID
"GUI:安装CentOS5.0过程中做软RAID:\nCLI:Linux下做软raid: http://docs.haohtml.com/download/linux/LINUX%c8%edRAID.pdf\n======== mdadm使用详解======================\n**\n**\n★mdadm简介\n我们可以使用man mdadm命令来查看mdadm的帮助信息:\n[root@localhost mdadm-2.6.2]# man mdadm\n☆mdadm用法 基本语法:\nmdadm [mode] [options]\n目前支持:\nLINEAR, RAID0(striping), RAID1(mirroring), RAID4, RAID5, RAID6, RAID10, MULTIPATH和FAULTY\n模式(7种):\nAssemble:加入一个以前定义的阵列 Build:创建一个没有超级块的阵列 Create:创建一个新的阵列,每个设备具有超级块 Manage: 管理阵列(如添加和删除) Misc:允许单独对阵列中的某个设备进行操作(如停止阵列) Follow or …"
September 5, 2011
scp 无密码在两台主机之间拷贝文件
"用scp 在两台主机之间相互之间拷贝文件,还是方面!但是需要密码!怎么样才能无密码相互之间拷贝文件呢! 以下就实现是方法! 在A主机上运行\n#ssh-keygen -t rsa\n[root@localhost ~]# ssh-keygen -t rsa\nGenerating public/private rsa key pair.\nEnter file in which to save the key (/root/.ssh/id_rsa):\nEnter passphrase (empty for no passphrase):\nEnter same passphrase again:\nYour identification has been saved in /root/.ssh/id_rsa.\nYour public key has been saved in /root/.ssh/id_rsa.pub.\nThe key fingerprint is:\n61:34:37:bd:03:aa:c8:85:0d:e9:d0:b6:6e:c2:50:89 root@localhost\n这样 …"
September 5, 2011
超级详细Tcpdump的用法
"第一种是关于类型的关键字,主要包括host,net,port, 例如 host 210.27.48.2,指明 210.27.48.2是一台主机,net 202.0.0.0 指明 202.0.0.0是一个网络地址,port 23 指明端口号是23。如果没有指定类型,缺省的类型是host.\n第二种是确定传输方向的关键字,主要包括src , dst ,dst or src, dst and src ,这些关键字指明了传输的方向。举例说明,src 210.27.48.2 ,指明ip包中源地址是210.27.48.2 , dst net 202.0.0.0 指明目的网络地址是202.0.0.0 。如果没有指明方向关键字,则缺省是src or dst关键字。\n第三种是协议的关键字,主要包括fddi,ip,arp,rarp,tcp,udp等类型。Fddi指明是在FDDI(分布式光纤数据接口网络)上的特定 的网络协议,实际上它是”ether”的别名,fddi和ether具有类似的源地址和目的地址,所以可以将fddi协议包当作ether的包进行处理和 分析。其他的几个关键字就是指明了监听的包的协议内容。 …"
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 …"