天天看点

编译Nginx支持Tcp_wrappers编译Nginx支持Tcp_wrappers

务提供了增强的安全性。tcp wrappers是一种对使用 /etc/inetd.sec 的替换方法。tcp wrappers 提供防止主机名和主机地址欺骗的保护。欺骗是一种伪装成有效用户或主机以获得对系统进行未经授权的访问的方法。
编译Nginx支持Tcp_wrappers编译Nginx支持Tcp_wrappers

1、重新编译nginx

[root@ipython nginx-1.6.1]# tar zxf ../ngx_tcpwrappers.tar.gz -c ./

[root@ipython nginx-1.6.1]# ./configure --prefix=/software/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module --with-http_gzip_static_module --with-google_perftools_module --with-debug --http-client-body-temp-path=/var/tmp/nginx/client --http-proxy-temp-path=/var/tmp/nginx/proxy --http-fastcgi-temp-path=/var/tmp/nginx/fastcgi --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi --http-scgi-temp-path=/var/tmp/nginx/scgi --with-pcre=/root/pcre-8.35 --with-openssl=/root/openssl-1.0.1i --with-zlib=/root/zlib-1.2.8 --add-module=./ngx_tcpwrappers

[root@ipython nginx-1.6.1]# sed -i s'#cflags = -pipe -o -w -wall -wpointer-arith -wno-unused-parameter -werror#cflags = -pipe -o -w -wall -wpointer-arith -wno-unused-parameter -g#' objs/makefile

####不要make install 哦,编译好即可####

[root@ipython nginx-1.6.1]# make

2、完成升级,以及模块的使用,nginx还是很奇特的哦~~

####备份可执行文件,复制新的文件####

[root@ipython nginx-1.6.1]# mv /software/nginx/sbin/nginx /software/nginx/conf/@nginx

[root@ipython nginx-1.6.1]# cp objs/nginx /software/nginx/sbin/

####测试新版本的nginx####

[root@ipython nginx-1.6.1]# /software/nginx/sbin/nginx -t

nginx: the configuration file /software/nginx/conf/nginx.conf syntax is ok

nginx: configuration file /software/nginx/conf/nginx.conf test is successful

###此时没有加入tcp_wrappers的配置 测试下访问###

[root@ipython openssl-1.0.1i]# curl -i http://www.ipython.me

http/1.1 200 ok

server: nginx/1.6.1

date: mon, 11 aug 2014 23:08:08 gmt

content-type: text/html

content-length: 612

last-modified: mon, 11 aug 2014 22:45:25 gmt

connection: keep-alive

etag: "53e94785-264"

accept-ranges: bytes

###平滑升级###

[root@ipython nginx-1.6.1]# make upgrade

##测试模块,拒绝1.1.1.30的nginx请求## ##在http块里加入如下配置##

tcpwrappers on;

tcpwrappers_daemon nginx;

tcpwrappers_thorough off;

##hosts.deny如下##

[root@ipython nginx-1.6.1]# awk '!/^#/' /etc/hosts.deny

nginx:1.1.1.30

##重新读取nginx配置文件##

[root@ipython nginx-1.6.1]# /software/nginx/sbin/nginx -s reload

###此时访问 就是403了###

[root@itchenyi ~]# curl -i http://www.ipython.me

http/1.1 403 forbidden

date: mon, 11 aug 2014 23:12:47 gmt

content-length: 168

3、tcp_warppers 模块指令

###ngx_tcp_wrappers 配置指令###

1、tcpwrappers

语法 : tcpwrappers [on|off]

默认值 : tcpwrappers off

作用域 : http, server, location, limit_except

描述 : 模块的开关,开启则使用tcp wrappers 进行访问控制,关闭以避免浪费性能

2、tcpwrappers_daemon

语法 : tcpwrappers_daemon name

默认值 : tcpwrappers_daemon nginx

描述 : 该名字的定义用于在/etc/hosts.[allow|deny]识别

3、tcpwrappers_thorough

语法 : tcpwrappers_thorough [on|off]

默认值 : tcpwrappers_thorough off

描述 : 基于hosts.ctl以检查使用ip地址、用户名、反向dns解析,模块的开发者也未提供详细的使用说明

 原文发布时间:2014-08-17

本文来自云栖合作伙伴“linux中国”

继续阅读