使用nginx反向代理加固你的管理后台
发布时间:2011-09-11 10:57:12 来源: 个人微博
背景描述:
公司服务器全部托管在数据中心,分为公用业务(如SNS、门户)、私用业务(业务管理系统)。为了提高安全性,在数据中心服务器最前端架设了硬件防火墙,对访问私用业务做了来源IP地址验证(只允许公司IP地址访问)。我们都知道,有些业务是需要7X24提供服务的,当办公人员在家使用ADSL进行连接私用业务是无法连接的。为了解决此问题我们可以在公司架设一台反向代理服务器,业务人员在家可以通过连接公司反向代理服务器从而访问业务管理系统
反向代理通俗原理:
用户访问反向代理服务器------反向代理服务器将请求转给真实服务器------真实服务器处理完请求后将数据返回给反向代理服务器------反向代理服务器向用户返回查询结果Linux下支持反向代理的程序有很多,如squid、apache、vanish、nginx,考虑到公司现网业务多为nginx,所以在此也将使用nginx作为反向代理服务器
一、安装nginx
安装不作过多解释
#yum -y install pcre pcre-devel
#useradd www -s /sbin/nologin
#tar zxvf nginx-0.7.62.tar.gz
#cd nginx-0.7.62
#./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_ssl_module
#make && make install
注:上述配置选项中企业ssl是因为需要代理的服务器(也就是真实服务器管理系统使用了ssl环境。在nginx需要为 启用了ssl的真实服务器做反向代理的情况下,nginx不启用ssl将无法启动)
二、配置nginx
#vi /usr/local/nginx/conf/nginx.conf
删除如下段落
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
添加如下段落
server
{
listen 1000; //监听端口
server_name 121.110.23.221; //代理服务器IP地址
location / {
proxy_pass https://80.32.215.56/admin/; //真实服务器地址
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
检查配置文件是否正确
#/usr/local/nginx/sbin/nginx –t
启动nginx
#/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
#echo "/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf" >>/etc/rc.local
启动后检查系统中是否启动了1000端口
三、测试
打开浏览器---------访问http://121.110.23.221:1000 (代理服务器地址)---------将会看到https://80.32.215.56/admin/ (真实服务器地址)下的内容
四、总结
从上述配置中我们可以看到,在配置nginx时我们没有做相应安全验证,也就是说现在任何人都可以访问代理服务器,下面给出增强安全性的办法:
1、 在nginx配置文件中增加授权验证功能。
2、 不使用nginx,在公司架设VPN。
公司服务器全部托管在数据中心,分为公用业务(如SNS、门户)、私用业务(业务管理系统)。为了提高安全性,在数据中心服务器最前端架设了硬件防火墙,对访问私用业务做了来源IP地址验证(只允许公司IP地址访问)。我们都知道,有些业务是需要7X24提供服务的,当办公人员在家使用ADSL进行连接私用业务是无法连接的。为了解决此问题我们可以在公司架设一台反向代理服务器,业务人员在家可以通过连接公司反向代理服务器从而访问业务管理系统
反向代理通俗原理:
用户访问反向代理服务器------反向代理服务器将请求转给真实服务器------真实服务器处理完请求后将数据返回给反向代理服务器------反向代理服务器向用户返回查询结果Linux下支持反向代理的程序有很多,如squid、apache、vanish、nginx,考虑到公司现网业务多为nginx,所以在此也将使用nginx作为反向代理服务器
一、安装nginx
安装不作过多解释
#yum -y install pcre pcre-devel
#useradd www -s /sbin/nologin
#tar zxvf nginx-0.7.62.tar.gz
#cd nginx-0.7.62
#./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_ssl_module
#make && make install
注:上述配置选项中企业ssl是因为需要代理的服务器(也就是真实服务器管理系统使用了ssl环境。在nginx需要为 启用了ssl的真实服务器做反向代理的情况下,nginx不启用ssl将无法启动)
二、配置nginx
#vi /usr/local/nginx/conf/nginx.conf
删除如下段落
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
添加如下段落
server
{
listen 1000; //监听端口
server_name 121.110.23.221; //代理服务器IP地址
location / {
proxy_pass https://80.32.215.56/admin/; //真实服务器地址
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
检查配置文件是否正确
#/usr/local/nginx/sbin/nginx –t
启动nginx
#/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
#echo "/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf" >>/etc/rc.local
启动后检查系统中是否启动了1000端口
三、测试
打开浏览器---------访问http://121.110.23.221:1000 (代理服务器地址)---------将会看到https://80.32.215.56/admin/ (真实服务器地址)下的内容
四、总结
从上述配置中我们可以看到,在配置nginx时我们没有做相应安全验证,也就是说现在任何人都可以访问代理服务器,下面给出增强安全性的办法:
1、 在nginx配置文件中增加授权验证功能。
2、 不使用nginx,在公司架设VPN。
上一页1下一页 |
原文链接地址:https://www.yahuhost.com/server_technology/n380.html
版权所有@转载请注明原文地址
版权所有@转载请注明原文地址
【责任编辑:亚狐科技】
(Top) 返回页面顶端