Domon

Life is Simple [+] Menu


Posts tagged under Linux


CVE-2021-3156漏洞修复

Linux

早上腾讯云发来邮件,说服务器存在CVE-2021-3156漏洞,Ubuntu在1月26号已经发布了相关信息。当sudo通过-s或-i命令行选项在shell模式下运行命令时,它将在命令参数中使用反斜杠转义特殊字符。但使用-s或 -i标志运行sudoedit时,实际上并未进行转义,从而可能导致缓冲区溢出。这样攻击者就可以使用普通用户获取到了root权限,还是挺危险的,如果是线上业务最好还是及时升级。 影响范围 通过sudo -V 或者 sudo --version | grep version 查询sudo的版本 sudo 1.9.0 到 1.9.5p1 所有稳定版(默认配置) sudo 1.8.2 到 1.8.31p2 所有旧版本(默认配置) 建议升级到最新的sudo 1.9.... continue reading

Domon

MySSL证书评级B上升到A

Linux

周末发现一个域名的评级是B(查询地址)影响了一部分SEO,查找了一圈,没有一个很好的解决方案,就自己来做个记录。 查询的结果显示: 降级原因: 证书链不完整,降级为B,具体详情可参考《缺少证书链的问题和解决办法》。 主页面引用了不安全的HTTP资源,降级为B 服务器支持弱Diffie-Hellman(DH)密钥交换参数,降级为B 解决证书链不完整 在上面的查询地址中,可以从右侧的导航进入到,证书信息栏。在这里看到,证书链有异常。 但同样提供商,我签发的其他域名却又是正常的,这个就比较奇怪。好在MySSL提供了一个证书链修复工具,在这里,可以输入域名之后,下载对应的证书链,或者可以在服务器直接curl,很方便。 将新的证书,替换到nginx中之前旧的路径中,重启nginx,证书链问题解决。 解决主页面引用了不安全的HTTP资源 扫描了首页的资源(图片,视频,音频等),发现有一部分图片是采用HTTP方式引用的,修改成对应的HTTPS方式,... continue reading

Domon

Nginx 「Too many open files」问题排查

IT

这两天业务部门反馈流量下降的很厉害,我看了一下Nginx的日志,提示「768 worker_connections are not enough」,很明显768对于百万级的PV来说少了太多,打开nginx.conf将其中的连接数量从768更改到了65535。 隔了一小会,发现日志中这个错误已经消失,另外一个错误「Too many open files」又出现了。从字面来看,是服务器的句柄数量不足导致。查看一下nginx的配置 user root root; # 1. worker_processes auto; # 2. worker_rlimit_nofile 65535; ... events {         use epoll; # 3.         worker_connections 65535; } ... 将worker_processes从自动获取变成了实际的服务器CPU核心数量... continue reading

Domon

CentOS7升级Python默认版本到3.7

IT

现在默认的CentOS7的Python版本为2.7.5,但随着官方放弃Python2的时间节点已经到来(查看[这里]),切换到Python3是大势所趋。我选择了3.7,通过软连接的形式,加到bin下,进行调用。 创建一个目录存放Python原始文件:mkdir ./Python3 && cd ./Python3 下载原始Python安装包:wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz 解压:tar -zxvf Python-3.7.0.tgz 创建安装目录: mkdir /usr/... continue reading

Domon

通过Crontab定时备份

Linux

目地通过Linux下的定时任务Crontab来定期的执行脚本,备份服务器中的MySQL数据。 Shell脚本解释#!/bin/sh t=$(date +%Y%m%d%H%M%S); cd /backup/mysql mysqldump -uroot -pyourpassword yourdatabase > yourdatabase.sql tar -czf yourdatabase.${t}.tar.gz yourdatabase.sql rm -r yourdatabase.sql 按照项目使用的db来备份默认备份在/backup/xxx项目/mysql默认的文件格式为xxx项目+14位时间戳(例如:20190709131051)需要删除mysqldump导出的sql文件Crontab使用方法Crontab是Linux内置的一个定时命令,可以帮助我们定期执行一些工作。... continue reading

Domon

Screen常用的命令

Linux

经常在命令行中执行一些命令的时候,有的是需要在后台执行的,或者有的时候登录在VPS中,退出ssh后,这条命令就自动中断了。这个时候采用Screen的方式就比较好处理。 Screen可以理解成为一个新开一个窗口,每次当你新建一个screen的时候,他就是独立的。可以随时随地的恢复一个状态。 常用的命令 screen -ls #显示当前所有的screen,会有两个状态一个是detach,另外一个是attach,有点像Android中的Fragment的状态一样。 screen -S xxx #创建一个名为xxx的screen screen -r xxx #恢复(或者叫attach一个名为xxx的screen) screen -d xxx #detach某个screen screen -d -r xxx #结束当前的screen,并恢复到xxx的screen 快捷键(在每一个screen下,都可以已ctrl+a开始) ctrl a, k : 终止当前的screen并退出... continue reading

Domon

CentOS 7.4 No package python-pip available

Linux

昨天新开了一个VPS,准备安装一下Pip,搭建一下项目环境,但是执行 sudo yum install -y python-pip 后,终端提示** No package python-pip available**。没有pip的可用包。 上网搜的结果都是三步走,就可以解决: yum install -y epel-release yum install python-pip pip install —-upgrade pip 但是按照这个说法执行下来,依然是出错的,提示错误相同。搜了一下epel的[官方Wiki],里面这样说 对于CentOS7,执行 * yum install https://dl.fedoraproject.org/pub/... continue reading

Domon

MySQL设置用户访问权限

Linux

对于有远程访问MySQL的需求的话,通过MySQL的权限管理,可以设置一个新的用户指定IP访问,指定数据库操作,指定表,这样用最小粒度确保安全。 创建新用户可以通过SELECT user,host from mysql.user;查出当前的用户及Host。Host一般为localhost,127.0.0.1,%,固定IP。%的意思是,任意IP都可以。 为单独的程序新建一个MySQL用户 CREATE USER 'username'%'host' INDENTIFIED BY 'userpassword'; 即可创建一个新的用户。 给该用户设定权限为了保证安全,一般都需要设定的权限最小。比如,定位到某个数据库的某个表,或者只能执行某些SQL操作。 GRANT SELECT, INSERT, UPDATE on dbname.tablename to 'username'@... continue reading

Domon

通过Auth.log查看服务器ssh暴力破解记录

Linux

Linux下/var/中有很多系统日志信息,例如auth.log The Authorization Log tracks usage of authorization systems, the mechanisms for authorizing users which prompt for user passwords, such as the Pluggable Authentication Module (PAM) system, the sudo command, remote logins to sshd and so on. The Authorization Log... continue reading

Domon

Linux安装Jenkins

IT

Jenkins是大名鼎鼎开源的CI软件,有非常多的插件,可以完成自动化部署,构建等功能。最近发现前端工程师,在每次的发布流程都非常的折磨人,于是想着不然自己搭建一个CI来处理。 CI的好处是显而易见的,可以持续集成和持续交付。我在之前做国外的项目的时候,这种便利,让我只需要关注我自己的代码和逻辑即可。代码编写出错,CI就过不去。代码通过后,QA就可以直接拿到APK包直接测试,完全不用我本地手动出包。节省了两边的时间。 按照一般Android的流程来看,本地写完代码—Push代码—提交PR—通过审核—打APK包—QA测试。有CI介入之后,相当于打APK包的操作就交由Jenkins来完成了。每一次的Push都可以对应一个APK包,QA只需要在当前的APK中测试是否问题已经解决。 现在这位前端同事使用的是Vue的框架。他的本地流程是本地写完代码—Push代码—到服务器Pull代码—打包—上线测试。每次看到他一遍又一遍的处理这些重复的操作,我就觉得不舒服,完完全全有更加简便和悠闲的办法。用了CI之后,他只需要写完代码Push到指定的分支即可。 安装JAVALinux下安装JAVA,相对于Windows来说,方便不少。可以直接采用源的方式安装,... continue reading

Domon