首页
友情链接
这里是我的信息,欢迎你来看我
Search
1
Kubernetes通过kubeadm安装方法
15,551 阅读
2
linux 意外断电重启导致的XFS文件系统崩溃修复
253 阅读
3
MYSQL-MariaDb数据库的主从同步配置方法
237 阅读
4
tengine编译安装结合lua实现WAF防火墙
214 阅读
5
Kubernetes安装Prometheus+Grafana
200 阅读
linux
Centos
Mysql
运维
web
K8S
FRP
nginx
登录
Search
标签搜索
linux
运维
yum
centos6
自动化
kickstart
镜像制作
密码
单用户
ubuntu
debian
K8S
docker
XFS
文件系统修复
Mysql
数据库
MariaDb
同步
端口映射
ClassHuang
累计撰写
15
篇文章
累计收到
0
条评论
首页
栏目
linux
Centos
Mysql
运维
web
K8S
FRP
nginx
页面
友情链接
这里是我的信息,欢迎你来看我
搜索到
8
篇与
的结果
linux防SSH爆破神器,Denyhosts使用用法
2023年05月16日
12 阅读
0 评论
0 点赞
2023-05-16
SSH爆破和扫描历史悠久,服务器长期不更换密码或者密码过短非常容易成为黑客的肉鸡。于是 Denyhosts出来了,它根据系统日志中的sshd连接内容来判断是否为非法登录,并通过iptables进行drop。安装Denyhosts首先,需要安装系统依赖包,Denyhosts依赖于python2 python3 pip,下载源代码所需curl或wgetDebian系列系统apt install python3 python3-pip curl wgetRedhat系列系统yum install python3 python3-pip curl wget开始安装下载并解压cd /root/ wget https://jaist.dl.sourceforge.net/project/denyhosts/denyhosts/3.1.2-beta/DenyHosts-3.1.2.tar.gz tar -zxvf DenyHosts-3.1.2.tar.gz安装到系统服务并设置开机启动cd DenyHosts-3.1.2 python3 setup.py install vi /usr/lib/systemd/system/denyhosts.service #写入以下内容到服务文件 [Unit] Description=denyhosts ssh ban Before=denyhosts.service [Service] Type=forking ExecStartPre=/bin/rm -f /var/run/denyhosts.pid ExecStart=/usr/local/bin/denyhosts.py --daemon --config=/etc/denyhosts.conf PIDFile=/var/run/denyhosts.pid [Install] WantedBy=multi-user.target # systemctl daemon-reload systemctl enable denyhosts.service systemctl start denyhosts.service systemctl status denyhosts.service配置文件其配置文件在 /etc/denyhosts.conf 可以修改其中的参数,里面有登录尝试次数,拦截时间,邮件提醒等。已被拦截的ip在/etc/hosts.deny文件中。可以使用denyhosts.py --purgeip x.x.x.x 清理误封的IP地址更多使用文档可以参考github项目https://github.com/denyhosts/denyhosts完
2022-11-18
FRP内网穿透的原理及一键安装管理脚本
原理解析FRP是一款用于内网穿透的软件,架设在公网环境中,其原理就是通过中转的公网网络端口进行内网端口的映射,使内网服务可以通过公网进行访问例如内网 192.168.3.100:80 HTTP服务公网服务器 119.28.29.119在公网服务器上安装FRP服务端,在内网机器上运行FRP客户端192.168.3.100:80 >>> 119.28.29.119:80 [服务端端口随意,但唯一]这样通过访问 119.28.29.119:80 实际上就是访问 192.168.3.100:80不仅支持http,还可以支持TCP,UDP,socks管道,简单文件服务器,TLS本地证书指定,P2P等任意协议。FRP是开源的而且作者目前仍在更新中,github开源地址 https://github.com/fatedier/frp{dotted startColor="#ff6c6c" endColor="#1989fa"/}搭建实战原版frp服务端有二进制版本和源代码版本,我们这次通过一键脚本进行安装带有web面板的frp服务端,脚本来源于github用户https://github.com/MvsCode/frps-onekey由于国内网络环境下载不正常,我也会放一个修改后的脚本在本页面提供下载 install-frps.sh服务端搭建操作通过ssh连接您的服务器,操作系统支持debian系列和redhat系列,也就是centos与ubuntu都支持。将下载的脚本放入您创建的文件夹,log日志会保存在同文件夹下,所以请不要在根目录进行操作。下面是一些命令。#直接通过wget 或者 curl下载,wget某些系列没有自带安装,所以先安装wget #centos为例 yum install wget -y wget https://raw.githubusercontent.com/MvsCode/frps-onekey/master/install-frps.sh chmod 0777 install-frps.sh bash install-frps.sh install 以上命令执行正常应该进入了脚本界面 一些关键信息:bind_port FRP连接端口vhost_http_port HTTP的端口vhost_https_port HTTPS的端口dashboard_port FRP面板端口默认admin为面板账号dashboard_pwd 面板密码,默认自动生成token FRP鉴权密码,默认自动生成subdomain_host 子域名host,默认本机max_pool_count 最大连接数目log_level 日志等级log_max_days 日志保存天数log_file 可以选择开关日志记录,默认开tcp_mux TCP的连接复用,可以提高性能,建议默认开kcp support KCP的支持,默认开选择完上述信息,进可以回车继续,会自动连接到对应选择的地址进行下载FRP服务端二进制主程序,如果失败或者长时间没有反应,大概率本地网络问题导致,多次重试或者更换下载地址尝试。 脚本执行完毕显示如上界面代表安装已成功,此后可以通过简易命令进行控制 首次安装完 使用frps start 启动FRP服务端 frps status manage : frps {start|stop|restart|status|config|version} Example: start: frps start stop: frps stop restart: frps restart 如需卸载,通过执行脚本文件bash install-frps.sh uninstall 可以通过服务器公网:dashboard_port,进入web面板查看,用户名和密码为您自行配置的,如遗忘可通过frps config 进行查看。客户端连接通过 https://github.com/fatedier/frp/releases下载对应系统的客户端程序windows为例 https://github.com/fatedier/frp/releases/download/v0.45.0/frp_0.45.0_windows_amd64.zip下载后解压,文件夹内即可看到 frpc.exe开始编写配置文件,在frpc.exe同文件夹内创建文本文件,修改名称为frpc.ini,后缀记得为.ini填入FRP服务器信息和你需要进行映射的服务,然后打开cmd或者powershell执行frpc.exe,如图所示,提示 start proxy success,代表FRP已经映射成功。关键信息[common] #这里是默认的不可修改 server_addr = FRP服务端地址 server_port = FRP服务端的Bind port token = FRP服务端token [web] #这里是你的服务名,可自由填写,不可重复 type = http #服务类型,有tcp, udp, http, https, stcp, sudp, xtcp, tcpmux local_port = 80 #你要映射的本地端口,对等映射,公网地址同端口,使用 服务器IP:80 访问 本地IP:80端口 custom_domains = blog.noccd.cn #访问映射的host名 [ssh] type = tcp local_ip = 127.0.0.1 local_port = 22 remote_port = 6000 #通过remote_port 进行非对等映射,使用 服务器IP:6000 访问 本地IP:22端口复制以上配置需要去掉注释信息,否则无法运行更多配置信息查看官方文档 https://gofrp.org/docs/reference/proxy/完
2022年11月18日
170 阅读
0 评论
0 点赞
2022-06-16
tengine编译安装结合lua实现WAF防火墙
事前准备操作系统以Centos为例,安装依赖软件包yum install make gcc c++ wget pcre pcre-devel perl openssl openssl-devel tengine下载地址 http://tengine.taobao.org/cd /root/ wget http://tengine.taobao.org/download/tengine-2.3.3.tar.gz tar zxvf tengine-2.3.3.tar.gzLuaJIT下载地址 http://luajit.org/cd /root/ wget https://luajit.org/download/LuaJIT-2.0.5.tar.gz tar zxvf LuaJIT-2.0.5.tar.gz开始编译进入各自的目录,进行编译,先编译luajit,再编译tengine编译luajitcd /root/LuaJIT-2.0.5 make && make install PREFIX=/usr/local/luajit编译tengine并启动cd /root/tengine-2.3.3/ ./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=root --group=root --with-openssl-opt=enable-ec_nistp_64_gcc_128 --with-pcre --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-http_auth_request_module --with-threads --with-http_slice_module --with-mail --with-mail_ssl_module --with-file-aio --with-http_v2_module --add-module=./modules/ngx_http_upstream_vnswrr_module --add-module=./modules/ngx_http_proxy_connect_module --with-http_lua_module --with-luajit-lib=/usr/local/luajit/lib/ --with-luajit-inc=/usr/local/luajit/include/luajit-2.0/ make && make install mkdir /var/log/nginx mkdir /etc/nginx/conf nginx nginx -V下载开源WAF-lua配置github开源项目 https://github.com/loveshell/ngx_lua_wafwget https://github.com/loveshell/ngx_lua_waf/archive/refs/tags/v0.7.2.tar.gz tar -zxvf v0.7.2.tar.gz mv v0.7.2/* /etc/nginx/conf/waf/ #具体文件路径视个人情况变动修改/etc/nginx/conf/waf/config.lua 配置文件中的路径,规则路径和log路径**RulePath = "/opt/nginx/conf/waf/wafconf/"logdir = "/opt/nginx/logs/waf"**修改为自己需要的位置**RulePath = "/etc/nginx/conf/waf/wafconf/"logdir = "/var/log/nginx/waf"**创建一个log目录mkdir /var/log/nginx/waf chmod 0777 /var/log/nginx/waf chowm root /var/log/nginx/waf chgrp root /var/log/nginx/waf #文件夹所有者权限与nginx权限相同修改 tengine 的nginx.conf使luawaf生效在 nginx.conf 的 http 段添加lua_package_path "/etc/nginx/conf/waf/?.lua"; lua_shared_dict limit 10m; init_by_lua_file /etc/nginx/conf/waf/init.lua; access_by_lua_file /etc/nginx/conf/waf/waf.lua;测试配置和重载nginxnginx -t #如果无报错 nginx -s reloadLUAWAF测试当你上面操作都顺利完成,我们接下来可以添加虚拟主机,启动测试。修改nginx.conf文件 在http段添加一句include /etc/nginx/sites-enabled/*.conf;然后创建这个目录mkdir /etc/nginx/sites-enabled/编写测试文件vi /etc/nginx/sites-enabled/test.conf server { listen 80 ; listen [::]:80 ; server_name domain.com; location /hello { default_type 'text/plain'; content_by_lua 'ngx.say("hello")'; } } #测试并重载nginx nginx -t nginx -s reload然后 访问http://IP/hello?id=../etc/passwd查看是否被waf正常拦截,拦截则成功,否则查看waf配置文件或者日志信息。完
2022年06月16日
214 阅读
0 评论
4 点赞
2021-09-01
linux 意外断电重启导致的XFS文件系统崩溃修复
服务器因为断电重启之后,启动异常,报错:Please umount the filesystem and rectify the problem(s)修复步骤:1. 输入命令:ls -l /dev/mapper查看是否存在 dm-0 dm-1文件如存在-进行下一步,如不存在-本方法不适用2. 输入命令:xfs_repair -L /dev/dm-0(清空日志,会丢失部分文件)再执行xfs_repair /dev/sda1再执行xfs_check /dev/sdd检查文件系统是否修复成功执行重启 init 6 或者 reboot等待重启完看是否正常进入系统完
2021年09月01日
253 阅读
0 评论
3 点赞
2021-05-29
Kubernetes安装Prometheus+Grafana
克隆项目git clone https://hub.fastgit.org/LBters/k8s-prometheus-grafana.git安装node-exporterkubectl apply -f node-exporter.yaml安装prometheus组件kubectl apply -f k8s-prometheus-grafana/prometheus/rbac-setup.yaml kubectl apply -f k8s-prometheus-grafana/prometheus/configmap.yaml kubectl apply -f k8s-prometheus-grafana/prometheus/prometheus.deploy.yml kubectl apply -f k8s-prometheus-grafana/prometheus/prometheus.svc.yml安装 grafana 组件kubectl apply -f k8s-prometheus-grafana/grafana/grafana-deploy.yaml kubectl apply -f k8s-prometheus-grafana/grafana/grafana-svc.yaml kubectl apply -f k8s-prometheus-grafana/grafana/grafana-ing.yaml查看组件服务的映射端口kubectl get svc -n kube-system访问grafana并添加prometheus数据源IP+prometheus端口选择Dashboards import导入模板输入url模板代码315 确定导入可以看到prometheus监视列表已经出来了
2021年05月29日
200 阅读
0 评论
0 点赞
2021-05-29
Kubernetes 部署 Dashboard
部署直接使用github官方仓库安装`kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.2.0/aio/deploy/recommended.yaml`配置修改为通过 NodePort 访问kubectl -n kubernetes-dashboard edit service kubernetes-dashboard在 ports下面添加nodePort: 32576,将 clusterIp改为NodePort如下spec: clusterIP: 192.168.244.139 externalTrafficPolicy: Cluster ports: - nodePort: 32576 port: 443 protocol: TCP targetPort: 8443 selector: k8s-app: kubernetes-dashboard sessionAffinity: None type: NodePort 此时可以通过节点 IP 和端口https://ip:32576/ 访问到 Dashboard(Chrome 可能会提示证书错误)解决方法:创建chrome桌面快捷方式,然后到桌面:右键chrome–>属性–>在目标后面添加如下:--disable-infobars --ignore-certificate-errors示例:"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --disable-infobars --ignore-certificate-errors创建 ServiceAccountvim admin-role.yaml输入以下内容kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1beta1 metadata: name: admin annotations: rbac.authorization.kubernetes.io/autoupdate: "true" roleRef: kind: ClusterRole name: cluster-admin apiGroup: rbac.authorization.k8s.io subjects: - kind: ServiceAccount name: admin namespace: kubernetes-dashboard --- apiVersion: v1 kind: ServiceAccount metadata: name: admin namespace: kubernetes-dashboard labels: kubernetes.io/cluster-service: "true" addonmanager.kubernetes.io/mode: Reconcile保存后再执行kubectl apply -f admin-role.yaml获取 Tokenkubectl -n kubernetes-dashboard get secret|grep admin-token根据输出类似于admin-token-jx84x 再执行kubectl -n kubernetes-dashboard describe secret admin-token-jx84x会输出token信息,在浏览器Dashboard使用token登录即可
2021年05月29日
197 阅读
0 评论
0 点赞
2021-05-29
Kubernetes通过kubeadm安装方法
前期准备工作所有机器安装必要软件包,并进行时间同步,防止后续出现问题yum -y install wget curl ntpdate yum-utils device-mapper-persistent-data lvm2 ntpdate ntp1.aliyun.com clock -w一些系统调整(所有机器执行)systemctl disable firewalld systemctl stop firewalld setenforce 0 sed -i 's/SELINUX=permissive/SELINUX=disabled/' /etc/sysconfig/selinux sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config swapoff -a sed -i 's/.*swap.*/#&/' /etc/fstab cat <<EOF > /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF sysctl --system进行docker的安装(所有机器执行)# 配置阿里云的docker源 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 指定安装这个版本的docker-ce yum install -y docker-ce-18.09.9-3.el7 # 启动docker systemctl enable docker && systemctl start docker安装kubeadm kubelet kubectl(所有机器执行)# 执行配置k8s阿里云源 cat <<EOF > /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/ enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg EOF # 安装kubeadm、kubectl、kubelet yum install -y kubectl-1.16.0-0 kubeadm-1.16.0-0 kubelet-1.16.0-0 # 启动kubelet服务 systemctl enable kubelet && systemctl start kubelet初始化master端配置,在master机器上# master 本机IP为192.168.244.139 pod网络IP段为10.244.0.0/16,并指定安装版本v1.16.0 kubeadm init --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.16.0 --apiserver-advertise-address 192.168.244.139 --pod-network-cidr=10.244.0.0/16 --token-ttl 0初始化完成后,会提示执行mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config并记录最后输出的一段代码,用于node节点加入master类似于`kubeadm join 192.168.244.139:6443 --token aew90y.q89ywcwjgjcm8b2t \ --discovery-token-ca-cert-hash sha256:181eb0e51d939200c768c43e230e7e4603c8b2c2c3a5b299de4a6df6b7d6226a`根据以上输出的join代码在node节点端执行完成后在master端 可进行查看所有节点状态`kubectl get nodes`此时会显示notready,需要在服务器执行wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml kubectl apply -f kube-flannel.yml echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile source ~/.bash_profile # 以下替换node节点IP scp /etc/kubernetes/admin.conf root@node节点IP:/etc/kubernetes/admin.conf # 然后现在再次查看,已经变为ready了 kubectl get nodes到这里Kube已经安装完成了,接下里可以正常安装一些组件或者分发docker镜像了
2021年05月29日
15,551 阅读
0 评论
0 点赞
2021-03-22
nginx-tengine 编译http2 tls1.3
nginx-tengine 编译http2 tls1.3在开始编译之前,需要确保已经安装好编译工具debian系需要安装apt-get install libtool gcc g++ apt-get install build-essential zlib1g-dev libpcre3 libpcre3-dev unzip uuid-devredhat系需要安装yum -y install gcc-c++随后编译并安装 pcre,用于支持 rewriteredhat系需要安装yum -y install pcre-devel openssl openssl-devel或手动编译pcrecd /usr/local/src wget https://ftp.pcre.org/pub/pcre/pcre-8.44.zip unzip pcre-8.44.zip cd pcre-8.44 ./configure make && make install编译并安装 zlib,用于支持 gzipcd /usr/local/src wget http://zlib.net/zlib-1.2.11.tar.gz tar -zxvf zlib-1.2.11.tar.gz cd zlib-1.2.11 ./configure make && make install然后我们下载 openssl 源码为编译 Nginx 做准备,打开这个链接后点击当前最新的版本 “OpenSSL_1_1_1” 下面的 hash 值,在页面中复制完整的 hash ,稍后需要用到。在最后一步中,填入你所复制的 hash。这里我们不需要编译 openssl ,随后在编译 Nginx 时会顺带处理cd /usr/local/src git clone https://github.com/openssl/openssl.git cd openssl git checkout 1d864f0f534fe38541c7adba5777935a0f2a2eb9编译nginxcd /usr/local/src wget http://tengine.taobao.org/download/tengine-2.3.2.tar.gz tar -zxvf tengine-2.3.2.tar.gz cd tengine-2.3.2 ./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=www-data --group=www-data --with-openssl-opt=enable-ec_nistp_64_gcc_128 --with-pcre --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-http_auth_request_module --with-threads --with-http_slice_module --with-mail --with-mail_ssl_module --with-file-aio --with-http_v2_module make && make install mkdir /var/cache/nginx然后配置nginx文件cd /etc/nginx include /etc/nginx/sites-enabled/*; mkdir sites-enabled创建配置文件cd /etc/nginx/sites-enabled vi mysite.conf输入命令nginx -t检查配置文件输入命令nginx启动开机自动启动设置:在/etc/rc.local 添加nginx完
2021年03月22日
120 阅读
0 评论
1 点赞