利用fail2ban来阻断一些恶意扫描和暴力破解---保护你的VPS 技术文章

UPdate:使用效果很明显,就这么几天扫描快9W次,ban了八百多IP

shotpic_2018-07-01_21-13-12.png

简单介绍一下:

如果把vps的iptables比作是一把枪,那么fail2ban就是除了你之外的另一个忠心的手下,他可以拿着枪来枪毙或管理那些非法的探视,将他们拒之门外,将一些危险扼杀在萌芽阶段。但是,他也仅仅是个手下,不是超人,可况超人也不是万能的!所以也不要以为有了它就可以高枕无忧了,这就好比一个人在厉害,也不可能打过一群人。fail2ban可以防御一定范围的CC、暴力破解登录或者是恶意扫描等等。

安装:

推荐使用这个一键脚本(lnmp.org作者写的):

wget https://raw.githubusercontent.com/licess/lnmp/master/tools/fail2ban.sh && ./fail2ban.sh

第二种方法就是自己手动去fail2ban的GitHub下载解压安装,地址:

https://github.com/fail2ban/fail2ban

最后一种就是直接通过包安装,但是可能不是最新的:

Debian/Ubuntu:apt install fail2ban

centos:yum install fail2ban

安装完来配置使其监控我们的nginx、apache或其他服务的日志,从日志中提取我们需要屏蔽的一些恶意请求,比如大量的404---通过扫描器扫描产生,ssh暴力破解,v2ray的暴力尝试爆破ID等等。

如果是通过第一种,使用一键脚本安装的话,我们只需要修改 /etc/fail2ban/jail.local 这个文件然后在 /etc/fail2ban/filter.d/中添加自己的规则文件即可。

比如我的在/etc/fail2ban/jail.local 中追加如下内容,下面使用cat命令直接追加:

cat >>/etc/fail2ban/jail.local<<EOF

[sshd]
enabled = true
port = ssh
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
#mail-whois[name=SSH, [email protected]]
logpath = /var/log/auth.log
maxretry = 5
bantime = 604800

[deny-badcrawl]
enabled = true
port = http,https
filter = deny-badcrawl
action = iptables[name=Http, port=80, protocol=tcp]
action = iptables[name=Https, port=443, protocol=tcp]
logpath = /home/wwwlogs/*.log
maxretry = 4
findtime = 3600
bantime = 3600

[nginx-limit-req]
enabled = true
port = http,https
logpath = /usr/local/nginx/conf/nginx.conf
action = iptables[name=Http, port=80, protocol=tcp]
action = iptables[name=Https, port=443, protocol=tcp]
maxretry = 4
findtime = 600
bantime = 600

EOF

请注意SSH的port,如果你自己修改过端口号,那么请把port替换成你自己修改的端口号。nginx-limit-req需要你在你的nginx配置文件中配置了才能生效的。

因为nginx-limit-req新版本的fail2ban已经有了,具体的可以在 /etc/fail2ban/filter.d 目录下面查看。

好了,然后我们在 /etc/fail2ban/filter.d 目录下新建一个deny-badcrawl.conf:

touch deny-badcrawl.conf

然后将如下内容写进去(我依旧是使用的cat命令,你可以根据自己喜好,比如nano,vi等):

cat >>/etc/fail2ban/filter.d/deny-badcrawl.conf<<EOF

[Definition]
failregex = <HOST> -.*- .*HTTP/*.* 404 .*$
ignoreregex =

EOF

然后重启fail2ban即可:service fail2ban restart

然后查看状态:fail2ban-client status

查看某个规则的具体状态:fail2ban-client status deny-badcrawl

像我这里使用了几个小时后就封了好几个IP:

shotpic_2018-06-23_13-27-42.png

注意:一般修改配置文件后,我们只需要重新载入即可,不需要重启fail2ban:

fail2ban-client reload nginx-limit-req 如果不生效,就强制重新加载service fail2ban force-reload nginx-limit-req

OK

具体的fail2ban用法和详细参数设置这些,早有前辈写过很多,不过最好是去官网看英文原版。


Mrxn 发布于 2018-6-23 13:33

搭建了一个Jetbrains系列软件激活服务端--欢迎测试 神器荟萃

因为自己使用pycharm写写python代码,需要激活软件,之前是下载到本地,每次打开软件都需要手动运行激活服务端很是不方便,今天抽空把Jetbrains系列软件激活服务端放到自己的小鸡上了,欢迎测试。在此感谢lanyu 的付出与分享。

使用方法很简单,打开你的软件,比如我使用的pycharm,然后选择激活服务器---License server ,地址填写:https://idea.mrxn.net,然后点击Activate即可激活。

shotpic_2018-06-08_13-29-59.png 

一般来说,如果是可以激活的,一两秒钟就可以看到激活成功了。

shotpic_2018-06-08_13-25-34.png

 update:2020/02/12,激活服务端对于新版不行了,但是激活码更新在这里可以的:

CZ15DZPZYY-eyJsaWNlbnNlSWQiOiJDWjE1RFpQWllZIiwibGljZW5zZWVOYW1lIjoi5rC45LmF5r+A5rS7IGlkZWEubWVkZW1pbmcuY29tIiwiYXNzaWduZWVOYW1lIjoiIiwiYXNzaWduZWVFbWFpbCI6IiIsImxpY2Vuc2VSZXN0cmljdGlvbiI6IiIsImNoZWNrQ29uY3VycmVudFVzZSI6ZmFsc2UsInByb2R1Y3RzIjpbeyJjb2RlIjoiSUkiLCJwYWlkVXBUbyI6IjIwMjAtMDMtMDgifSx7ImNvZGUiOiJBQyIsInBhaWRVcFRvIjoiMjAyMC0wMy0wOCJ9LHsiY29kZSI6IkRQTiIsInBhaWRVcFRvIjoiMjAyMC0wMy0wOCJ9LHsiY29kZSI6IlBTIiwicGFpZFVwVG8iOiIyMDIwLTAzLTA4In0seyJjb2RlIjoiR08iLCJwYWlkVXBUbyI6IjIwMjAtMDMtMDgifSx7ImNvZGUiOiJETSIsInBhaWRVcFRvIjoiMjAyMC0wMy0wOCJ9LHsiY29kZSI6IkNMIiwicGFpZFVwVG8iOiIyMDIwLTAzLTA4In0seyJjb2RlIjoiUlMwIiwicGFpZFVwVG8iOiIyMDIwLTAzLTA4In0seyJjb2RlIjoiUkMiLCJwYWlkVXBUbyI6IjIwMjAtMDMtMDgifSx7ImNvZGUiOiJSRCIsInBhaWRVcFRvIjoiMjAyMC0wMy0wOCJ9LHsiY29kZSI6IlBDIiwicGFpZFVwVG8iOiIyMDIwLTAzLTA4In0seyJjb2RlIjoiUk0iLCJwYWlkVXBUbyI6IjIwMjAtMDMtMDgifSx7ImNvZGUiOiJXUyIsInBhaWRVcFRvIjoiMjAyMC0wMy0wOCJ9LHsiY29kZSI6IkRCIiwicGFpZFVwVG8iOiIyMDIwLTAzLTA4In0seyJjb2RlIjoiREMiLCJwYWlkVXBUbyI6IjIwMjAtMDMtMDgifSx7ImNvZGUiOiJSU1UiLCJwYWlkVXBUbyI6IjIwMjAtMDMtMDgifV0sImhhc2giOiIxNjYzMTgyNS8wIiwiZ3JhY2VQZXJpb2REYXlzIjo3LCJhdXRvUHJvbG9uZ2F0ZWQiOmZhbHNlLCJpc0F1dG9Qcm9sb25nYXRlZCI6ZmFsc2V9-mWKj5dwt4IvUVO1h86HZiC3+KJxoTK9CEZyb+ev/+q5s+8UYpPFlP3+4hLqww5iraavb1Xx1qHy/snUDcerPye5vy9l81h6y2TGnhIhASYNkOpX2vRPFVAgwOz+ACDwvRlokiCcDJ+S4g8ok5D/S2CLlspb23IyArixz1s/Q+/P7o4Rzn5DLHEdRtfbW7CPBWbXK+ipMXQxlpokqhk8UzTOZgNkFnYjpJdfYHr6gHTrcH2QC/BL0peg8Y9+wXEde8Ks+ogrpNTAZrQmdQ81D+SdoZN3MxxWypxSU4Wo5YTIPX2fQAp56SpcO33iZbdrmoRM9PJjuDyIvY6kuphQ4VQ==-MIIElTCCAn2gAwIBAgIBCTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTE4MTEwMTEyMjk0NloXDTIwMTEwMjEyMjk0NlowaDELMAkGA1UEBhMCQ1oxDjAMBgNVBAgMBU51c2xlMQ8wDQYDVQQHDAZQcmFndWUxGTAXBgNVBAoMEEpldEJyYWlucyBzLnIuby4xHTAbBgNVBAMMFHByb2QzeS1mcm9tLTIwMTgxMTAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxcQkq+zdxlR2mmRYBPzGbUNdMN6OaXiXzxIWtMEkrJMO/5oUfQJbLLuMSMK0QHFmaI37WShyxZcfRCidwXjot4zmNBKnlyHodDij/78TmVqFl8nOeD5+07B8VEaIu7c3E1N+e1doC6wht4I4+IEmtsPAdoaj5WCQVQbrI8KeT8M9VcBIWX7fD0fhexfg3ZRt0xqwMcXGNp3DdJHiO0rCdU+Itv7EmtnSVq9jBG1usMSFvMowR25mju2JcPFp1+I4ZI+FqgR8gyG8oiNDyNEoAbsR3lOpI7grUYSvkB/xVy/VoklPCK2h0f0GJxFjnye8NT1PAywoyl7RmiAVRE/EKwIDAQABo4GZMIGWMAkGA1UdEwQCMAAwHQYDVR0OBBYEFGEpG9oZGcfLMGNBkY7SgHiMGgTcMEgGA1UdIwRBMD+AFKOetkhnQhI2Qb1t4Lm0oFKLl/GzoRykGjAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBggkA0myxg7KDeeEwEwYDVR0lBAwwCgYIKwYBBQUHAwEwCwYDVR0PBAQDAgWgMA0GCSqGSIb3DQEBCwUAA4ICAQAF8uc+YJOHHwOFcPzmbjcxNDuGoOUIP+2h1R75Lecswb7ru2LWWSUMtXVKQzChLNPn/72W0k+oI056tgiwuG7M49LXp4zQVlQnFmWU1wwGvVhq5R63Rpjx1zjGUhcXgayu7+9zMUW596Lbomsg8qVve6euqsrFicYkIIuUu4zYPndJwfe0YkS5nY72SHnNdbPhEnN8wcB2Kz+OIG0lih3yz5EqFhld03bGp222ZQCIghCTVL6QBNadGsiN/lWLl4JdR3lJkZzlpFdiHijoVRdWeSWqM4y0t23c92HXKrgppoSV18XMxrWVdoSM3nuMHwxGhFyde05OdDtLpCv+jlWf5REAHHA201pAU6bJSZINyHDUTB+Beo28rRXSwSh3OUIvYwKNVeoBY+KwOJ7WnuTCUq1meE6GkKc4D/cXmgpOyW/1SmBz3XjVIi/zprZ0zf3qH5mkphtg6ksjKgKjmx1cXfZAAX6wcDBNaCL+Ortep1Dh8xDUbqbBVNBL4jbiL3i3xsfNiyJgaZ5sX7i8tmStEpLbPwvHcByuf59qJhV/bZOl8KqJBETCDJcY6O2aqhTUy+9x93ThKs1GKrRPePrWPluud7ttlgtRveit/pcBrnQcXOl1rHq7ByB8CFAxNotRUYL9IF5n3wJOgkPojMy6jetQA5Ogc8Sm7RG6vg1yow==



Mrxn 发布于 2018-6-8 13:42

Oracle SQL/PL 求1到100以内的奇数和偶数和 技术文章

declare
i number;
i_sum number :=0;
begin
for i in 1..100 loop
if i mod 2 = 0 then
i_sum := i_sum + i;
dbms_output.put_line(i);
end if;
end loop;
dbms_output.put_line('1-100偶数和:'||i_sum);
dbms_output.put_line('作者:https://mrxn.net');
end;


declare
i number;
i_sum number :=0;
begin
for i in 1..50 loop
i_sum := i_sum + i*2;
end loop;
dbms_output.put_line('1-100偶数和:'||i_sum);
dbms_output.put_line('作者:https://mrxn.net');
end;

declare
i number;
i_sum number :=0;
begin
for i in 1..100 loop
if i mod 2 != 0 then
i_sum := i_sum + i;
dbms_output.put_line(i);
end if;
end loop;
dbms_output.put_line('1-100奇数和:'||i_sum);
dbms_output.put_line('作者:https://mrxn.net');
end;

标签: Oracle

Mrxn 发布于 2018-6-5 16:43