我的网站怎么老是被反复入侵?
作为服务器和网站管理员,遭遇黑客入侵是不可避免的事情。
很多管理员处理黑客入侵问题时,仅是安装一套防护软件,杀掉几个网页木马。这是治标不治本的办法,无法彻底解决安全问题,后期还会被黑客反复入侵。
一、与个人电脑的安全区别
对于个人电脑,安装一套杀毒软件就能解决99%的安全问题。然而服务器和个人电脑在安全方面有着天壤之别。
个人电脑因为在内网,黑客无法主动发现。一般只会在浏览网站或安装软件时被植入了木马程序,只要成功杀掉这个木马程序,电脑就安全了。
而针对服务器和网站的攻击,属于主动式攻击,敌人在暗处,我在明处。黑客找准目标后,为了突破防线,会尝试各种攻击手段。此时仅靠一套防护软件,无法应对多样化、复杂化的网络攻击,唯有做针对性的安全防护才能彻底解决安全问题。
二、为什么会被反复入侵
很多管理员把服务器和网站安全想得太过于简单,以为安装一套杀毒软件,再杀掉几个网页木马,服务器就安全了。这只能治标,不能治本。之所以会被入侵,是因为系统有漏洞;不解决漏洞永远无法根除安全威胁,黑客还会继续利用这个漏洞反复实施入侵。
唯有从根本上解决漏洞问题,才能有效解决入侵问题。
三、如何彻底解决安全威胁
服务器一般有三大漏洞体系:系统漏洞、软件漏洞和网站漏洞。
要打造安全的服务器,就必须解决这三方面的安全威胁。
1、系统漏洞加固
操作系统出厂时,厂商为了兼容性,不会对系统做严格的安全限制,因此需要做一些安全加固,方可防止黑客入侵。
系统加固主要有以下流程:更新系统补丁、禁用危险服务、卸载危险组件、删除危险权限、开启防火墙、设置复杂密码。具体操作方法请到护卫神了解。
2、软件漏洞加固
常用的Apache、Nginx、Tomcat、MySQL、SQL Server、Serv-U等大部分服务器软件,都存在安全隐患,需要进行安全加固。
可通过“降权”或“访问行为限制”两种办法解决,具体操作方法请到护卫神了解。
3、网站安全加固
几乎所有网站都存在漏洞,网站漏洞也是黑客最常用的入侵途径,因此做好网站安全加固刻不容缓。之所以网站普遍存在漏洞,一是大部分开发人员只注重功能和时间,不会在安全方面多加考虑;二是他们也没有安全防护技术和经验。
1)、网站漏洞类型
网站漏洞主要有下几种:SQL注入、在线上传、跨站入侵、Cookies欺骗、暴力破解,详细请到护卫神了解。
2)、网站漏洞处理
修复漏洞无疑是最好的办法,但这只能是奢想,有程序的地方就有漏洞,修复了一个漏洞,往往引出几个新的漏洞。因此部署安全防护系统成为必然之选。
4、部署安全产品
每台服务器放置的内容都不一样,存在的安全威胁也不一样,只有通过“软件+服务”组合的方式,才能最大限度提升服务器安全。
推荐部署“护卫神·高级安全防护”,工程师为您定制安全防护策略,杜绝所有网站漏洞,免疫所有网页木马。系统还会在黑客入侵的每一个环节进行拦截,通过远程监控、用户监控、进程监控、篡改保护、网站加固、木马查杀、SQL注入防护等模块,将一切不速之客拒之门外。
总而言之,安全无小事,提前做好防护很重要,不要等到被入侵了才后悔莫及。
网站被人用 nginx 反代理做了镜像站怎么办
一般做镜像站的nginx需要对外提供服务
所以nginx的IP地址应该是固定的,否则其他人也无法通过nginx访问你的镜像站
所以你的网站只需要屏蔽掉nginx的IP地址即可
如何在nginx上防止恶意的ddos抓取
自己写的网站,不知道为啥总是有很多恶意访问的ip,根本不是正常的用户访问之前也有想过是否可能是运营商的代理服务器出口ip,但是看起来好像也不像,先不管,ban掉再说
那如何来ban呢,规则比较简单,就是超过一个阈值之后,就用下面的iptables命令
iptables -I INPUT -s -j DROP
service iptables save
service iptables restart
那如何统计nginx的访问ip呢,目前来说比较简单就是读取nginx的access.log文件,然后分析一下,如果一天超过阈值,我们就执行上面的命令,ban掉ip。
有个问题是我们需要的是一直监视access.log 文件,而不是读一次,当然可以在每天快结束的时候事后来封住ip,但是这样不能给爬虫嚣张的气焰,所以
我觉得立即封掉是比较OK的。
之前写过一个类似tail读取一个文件的功能,就是打开的时候先定位到文件大小的位置,然后就开始循环读行来处理,这次的处理有点不一样,我是直接使用tail 把那个文件的流定位到我的程序的 sys.stdin ,这样就简单的可以读到所有的流了
tail /var/log/nginx/access.log | python .py
但是nginx的access.log每天都会做一次logrotate,它是怎么做的呢,nginx官网的推荐方式
mv access.log access.log.0
kill -USR1 `cat master.nginx.pid`
sleep 1
gzip access.log.0 # do something with access.log.0
我的vps上面使用的是logrotated来处理的,可以在/etc/logrotate.d/nginx
/var/log/nginx/*.log {
daily
missingok
rotate 52
compress
delaycompress
notifempty
create 640 nginx adm
sharedscripts
postrotate
[ -f /var/run/nginx.pid ] kill -USR1 `cat /var/run/nginx.pid`
endscript
}
这里表示的create表示文件会重新创建。其实这样老的文件就没有新数据了,但是因为使用的是tail,也没有eof, 这样直接读的时候会发现 file.readline() 的函数会卡住,导致程序假死,这样程序就不能主动退出了,后面选择了用select来处理,加了一个10秒的超时,从目前的流量来看,基本上每秒都好多的请求,10秒都没有数据就是出问题了。
while sys.stdin in select.select([sys.stdin], [], [], 10)[0]:
然后如果没有select上的话,说明基本上是nginx log文件rotate掉了,所以遇到这样的情况,我就直接跳出程序,然后把程序终结掉。终结掉怎么办呢,本来想在程序里面重新启动一下程序,但是感觉可能不妥,所以使用crontab来处理了,每隔2分钟检查一下,为了防止多次启动就用了flock来防止程序重新启动
*/2 * * * * flock -xn /dev/shm/blocker.lock -c "sh /srv/www/beauty/daemon/nginx_ip_blocker.sh"
这里附上代码
#coding=utf-8
import sys
import re
import os
import urllib
import urllib2
import datetime
import time, os
import logging
import json
import select
logging.basicConfig(level=logging.DEBUG, datefmt='%Y%m%d %H:%M:%S', format='[%(asctime)s] %(message)s')
"""
iptables -I INPUT -s -j DROP
service iptables save
service iptables restart
本脚本主要是用来把恶意访问nginx的ip ban掉的脚本
"""
MAX_IP=7000
def get_date():
return time.strftime("%Y%m%d")
def ban_one_ip(ip):
os.system("iptables -I INPUT -s %s -j DROP ; service iptables save ; service iptables restart"%ip)
def find_ip_and_ban():
for ip in ip_map:
if ip_map.get(ip)MAX_IP:
print "ban ip, count %s:%s"%(ip_map.get(ip),ip)
ip_map[ip] = 0
ban_one_ip(ip)
today = None
ip_map = {}
def process_log(lines):
global ip_map;
global today;
now = get_date()
if now != today:
today = now
ip_map = {}
for line in lines:
ip = line.split(" ")[0]
count = ip_map.get(ip,0)
count += 1
ip_map[ip]=count;
find_ip_and_ban()
COUNT=50
def main():
brk=False
while True:
tmp = 0;
lines =[]
brk=False
while sys.stdin in select.select([sys.stdin], [], [], 10)[0]:
line = sys.stdin.readline()
if not line:
brk=True
print 'read to eof'
break
lines.append(line)
tmp+=1
if tmpCOUNT:
break
else:
brk=True
print 'read time out'
break
process_log(lines)
print "read lines:%s"%len(lines)
if brk:
break
if brk:
print "break out"
if __name__ == "__main__":
main()
nginx 如何分析攻击
对的,就是查看nginx的访问日志,查看时最主要看的是来源ip和url,属于哪种攻击类型是没有直接的日志给你看到的,需要你自己从日志分析
网站有过被恶意攻击的情况,有什么方法可以防护
1.入侵防护原理
hei客入侵服务器有三条途径:系统、软件、网站
针对每一条途径,我们都做好完善的防护措施,让黑客无从得手
1 系统漏洞
首先更新系统补丁,修复已经存在的系统漏洞;
然后再禁用危险服务、删除危险组件、关闭危险端口,全面排除暴露的系统危险。
2 软件漏洞
常用的SQL Server、MySQL、Apache、Nginx、Tomcat、Serv-u等等软件,都存在漏洞,hei客通过这些软件可以轻松入侵服务器。 对软件做降权处理,防止hei客通过这些软件提权;然后再限制软件的访问轨迹,禁止访问安装目录以外的任何路径,防止非法获取数据。软件漏洞防护 网站漏洞防护
3 网站漏洞
一般是通过上传木马和SQL注入两种方式入侵网站。
我们首先部署强大的木马查杀引擎,自动查杀hei客上传的网页木马,让木马无处遁形。然后再安装SQL注入保护模块,实时拦截hei客的SQL注入行为。同时还会部署"账户提权防护"、"网站提权拦截"、"远程桌面保护"、"网页篡改保护"等多项安全模块,多重防护确保服务器安全。神卓服务器安全卫士,有效防止上传病毒、木马,提权防护、还有一点,就算把主机防护好了真的就高枕无忧了吗!其实是错误的,既然主机入侵不成功、那么他们就会以另一种入侵的方式,进行破坏!其后果非常严重,这种方式就是网络攻击
2.DDOS、cc攻击、防御原理
在现在的法律慢慢健全的情况下,现在黑客入侵将逐渐下降态势,但是他们选择另一种途径,对目标服务器,进行干扰,以非法的手段打乱目标服务器运行状态,谋取暴利,扰乱服务器有哪些方法,和手段呢!总结有以下几点:
1.对目标服务器,进行资源恶意占用,造成目标服务器CPU、内存。磁盘大量负载,后果是造成服务器宕机。
2.对目标服务器,流量带宽进行恶意的侵占,大家都知道,宽带的流量情况,一旦造成,网络堵塞,后果是给真实的用户带来了,不好体验,网络卡顿,延迟。
以上这些手段,目前是无法根除的,因为有些手段是合法的,当然了,有些是不合法的,像这样的情况,神卓云盾对其网络层进行24小时不间断的,监控,一旦发现有恶意流量,及时进行清洗,把攻击流量,以及伪攻击的流量、进行分流清洗,减少服务器、带宽、负载、黑客一般入侵前都会进行一个精心设计一套方案!不管多么厉害的黑客都要首先对目标服务器进行踩点,什么是踩点呢!就是对目标服务器进行全方位的检查,看看有存在哪些漏洞,可以用来入侵和攻击的,神卓云盾有效的对其非法检查,进行清洗,一旦无法对目标服务器扫描检查,就无法得知,目标服务器,有哪些漏洞存在,也不知道目标服务器,运行什么服务,大大的减轻入侵的风险,综合以上情况,建议;服务器入侵防护+网络层防御
如何设置nginx可以让ip可以直接访问网站
1、nginx默认的就是IP直接可以访问网站
2、有多个站点的话
server {
listen 80;
server_name localhost;
...
}
server {
listen 80;
server_name *.example.org;
...
}
server {
listen 80;
server_name mail.*;
...
}
server {
listen 80;
server_name ~^(?user.+)\.example\.net$;
...
}
将localhost放置在最顶部位置即可
Nginx 怎么禁止别人恶意镜像网站?
目前的方法只能当你发现恶意镜像站点后,通过在自己服务器配置文件中禁止对方服务器IP的访问。