iptables在web服务器的示例 不指定

jed , 2010-12-30 07:10 , 服务器技术 , 评论(0) , 阅读(2964) , Via 本站原创
新建一个shell脚本
vi firewall.sh
将下面的内容,从“内容开始”至“内容结束”全部复制添加到上面的脚本文件中。
注意将下面内容中的一个内容替换--{你的源IP} 替换成你的源IP。如果你的源IP是动态的,建议将开放80那样开放它。
Tags: ,

shell获取ip地址 不指定

jed , 2010-12-28 16:28 , 服务器技术 , 评论(0) , 阅读(2937) , Via 本站原创

ip=$(grep $(hostname) /etc/hosts| awk '{print $1}')
Tags:
Nginx 简介

Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过两年半了。 Igor 将源代码以类 BSD 许可证的形式发布。尽管还是测试版,但是,Nginx 已经因为它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名了。

根据最新一期(08 年 6 月份)的 NetCraft 调查报告显示,已经有超过两百万的主机使用了 Nginx,这个数字超过了另外一个轻量级的 HTTP 服务器 lighttpd, 排名第四,并且发展迅速。下面是这份报告的前几名的报表:
Tags:
nginx的ngx_http_access_module 模块可以用来设置允许/禁止哪些ip或ip段访问,可以设置一个文件内容类似下面的:

deny IP;
deny subnet;
allow IP;
allow subnet;
# block all ips
deny    all;
# allow all ips
allow    all;

其中网段的写法是这样的:192.168.1.0/24这样的形式。
Tags:
Nginx+iptables屏蔽访问Web页面过于频繁的IP(防DDOS,恶意访问,采集器)

通过分析nginx的日志来过滤出访问过于频繁的IP地址,然后添加到nginx的blockip.conf,并重启nginx
Tags: ,
安装步骤:
  (系统要求:Linux 2.6+ 内核,本文中的Linux操作系统为CentOS 5.3,另在RedHat AS4上也安装成功)

一、获取相关开源程序:
  1、【适用CentOS操作系统】利用CentOS Linux系统自带的yum命令安装、升级所需的程序库(RedHat等其他Linux发行版可从安装光盘中找到这些程序库的RPM包,进行安装):


sudo -s
LANG=C
yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers

Tags: , , ,
看了很多方法,试了一下这个最好用,需要更改php源程序后,重新编译php。在使用fpm方式安装时,打补丁过程中会修改php的文件,所以需要在打完fpm补丁后再修改php源程序。

tar zxvf php-5.2.14.tar.gz
gzip -cd php-5.2.14-fpm-0.5.14.diff.gz | patch -d php-5.2.14 -p1
cd php-5.2.14/

vi  main/fopen_wrappers.c

并找到php_check_open_basedir_ex方法,在char *end;和pathbuf = estrdup(PG(open_basedir));之间插入以下的代码:


char path_copy[MAXPATHLEN];
        int path_len;
        path_len = strlen(path);
        if (path_len >= MAXPATHLEN) {
            errno = EPERM;
            return -1;
        }
        if (path_len > 0 && path[path_len-1] == PHP_DIR_SEPARATOR) {
            memcpy(path_copy, path, path_len+1);
            while (path_len > 1 && path_copy[path_len-1] == PHP_DIR_SEPARATOR) path_len--;
            path_copy[path_len] = '\0';
            path = (const char *)&path_copy;
        }

        char *env_doc_root;
        if (PG(doc_root)) {
            env_doc_root = estrdup(PG(doc_root));
        } else {
            env_doc_root = sapi_getenv("DOCUMENT_ROOT", sizeof("DOCUMENT_ROOT")-1 TSRMLS_CC);
        }
        if (env_doc_root) {
            int res_root = php_check_specific_open_basedir(env_doc_root, path TSRMLS_CC);
            efree(env_doc_root);
            if (res_root == 0) {
                return 0;
            }
            if (res_root == -2) {
                errno = EPERM;
                return -1;
            }
        }



并在php.ini中启用open_basedir如


open_basedir = "/var/tmp/:/tmp/"




以上是所有能找到的资料里代码最长也是考虑最完整的代码。 前段是用于去除传入的路径参数中最后的多个斜杠(/)对代码判断的影响。后段则是取得当前站点的文档根目录,并检查要打开的文件是否存在于这个目录下、是否有权限等。

编译后测试发现确实的解决了WebShell对同级目录的跨站访问。但运行某个基于Zend Framework的项目时则遇到了阻碍,无法读取application目录下的config.ini。原因是root目录位于application的同级目录html下。 其他一些项目也可能会有类似需求,需要访问root同级的upload或其他不开放的目录。这个需求很容易就能解决,参考检查DOCUMENT_ROOT的方式,优先检查另外一个SITE_ROOT的环境变量是否存在且有权,并在nginx的php fastcgi配置里加上一行即可:

fastcgi_param  SITE_ROOT /web/zend.hly1980.cn/;

Tags: , ,
windows 2003 开启系统防火墙或者开启路由NAT防火墙都会出现这个问题。

FTP客户端在登录成功后,发出FEAT命令后停下来了:

网上给出了好几种解决办法。

方法:

如果关闭了系统防火墙,则 FEAT 可以顺利通过并最终出现目录列表。

如何能在服务器开启防火墙的情况下,让客户端不修改设置也能登录呢?

解决方法:在例外里面添加Serv-U目录的ServUDaemon.exe并且在防火墙的-高级-本地连接设置将“FTP服务器”的勾选取消。


但是不管用,因为我碰到的问题是在ftp配置VPN,开启了“NAT/基本防火墙”,里面只有端口设置,

在网上找了好久,终于让我找到了一篇解决这个问题的文章,全英文,头大。
人生之所以奇妙,就在于有这么多的不可知。结果是这么一个偏方解决FEAT问题:
go to domain settings and try to connect from other computer and you will see the same problem with FEAT, but close the connection and then on settings >> log create a log for all the checkboxes (check all and create a file to log activity), apply and then try to connect remotelly again and you will see no problem with FEAT COMMAND, i did several tests and this work... if no log activity for domain is selected, we start to see the problem with FEAT. I know you are thinking it's weird, because log only save the activity on server, but it's true, it start to work fine when all checkboxes are on and you save the data to a file. Try and post your answers.

大意是在域设置里面设置日志记录到文件,并打上所有的勾。即可解决feat命令的不执行问题。

全部勾选,记录日志则问题解决。

另外如果要开启pasv,则在serv-u的设置处,设置pasv的端口范围,然后去“NAT/基本防火墙”处开放相应的端口即可。

Tags: , ,
分页: 1/1 第一页 1 最后页 [ 显示模式: 摘要 | 列表 ]