fail2ban学习分享

介绍

官方有这么一句话:Fail2ban scans log files (e.g. /var/log/apache/error_log) and bans IPs

简单的说fail2ban监控日志文件,通过正则表达式匹配出异常的操作。发现异常操作,就把对应的ip禁止掉(通过iptables或者ipset禁止ip访问)。

iptable截图:

iptable截图

配置信息

fail2ban有2个重要的目录和1个配置文件。

目录filter.d:存放匹配日志文件的各种正则表达式,如下:

filter.d目录下的文件
sshd.conf文件的里正则表达式

目录action.d:存放匹配到异常后,执行什么动作的配置文件,如下:

action.d目录下的配置文件
iptable.conf的配置文件(在发现异常后,把异常ip地址放入iptable里,拒绝这个ip地址访问服务器)

配置文件jail.local:指定监控哪些日志,使用哪个正则表达式,执行什么动作。如下:

jail.local配置文件的内容

enabled:是否启用。可选值false,true

filter:指定/etc/fail2ban/filter.d/目录下的正则表达式文件,如filter = sshd则是指定/etc/fail2ban/filter.d/sshd.conf。

action:指定执行的动作,具体动作文件在/etc/fail2ban/action.d目录下。如action=iptable,则是引用etc/fail2ban/action.d/iptable.conf配置文件

logpath:指定监控日志的路径。

maxretry:执行action,要求匹配的次数。

bantime:非法 IP 被屏蔽时间(秒),-1 代表永远封锁

findtime:设置多长时间(秒)内超过 maxretry 限制次数即被封锁

测试工具

有些时候,我们要自己编写正则表达式,就需要一个工具去测试正则表达式是否正确。这个工具名字叫:fail2ban-regex

例子:fail2ban-regex -v ./nginx.log /etc/fail2ban/filter.d/nginx-http-access.conf

fail2ban-regex会输出很详细的内容,包含ip地址、匹配到几条日志、没有匹配到几条日志等等。具体如下图:

参考

http://www.fail2ban.org/wiki/index.php/Main_Page

发表在 IT | 标签为 , , | 留下评论

.ssh文件夹下面的文件

authorized_keys:存放远程免密登录的公钥,主要通过这个文件记录多台机器的公钥  

id_rsa : 生成的私钥文件   

id_rsa.pub : 生成的公钥文件   

know_hosts : 已知的主机公钥清单

发表在 IT | 标签为 , | 留下评论

爱普生(epson) xp-215打印机的固件降级

有条件的朋友,直接使用wicreset这款软件(降一次固件20美金),可以略过本文。

背景:

升级了xp-215的固件后,连供的芯片不能重置墨水。这个告诉大家,安装了连供系统的打印机,不要升级固件。

1.找固件

https://www.epson.co.uk/这个网站上,找到升级固件的软件。这个软件里包含固件。

这里有一个小窍门,只有mac系统(Mac OS X 10.10.x (Yosemite) )才有固件升级软件(想不明白为什么windows没有)。如下图:

2.让打印机进入刷机模式

这里引用一下resetter.me网站上的一段说明:

For XP-200/201/202/203/204/205/206/207/208/211/212/213/214/215/216:

Turn off the printer.
Press and hold STOP + COLOR + Wi-Fi + ON buttons at the same time within one minute after printer is turned off.
Hold this buttons until all LEDs except power LED is ON.
Update devices list and select firmware then click update.
When update is completed all LEDs will blink.
Press STOP button to turn off the printer.

STOP – red triangle in the circle.
COLOR – color copy button with two blue sheets of paper.

简单的说,先把打印机关闭。然后同时按住 停止键、彩色打印键、Wifi键和电源键,直到所有的灯灭了,只有电源灯亮着。

3.打开软件开始刷机

注意:本人是使用Firmware Updater这个软件

一路按下一步,选择好固件就可以了。升级完毕,按停止键,打印机就会关机。

4.为防止epson把固件删了,我这边备份一下,给大家使用

下载/Download

发表在 IT | 标签为 , , | 留下评论

人民币贬值,美国加税,被列为汇率操纵国的影响

  1. 加速外资撤离,导致相关企业以及产业链企业倒闭
  2. 外资撤走,中国企业就不能从外企那里学到新技术。如果中国填鸭式的教育制度不改革,中国高科技水平从这今年开始,会和国外慢慢拉开距离。
  3. 企业经营不善或倒闭,工人工资下降或下岗,导致社会不稳定
  4. 收入减少、失业率上升,支撑房地产的基石开始不稳,房价会撑不住。再加上,政府表态,要落实银行贷款到实体经济的传导机制,更是雪上加霜。
  5. 中国粮食依赖进口,粮食价格将会上涨。cpi上涨。
  6. 老百姓的购买力下降,不管买国产货,还是买进口货。导致国内存活的企业,利润下降。利润下降,企业裁员。不断循环。
  7. 避险资产,比如黄金,btc,美元,需求会上升
  8. 只要香港反送中游行不断升级,台湾地区的蔡英文连任可能性就越大。大陆武统台湾的可能性就不断增强,因为可以转移国内经济下行的矛盾。
  9. 当前的中国被列入汇率操纵国之后,此后可能也面临来自美国要求人民币升值的压力。中国需要警惕人民币贬值过程中本国资产有所“打折”,而外资在对外开放过程中低价购入中国资产,并在此后要求人民币升值的风险
  10. 企业利润减少,还不了贷款,小银行会倒闭
发表在 经济 | 留下评论

spring boot 2.的jetty,tomcat文件上传问题

上传文件的大小配置

 
spring:
servlet:
multipart:
max-file-size: 20MB
max-request-size: 20MB

最大可以上传的文件大小是20MB

Jetty服务器

在使用jetty作为服务器的情况下,上传的文件大小大于20MB的时候,会报错,如下:

希望在GlobalExceptionHandler里去捕获MaxUploadSizeExceededException和BadMessageException,返回一段优美的json,但是都捕获不到。

Tomcat服务器

google一下,网上有说这是一个jetty的bug,于是使用tomcat。

发现使用tomcat后,当上传的文件大于20MB的时候,
GlobalExceptionHandler可以捕获到MaxUploadSizeExceededException 。非常高兴。

但是没有返回优美的json错误提示。头大。。。

使用wiresharp抓包,发现Tcp Reset,如下图:

仔细一看是tomcat发出的reset,估计是tomcat觉得上传的文件太大,就主动reset了。

修改tomat的MaxSwallowSize,如下:

@Bean
public ConfigurableServletWebServerFactory configurableServletWebServerFactory(){
TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory();
factory.addConnectorCustomizers((TomcatConnectorCustomizer) connector -> {
((AbstractHttp11Protocol<?>) connector.getProtocolHandler()).setMaxSwallowSize(-1);
});
return factory;
}

这时候,上传文件的大于20MB的时候,会返回的一个优美的json错误提示。如下图:

看似问题解决。却又有了,新问题:

每当上传大于20MB的文件时,tomcat要把文件上传完毕后,才会返回这段优美的json错误提示。如果上传1G的问题,也是如此。如果上传500G的文件,服务器岂不是完蛋了。

发表在 IT | 标签为 , , | 留下评论

判断一个站点是否有cdn加速

nslookup 域名

如果返回多个ip表示有cdn加速,如下图

发表在 其他 | 留下评论

部署不安全的docker私有仓库(insecure-registries)

Docker仓库:

  1. Edit the daemon.json file, whose default location is /etc/docker/daemon.json on Linux orC:\ProgramData\docker\config\daemon.json on Windows Server. If you use Docker Desktop for Mac or Docker Desktop for Windows, click the Docker icon, choose Preferences, and choose +Daemon.If the daemon.json file does not exist, create it. Assuming there are no other settings in the file, it should have the following contents:{ "insecure-registries" : ["myregistrydomain.com:5000"] } Substitute the address of your insecure registry for the one in the example.With insecure registries enabled, Docker goes through the following steps:
    • First, try using HTTPS.
      • If HTTPS is available but the certificate is invalid, ignore the error about the certificate.
      • If HTTPS is not available, fall back to HTTP.
  2. Restart Docker for the changes to take effect.

Docker客户端

Repeat these steps on every Engine host that wants to access your registry.

结论:dcoker仓库和docker客户端都要配置 insecure-registries 。切记切记!

参考:

https://docs.docker.com/registry/insecure/

发表在 其他 | 标签为 | 留下评论

操作系统里的buffer和cache

  • A buffer is something that has yet to be “written” to disk. (把即将到磁盘的数据缓存起来)
  • A cache is something that has been “read” from the disk and stored for later use.(从磁盘中取数据,作为缓存)
发表在 IT | 标签为 , , | 留下评论

j1900工控机Ubuntu 16.04.5 LTS卡死问题的解决

1.编辑/etc/default/grub,修改GRUB_CMDLINE_LINUX

GRUB_CMDLINE_LINUX="intel_idle.max_cstate=1"

sudo vi /etc/default/grub

2.sudo update-grub

3.重启

ps:

我的ubuntu内核:

Linux ubuntu-server 4.15.18-041518-generic #201804190330 SMP Thu Apr 19 07:34:21 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

参考:

https://www.cnblogs.com/cobranail/p/6032890.html

http://www.jyguagua.com/?p=3888

 

发表在 其他 | 留下评论

git的三个阶段和文件回撤

git的三个阶段

working tree:就是你所工作在的目录,每当你在代码中进行了修改,working tree的状态就改变了。
index file:是索引文件,它是连接working tree和commit的桥梁,每当我们使用git-add命令来登记后,index file的内容就改变了,此时index file就和working tree同步了。
commit:是最后的阶段,只有commit了,我们的代码才真正进入了git仓库。我们使用git commit就是将index file里的内容提交到commit中。

git diff的使用

git diff:是查看working tree与index file的差别的。
git diff –cached:是查看index file与commit的差别的。
git diff HEAD:是查看working tree和commit的差别的。(你一定没有忘记,HEAD代表的是最近的一次commit的信息)

git add回撤

git reset HEAD:回撤所有文件的add

git reset HEAD 目录文件:回撤某个文件的add:

git commit回撤

git reset –soft commit_id:只回撤git commit,git add依然生效,修改的文件存在

git reset –mixed commit_id:回撤git commit和git add,修改的文件存在

git reset –hard commit_id:回撤git commit和git add,修改的文件也不存在了

修改commit备注

git commit –amend

发表在 IT | 标签为 , , | 留下评论