分类目录归档:Unix/Linux

如何利用花生壳建立云服务器(VPS)防火墙

firewall

前言

随着云服务器(VPS)的流行,很多小伙伴都建立起自己的博客或梯子服务器。但安全问题是一个不容忽视的问题,要不然就很容易成为黑客们的“肉鸡”。一般的安全处理方法:设置强密码、更改默认服务端口号、使用密钥登陆……

今天介绍的是基于iptables防火墙。利用系统iptables建立起防火墙规则,普通用户只允许网站(80、443端口)的访问,iptables根据IP来识别管理员,对管理员则是全部端口开放。

但国内的运营商绝大部分分配的都是动态公网IP,如何保证我们在公网IP发生变化后,iptables依旧能把我们最新的公网IP进行更新呢?
这时候我们可以利用花生壳动态域名解析实现。
脚本通过crond定时刷新管理员的花生壳域名,从而更新iptables规则中管理员的白名单IP。
可以先看看拓扑图:
ddns-firewall-topology

一键部署脚本

开始部署

1、花生壳:注册 -> 下载 -> 安装 -> 启用客户端。传送门:www.oray.com
1、下载、解压,得到init_firewall.sh脚本
2、使用root权限执行

sh ./init_firewall.sh

3、输入你的花生壳域名(千万不要输错),然后一切就完成了。服务器只会开放80和443端口,其他所有端口只针对花生壳域名当前的IP开放。
下面我们解释一下脚本做了些什么事情。

继续阅读

Linux 查找最大的文件夹

运维的时候经常遇到df -h磁盘空间快满了的情况,一般来说是由于循环日志过大导致 。
使用下面的命令,能更快地定位问题所在。

如:查找根目录下的最大文件夹:

cd /
du -sh ./* sort

得到一目了然的结果:

9.7M    ./bin
34M ./boot
4.0K    ./cdrom
4.0K    ./dev
13M ./etc
19G ./home
281M    ./lib
4.0K    ./lib64
16K ./lost+found
4.0K    ./media
4.0K    ./mnt
4.0K    ./opt
0   ./proc
3.7M    ./root
1.3M    ./run
12M ./sbin
4.0K    ./srv
0   ./sys
24K ./tmp
4.1G    ./usr
1.1G    ./var
0   ./vmlinuz
92M ./www

Rsync 的配置与使用

一、简介

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 。

继续阅读

CentOS 下安装 Git

现在都流行Git分布式版本控制系统,但CentOS无法直接通过yum安装,一大遗憾。手工安装步骤如下:

1、首先安装Git依赖的一些包.

yum install -y zlib-devel
yum install -y openssl-devel
yum install -y perl
yum install -y cpio
yum install -y expat-devel
yum install -y gettext-devel
yum install -y curl

2、下载Git并安装它

wget http://www.codemonkey.org.uk/projects/git-snapshots/git/git-latest.tar.gz
tar xzvf git-latest.tar.gz
cd git-{date}
autoconf
./configure --with-curl
make
make install

CentOS PHP 5.2.x 链接Oracle数据库

1、下载Oracle即时客户端程序包 — Basic: 运行 OCI、OCCI 和 JDBC-OCI 应用程序所需的所有文件

①、打开以下网址(本文以32位版为例):
http://www.oracle.com/technetwork/topics/linuxsoft-082809.html

②、下载以下几个文件:
oracle-instantclient11.2-basic-11.2.0.2.0.i386.rpm
oracle-instantclient11.2-devel-11.2.0.2.0.i386.rpm
oracle-instantclient11.2-sqlplus-11.2.0.2.0.i386.rpm

2、安装Oracle即时客户端程序包

rpm -ivh oracle-instantclient11.2-basic-11.2.0.2.0.i386.rpm oracle-instantclient11.2-devel-11.2.0.2.0.i386.rpm oracle-instantclient11.2-sqlplus-11.2.0.2.0.i386.rpm
echo "/usr/lib/oracle/11.1/client/lib/" > /etc/ld.so.conf.d/oracle_client.conf
/sbin/ldconfig

3、安装OCI8 PHP扩展(使用PHP自带的OCI8,假设PHP程序安装在/usr/local/webserver/php/)

yum install libaio
wget http://pecl.php.net/get/oci8-1.4.4.tgz
cd oci8-1.4.4/
/usr/local/webserver/php/bin/phpize CFLAGS="-I/usr/include/oracle/11.2/client/" CXXFLAGS="-I/usr/include/oracle/11.2/client/"
./configure --with-php-config=/usr/local/webserver/php/bin/php-config --with-oci8=/usr/lib/oracle/11.2/client/
make
make install

make oci8出错的话,用这个编译试试

./configure --with-php-config=/usr/local/webserver/php/bin/php-config --with-oci8=instantclient,/usr/lib/oracle/11.2/client/lib/

4、修改PHP配置文件(/usr/local/webserver/php/etc/php.ini)
在extension_dir = “/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20060613/”后增加一行:

extension = "oci8.so"

5、重启PHP

6、创建一个phpinfo.php文件(内容如下)并通过Web访问,如果有“oci8”这一项,则表明安装成功。

<?php
phpinfo();
?>