存档

‘安全’ 分类的存档

非root用户启动和运行redis

2018年5月30日 没有评论

    redis之前爆出过一个漏洞,攻击者可藉此漏洞获取系统root权限。在之前的文章里,我们了解了如何增强redis的安全性。我们还可以使用非root用户来运行redis,进而进一步提升系统安全性。

  1. 以root身份正常安装redis
  2. 切换非root用户登入系统,比如test
  3. 拷贝redis默认配置文件到test的根目录(或其他test有访问权限的目录):

    sudo copy /etc/redis/6379.conf /home/test/

  4. 修改test下配置文件的属主:

    sudo chown test.test /home/test/6379.conf

  5. 修改配置文件中redis运行使用到的相关文件和目录的路径,可通过grep 6379 /home/test/6379.conf查找这些文件和目录,将这些路径修改到test用户根目录下

    pidfile /home/test/run/redis_6379.pid
    logfile /home/test/log/redis_6379.log
    dir /home/test/lib/redis/6379

  6. 创建这些文件和目录

    mkdir -p /home/test/run/ /home/test/log  /home/test/lib/redis/6379

  7. 启动redis

    /usr/local/bin/redis-server /home/test/6379.conf

分类: Redis, 安全, 开发 标签:

修改ssh端口的方法及相关事项

2015年12月30日 没有评论
  1. ssh的配置文件为/etc/ssh/sshd_config ,其中的Port即是开放端口,这一行默认是注释掉的。去掉注释,并改成其他端口
  2. 远程修改ssh端口是风险较高的操作,可能会导致无法连上服务器,原因在于系统防火墙可能不允许要更改的端口
  3. 较安全的修改流程为:
    • 去掉sshd_config中默认Port行前边的注释,并新加一个拷贝行,在新加行配置想要更改的端口
    • 在防火墙中添加规则,放行要更改的ssh端口,重启防火墙
    • 重启ssh,尝试使用新端口登录ssh
    • 新端口登录ssh成功,在sshd_config中重新打开默认Port行的配置,并重启ssh
  4. 可能会被扫描和攻击,检测方法为查看系统日志/var/log/secure。如果被非法扫描或攻击,该日志文件会提示扫描ip及频繁登录失败的信息。在防火墙中禁止扫描ip即可。
分类: 安全 标签: ,

非80端口运行Apache需要关掉selinux

2015年11月27日 没有评论

在apache中绑定非http标准端口时,一直出现如下的错误提示:

正在启动 httpd:httpd: Could not reliably determine the server’s fully qualified domain name, using localhost.localdomain for ServerName
(13)Permission denied: make_sock: could not bind to address 127.0.0.1:8081
no listening sockets available, shutting down
Unable to open logs

解决方案:

增加selinux中http的端口
semanage port -l|grep http #查看SELinux下http相关端口
semanage port -a -t http_port_t -p tcp 888 #增加这个非标准端口即可

或简单的关掉selinux:setenforce 0

分类: 安全, 运维 标签: , ,

Redis安全性配置

2015年11月17日 没有评论

最近Redis刚爆出一个安全性漏洞,我的服务器就“光荣的”中招了。黑客攻击的基本方法是:

  • 扫描Redis端口,直接登录没有访问控制的Redis
  • 修改Redis存盘配置:config set dir /root/.ssh/; config set dbfilename /root/.ssh/authorized_keys
  • 添加key:crackit,将其值设置为新的公钥。然后就可以为所欲为了。

不影响客户端程序的修复办法:

  • 重命名config命令:rename-command CONFIG DO_NOT_USE_CONFIG
  • 重启Redis

现在我们就来认识一下Redis安全性方面的一些知识。

首先,Redis从设计上来说是用来被可信的客户端访问的,这就意味着不适于暴露给外部环境里的非可信客户端访问。最佳的实践方法是在Redis前面加一个访问控制层,校验用户请求。

其次,Redis本身提供了一些简单的配置以满足基本的安全控制。

  1. ip绑定。如果不需要直接对外提供服务,bind 127.0.0.1就行了,切忌bind 0.0.0.0!
  2. 端口设置。修改默认的6379,一定程度上避免被扫描。
  3. 设置密码。Redis的密码是通过requirepass以明文的形式配置在conf文件里的,所以要尽可能得长和复杂,降低被破解的风险。
  4. 重命名或禁用某些高危操作命令。向config、flushall、flushdb这些操作都是很关键的,不小心就会导致数据库不可用。可以在配置文件中通过rename-command重命名或禁用这些命令。
分类: Redis, 安全 标签: ,