nginx防攻击配置_nginx防火墙在哪打开
1.基于Nginx+Lua自建Web应用防火墙
2.linux启动服务器的命令linux启动服务器命令
linux启动过程步骤?
开机--加电自检--读取CMOS设置--从硬盘引导记录查找系统所在位置--读取GRUB配置文件(/boot/grub/grub.conf),加载内核,驱动硬件--开启init进程,读取相应配置文件(/etc/inittab),打开默认运行级别,加载相应服务,开机启动项--完成启动过程
Linux启动、关闭、重启网络服务的两种方式?
第一种就是楼上说的直接service服务名称start/restart/stop第二种可以直接进入/etc/init.d目录,服务的脚本文件都存放在此目录中,可以直接执行对其start/restart/stop如:#cd/etc/init.d#./ntpdrestart关闭ntpd:启动ntpd:#
Linux下。启动、重启、停止。服务的命令是多少?
启动直接点开机键就可以了,重启reboot就可以了关机,init3、shutdown-fnow、halt都可以关机,重启服务services服务restart停止服务services服务stop开始服务services服务start服务状态services服务status
linux如何启动,停止,查看服务?
可以通过servicexxxstart/stop/resrart控制,可以通过systemctl,也可以通过/etc/init.d/xxx.service来控制。
linux启动命令?
一:启动Nginx服务--在sbin目录下
启动命令:./nginx
关闭命令:./nginx-sstop和./nginx-squit
刷新配置文件:./nginx-sreload(每次对Nginx的配置文件nginx.conf修改后,都要进行重新加载配置文件)
二:进程
查看进程ps-ef|grep-ixxxx-i大概是ignore是忽略的意思这里是忽略大小写。
杀死进程kill-9xxxx
三:防火墙
开启防火墙serviceiptablesstart
关闭防火墙serviceiptablesstop
查看防火墙的状态serviceiptablesstatus
永久关闭防火墙chkconfigiptablesoff
四:启动zookeeper服务--在zookeeper的bin目录下
开启zookeeper服务:./zkServer.shstart
查看zookeeper状态./zkServer.shstatus
五:启动Redis服务--在redis的bin目录下
以后台的方式启动:./redis-server../redis.conf(后面的的redis.conf路径要根据每个人配置文件存放的位置来写)
进入redis命令服务:./redis-cli
输入:ping如果返回pong则表示连接成功!
六.启动tomcat服务
Linux下tomcat服务的启动、关闭与错误跟踪,使用PuTTy远程连接到服务器以后,通常通过以下几种方式启动关闭tomcat服务:
切换到tomcat主目录下的bin目录(cdusr/local/tomcat/bin)
1,启动tomcat服务
方式一:直接启动./startup.sh
方式二:作为服务启动nohup./startup.sh
方式三:控制台动态输出方式启动./catalina.shrun动态地显示tomcat后台的控制台输出信息,Ctrl+C后退出并关闭服务
解释:
通过方式一、方式三启动的tomcat有个弊端,当客户端连接断开的时候,tomcat服务也会立即停止,通过方式二可以作为linux服务一直运行
通过方式一、方式二方式启动的tomcat,其日志会写到相应的日志文件中,而不能动态地查看tomcat控制台的输出信息与错误情况,通过方式三可以以控制台模式启动tomcat服务,
直接看到程序运行时后台的控制台输出信息,不必每次都要很麻烦的打开catalina.out日志文件进行查看,这样便于跟踪查阅后台输出信息。tomcat控制台信息包括log4j和System.out.println()等输出的信息。
2,关闭tomcat服务
./shutdown.sh
七>启动数据库:
servicemysqldstart启动
servicemysqldrestart重启
基于Nginx+Lua自建Web应用防火墙
就通过浏览器访问啊!如果是遇到问题,可能是以下原因:
1. 检查网络
看win机ping linux机是否正常
2. 检查端口
你开启的服务端口
比如你开了,那就是80端口或者你自定义的端口,
3. 检查防火墙
service iptables stop
你先测试一下是不是防火墙的原因,就关了看能否用,如果不行,说明是防火墙屏蔽掉了,可以设备防火墙放行对应端口,下面具体方法:
在虚拟机的Linux下安装好Nginx服务器后,本机可以通过curl获取网页内容,而在宿主机无法访问,出现如下错误:
打开文件/etc/sysconfig/iptables进行编辑,在ssh的默认端口22下面增加12行,用于nginx服务器,这里加多了13行端口3306,是为了mysql的远程访问。配置完后,重启防火墙即可。
service iptables restart
在宿主机再试试:
有时候硬件也要注意: ? 有关服务器,等算是“虚拟产品”的东西,我们要谨慎购买
虚拟机与服务器等,因为性能等方面都需要仔细看性能是否可以衔接!
如果还有什么问题的话,可以去咨询“小鸟云 "像他们这样的服务器厂商一定能给你解答!
linux启动服务器的命令linux启动服务器命令
简介
对于信息类网站,总是会被各种不同目的的爬虫、集器等不断的抓取或恶意访问,这些会让网站不堪重负,导致页面无法正常访问,极大的影响用户体验。针对此种情况,我们就需要对所有的访问来进行访问控制。
此时Web应用防火墙(WebApplicationFirewall,简称WAF)就可以助我们一臂之力,它可以为网站提供一站式安全防护。WAF可以有效识别Web业务流量的恶意特征,在对流量进行清洗和过滤后,将正常、安全的流量返回给服务器,避免网站服务器被恶意入侵导致服务器性能异常等问题,保障网站的业务安全和数据安全。
Web应用防火墙主要功能如下:
提供Web应用攻击防护。
缓解恶意CC攻击,过滤恶意的Bot流量,保障服务器性能正常。
支持对HTTP和HTTPS流量进行访问控制。
从WAF的定义及功能看,它的位置应该处于流量入口处。如果选用商业产品,多和CDN配合使用;如果自行开发,其位置应该在负载均衡Nginx上。结合lua可以进行二次扩展,实现个性化访问控制需求。
分析在使用Nginx+lua实现个性化需求前,我们首先需要了解我们的网站的流量组成:
爬虫流量
百度、bing、谷歌、360、一搜、神马、今日头条、集器等
异常流量
单IP大流量访问、多IP大流量访问
恶意攻击
DDos、CC、SQL注入、暴力破解等
正常流量
三方渠道大流量访问
以上基本概括了我们网站的主要流量来源,这些流量我们可以从基础防护和动态防护两个层面展开。
基础防护Nginx不仅在负载均衡层面发挥着重要作用,其内置的一些基础模块,也可以在一定程度上做一些防护。
1.安全防护对于站点流量,我们可以主动分析客户端请求的特征,如user_agent、url、query_string;结合业务特点,可以对其制定一些规则来进行主动防范,在应对异常流量时起到一定的防护作用。
vimx.x.cn.conf#在站点文件添加web安全限制,返回不同的状态码includeconf.d/safe.conf;#安全规则文件vimsafe.conf#禁SQL注入BlockSQLinjectionsset$block_sql_injections0;if($query_string~"union.*select.*(.*)"){set$block_sql_injections1;}if($request_uri~*"select((/\*+/)|[+]+|(%20)+)"){set$block_sql_injections1;}if($request_uri~*"union((/\*+/)|[+]+|(%20)+)"){set$block_sql_injections1;}if($request_uri~*"order((/\*+/)|[+]+|(%20)+)by"){set$block_sql_injections1;}#匹配"group/**/by","group+by","groupby"if($request_uri~*"group((/\*+/)|[+]+|(%20)+)by"){set$block_sql_injections1;}if($block_sql_injections=1){return444;}#禁掉文件注入set$block_file_injections0;if($query_string~"[a-zA-Z0-9_]=://"){set$block_file_injections1;}if($query_string~"[a-zA-Z0-9_]=(..//?)+"){set$block_file_injections1;}if($query_string~"[a-zA-Z0-9_]=/([a-z0-9_.]//?)+"){set$block_file_injections1;}if($block_file_injections=1){return444;}#禁掉溢出攻击set$block_common_exploits0;if($query_string~"(<|%3C).*script.*(>|%3E)"){set$block_common_exploits1;}if($query_string~"GLOBALS(=|[|%[0-9A-Z]{0,2})"){set$block_common_exploits1;}if($query_string~"_REQUEST(=|[|%[0-9A-Z]{0,2})"){set$block_common_exploits1;}if($query_string~"proc/self/environ"){set$block_common_exploits1;}if($query_string~"mosConfig_[a-zA-Z_]{1,21}(=|%3D)"){set$block_common_exploits1;}if($query_string~"base64_(en|de)code(.*)"){set$block_common_exploits1;}if($block_common_exploits=1){return444;}#禁spam字段set$block_spam0;if($query_string~"b(ultram|unicauca|valium|viagra|vicodin|xanax|ypxaieo)b"){set$block_spam1;}if($query_string~"b(erections|hoodia|huronriveracres|impotence|levitra|libido)b"){set$block_spam1;}if($query_string~"b(ambien|bluespill|cialis|e|ejaculation|erectile)b"){set$block_spam1;}if($query_string~"b(lipitor|phentermin|pro[sz]ac|sandyauer||troyhamby)b"){set$block_spam1;}if($block_spam=1){return444;}#禁掉user-agentsset$block_user_agents0;#禁止agent为空#if($_user_agent~^$){#set$block_user_agents1;#}#Don’tdisablewgetifyouneedittoruncronjobs!if($_user_agent~"Wget"){set$block_user_agents1;}#DisableAkeebaRemoteControl2.5andearlierif($_user_agent~"IndyLibrary"){set$block_user_agents1;}#Commonbandwidthhoggersandhackingtools.if($_user_agent~"lib-perl"){set$block_user_agents1;}if($_user_agent~"GetRight"){set$block_user_agents1;}if($_user_agent~"GetWeb!"){set$block_user_agents1;}if($_user_agent~"Go!Zilla"){set$block_user_agents1;}if($_user_agent~"DownloadDemon"){set$block_user_agents1;}if($_user_agent~"Go-Ahead-Got-It"){set$block_user_agents1;}if($_user_agent~"TurnitinBot"){set$block_user_agents1;}if($_user_agent~"GrabNet"){set$block_user_agents1;}if($block_user_agents=1){return444;}#spiderset$spider'2';if($_user_agent~.+Baiduspider.+){set$spider'0';}if($_user_agent~.+Googlebot.+){set$spider'0';}if($_user_agent~.+bingbot.+){set$spider'0';}if($_user_agent~.+JikeSpider.+){set$spider'0';}if($_user_agent~.+YoudaoBot.+){set$spider'0';}if($_user_agent~.+Sosospider.+){set$spider'0';}if($_user_agent~Yahoo!.+){set$spider'0';}if($_user_agent~Sogou.+){set$spider'0';}if($_user_agent~.+msnbot.+){set$spider'0';}if($_user_agent~.+YandexBot.+){set$spider'0';}if($_user_agent~.+Spider.+){set$spider'0';}if($_user_agent~YisouSpider){set$spider'1';}#if($_user_agent~LBBROWSER){#set$spider'1';#}if($spider='1'){return445;}通过分析客户端的user_agent、url、query_string初步分析是否具备统一特征,并根据其行为返回不同的状态码:
444sql注入、文件注入等攻击类请求
445不符合user_agent规则的请求
通过状态码,我们可以快速定位请求属于哪类安全范畴。
2.连接数、频率限制对于站点的访问连接数、访问频率,我们可以使用以下两个模块来做一些策略。此时可以对异常流量、恶意攻击起到一定的作用。
ngx__limit_conn_module
限制每个已定义的key的连接数量,特别是来自单个IP地址的连接数量。
ngx__limit_req_module
限制请求的处理速率,特别是单一的IP地址的请求的处理速率。它基于漏桶算法进行限制。
#针对url1访问频率每分100个limit_req_zone$binary_remote_addrzone=req_limit4:10mrate=100r/m;#针对url2访问频率每秒5个,burst5个limit_req_zone$binary_remote_addrzone=req_limit3:10mrate=5r/s;#针对url3问频率每秒50个,burst10个limit_req_zone$binary_remote_addrzone=req_limit2:10mrate=50r/s;#针对url4访问频率每分30个,burst10个limit_req_zone$binary_remote_addrzone=req_limit1:10mrate=30r/m;对于频率的阈值需要结合站点的实际访问流量、峰值来具体设置。基于漏桶算法,可以对突发流量进行整形,避免单一IP或多IP的大流量请求压垮服务器。
3.map自定义变量map指令通过使用nginx的内置变量创建自定义变量,由ngx__map_module模块提供的,默认情况下安装nginx都会安装该模块。通过自定义变量来匹配某些特定规则,进行访问控制。
我们可以通过map来设置白名单,不在白名单的IP将返回403。
vimmap.confmap$remote_addr$clientip{#默认为false;defaultfase;#精确匹配或正则匹配IP,则返回true1.1.1.1true;~*12.12.3true;}#如果客户端ip为false则返回403if($clientip='false'){return403;}4.小结基础防护在针对一些有规律的特征流量时,基于nginx基础模块做的一些工作。但对于一些动态流量的访问,这些规则就显得有些死板,无法满足需求。此时就行需要基于nginx+lua做一些个性化的需求。
动态防护1.策略分析基于WAF,结合日常流量的统计分析,我们主要想实现以下几方面:
黑白名单
对于三方合作渠道的IP加入白名单,没有规则策略;
通过分析日常流量,将异常行为的IP加到黑名单,前端直接返回403;
最大访问量
对于不在白名单内的IP,每个IP的每天访问量在正常情况下应该是要有上限的,为避免IP过量访问我们需要应该进行限制;
人机验证
(1)对于不在白名单内的IP,每个IP在一定周期内的访问量超限,此时需要跳转至验证码页进行人机验证;
(2)如果验证码页验证次数超限,则认定为暴力破解,将IP进行封禁一段时间;
(3)暴力破解的IP封禁超时后,重新解禁,再次访问将重新认证;
反查域名
对于冒充搜索引擎试图跳过访问策略的请求,我们将进行域名反查;确定是否为真正的爬虫,若为搜索引擎则加入白名单。
2.实施规划1.openresty环境部署组件备注openrestynginx+lualua-resty-redislua连接redisredis存放客户端请求实时数据人机验证功能页由前端提供此页面#0.基础依赖yuminstall-yGeoIPGeoIP-develGeoIP-datalioolopensslopenssl-devel#1.创建用户groupaddopenrestyuseradd-Goperestyopenresty-s/bin/nologin#2.准备源码包openresty-xxx.tar.gzpcre-xxx.tar.gztar-zxvfopenresty-xxx.tar.gztar-zxvfpcre-xxx.tar.gz#3.安装LuaJITcdopenresty-xxx/bundle/LuaJIT-xxxmakecleanmakemakeinstall#4.安装openrestycdopenresty-xxx./configure--prefix=/usr/local/openresty--with-_realip_module--with-pcre=../pcre-xxx--with-luajit--with-file-aio--with-_sub_module--with-_stub_status_module--with-_ssl_module--with-_realip_module--with-_gzip_static_module--without-select_module--without-poll_module--with-_geoip_modulemakemakeinstall#5.lua-resty-redis模块安装wgets://github/openresty/lua-resty-redis/archive/master.zipunzipmaster.zipcdlua-resty-redis-master#将lib拷贝到openresty安装目录下的lua文件夹内cp-rflib/usr/local/openresty/conf/luacd/usr/local/openresty/conf/lua/libln-sredis.luaresty/redis.lua#6.安装redisyuminstallredis-y/etc/init.d/redisstart至此openresty的基础文件已经部署完毕,下一步需要加载lua脚本实现相关的策略配置。
2.lua脚本规划统一将lua模块及相关脚本存放在/usr/local/openresty/conf/lua目录下,其中:
lib存放lua模块
access存放lua脚本
lua|--lib||-resty|||-redis.lua||-redis.lua#redis驱动|--access||-config.lua#统一配置文件||-access_init.lua#加载配置文件、获取客户端IP的方法||-access_ip.lua#黑白名单过滤||-access_veryfycode.lua#验证码规划完成后,我们就需要在oprneresty加载即可。
vimnginx.conf#在区域内添加如下配置。#加载lua配置初始化init_by_lua_file'/usr/local/openresty/nginx/conf/lua/access/access_init.lua';#lua-resty-redislua_package_path"/usr/local/openresty/nginx/conf/lua/lib/resty/?.lua;;";#黑白名单封禁ipaccess_by_lua_file'/usr/local/openresty/nginx/conf/lua/access/access_ip.lua';其中init_by_lua_file、access_by_lua_file就是openresty执行流程中的不同阶段,我们根据访问流程可以在各阶段配置不同的访问策略。
3.openresty执行流程如图openresty执行流程,在相应的阶段我们的策略如下:
1.init初始化阶段由于init阶段是流程的第一阶段,即nginx加载全局参数阶段,因此也需要首先加载我们的配置文件:
#vimconfig.lua--waf统一配置文件--ip白名单ipWhitelist={--"10.0.0.0-10.255.255.255",--神马搜索"42.156.0.0-42.156.255.255","42.120.0.0-42.120.255.255","106.11.0.0-106.11.255.255",--三方渠道"113.5.18.230-113.5.18.231","113.5.18.234",--内网"192.168.0.0-192.168.255.255",}----ip黑名单ipBlocklist={"39.104.180.188","42.236.10.1-42.236.10.254",}以上配置文件中的客户端单个地址和地址段,都是通过access_init.lua来加载config.lua配置文件并由相关方法进行IP解析:
#vimaccess_init.lua--此文件为需要在段配置init_by_lua_file'/usr/local/nginx/lua/access/access_init.lua';--注意:由于连接reids无法在init阶段使用,因此验证码由单独的access_verifycode.lua文件使用;--封禁策略:--增加ip黑名单、白名单的ip段支持package.path="/usr/local/openresty/nginx/conf/lua/access/?.lua;/usr/local/openresty/nginx/conf/lua/lib/?.lua;"package.cpath="/usr/local/openresty/nginx/conf/lua/?.so;/usr/local/openresty/nginx/conf/lua/lib/?.so;"--加载配置文件require"config"--获取客户端ipfunctiongetClientIp()IP=ngx.var.remote_addrifIP==nilthenIP="unknown"endreturnIPendfunctionipToDecimal(ckip)localn=4localdecimalNum=0localpos=0fors,einfunction()returnstring.find(ckip,'.',pos,true)enddon=n-1decimalNum=decimalNum+string.sub(ckip,pos,s-1)*(256^n)pos=e+1ifn==1thendecimalNum=decimalNum+string.sub(ckip,pos,string.len(ckip))endendreturndecimalNumend#白名单过滤functionwhiteip()ifnext(ipWhitelist)~=nilthenlocalcIP=getClientIp()localnumIP=0ifcIP~="unknown"thennumIP=tonumber(ipToDecimal(cIP))endfor_,ipinpairs(ipWhitelist)dolocals,e=string.find(ip,'-',0,true)ifs==nilandcIP==ipthenreturntrueelseifs~=nilthensIP=tonumber(ipToDecimal(string.sub(ip,0,s-1)))eIP=tonumber(ipToDecimal(string.sub(ip,e+1,string.len(ip))))ifnlinux查看服务器ipmi地址命令?
我的:Linux系统查看服务器ipmi地址的命令是:
ipmitoollanprint
Ipmitool是智能平台管理接口,ipmi能够跨不同的操作系统、固件和硬件平台,可以智能地监视、控制和自动回报大量服务器的运作状况,用来降低服务器的系统成本。
这个前提是需要安装ipmitool的软件包。
安装方法是:yuminstallipmitool-y
linux启动命令?
一:启动Nginx服务--在sbin目录下
启动命令:./nginx
关闭命令:./nginx-sstop和./nginx-squit
刷新配置文件:./nginx-sreload(每次对Nginx的配置文件nginx.conf修改后,都要进行重新加载配置文件)
二:进程
查看进程ps-ef|grep-ixxxx-i大概是ignore是忽略的意思这里是忽略大小写。
杀死进程kill-9xxxx
三:防火墙
开启防火墙serviceiptablesstart
关闭防火墙serviceiptablesstop
查看防火墙的状态serviceiptablesstatus
永久关闭防火墙chkconfigiptablesoff
四:启动zookeeper服务--在zookeeper的bin目录下
开启zookeeper服务:./zkServer.shstart
查看zookeeper状态./zkServer.shstatus
五:启动Redis服务--在redis的bin目录下
以后台的方式启动:./redis-server../redis.conf(后面的的redis.conf路径要根据每个人配置文件存放的位置来写)
进入redis命令服务:./redis-cli
输入:ping如果返回pong则表示连接成功!
六.启动tomcat服务
Linux下tomcat服务的启动、关闭与错误跟踪,使用PuTTy远程连接到服务器以后,通常通过以下几种方式启动关闭tomcat服务:
切换到tomcat主目录下的bin目录(cdusr/local/tomcat/bin)
1,启动tomcat服务
方式一:直接启动./startup.sh
方式二:作为服务启动nohup./startup.sh
方式三:控制台动态输出方式启动./catalina.shrun动态地显示tomcat后台的控制台输出信息,Ctrl+C后退出并关闭服务
解释:
通过方式一、方式三启动的tomcat有个弊端,当客户端连接断开的时候,tomcat服务也会立即停止,通过方式二可以作为linux服务一直运行
通过方式一、方式二方式启动的tomcat,其日志会写到相应的日志文件中,而不能动态地查看tomcat控制台的输出信息与错误情况,通过方式三可以以控制台模式启动tomcat服务,
直接看到程序运行时后台的控制台输出信息,不必每次都要很麻烦的打开catalina.out日志文件进行查看,这样便于跟踪查阅后台输出信息。tomcat控制台信息包括log4j和System.out.println()等输出的信息。
2,关闭tomcat服务
./shutdown.sh
七>启动数据库:
servicemysqldstart启动
servicemysqldrestart重启
如何判断linuxDHCP服务器状态/关闭/开启命令?
1.查看是否设置开机启动
chkconfig--list|grepdhcpd
2.查看端口是否打开
netstat-anulp|grep:67
3.查看服务状态
/etc/
init.d/dhcpd
status查看是否运行dhcp服务:psaux|grepdhcp|grep-vgrep
4:关闭dhcpd
/etc/
init.d/dhcpd
stop5:开启hdcpd
/etc/
init.d/dhcpd
start声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。