debian fail2ban配置

因为黑色自由后台很多SSH尝试登陆的日志,所以就干脆加了一套安全机制,把那些爆破的IP全给封掉。这里用到的就是fail2ban。

安装很简单,apt install fail2ban iptables

这里要提一下,debian 11好像默认是不带iptables的,导致我配置好以后无法生效,查看fail2ban日志才发现原来没有iptables命令,真的是尴尬。

/etc/fail2ban/jail.conf拷贝一份,名为jail.local。这里直接修改jail.local文件,因为网上说更新后会覆盖掉jail.conf文件。

vi jail.local

bantime = 10m 这个是ban掉IP的时效,单位是分钟,为负数是永久封禁,但不建议这样,因为有些网络运营商用的是共享IP,永久封禁后这个IP后的所有人都连不上了。

findtime = 10m 这个是尝试访问的时限,这是我个人的理解,就是说在10分钟内访问。

maxretry = 5 这个是最大访问次数,和上面一条配置在一起就是在10分钟内最大访问次数是5,超过5次就会封禁。

然后找到[sshd]段,加上:

enabled = true

这就可以了,其它的一些ignoreip之类看你个人情况,有固定IP就填上,表示这个IP在安全策略以外。

终于,还是给黑色自由加上了https

原本黑色自由一直都是不带https的,懒得操作,也懒得操心。

起因是某天凌晨,在手机上打开黑色自由的时候,发现页面下方被加了一条广告。本来是习以为常的事情,但出现在了这里,就顿时觉得不爽,电信运营商猥琐这事早几年就知道,但没想到的是居然轮到了黑色自由的头上,无奈就只能套个https在上面了,加了ssl,总比裸http强吧。

操作方法就很简单,使用let’s encrypt的证书,certbot安装,它会自动帮你找到nginx配置文件里的站点,全程提问式,几分钟就搞定,然后自己写个crontab隔一个月跑一次自动更新一下就行,操作方法我就不写出来了,给个地址自己去看好了:

https://certbot.eff.org/lets-encrypt/debianbuster-nginx

jenkins ssh发布时提示nohup: failed to run command `java’: No such file or directory

新环境的jar包通过jenkins ssh发布,结果jar包推送到服务器上以后,提示nohup: failed to run command `java’: No such file or directory。这可让我有点意外。

本来在/etc/profile里都已经写好了java的路径,这怎么会提示找不到java命令呢?

随后,又在jenkins ssh发布账号的个人profile里编辑了一下,添加上java的路径,后来想了一下,干脆省事点,直接source一下算了,最后还是在启动脚本里添加了source /etc/profile,这个是比较简单粗暴的。

网上还有一种方法,是直接给java做一个链接,到你真实的java路径,这个就算了,不想去修改了,如果你的启动脚本比较多,还是可以使用这种方法的,毕竟是一劳永逸,方法如下:

ln -s /your_java_path/bin/java /usr/bin/java

Centos 7 使用key登陆SSH

首先,你要新建一个用户,权限可以最小,用来ssh登陆系统。

useradd

1、ssh-keygen -t rsa

使用新建的用户执行这条命令。

会让你输入密码,根据个人需要,我是没填密码,因为使用方便。

然后会在你当前用户的home目录下生成.ssh,里面有id_rsa,id_rsa.pub,id_rsa.pub就是公钥:

2、cat id_rsa.pub >> authorized_keys

因为ssh默认是会去读取authorized_keys里面的数据。

id_rsa是私钥,拖回本地来。

3、修改/etc/ssh/sshd_config

PermitRootLogin no

PubkeyAuthentication yes

PasswordAuthentication no

systemctl restart sshd

4、vi /etc/sudoers

在%wheel ALL=(ALL) NOPASSWD: ALL这一行上添加:

youruser ALL=(ALL) NOPASSWD:ALL

至此,就可以用新建的用户加id_rsa来登陆系统了。需要root权限直接sudo -s就可以。

PS:在实施过程中因为偷懒,直接使用ssh-copy-id来把key分发到其它服务器上,其中一台始终无法登陆,提示:

Authentication refused: bad ownership or modes

后来发现是.ssh目录权限问题,直接给700,问题解决。

ubuntu16.04配置openvpn服务器

首先声明,这是一篇转载,原作者写的很清晰,为了防止原作者关站,我就给转载过来了,原地址如下:

https://www.jzfu.cc/2018/09/04/Ubuntu16-04%E6%90%AD%E5%BB%BAOpenVPN/

因为原作者是把客户端配置文件放在WEB目录下,这里我就不贴出来了,毕竟每个人的NGINX配置不一样,感兴趣的可以去原作者处查看。

前提条件
拥于公网固定IP地址的Ubuntu 16.04服务器。具有sudo权限的非root用户,当然如果你就是root更好。达到这些条件之后,用你的sudo用户登录到你的Ubuntu服务器,然后继续按照以下步骤进行。

阅读详细 »

MinIO集群CPU占用太高

之前搭建的MinIO集群,用来测试公司的业务图片。今天登陆上去一看,发现集群的CPU占用很高,被Minio全占完了,100%。

因为集群平时不做其它事情,负载也完全很低,出现CPU 100%的情况非常异常。检查了一圈也没啥可疑的,唯有CPU一直处于100%。

无奈只能更换MinIO了,去他们官网上又重新下了一份回来,当前版本为:minio version RELEASE.2020-10-28T08-16-50Z,重新启动集群后,CPU立马降下来了。

之前在他们的github上看到也有人提出CPU占用问题,官方回复都予以修复,看来之前也确实出现过同样问题,只是时间节点跟我的情况对不上,所以干脆重新下载了一份新的回来,没想到问题就解决了。

MinIO集群搭建部署

环境:VMware虚拟机
节点1:10.0.0.1
节点2:10.0.0.2
节点3:10.0.0.3
节点4:10.0.0.4

因为MinIO官方建议最少4个节点,这里是测试,所以就一个节点一块盘。
在第一次实施过程中遇到了个坑,其实也不算是坑,而是没有仔细操作,只是想偷懒。MinIO要求的是盘,而我这里使用的是一个目录,单机运行的时候没有问题,但是在集群的时候就不行了,提示

Disk /data/minio_data is a root disk. Please ensure the disk is mounted properly, refusing to use root disk.


主要问题就是MinIO数据存储使用的是目录,而不是重新挂载的硬盘。
重新在VMware里添加一块硬盘挂载上系统就可以解决这个问题。


大概的步骤就是:
1、lsblk查看硬盘名称,比如/dev/sdb b在这里是个序号,你系统硬盘多,就顺延,比如到e之类。
2、新硬盘创建分区:fdisk /dev/sdb,根据提示输入n,然后后面只管确认就行,整块sdb就会被分为一个区。
3、格式化新分区,我这里使用的是centos7,格式为xfs,mkfs.xfs /dev/sdb,具体什么格式,你可以查看原系统的,lsblk -f,或者df -Th都可以看到分区格式。
4、挂载:mount /dev/sdb /data1

阅读详细 »