Archive for the ‘vps教程’ Category

CentOS iptables配置笔记

2011-01-14

针对网站近期被入侵的现状,对iptables做以下设置,提升服务器安全性能

(1)屏蔽所有端口
(2)把SSH的缺省端口设置为56565
(3)把56565、80、3306端口打开
(4)把3306端口设置为只允许本机访问

如果没有安装iptables的话,运行命令yum install iptables完成iptables安装

初始化安装以后,显示为以下信息:

  1. [root@tp ~]# iptables -L -n
  2.  
  3. Chain INPUT (policy ACCEPT)
  4.  
  5. target prot opt source destination
  6.  
  7. Chain FORWARD (policy ACCEPT)
  8.  
  9. target prot opt source destination
  10.  
  11. Chain OUTPUT (policy ACCEPT)
  12.  
  13. target prot opt source destination

(1)屏蔽所有端口

  1. [root@tp ~]# iptables -F
  2. [root@tp ~]# iptables -X
  3. [root@tp ~]# iptables -P INPUT DROP
  4. [root@tp ~]# iptables -P OUTPUT DROP
  5. [root@tp ~]# iptables -P FORWARD DROP

当超出了IPTABLES里filter表里的两个链规则 (INPUT,FORWARD)时,不在这两个规则里的数据包怎么处理呢,那就是DROP(放弃),有同学喜欢配置OUTPUT为accpet,因为如果被入侵,对方可以使用服务器做为中转,发起攻击,也会产生大量的数据包,所以这里配置为DROP

(2)把SSH的缺省端口设置为56565

在修改ssh端口时,应先把要修改的端口号56565加入白名单

  1. [root@tp ~]# iptables -A INPUT -p tcp --dport 56565 -j ACCEPT
  2. [root@tp ~]# iptables -A OUTPUT -p tcp --sport 56565 -j ACCEPT
  3. [root@tp ~]# /etc/rc.d/init.d/iptables save
  4. [root@tp ~]# service iptables restart

再修改端口号

  1. [root@linux ~]# vi /etc/ssh/sshd_config

将"#Port 22"修改为"Port 56565"

重启ssh服务

  1. [root@linux ~]# /etc/init.d/sshd restart
  2. Stopping sshd: [ OK ]
  3. Starting sshd: [ OK ]

如果想看看sshd端口号是否修改成功的话,可以使用 netstat -an 命令查看一下或退出ssh使用新端口号登陆尝试。

(3)把80端口打开

  1. [root@tp ~]# iptables -A INPUT -p tcp --dport 80 -j ACCEPT
  2. [root@tp ~]# iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT
  3. [root@tp ~]# /etc/rc.d/init.d/iptables save
  4. [root@tp ~]# service iptables restart

(4)把3306端口设置为只允许本机访问

  1. [root@tp ~]#/sbin/iptables -A INPUT -p tcp -s 127.0.0.1 --dport 3306 -j ACCEPT
  2. [root@tp ~]#/sbin/iptables -A OUTPUT -p tcp -s 127.0.0.1 --dport 3306 -j ACCEPT

至此,完成CentOS iptables配置,此配置可提升服务器安全性能,过滤掉一些常见的linux攻击,对于少量爆超管系统权限的linux 0day攻击,也只能算走运了。
 

反向代理介绍及配置

2010-10-14

1、什么是反向代理?
反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。

2、反向代理有何作用?
(1)提高安全性:可以提供从防火墙外部代理服务器到防火墙内部安全内容服务器的加密连接。
(2)可以允许客户机安全地连接到代理服务器,从而有利于安全地传输信息(如信用卡号)。
(3)做负载均衡。

3、正向代理与反向代理有何区别?
如图所示:
反向代理示意图

4、如何来配置反向代理服务器?

以nginx为示例,修改nginx配置文件/usr/local/nginx/conf,代码如下:

  1. server
  2. {
  3. listen       80;
  4. server_name kuankuan.net www.kuankuan.net;
  5.   location / { 
  6.     proxy_pass http://192.168.1.103:8081;
  7.   }
  8. access_log off;
  9. }

php执行.sh命令

2010-08-01

工作需要用不定期执行服务器上的几个脚本,所以用上次的定时备份脚本的方法行不通,PHP提供共了3个专门的执行外部命令的函数:system(),exec(),passthru(),尝试使用php来执行.sh命令,以下为测试代码(已经测试成功):

<?php

$sys= "/home/abc.sh";

exec($sys,$result);

print_r($result);

?>

exec ()函数与system()类似,执行命令但不会输出结果,而是返结果的最后一行,所以上述代码显示的结果为:

Array ( )

网上有很多朋友说命令执行不成功,可以检查以下原因:

1、执行这个命令需要特殊用户组权限可以执行以下命令

chown -c /home/abc.sh apache

2、使abc.sh有可执行的权限

chmod +x abc.sh

vps数据备份脚本 - vps教程

2010-07-11

  以前的站点放在服务器的缓存盘因为服务器中断导致数据丢失了,又一次提醒我数据备份的重要性;最近有接触到廉价的vps,感觉在性能上会有问题,最担心的就是数据丢失的问题了,恰好对数据做个远程备份,方便站点迁移和数据保存。

简要说明:在/root目录下新建一脚本backup.sh,通过crontab对网站数据进行定时备份,然后新建一ftp进程,自动上传至远程ftp服务器。

使用的空间:godaddy的免费空间 (注册域名可申请,有广告,测试过,速度不错)

脚本如下(点击下载):

#!/bin/bash
/usr/bin/mysqldump -u mysql用户名 -pmysql密码 –opt mysql数据库名 > /var/www/rsqq/$(date +%Y%m%d)-rsqq.sql
cd /var/www/rsqq.com
tar -zcvf $(date +%Y%m%d)-rsqq.tar.gz ./*
echo "open ftp的ip地址
user ftp用户名 ftp密码
bin
prompt off
mput $(date +%Y%m%d)-rsqq.tar.gz
printf "\n"
close
bye"|ftp -i -n
rm -rf $(date +%Y%m%d)-rsqq.sql $(date +%Y%m%d)-rsqq.tar.gz

说明:以上脚本适用于debian服务器,本人已经做过测试有用,测试站点为http://www.rsqq.com

然后修改backup.sh的权限,使其有可执行的权限

chmod +x backup.sh

最后设置crontab:

crontab -e

在里面添加一行(每天的00:10分开始备份):

10 00 * * * /root/backup.sh

注意:有些情况下设置crontab后,但是并不运行,这时你可以重新启动一下crontab:

service crond restart