分类 安全 下的文章

将iOS系统中wifi和蜂窝数据的DNS都设置为阿里的DoH,防止DNS污染。
使用Safari浏览器访问栗子站,点击下面按钮添加描述文件后,在设置-通用-描述文件中进行安装即可
[button color="success" url="https://ndc.nsoc.tech:8043/dns/alibaba-https.mobileconfig" outline="" target="_self"]点击切换到阿里DoH[/button]
QQ截图20220605144647.jpg

【注意】本文只是通过阿里DoH的描述文件,提供一种iOS使用DoH的一种简单的配置示例,可以在一定程度上减少DNS污染。阿里DNS也无法保证100%污染,建议还是用ADGH等自建服务(建议得有dnsserver分流和fallback机制才能同时保障稳定和快速)进行去污染。

阿里云的收费证书太贵了,然后免费的只能申请20个单域名证书,都不够家里内网Nginx用的。
QQ截图20210815143407.jpg
泛域名证书一年卖1700…………想钱想疯了真是
于是我花了5分钟时间上网查了下解决方案,还真有
AlphaSSL泛域名证书的一年装token,网上才25块钱
记录一下申请步骤:
首先随便在网上买个AlphaSSL泛域名SSL证书的token
QQ截图20210815143800.jpg
然后去zoho申请个域名邮箱
https://www.zoho.com/mail/
QQ截图20210815144640.jpg
然后填写邮箱信息后,系统提示配置DNS
QQ截图20210815144903.jpg
打开阿里云,配置MX记录和TXT记录用于验证域名、收发邮件和加密
QQ截图20210815145128.jpg
然后在zoho新建一个邮箱admin@域名,用QQ邮箱发一条邮件看看能不能收到
QQ截图20210815145330.jpg
邮箱测试没问题后,随便百度一个CSR在线生成网站,申请一个CSR
https://csr.chinassl.net/generator-csr.html
填写的时候注意邮箱写admin@域名,其他随意
QQ截图20210815142100.jpg
CSR申请后会给你一个CERTIFICATE REQUEST和KEY文件
然后提交Token和CERTIFICATE REQUEST申请证书
QQ截图20210815145622.jpg
申请提交后会给刚才配置的zoho邮箱发邮件
QQ截图20210815145928.jpg
点击邮件中的激活链接,会让你确认信息
QQ截图20210815141908.jpg
确认后稍微等一会
QQ截图20210815141920.jpg
会收到证书的邮件
QQ截图20210815150318.jpg
然后把证书和刚才做CSR时候给你的私钥文件转换为你喜欢的格式放在web服务器上
//补充,此处需用https://www.myssl.cn/tools/downloadchain.html 工具生成下中间证书,加到证书中间
QQ截图20210815150410.jpg
重启web服务,可以看到泛域名SSL证书生效了
QQ截图20210815142521.jpg

最近在研究系统加固,发现个非常方便的双因素验证应用google-authenticator

双因素验证是啥东西?

双因素认证是一种采用时间同步技术的系统,采用了基于时间、事件和密钥三变量而产生的一次性密码来代替传统的静态密码。每个动态密码卡都有一个唯一的密钥,该密钥同时存放在服务器端,每次认证时动态密码卡与服务器分别根据同样的密钥,同样的随机参数(时间、事件)和同样的算法计算了认证的动态密码,从而确保密码的一致性,从而实现了用户的认证。因每次认证时的随机参数不同,所以每次产生的动态密码也不同。由于每次计算时参数的随机性保证了每次密码的不可预测性,从而在最基本的密码认证这一环节保证了系统的安全性。解决因口令欺诈而导致的重大损失,防止恶意入侵者或人为破坏,解决由口令泄密导致的入侵问题。

首先更新下时间

date -s 21:03:00
hwclock -w

加个源

rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

然后安装google-authenticator

yum install google-authenticator -y

开启配置向导

google-authenticator

手机扫一扫
QQ截图20210712211722.jpg
修改ssh配置

sed -i "/auth[ ]*substack[ ]*pass*/a\auth required pam_google_authenticator.so" /etc/pam.d/sshd
sed -i -r 's#(ChallengeResponseAuthentication) no#\1 yes#g' /etc/ssh/sshd_config

重启ssh服务

service sshd restart

不要关ssh,另开一个窗口测试
输入密码和动态口令登录
QQ截图20210712211802.jpg
手机google-authenticator开启Face ID
IMG_6856.PNG

另:为了避免服务器时间出错导致无法通过google-authenticator登录,可以在服务器上再装个cockpit备份(做限源),ssh无法访问时可通过网页恢复。

有时候机器不支持iptables,只支持firewalld,需要限源ssh端口
先将firewalld设置开机自启

systemctl enable firewalld

启动服务

systemctl start firewalld

检查运行状态

systemctl status firewalld

设置默认拒绝ssh连接

firewall-cmd --permanent --remove-service=ssh

配置限源

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="你的IP/32" port protocol="tcp" port="22" accept'

生效命令

firewall-cmd --reload

查看生效的命令

firewall-cmd --zone=public --list-rich-rules

附录 常用命令:
删除之前的复杂规则

firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="22" accept'

手动开放指定端口

firewall-cmd --permanent --add-port=3306/tcp

删除开放的端口

firewall-cmd --permanent --remove-port=3306/tcp

开放指定服务(系统内置的)

firewall-cmd --permanent --add-service=http

删除服务

firewall-cmd --permanent --remove-service=http

添加白名单地址(单IP)

firewall-cmd --permanent --add-source=192.168.1.100

注: 白名单中的IP可以任意访问所有服务器可用的端口 这个白名单的作用不是这样的,有待继续研究
添加白名单地址(指定网络段CIDR格式)

firewall-cmd --permanent --add-source=192.168.1.0/24

删除白名单地址

firewall-cmd --permanent --remove-source=192.168.1.100

屏蔽指定IP地址

firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.1.100' reject"

屏蔽IP地址段

firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.1.0/24' reject"

在家弄个堡垒机有点过分
但是确实家里内网有很多主机资产需要管理,Windows用RDP,Linux用MobaXterm(其实Windows也可以用MobaXterm),但是MobaXterm有会话数量限制,超过14个主机就不允许保存了。所以得找一个支持RDP、SSH、VNC等资产的访问控制,日志审计和双因素认证的平台把内网资产进行统一管理。试了好多最后发现Next-terminal最适合家用。

搭建方法很简单,首先在docker环境建立一个mysql数据库

docker run -d --restart=always --name 此处写名字 --network cloud --ip 此处写IP -p 3306:3306 -v /此处写安装路径:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=此处写密码 -d mysql:latest

然后登到数据库,执行Mysql老五条初始化命令

create database 此处写数据库名字;
CREATE USER 此处写数据库用户名 IDENTIFIED BY '此处写数据库密码';
grant all on 此处写数据库名字.* to '此处写数据库用户名'@'%';
ALTER USER 此处写数据库用户名 IDENTIFIED WITH mysql_native_password BY '此处写数据库密码';
FLUSH PRIVILEGES;

然后在docker环境再拉个next-terminal镜像下来运行

docker run -d -p 此处写堡垒机web端口:8088 -e DB=mysql -e MYSQL_HOSTNAME=此处写数据库IP -e MYSQL_PORT=3306 -e MYSQL_USERNAME=此处写数据库用户名 -e MYSQL_PASSWORD=此处写数据库密码  -e MYSQL_DATABASE=此处写数据库名字 --name next-terminal --restart always dushixiang/next-terminal:latest

然后打开web界面,用户名admin密码admin进入,记得修改用户名和密码,用户名支持中文
QQ截图20210216092110.png
点击资产列表右侧的加号添加资产
QQ截图20210216092318.png
加了一些资产
QQ截图20210216092240.png
点击右侧接入即可连接主机
QQ截图20210216092440.png
连接后可以通过右侧工具栏发送快捷键或是文件管理
QQ截图20210216092614.png
点击操作审计即可查看会话记录和录屏
QQ截图20210216092756.png
QQ截图20210216092901.png
点击个人中心可以设置OTP密钥,用的是Google Authenticator的OTP,手机扫一扫就可以配置完成,非常方便
QQ截图20210216092936.png
QQ截图20210216093140.png
最后感谢下作者,大家可以star一下项目
[button color="primary" url="https://github.com/dushixiang/next-terminal" outline="" target="_blank"]Github - dushixiang/next-terminal[/button]