记录关于Devops运维,虚拟化容器云计算,数据库,网络安全等各方面问题。
使用keepalived+宝塔面板nginx实现Web的双主多集群负载均衡 keepalived+nginx高效资源利用架构与部署1,环境介绍。 主机:LB01,IP: 192.168.137.30,centos7,BT面板(只装nginx),Keepalived. 主机:LB02,IP: 192.168.137.31,centos7,BT面板(只装nginx),Keepalived. docker主机:IP: 192.168.137.32,centos7,docker,安装4个nginx容器模拟4个web站点,两个业务集群,如下: 192.168.137.32:8341 ,OA业务集群站点​   192.168.137.32:8342, OA业务集群站点​   192.168.137.32:8343, shop业务集群站点​   192.168.137.32:8344, shop业务集群站点VIP: 192.168.137.41, OA业务的域名 oa.demo.ccVIP: 192.168.137.42 shop业务的域名 shop.demo.cc 2,集群架构。采用两个vrrp实例,priority的优先级不一样,实现两台负载均衡主机都会启用一个vip。 3,keepalived配置以下是第一台keepalived主机的keepalived.conf配置文件内容:global_defs {   notification_email {   root@localhost   }   notification_email_from Alexandre.Cassen@firewall.loc   smtp_server 127.0.0.1   ...
Centos7上安装openvas漏洞扫描工具 (Greenbone Security Assistant)(docker安装GVM) 1、搜索gvm镜像 docker search gvm 2、拉取镜像 docker pull securecompliance/gvm 3、查看本地镜像 docker images 4、运行容器 docker run -d -p 9390:9392 -e PASSWORD="gvm@2021" --name=gvm securecompliance/gvm -d 后台运行容器 -p 将host的9390端口映射到容器的9392端口 --name 给容器起个名字 -e PASSWORD="gvm@2021" 设置管理员密码,账号admin 5、查看容器运行状态 gvm容器已经运行起来了 6、查看工作状态 docker logs -f gvm GVM更新特征库会很长时间(1个多小时) 7、登录 特征库更新完后,web访问https://192.168.40.86:9390/login 登录成功 8、更新NVT 重启GVM容器即可更新NVT特征库,无需单独运行命令9,pdf报告无法导出处理方法。导出报告时,无法导出pdf格式的报告,是因为没有安装texlive相关的软件包。容器使用的alpine linux版本,需要先修改更新源,再安装软件包。更换国内源sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositoriesrepositories文件包中有其它不是国内源的行,删除掉。安装texli...
很多熟悉 Unix 系统的人(例如 macOS、Linux)都习惯于通过使用 sudo 随意提升我们的特权给 root 用户。在调试开发工具或尝试编辑受保护目录中的文件时,经常会发生这种情况,许多人在第一次尝试之后,执行命令不成功,都会默认使用 sudo。 了解 Docker 安全性的基础是了解实际的容器 Docker 提供了一个类似 --privileged flag,实际上这与我们随意使用的 sudo 有很大不同,它可能会使应用程序面临不必要的风险。本文将展示这与 root 运行方式有何不同(以及如何避免以 root 用户身份运行),并介绍特权(privileged)的实际含义。 Postgres: $ docker run -it postgres #whoami root #id -u 0  Couchbase: $ docker run -it couchbase sh #whoami root #id -u 0 Alpine: $ docker run -it alpine sh #whoami root #id -u 0 我们可以看到,默认情况下,大多数镜像都以 root 用户身份运行。通常这可以简化调试过程,尤其是在我们要 exec 到容器时。尽管 root 用户的 Linux 功能非常有限,但最好还是避免以 root 用户身份运行。 避免以 root 身份运行 尽管在容器内部以 root 身份运行是非常正常的...
 
0

打包libhtp文件为rpm

发表者:admin分类:应用服务2022-03-12 19:42:15 阅读[431]
打包libhtp文件为rpm 1. 压缩源代码 tar zcvf libhtp-0.5.33.tgz ./libhtp/ 2. 准备配置文件 cat SPECS/libhtp.spec Name: libhtp Version: 0.5.33 Release: 1%{?dist} Summary: libhtp License: GPL Source0: %{name}-%{version}.tgz BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot #BuildArch: noarch Requires: glibc %description The netmap driver with adapted network interface drivers e1000e, i40e, igb, ixgbe, ixgbevf for CentOS/EL/SL 7 prepared for Cherenkov Telescope Array by Julien Houles and Dirk Hoffmann -CPPM-. %prep %setup -q #rm -rf %{name} %build pwd #cd %{buildroot} %configure make %{?_smp_mflags} %install make install DESTDIR=%{buildroot} %files %defattr(-,root,root,-) %doc %{_includedir}/* %{_libdir}/* %define __debug_install_post \ %{_rpmconfigdir}/find-debuginfo.sh %{?_find_debuginfo_opts} "%{_builddir}/%{?buildsubdir}"\ %{nil} %changelog 三 ...
申请Let's Encrypt永久免费SSL证书 Let's Encrypt作为一个公共且免费SSL的项目逐渐被广大用户传播和使用,是由Mozilla、Cisco、Akamai、IdenTrust、EFF等组织人员发起,主要的目的也是为了推进网站从HTTP向HTTPS过度的进程,目前已经有越来越多的商家加入和赞助支持。 Let's Encrypt免费SSL证书的出现,也会对传统提供付费SSL证书服务的商家有不小的打击。到目前为止,Let's Encrypt获得IdenTrust交叉签名,这就是说可以应用且支持包括FireFox、Chrome在内的主流浏览器的兼容和支持,虽然目前是公测阶段,但是也有不少的用户在自有网站项目中正式使用起来。 虽然目前Let's Encrypt免费SSL证书默认是90天有效期,但是我们也可以到期自动续约,不影响我们的尝试和使用。 第一、安装Let's Encrypt前的准备工作 根据官方的要求,我们在VPS、服务器上部署Let's Encrypt免费SSL证书之前,需要系统支持Python2.7以上版本以及支持GIT工具。这个需要根据我们不同的系统版本进行安装和升级,因为有些服务商提供的版本兼容是完善的,尤其是debian环境兼容性比CentOS好一些。 第二、快速获取Let's Encrypt免费SSL证书 PS:在获取某个站点证书文件的时候...
Nginx负载均衡与缓存的几种方式 负载均衡概述 早期的网站流量和业务功能都比较简单,单台服务器足以满足基本的需求,但是随着互联网的发展,业务流量越来越大并且业务逻辑也跟着越来越复杂,单台服务器的性能及单点故障问题就凸显出来了,因此需要多台服务器进行性能的水平扩展及避免单点故障出现。那么如何将不同用户的请求流量分发到不同的服务器上呢? 负载均衡的原理及处理流程 系统的扩展可以分为纵向扩展和横向扩展。 纵向扩展是从单机的角度出发,通过增加系统的硬件处理能力来提升服务器的处理能力 横向扩展是通过添加机器来满足大型网站服务的处理能力。 这里面涉及到两个重要的角色分别是"应用集群"和"负载均衡器"。 应用集群:将同一应用部署到多台机器上,组成处理集群,接收负载均衡设备分发的请求,进行处理并返回响应的数据。 负载均衡器:将用户访问的请求根据对应的负载均衡算法,分发到集群中的一台服务器进行处理。 负载均衡的作用 1、解决服务器的高并发压力,提高应用程序的处理性能。 2、提供故障转移,实现高可用。 3、通过添加或减少服务器数量,增强网站的可扩展性。 4、在负载均衡器上进行过滤,可以提高系统的安全性。 ...
1.Keepalived单实例主备模式集群方案     这是最简单的模式,不只考虑高可用集群,先不考虑后方的Nginx负载均衡集群,即后端的服务器集群,参考下面的图示:     其对应的Keepalived核心配置如下: lb01 global_defs { notification_email { acassen@firewall.loc failover@firewall.loc sysadmin@firewall.loc } notification_email_from Alexandre.Cassen@firewall.loc smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id lb01    # 用来标识一个Keepalived高可用集群中的一个节点服务器,因此是唯一的 } vrrp_instance VI_1 { state MASTER      # 主 interface eth0 virtual_router_id 55    # 主备两台服务器的该值应该要相同 priority 150  advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 10.0.0.12/24 dev eth0 label eth0:1 } } lb...
 
0

Linux crontab提权攻击

发表者:admin分类:应用服务2022-03-12 11:00:08 阅读[399]
Linux crontab提权攻击 crontab定时任务是LINUX上最常用的一个功能,不过使用不当很容易受到提权。使用crontab时请注意以下两点:crontab任务千万不要写到/etc/crontab文件里,这是很危险的。通过crontab -e去创建,让他写到默认的/var/spool/cron下;能不用 root 去创建尽量不用,如果一定要用root,请保存到一个其他用户进不去、改不了、看不了的位置(最好能用chattr处理下)。为什么有这样的警告,请看下面的示例。一、位置不当引发的提权假设当前我们用 root 用户创建了如下一个任务:*/2 * * * * root sh /home/elk/test.sh具体内容如下:echo www.361way.com > /tmp/test/home/elk/test.sh文件的权限我们设置为600,属主和属组都设为root,感觉上应该还挺安全的吧,实际呢?看下图:root并且为600权限,看起来确实不错,我们切换到elk用户时,使用echo确实发现无法正常写入(chown和chmod也不会成功的)。但由于文件存放的位置在elk的家目录下,所以elk用户实际上是有修改文件的权限的。使用vim编辑文件时,实际是可以强制修改的,而且修改后文件的属主也会变掉,当然也可以使用上面截图里的方法,mv走以后,再新建一个,内容是什么就随便你自己写了。而上面...
 
0

keepalived健康检查方式

发表者:admin分类:应用服务2022-03-11 11:27:08 阅读[413]
keepalived健康检查方式一、健康检查方式keepalived对后端realserver的健康检查方式主要有以下几种TCP_CHECK:工作在第4层,keepalived向后端服务器发起一个tcp连接请求,如果后端服务器没有响应或超时,那么这个后端将从服务器池中移除。HTTP_GET:工作在第5层,向指定的URL执行http请求,将得到的结果用md5加密并与指定的md5值比较看是否匹配,不匹配则从服务器池中移除;此外还可以指定http返回码来判断检测是否成功。HTTP_GET可以指定多个URL用于检测,这个一台服务器有多个虚拟主机的情况下比较好用。SSL_GET:跟上面的HTTP_GET相似,不同的只是用SSL连接MISC_CHECK:用脚本来检测,脚本如果带有参数,需将脚本和参数放入双引号内。脚本的返回值需为:            0)  检测成功            1)  检测失败,将从服务器池中移除            2-255)检测成功;如果有设置misc_dynamic,权重自动调整为 退出码-2,如退出码为200,权重自动调整为198=20...
shell判断变量的值是否为空方法判断一个脚本中的变量是否为空,我写了一个这样的shell脚本:#!/bin/sh#filename: test.shpara1=if [ ! -n $para1 ]; then echo "IS NULL"else echo "NOT NULL"fi然后把该脚本:test.sh通过chmod +x 改为可以执行的脚本,执行后输出的结果为: NOT NULL很是奇怪,最后,通过查询一些资料发现,|可以通过如下方式判断一个shell变量是否为空:1. 变量通过" "引号引起来      如下所示:,可以得到结果为 IS NULL.#!/bin/shpara1=if [ ! -n "$para1" ]; then echo "IS NULL"else echo "NOT NULL"fi2. 直接通过变量判断      如下所示:得到的结果为: IS NULL#!/bin/shpara1=if [ ! $para1 ]; then echo "IS NULL"else echo "NOT NULL"fi3. 使用test判断    得到的结果就是: dmin is not set! #!/bin/shdmin=if test -z "$dmin"then echo "dmin is not set!"else echo "dmin is set !"fi4. 使用""判断#!/bin/shdmin=if [ "$dmin&...
    总共265页,当前第16页 | 页数:
  1. 6
  2. 7
  3. 8
  4. 9
  5. 10
  6. 11
  7. 12
  8. 13
  9. 14
  10. 15
  11. 16
  12. 17
  13. 18
  14. 19
  15. 20
  16. 21
  17. 22
  18. 23
  19. 24
  20. 25
  21. 26