wenmo8 发布的文章

firewalld莫名奇妙失效了,端口禁用了外网还是通的,换用iptables

操作

Bash

systemctl stop firewalld
systemctl disable firewalld
yum -y install iptables-services  #安装iptablesiptables -I INPUT -p tcp --dport 3306 -j DROP  #屏蔽MySQL端口iptables -I INPUT -s 192.168.111.111 -p tcp --dport 3306 -j ACCEPT   #对指定ip放通iptables -I INPUT -i lo -p tcp --dport 3306 -j ACCEPT  #对local放通


测试

在未授权ip上访问不通

image.png

在授权过的ip上正常

image.png

来源:https://www.hyluz.cn/post/75547.html

echo "#####数据备份流程#####"
ls_date=` date  +%Y%m%d`
sql=(information_schema accountdb adu asr auth authdb2 cameradb cceu cfsu ctu data_analysis dps dsu ecmu edmu emap ewu filestoragedb imu mcu mcuapi mediadb mysql nextdb2 open_falcon performance_schema permission phoenix_alarm phoenix_api_db phoenix_inspect phoenix_machine phoenix_service poc psib ptu pwitch ras resourceService ruleenginedb rvsl sfu sls storagedb switch sys udu voip)
for i in "${!sql[@]}";
do
echo ${sql[$i]}
mysqldump -u用户名 -p密码  ${sql[$i]}>/mysqlbak/${sql[$i]}${ls_date}    #备份路径
done
echo "#####过期数据清理#####"
find /mysqlbak -mtime +180 -name ".sql" -exec rm -rf {} ;


sql数组值为需要备份的数据库名

image.png

image.png

服务器mysql存在漏洞,临时屏蔽一下端口

Bash

iptables -I INPUT -p tcp --dport 3306 -j DROP

所有服务只调用本地mysql,但是屏蔽完以后发现服务不正常了,没法登录,查看日志报错连接失败

image.png

过程

尝试逐个网段屏蔽,服务仍然可以正常运行,一旦执行

Bash

iptables -I INPUT -p tcp --dport 3306 -j DROP

服务马上无法连接

解决

开启lo设备请求接收

Bash

iptables -I INPUT -i lo -j ACCEPT

一般iptables配置的是eth设备,而本机用的是lo设备,所以lo设备也要操作。



登录成功(服务功能恢复正常)

image.png

来源:https://www.hyluz.cn/post/70797.html

1.启动firewalld服务
systemctl start firewalld.service
2.关闭firewalld服务
systemctl stop firewalld.service
3.重启firewalld服务
systemctl restart firewalld.service
4.查看firewalld状态
systemctl status firewalld.service
5.开机自启firewalld
systemctl enable firewalld
6.查看版本
firewall-cmd --version
7.查看帮助
firewall-cmd --help
8.显示状态
firewall-cmd --state
9.查看所有打开的端口
firewall-cmd --zone=public --list-ports
10.更新防火墙规则
firewall-cmd --reload
11.添加开放端口
firewall-cmd --zone=public --add-port=80/tcp --permanent (permanent永久生效,没有此参数重启后失效)12.查看端口是否开放
firewall-cmd --zone=public --query-port=80/tcp
13.删除开放端口
firewall-cmd --zone=public --remove-port=80/tcp --permanent
注:每次更改firewall规则后需重新加载(firewall-cmd --reload)


接手项目nginx存在漏洞,需要升级nginx修复

image.png

发现现场nginx是docker版本,也不知道容器内是否做过其他配置修改 不敢直接删容器更新镜像启动

image.png

按照常规更新方法

下载源码--docker没有wget

安装wget--apt下载失败

更新apt源--还是莫名其妙失败

主机上wget下载完成使用docker cp拷进去--是拷进去了

解压,编译--没有make

安装make--陷入apt无法使用的死循环

解决方案

尝试直接替换二进制文件  /usr/sbin/nginx

在自己服务器内起一个新版的nginx容器 提取其中的

/usr/sbin/nginx 文件放置到现场容器的对应目录中

一开始复制的时候不要起nginx这个名字,否则容器会起不来,起一个nginx2啥的

中间报错缺少了几个库,或者库中没有相关函数

再次从自己的nginx容器中提取相关文件放置到容器(做好原库备份!!!)

image.png

最终nginx2可以执行了,此时可以尝试 cp nginx2 nginx

image.png

报错nginx正在使用,可以把nginx进程停止后覆盖,或者停止容器后搜索nginx2文件的位置

image.png

cd进入该目录 将nginx2改成nginx

image.png

容器正常运行

测试业务是否正常

image.png

升级完毕

可以再进容器验证nginx版本

image.png

总结

优点:非常安全,不涉及任何配置文件的修改,理论上一定可以成功(做好中间过程记录和文件备份)

缺点:如果原先没有做集群,业务会中断一段时间

来源:https://www.hyluz.cn/post/67875.html