nginx禁止ip登录,只允许域名访问
公司要求,线上solr、kibana要求只能通过域名进行访问,禁止用ip+端口进行登录访问,那么,下面介绍下我是如何实现的
1、禁止ip,允许域名访问
如下图,默认安装好nginx,不让ip方式访问,但是可以通过域名方式访问:
域名可以访问:
直接贴配置文件:443端口配置一样
cat nginx.conf
worker_processes ;
events {
worker_connections ;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout ;
server {
listen default; #配置此段表示用IP或其他域名访问时直接跳转到www.baidu.com,也可直接返回403
server_name _;
#rewrite ^ http://www.baidu.com$request_uri?;
return ;
}
server {
listen ;
server_name www.kalaok.com;
location / {
root html;
index index.html index.htm;
}
error_page /50x.html;
location = /50x.html {
root html;
}
}
}
2、solr只允许域名方式访问
由于考虑线上solr数据的安全和重要性,禁止运维和开发人员随意登录进行相关数据增删改操作,我们需要针对solr服务器进行安全访问控制。
配置iptables如下:
[root@localhost conf]# cat /etc/sysconfig/iptables
# Generated by iptables-save v1.4.7 on Thu Jun ::
*filter
:INPUT DROP [:]
:FORWARD ACCEPT [:]
:OUTPUT ACCEPT [:]
-A INPUT -i eth1 -j LOG --log-prefix "BANDWIDTH_IN:" --log-level
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
#202.106..226为公司公网地址
-A INPUT -s 202.106.149.226 -p tcp -m tcp --dport -j DROP ######### ###########################
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP
-A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN,RST,PSH,ACK,URG -j DROP
##########################################
#
#-A INPUT -p tcp -m state --state NEW -m tcp --dport -j ACCEPT
#-A INPUT -p tcp -m state --state NEW -m tcp --dport -j ACCEPT
#-A INPUT -p tcp -m state --state NEW -m tcp --dport -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport -j ACCEPT
#-A INPUT -s 124.42.77.106/ -p tcp -m tcp --dport -j ACCEPT
#-A INPUT -s 124.42.77.106/ -p tcp -m tcp --dport -j ACCEPT
-A INPUT -p tcp -m tcp --dport -j DROP
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -o eth1 -j LOG --log-prefix "BANDWIDTH_OUT:" --log-level
-A FORWARD -i eth1 -j LOG --log-prefix "BANDWIDTH_IN:" --log-level
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
-A OUTPUT -o eth1 -j LOG --log-prefix "BANDWIDTH_OUT:" --log-level
COMMIT
# Completed on Thu Jun ::
reload一下iptables,可以看到我们无法再使用ip请求数据了,下面实现通过nginx使用固定域名访问,直接贴配置:
cat solr.conf server {
listen ;
## define use url to visit
server_name dsolr.pharmacodia.com;
location /solr {
#keep with the server proxy name below
allow 202.106.149.226;
allow 10.30.48.99;
allow 10.173.24.183;
deny all;
auth_basic "data solr access";
auth_basic_user_file /usr/local/nginx/conf/.htpasswd; proxy_pass http://10.26.241.96:8888/solr;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $Proxy_add_x_forwarded_for;
} }
3、nginx添加登录认证
如下图,实现起来很简单:
直接贴配置文件,跟上面的solr登录认证权限一样,需要使用htpasswd工具生成密码文件
如果没有htpasswd命令使用以下命令安装
yum -y install httpd-tools
htpasswd -c /usr/local/nginx/conf/solr.passwd admin #输入两次密码
直接在server里添加
server {
listen ;
server_name www.kalaok.com;
auth_basic "data solr access";
auth_basic_user_file /usr/local/nginx/conf/solr.passwd;
location / {
root html;
index index.html index.htm;
}
error_page /50x.html;
location = /50x.html {
root html;
}
}
如果想下载站点资源,就需要在后面加上认证参数,如:--http-user=admin --http-passwd=xxxxxx
nginx禁止ip登录,只允许域名访问的更多相关文章
- Nginx禁止IP访问,只允许域名访问
Nginx禁止IP访问,只允许域名访问 我们在使用nginx的过程中会遇到很多的恶意IP攻击,这个时候就要用到Nginx 禁止IP访问了. 1.直接返回403错误 server { listen de ...
- 设置nginx禁止IP直接访问,只能通过指定的域名访问
nginx的版本是1.2.1. 设置配置文件disableip.conf: server { listen 80; server_name _; return500; } 这是 ...
- Linux 如何设置只允许域名访问站点而禁止IP访问站点
最近在论坛里看到有人问到 Linux 如何设置只允许域名访问站点而禁止IP访问站点的问题,之前自己也用过这个功能,可以防止别人用 IP 地址来访问到自己的网站,下面我就我自己的环境给出解决方法,我用的 ...
- Nginx 禁止IP访问
我们在使用的时候会遇到很多的恶意IP攻击,这个时候就要用到Nginx 禁止IP访问了.下面我们就先看看Nginx的默认虚拟主机在用户通过IP访问,或者通过未设置的域名访问(比如有人把他自己的域名指向了 ...
- Nginx禁止ip访问或IP网段访问方法
Nginx禁止ip访问可以防止指定IP访问我们的网站,本例子可以实现是防止单IP访问或IP网段访问了,非常的有用我们一起来看看吧. 常用的linux做法 iptables参考规则 代码如下 复制代码 ...
- IIS、nginx、apache只允许域名访问配置
您开启WAF后,攻击者只能看到WAF的IP,不能看到您的IP,攻击者通过域名访问您的网站时,就会根据规则拦截. 但是如果您的网站可以输入IP地址直接访问,是无法达到防御效果的.比如(http://42 ...
- [转帖]nginx 禁止ip访问以及禁止post方法的简单方法
nginx禁止IP访问站点的设置方法 http://www.512873.com/archives/471.html http://www.512873.com/archives/312.html c ...
- nginx 只允许域名访问,禁止IP访问
在nginx中为了防止,通过ip地址或者没有备案的域名代理到nginx上,可以在nginx中配置来阻止这一操作 #只可以用域名访问(此处的server是新增,并不是在原有的server基础上修改),默 ...
- nginx只允许域名访问,禁止ip访问
背景:为什么要禁止ip访问页面呢?这样做是为了避免其他人把未备案的域名解析到自己的服务器IP,而导致服务器被断网,我们可以通过禁止使用ip访问的方法,防止此类事情的发生. 解决方法:这里介绍修改配置文 ...
随机推荐
- loadrunner关联及web_reg_save_param方法浅析
一.什么是关联 关联(correlation):脚本回放过程中,客户端发出请求,通过关联函数所定义的左右边界值(也就是关联规则),在服务器所响应的内容中查找,得到相应的值,已变量的形式替换录制时的静态 ...
- 迷茫<第二篇:回到老家湖南长沙>
2014年8月初,我买了回老家的火车票,当时没有买到坐票,卧铺贵了买不起,所以我就选择了站票,准备站回老家.我现在还记得我当时买的是T1列火车,北京西站到长沙火车站,全程16个小时.当时我就在火车上站 ...
- TCP三次握手原理,你真的了解吗?
最近碰到一个问题,Client 端连接服务器总是抛异常.在反复定位分析.并查阅各种资料搞懂后,我发现并没有文章能把这两个队列以及怎么观察他们的指标说清楚. 问题描述 场景:Java 的 Client ...
- Elastic Stack初篇-Logstash
一.Logstash简介 Logstash是一个开源数据收集引擎,具有实时管道功能.Logstash可以动态地将来自不同数据源的数据统一起来,并将数据标准化到你所选择的目的地. 二.Log ...
- UE、UI、UCD、UED?职责划分?
UE.UI.UCD.UED?你知道你是干啥的吗 名词 UE (User Experience) : 用户体验 UI (User Interface) : 用户界面 UCD (User-Centered ...
- Mariadb第一章:介绍及安装--小白博客
mariadb(第一章) 数据库介绍 1.什么是数据库? 简单的说,数据库就是一个存放数据的仓库,这个仓库是按照一定的数据结构(数据结构是指数据的组织形式或数据之间的联系)来组织,存储的,我们可以 ...
- 想要开发自己的PHP框架需要那些知识储备?
作者:安正超链接:https://www.zhihu.com/question/26635323/answer/33812516来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...
- 只能用Android studio做平台移植了! 在Windows10下, 开发Android。
安装好IDE后, 会一直显示同步失败, 看看如下步骤: 需要注意的是: -> 安装NDK 自带的NDK版本有问题 自己去下一个15版本的 -> 按照系统提示一步一步安装其他 ...
- dubbo在idea下的使用创建 服务者,消费者 注册中心
1.基于windows 下 spring 下的dubbo 需要书写配置文件 (1).创建带有web工程的项目 创建一个服务者 package cn.edu.aynu.bean; import lo ...
- 面试题(一续Spring)
9.Spring体系结构和jar用途 参考https://blog.csdn.net/sunchen2012/article/details/53939253 spring官网给出了一张spring3 ...