(2010-10-25 19:15)
主要用于图片的简单防盗链
location ~* \.(gif|jpg|png|swf|flv)$ {
valid_referers none blocked www.coosir.com;
if ($invalid_referer) {
rewrite ^/ http://hd.coosir.com/403.html;
#return 404;
}
}
针对图片目录防止盗链
location ~^/images/ {
valid_referers none blocked server_names *.iecnu.com ;
if ($invalid_referer) {rewrite ^/
http://hd.coosir.com/404.jpg;}
}

(2010-10-15 18:03)
一、tar命令
tar可以为文件和目录创建档案。利用tar,用户可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。Linux上的tar是GNU版本的。
语法:tar [主选项+辅选项] 文件或者目录
使用该命令时,主选项是必须要有的,它告诉tar要做什么事情,辅选项是辅助使用的,可以选用。
主选项:
c 创建新的档案文件。如果用户想备份一个目录或是一些文件,就要选择这个选项。
r
把要存档的文件追加到档案文件的未尾。例如用户已经作好备份文件,又发现还有一个目录或是一些文件忘记备份了,这时可以使用该选项,将忘记的目录或文件追加到备份文件中。
t 列出档案文件的内容,查看已经备份了哪些文件。
u 更新文件。就是说,用新增的文件取代原备份文件,如果在备份文件中找不到要更新的文件,则把它追加到备份文件的最后。
x 从档案文件中释放文件。
辅助选项:
b 该选项是为磁带机设定的。其后跟一数字,用来说明区块的大小,系统预设值为20(20*512 bytes)。
f 使用档案文件或设备,这个选项通常是必选的。
k 保存已经存在的
我的私人博客,不是这个, 以前屏蔽所有的搜索引擎,但是百度还是偷偷来访问,没想到百度真的是一个不遵守 robots.txt
的搜索引擎,真是太让我失望了。于是乎,昨天购买了 Godaddy 的 ssl 证书,今天成功安装完毕,https 加密访问 +
robots.txt ,百度,求求你别来挑逗我的私人领地了……你看人家 Google 多好,我屏蔽搜索引擎的第一天起就没来过。
下面说说如何购买 Godaddy 的 SSL证书 以及 Nginx 平台下的安装方法:
一、购买 Godaddy SSL 证书
我买的是最便宜的一款,用优惠码 cjcssl12t2 以后 12.99 美元一年 ,购买地址:
http://www.godaddy.com/gdshop/ssl/ssl.asp?isc=cjcssl12t2
二、生成服务器的 CSR 文件
用 root 权限进入服务器,输入:
1.SSH
这个需要绝对安全,采取以下措施:
- 更改默认端口
- 采用密钥认证
- 取消密码登录
2.MYSQL
- 不允许远程连接(默认)
- phpmyadmin不允许空密码登录(默认)
- 自定义phpmyadmin路径(防止猜到)
- phpmyadmin路径使用密码认证并限制IP(Nginx配置)
- 注意配置用户全局权限
3.FTP
- 更改默认端口
- 不允许匿名用户
- 只允许列表中的用户登录(只保留需要的虚拟用户)
- 限制IP(hosts.allow配置)
- 注意配置用户权限
配置文件现在需要一个短语密码
解决方法:
1、将
phpMyAdmin/libraries/config.default.php中的$cfg['blowfish_secret'] =
''; 改成 $cfg['blowfish_secret'] = '123456';
(注:其中的’123456′为随意的字符)
2、在phpMyAdmin目录中,打开config.sample.inc.php,18行
$cfg['blowfish_secret'] = ''; 改成
$cfg['blowfish_secret'] =
'123456'; (注:其中的’123456′为随意的字符)这个密码用于Cookies的加密,以免多个PhpMyAdmin或者和其他程序共用Cookies时搞混。
(可以将这个文件另存为config.inc.php)
做好以上两步,刷新网页,OK,“配置文件现在需要一个短语密码。”的提示不存在了!
phpmyadmin链接表的附加功能尚未激活
Location语法语法:location [=|~|~*|^~] /uri/ { … }
location = / {
# 只匹配 / 查询。
[ configuration A ]
}
location / {
# 匹配任何查询,因为所有请求都已 / 开头。但是正则表达式规则和长的块规则将被优先和查询匹配。
[ configuration B ]
}
location ^~ /images/ {
# 匹配任何已 /images/ 开头的任何查询并且停止搜索。任何正则表达式将不会被测试。
[ configuration C ]
}
location ~* .(gif|jpg|jpeg)$ {
# 不区分大小写匹配任何已 gif、jpg 或 jpeg 结尾的请求。然而所有 /images/ 目录的请求将使用
Configuration C。
[ configuration D ]
}
正则表达式匹配,其中:
* ~ 为区分大小写匹配
* ~* 为不区分大小写匹配
* !~和!~*分别为区分大小写不匹配及不区分大小写不匹配
文件及目录匹配,其中:
* -f和!-f用来判断是否存在文件
* -d和!-d用来判断是否存在目录
* -e和!-e用来判断是否存在文件或目录
* -x和!-x用来判断文件是否可执行
flag标记有:
* last 相当于Apache里的[L
新建用户不要分配全局权限,全局设置为什么权限都没有。
然后为新用户新建数据库,将此数据库的权限里添加此用户。
用root建立用户后很奇怪,用此用户登录居然可以随意操作数据库名为mysql的数据库,里面有个USER表可以随意更改所有用户的权限 =
=
所以以后要注意了,多么初级的问题~
=======================================================
另外phpmyadmin目录的暴露也是个问题,可以更改目录路径后对上级目录进行加密和IP限制。
如: http://localhost/admin/phpmyadmin
对admin目录进行加密,并限制IP是比较好的做法。
在Nginx中的方法:
比如要对 网站目录下的 test 文件夹 进行加密认证
那么 在 nginx.conf 文件中对应的 server 段中 添加
location ^~ /test/ {
auth_basic TEST-Login;
auth_basic_user_file /root/htpasswd;
}
再在 root 的主目录中 /root/ 创建一个新文件 htpasswd
此文件的书写格式是
用户名:密
mysql误删除root用户或者忘记root密码时的解决办法
一不小心删除了mysql的root用户,在网上找了很多办法都没有解决,由于mysql数据库比较多,重装又太麻烦,所以一直在努力尝试各种方法,最后终于成功了。步骤如下:
1、先结束mysqld进程
#killall mysqld
不加载grant_tables而进入mysql
#mysqld_safe --skip-grant-tables &
进入mysql
#/usr/local/mysql/bin/mysql
mysql> use mysql
Database changed
mysql> select * from user;
Empty set (0.00 sec)
mysql> insert into user set
user='root',ssl_cipher='',x509_issuer='',x509_subject='';
(增加root用户的表)
Query OK, 1 row affected, 3 warnings (0.00 sec
根据很多人对CentOS FTP服务的不解,我觉得应该对CentOS FTP服务做出一定的解释。
1.安装
一般在CentOS上都自动安装了vsftd,若没有安装则可以使用以下步骤进行安装
yum -y install vsftpd
touch /var/log/vsftpd.log # 创建vsftp的日志文件
在CentOS中,这样就可以完成了一个简单的匿名FTP的搭建。你可以通过访问ftp://yourip来进行,不过这个FTP没有任何权限。
2.基于匿名的FTP架设
参考其他关于Vsftpd的CentOS FTP服务配置文章。
3.基于虚拟用户的FTP架设
所谓虚拟用户就是没有使用真实的帐户,只是通过某种手段达到映射帐户和设置权限的目的。
1)我们在/etc/vsftpd/vsftpd.conf中做如下CentOS FTP服务配置:
anonymous_enable=NO 设定不允许匿名访问
chroot_list_enable=YES 使用户不能离开主目录
xferlog_file=/var/log/vsftpd.log
设定vsftpd的服务日志保存路径。注意,该文件默认不存在。必须要手动touch出来
ascii_upload_enable=YES
ascii_download_enable=Y
1.安装
yum install vsftpd
2.启动/重启/关闭vsftpd服务器
[root@localhost ftp]# /sbin/service vsftpd restart
Shutting down vsftpd: [ OK ]
Starting vsftpd for vsftpd: [ OK ]
OK表示重启成功了.
启动和关闭分别把restart改为start/stop即可.
如果是源码安装的,到安装文件夹下找到start.sh和shutdown.sh文件,执行它们就可以了.
3.与vsftpd服务器有关的文件和文件夹
vsftpd服务器的配置文件的是: /etc/vsftpd/vsftpd.conf
vsftpd服务器的根目录,即FTP服务器的主目录:
[root@localhost ftp]# more /etc/passwd|grep ftp
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
这样你就能看到FTP的服务器的目录在/var/ftp处
如果你想修改服务器目录的路径,那么你只要修改/var/ftp到别处就行了
4.添加FTP本地用户
有的FTP服务器需要用户名和密码才能登录,就是因为设置了FTP用户和权限.
FTP