我们的服务器有很多格式的文件,当我们由于安全考虑,经常不希望用户访问到某些格式的文件,或者用户上传了一些危险的文件,导致潜在的安全问题,有没有一个一劳永逸的方式让指定文件格式就是不能访问呢,比如不让用户访问.txt文件,或php文件,有的,今天看到了利用伪静态实现的,代码如下:禁止访问特定后缀文件location~\.(php|jsp|txt)${denyall;}禁止访问某个目录下的php后缀文件location/directory{location~.*\.(php)?${denyall;}}禁止访问多个目录下的php后缀文件location~*^/(directory1|directory2)/.*\.(php)${denyall;}禁止访问目录或目录下文件#禁止访问目录location^~/test/{denyall;}#禁止访问目录下文件location^~/test{denyall;}nginxlocation的匹配语法=表示精确匹配^~表示uri以某个字符串开头~正则匹配(区分大小写)~正则匹配(不区分大小写)!~和!~分别为区分大小写不匹配及不区分大小写不匹配的正则/任何请求都会匹配匹配优先级:=>^~>/来源:https://segmentfault.com/a/1190000040649628iis如果有限制某个文件格式访问,可以打开iis,选中你的项目,然后在右侧的功能视图界面找到请求筛选,或者调整目录下的web.config进行设置,参考https://www.cnblogs.com/webenh/p/5775599.html也可以直接bt里打开iis软件设置,然后设置MIMEweb.config伪静态进行设置参考(可以再bt伪静态中直接设置,下面为禁止htm、php、txt的访问):<?xmlversion="1.0"?><rules><rulename="disableDownloadHtml_rewrite"><matchurl=".*.htm$"ignoreCase="true"/><actiontype="CustomResponse"url="/"statusCode="403"statusReason="Forbidden"statusDescription="Forbidden"/></rule><rulename="jingtxt_rewrite"><matchurl=".*.txt$"ignoreCase="true"/><actiontype="CustomResponse"url="/"statusCode="403"statusReason="Forbidden"statusDescription="Forbidden"/></rule><rulename="jingphp_rewrite"><matchurl=".*.php$"ignoreCase="true"/><actiontype="CustomResponse"url="/"statusCode="403"statusReason="Forbidden"statusDescription="Forbidden"/></rule></rules>
工具:inotify-tools:监控文件create,move,modify,delete,movegcc:inotify-tools安装需要lftp:实现ftp镜像功能,比较文件后进行增量上传一,安装inotify-tools1.安装gccyuminstallgcc如果系统内未安装,需要预先安装,否则无法编译inotify-tools2.安装inotify-tools该项目的github地址:https://github.com/rvoicilas/inotify-tools下载地址:http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz下载之后ar-zvxfinotify-tools-3.14.tar.gzcdinotify-tools-3.14./configure--prefix=/usr/local/inotifymakemakeinstall有的建议修改以下参数修改inotify参数1、命令修改[root@iZ25w1kdi5zZbin]#sysctl-wfs.inotify.max_user_instances=130fs.inotify.max_user_instances=1302、文件修改[root@iZ25w1kdi5zZ]#vi/etc/sysctl.conf#添加如下代码fs.inotify.max_user_instances=1303、参数说明max_user_instances:每个用户创建inotify实例最大值max_queued_events:inotify队列最大长度,如果值太小,会出现错误,导致监控文件不准确max_user_watches:要知道同步的文件包含的目录数,可以用:[root@iZ25w1kdi5zZhome]#find/home/rain-typed|wc-l统计,必须保证参数值大于统计结果(/home/rain为同步文件目录)。---------------------作者:god_wot来源:CSDN原文:https://blog.csdn.net/god_wot/article/details/50448814版权声明:本文为博主原创文章,转载请附上博文链接!二,创建实时监控脚本mkdir-p/opt/scriptscd/opt/scriptsviinotify_start.sh#!/bin/bash#chkconfig:3458814#不加的话chkconfig--add肯定是要报service#inotify.shdoesnotsupportchkconfig错误/usr/local/inotify/bin/inotifywait-mrq-ecreate,move'/opt/script/ffile'|whilereadLINEdoif[[$LINE=*CREATE*]];then#当变量LINE有CREATE字符时执行lftp_toftp.sh/home/script/lftp_toftp.shelif[[$LINE=*MOVE*]];then#当变量LINE有MOVE字符时执行lftp_toftp.sh/home/script/lftp_toftp.shfidonechkconfig:3458814注释表示在rc3|4|5.d下生成优先级88的启动脚本软链接,另外在rc0|6.d下生成优先级14的停止脚本软链接(大概是这么个意思,不太理解是什么)/usr/local/inotify/bin/inotifywait-mrq-emodify,create,move,delete-mrq:始终保持监听状态;递归查询目录;打印出监控事件-e:定义监控的事件,modify,create,move,deleteinotifywait常用参数:--timefmt时间格式%y年%m月%d日%H小时%M分钟--format输出格式%T时间%w路径%f文件名%e状态-m始终保持监听状态,默认触发事件即退出。-r递归查询目录-q打印出监控事件-e定义监控的事件,可用参数:open打开文件access访问文件modify修改文件delete删除文件create新建文件--fromfile'/opt/script/ffile':定义被监控的文件夹viffile/home/log/#监控log文件夹@/home/log/upload#不监控upload文件夹chmoda+x./inotify_start.sh赋予可执行权限三,开机自动启动inotify-tools脚本将编辑好的脚本,复制或移动到以下文件夹/etc/rc.d/init.d/执行cd/etc/rc.d/init.dchkconfig--addinotify_start.shchkconfiginotify_start.sh系统启动后就自动运行inotify_start.sh了四,编辑lftp上传脚本安装lftp:yuminstalllftp任意位置,/home/script/,新建脚本文件vilftp_toftp.sh#!/bin/bashlftp-c"setftp:list-options-a;openftp://web1:webweb@172.16.200.46;lcd/home/wwwroot/anoroot/upload/asg_log/;#本地文件夹cd/mydic/temp;#远程ftp上的文件夹mirror--reverse--use-cache--verbose--allow-chown--allow-suid--no-umask--parallel=2--include-glob*.log"#镜像向ftp同步扩展名为log的文件参考资料:inotify-toolshttps://blog.csdn.net/god_wot/article/details/50448814shellhttps://blog.csdn.net/junmail/article/details/4912065https://www.yiibai.com/shell/if-elif-statement.htmlhttp://www.runoob.com/linux/linux-shell-process-control.html开机启动:http://www.cnblogs.com/lei0213/p/8595030.htmlhttps://blog.csdn.net/lzjansing/article/details/53053824————————————————版权声明:本文为CSDN博主「ken6328」的原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/ken6328/article/details/86714373
查看rsync是否安装:rpm-qa|greprsyncrsync安装:yuminstall-yrsync===================================1.安装lsyncdyuminstallepel-release-yyuminstalllsyncd-y2.配置lsyncd(/etc/lsyncd.conf)settings{logfile="/tongburizhi/lsyncd.log",statusFile="/tongburizhi/lsyncd.status",nodaemon=true,}sync{default.rsync,source="/test",target="/test1",delay=1,rsync={binary="/usr/bin/rsync",archive=true,compress=false}}logfile:日志目录statusFile:日志定位nodaemon:守护模式source:源目录target:目标同步目录delay:等待rsync同步延时时间,默认15秒binary:lsyncd的目录archive:不清楚啥意思compress:压缩传输默认为true。在带宽与cpu负载之间权衡,本地目录同步可以考虑把它设为false3.启动lsyncdservicelsyncdstart或lsyncd-logExec/etc/lsyncd.conf停止/重启:servicelsyncdstopservicelsyncdrestart4.查看同步是否在运行ps-ax|greplsyncd4.查看日志(见配置文件日志位置)5.开机启动chkconfiglsyncdon若想关闭,将on改为off也可以尝试使用bt的开机启动插件实现