分类目录归档:Debian

使用Nginx反向代理,Cloudflare反向代理后,Apache获取客户端真实IP问题

起因:

服务器端部署apache+php应用,使用$_server[‘remote_addr’]获取的ip为127.0.0.1。虽然说可以通过其他方案来获取正确的ip,但强迫症发作,觉得这是不可接受的。

解决方案:

作为反代服务器的NGINX配置:

确保server中包含以下内容:

server{
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

作为后端服务器的Apache配置:

1、启用mod_remoteip模块

a2enmod remoteip

或(debian系统有效):

sudo ln -s /etc/apache2/mods-available/remoteip.load /etc/apache2/mods-enabled/remoteip.load

2、修改配置文件(以debian为例)

方案一:在使用Cloudflare后,客户端的真实ip会被放在HTTP_CF_CONNECTING_IP中,直接使用即可

在apache2.conf中或虚拟主机的配置文件中添加以下内容

<IfModule remoteip_module>
RemoteIPHeader CF-Connecting-IP
RemoteIPInternalProxy 127.0.0.1/24
</IfModule>

修改apache access log格式(在/etc/apache2/site-enable/*.conf中添加或修改)

LogFormat "%{CF-Connecting-IP}i %l %u %t "%r" %>s %O "%{Referer}i" "%{User-Agent}i"" proxied
CustomLog ${APACHE_LOG_DIR}/access-example.com.log proxied

方案二:手动剔除Cloudflare所有的ip

Cloudflare使用的ip可以在https://www.cloudflare.com/ips/查询

<IfModule remoteip_module>
RemoteIPHeader X-Forwarded-For
RemoteIPInternalProxy 127.0.0.1/24
#CloudFlare IP Ranges
RemoteIPInternalProxy 103.21.244.0/22
RemoteIPInternalProxy 103.22.200.0/22
RemoteIPInternalProxy 103.31.4.0/22
RemoteIPInternalProxy 104.16.0.0/12
RemoteIPInternalProxy 108.162.192.0/18
RemoteIPInternalProxy 131.0.72.0/22
RemoteIPInternalProxy 141.101.64.0/18
RemoteIPInternalProxy 162.158.0.0/15
RemoteIPInternalProxy 172.64.0.0/13
RemoteIPInternalProxy 173.245.48.0/20
RemoteIPInternalProxy 188.114.96.0/20
RemoteIPInternalProxy 190.93.240.0/20
RemoteIPInternalProxy 197.234.240.0/22
RemoteIPInternalProxy 198.41.128.0/17
</IfModule>

其他:若未使用cdn:

<IfModule remoteip_module>
RemoteIPHeader X-Forwarded-For
RemoteIPInternalProxy 127.0.0.1/24
</IfModule>

3、补充:若后端服务器为NGINX

在配置文件中添加:

set_real_ip_from 127.0.0.1/24;
real_ip_header X-Forwarded-For;

 

个人邮件服务器——一、概述

前言:

大概5年以前,一个偶然的机会,看到了腾讯提供了免费的企业邮箱,只要有域名就可以申请使用。上某宝,兴冲冲买了一个.info域名,回去注册,腾讯说这个域名后缀垃圾邮件太多,不让用了,心中顿时[哔]🐶。再后来,买了至今仍在使用的flagplus.net域名,总算是用上了一个可以自己随意指定用户名的邮件系统。

时间到了2016年,开始在net.cn上大量购买看起来好玩的低价域名后缀的域名后,想着要把其中某一个准备常用的域名开通一个域名邮箱,于是注销了当时申请的一个腾讯企业邮箱(提示只能注销域名3次,心中不爽),绑定新域名,提示不支持,心中[哔]🐶。

半年后的2016年底,随着希拉里邮件门事件的爆出,便萌生了搭建自己的邮件服务器的想法。于是乎开始查资料。本来以为只需要几条apt-get就能完成,后来发现原来远远低估了搭建邮件服务器的难度。陆陆续续又拖了半年,到2017年初,才最终付诸实践。

目前邮件系统已比较稳定运行几个月了,现在整理下整个配置过程,以防自己忘记。

继续阅读

Debian 8 testing 安装 WPS

虽然说在Windows下的时候几乎没用过WPS,但在近期将工作平台转移到Debian后,还是觉得应该把WPS装上比较放心。在使用Debian 7的时候可以开混合架构,开启后装一大堆32位依赖就可以直接解压运行了,比较简单;这次看到新版的竟然原生有64位版本,甚是激动,赶紧下载安装!

继续阅读