首页
友链
统计
留言
更多
直播
壁纸
推荐
我的毛线
院长科技
Search
1
本站官方群:894703859------|诚邀各位大佬的入驻!
418 阅读
2
pxe 自动化安装系统
348 阅读
3
新款螺旋帽子编织#夏凉帽#合股线夏凉帽编织
308 阅读
4
10 个Linux Awk文本处理经典案例
306 阅读
5
软件安装
293 阅读
Linux
yaml
iptables
shell
ansible
ssl
命令
文件管理
用户权限
综合集群架构
三剑客
awk
sed
自动化
pxe
编织
编织视频
监控
prometheus
go
go占位符
vue
vue基础
vue项目
web
Nginx
html
vscode
html标签
html表格
css基础
css定位
css精灵图
code
html5
项目
js
jQuery
面向对象
kubernetes
k8s命令
k8s
k8s搭建
database
clickhouse
常用工具
微软
登录
/
注册
Search
标签搜索
基础
js
Nginx
css
webapi
jQuery
面向对象
command
项目
ansible
用户权限
go
html
文件管理
命令
综合集群架构
k8s
pxe
awk
vscode
JustDoIt
累计撰写
112
篇文章
累计收到
4
条评论
首页
栏目
Linux
yaml
iptables
shell
ansible
ssl
命令
文件管理
用户权限
综合集群架构
三剑客
awk
sed
自动化
pxe
编织
编织视频
监控
prometheus
go
go占位符
vue
vue基础
vue项目
web
Nginx
html
vscode
html标签
html表格
css基础
css定位
css精灵图
code
html5
项目
js
jQuery
面向对象
kubernetes
k8s命令
k8s
k8s搭建
database
clickhouse
常用工具
微软
页面
友链
统计
留言
直播
壁纸
推荐
我的毛线
院长科技
搜索到
3
篇与
的结果
2023-11-03
Firewalld防火墙
1.防火墙基本概述RHEL/CentOS 7系统中集成了多款防火墙管理工具,其中firewalld(Dynamic Firewall Manager of Linux systems, Linux系统的动态防火墙管理器)服务是默认的防火墙配置管理工具,它拥有基于CLI(命令行界面)和基于GUI(图形用户界面)的两种管理方式。相较于传统的Iptables防火墙管理工具firewalld支持动态更新,并加入了区域zone的概念。简单来说,区域就是firewalld预先准备了几套防火墙策略集合(策略模板),用户可以根据生产场景的不同而选择合适的策略集合,从而实现防火墙策略之间的快速切换。注意一个zone区域仅能绑定一个网卡, 设定不同的匹配规则一个zone区域又可以针对不同的源地址设定不同的规则Firewalld相关配置文件默认定义的模板配置文件/usr/lib/firewalld存储规则配置文件 /etc/firewalld/2.防火墙区域概述 区域 默认规则策略 trusted 允许所有的数据包流入与流出 home 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh、mdns、ipp-client、amba-client与dhcpv6-client服务相关,则允许流量 internal 等同于home区域 work 拒绝流入的流量,除非与流出的流量数相关;而如果流量与ssh、ipp-client与dhcpv6-client服务相关,则允许流量 public 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh、dhcpv6-client服务相关,则允许流量 external 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh服务相关,则允许流量 dmz 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh服务相关,则允许流量 block 拒绝流入的流量,除非与流出的流量相关 drop 拒绝流入的流量,除非与流出的流量相关 3.防火墙基本指令参数为了能够使用firwalld服务和相关工具去管理防火墙,必须启动firwalld服务,并且需要禁用以前旧防火墙相关服务, firewall-config(图形界面), firewall-cmdfirewalld的规则分两种状态:runtime运行时: 修改规则马上生效,但是临时生效 [不建议]permanent持久配置: 修改后需要reload重载才会生效 [强烈推荐]firewall-cmd命令分类 参数 作用 zone区域相关指令 --get-default-zone 查询默认的区域名称 --set-default-zone=<区域名称> 设置默认的区域,使其永久生效 --get-active-zones 显示当前正在使用的区域与网卡名称 --get-zones 显示总共可用的区域 --new-zone= 新增区域 services服务相关指令 --get-services 显示预先定义的服务 --add-service=<服务名> 设置默认区域允许该服务的流量 --remove-service=<服务名> 设置默认区域不再允许该服务的流量 Port端口相关指令 --add-port=<端口号/协议> 设置默认区域允许该端口的流量 --remove-port=<端口号/协议> 设置默认区域不再允许该端口的流量 Interface网卡相关指令 --add-interface=<网卡名称> 将源自该网卡的所有流量都导向某个指定区域 --change-interface=<网卡名称> 将某个网卡与区域进行关联 其他相关指令 --list-all 显示当前区域的网卡配置参数、资源、端口以及服务等信息 --reload 让“永久生效”的配置规则立即生效,并覆盖当前的配置规则 4.防火墙区域配置策略1.为了能正常使用firwalld服务和相关工具去管理防火墙,必须启动firwalld服务, 同时关闭以前旧防火墙相关服务//禁用旧版防火墙服务 [root@xuliangwei ~] [root@xuliangwei ~] //启动firewalld防火墙, 并加入开机自启动服务 [root@xuliangwei ~] [root@xuliangwei ~] //备份firewalld相关配置文件(重要) [root@Firewalld ~] 2.zone区域相关指令 [root@xuliangwei ~]# firewall-cmd --get-default-zone public [root@xuliangwei ~]# firewall-cmd --set-default-zone=work [root@xuliangwei ~]# firewall-cmd --permanent --add-service=http --zone=work [root@xuliangwei ~]# firewall-cmd --change-interface=eth0 --zone=work 3.将某网段IP路由至home区域, 由该区域规则进行匹配决定是否放行[root@Firewalld ~] [root@Firewalld ~] success [root@Firewalld ~] success //检查相关规则 [root@Firewalld ~] home sources: 192.168.56.0/24 public interfaces: eth0 br0 vnet0 4.查询firewald相关规则 [root@Firewalld ~]# firewall-cmd --get-active-zones home sources: 192.168.69.0/24 work interfaces: eth0 br0 vnet0 [root@xuliangwei ~]# firewall-cmd --list-all --zone=work work (active) target: default icmp-block-inversion: no interfaces: eth0 sources: services: ssh dhcpv6-client 'http' ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: 5.查询public区域是否允许请求SSH HTTPS协议的流量[root@Firewalld ~] yes [root@Firewalld ~] no 5.防火墙服务访问策略1.配置防火墙, 允许请求http https协议的流量设置为永久允许,并立即生效[root@Firewalld ~] success //重启加载生效 [root@Firewalld ~] success //检查相关配置 [root@Firewalld ~] ssh dhcpv6-client 'http https' 2.配置防火墙, 允许请求php-fpm服务的流量设置为永久允许,并立即生效[root@Firewalld ~]# cd /usr/lib/firewalld/services/ [root@Firewalld services]# cp http.xml php-fpm.xml [root@Firewalld services]# cat php-fpm.xml <?xml version="1.0" encoding="utf-8"?> <service> <short>PHP-FPM</short> <description> php-fpm </description> <port protocol="tcp" port="9000"/> </service> [root@Firewalld ~]# firewall-cmd --permanent --add-service=php-fpm [root@Firewalld ~]# firewall-cmd --list-services ssh dhcpv6-client 'http https php-fpm' [root@Firewalld ~]# yum install php-fpm -y [root@Firewalld ~]# systemctl start php-fpm ~ telnet 192.168.56.11 9000 Trying 192.168.56.11... Connected to 192.168.56.11. Escape character is '^]'. 3.配置防火墙, 请求https协议的流量设置为永久拒绝,并立即生效[root@Firewalld ~] success [root@Firewalld ~] success //检查当前活动服务 [root@Firewalld ~] ssh dhcpv6-client http 6.防火墙端口访问策略1.配置防火墙, 访问8080/tcp 8080/udp端口的流量策略设置为永久允许, 并立即生效 [root@Firewalld ~]# firewall-cmd --permanent --add-port=8080/udp --add-port=8080/tcp [root@Firewalld ~]# firewall-cmd --reload success [root@Firewalld ~]# firewall-cmd --list-ports 8080/tcp 8080/udp 2.配置防火墙, 访问8080/udp的端口流量设置为永久拒绝,并立即生效[root@Firewalld ~] success [root@Firewalld ~] success 8080/tcp 7.防火墙端口转发策略端口转发是指传统的目标地址映射,实现外网访问内网资源流量转发命令格式为firewall-cmd --permanent --zone=<区域> --add-forward-port=port=<源端口号>:proto=<协议>:toport=<目标端口号>:toaddr=<目标IP地址>1.把访问本机555/tcp端口的流量转发到22/tcp端口,要求当前和长期有效[root@Firewalld ~] success [root@Firewalld ~] success 2.把访问本机6666/tcp端口的流量转发到80/tcp端口,要求当前和长期有效[root@Firewalld ~] [root@Firewalld ~] success [root@Firewalld ~] success 3.移除本地555/tcp端口转发策略, 要求当前和长期有效[root@Firewalld ~] success [root@Firewalld ~] success 8.防火墙富规则策略firewalld中的富规则表示更细致、更详细的防火墙策略配置,它可以针对系统服务、端口号、源地址和目标地址等诸多信息进行更有针对性的策略配置, 优先级在所有的防火墙策略中也是最高的。1.富规则帮助手册man firewall-cmd man firewalld.richlanguage rule [source] [destination] service|port|protocol|icmp-block|masquerade|forward-port [log] [audit] [accept|reject|drop] rule [family="ipv4|ipv6"] source address="address[/mask]" [invert="True"] destination address="address[/mask]" invert="True" service name="service name" port port="port value" protocol="tcp|udp" protocol value="protocol value" forward-port port="port value" protocol="tcp|udp" to-port="port value" to-addr="address" log [prefix="prefix text"] [level="log level"] [limit value="rate/duration"] accept | reject [type="reject type"] | drop //区里的富规则按先后顺序匹配,按先匹配到的规则生效。 1.允许来自于192.168.69.113/32主机请求8081-8083端口, 当前和永久生效[root@Firewalld ~] --add-rich-rule='rule family=ipv4 source address=192.168.69.113/32 port port=8081-8083 protocol=tcp accept' success [root@Firewalld ~] success 2.拒绝来自192.168.69.113/32主机所有的请求, 当前和永久生效[root@Firewalld ~] --add-rich-rule='rule family=ipv4 source address=192.168.69.113/32 reject' success [root@Firewalld ~] success 3.拒绝来自于192.168.69.0/24网段请求ssh服务, 当前和永久生效[root@Firewalld ~] --add-rich-rule='rule family=ipv4 source address=192.168.69.0/24 service name=ssh reject' success [root@Firewalld ~] success 4.限制所有请求ftp服务流量, 每分钟1个并发, 当前和永久生效[root@Firewalld ~] --add-rich-rule='rule service name=ftp log prefix="ftp " level=notice limit value=1/m accept' success [root@Firewalld ~] success //开启多个ftp连接, 查看日志 [root@Firewalld ~] Apr 21 11:16:04 kvm-node1 kernel: ftp IN=br0 OUT= MAC=00:0c:29:72:6a96:00:50:56:c0:00:02:08:00 SRC=192.168.56.1 DST=192.168.56.11 LEN=64 TOS=0x00 PREC=0x00 TTL=64 ID=21160 DF PROTO=TCP SPT=57050 DPT=21 WINDOW=65535 RES=0x00 SYN URGP=0 5.防止规则设定错误导致网络连接断开,用于调试,规则在300秒后失效[root@Firewalld ~] --add-rich-rule='rule family=ipv4 source address=192.168.69.113/32 service name=ssh reject' --timeout=300 6.将192.168.69.113/32主机访问443/tcp的数据包转发到本机的22/tcp端口, 当前和永久生效//端口转发规则 [root@Firewalld ~] --add-rich-rule='rule family=ipv4 source address=192.168.56.1/32 forward-port port=443 protocol=tcp to-port=22' success [root@Firewalld ~] success 7.允许192.168.69.113/32访问httpd, 并且记录日志, 日志级别为notice,日志前缀为NEW HTTP, 限制每秒最多3个并发, 当前和永久生效 [root@Firewalld soft] --add-rich-rule='rule family=ipv4 source address=192.168.69.113/32 service name=http,https log level=notice prefix="New Http " limit value="3/s" accept' success [root@Firewalld soft] success 转 xuliangwei.com
2023年11月03日
6 阅读
0 评论
0 点赞
2023-11-01
cron 命令
1.Crond计划任务概述什么是计划任务,计划任务类似于我们平时生活中的闹钟。在Linux系统的计划任务服务crond可以满足周期性执行任务的需求。crond进程每分钟会处理一次计划任务, 计划任务主要是做一些周期性的任务目前最主要的用途是定时备份数据Schedule one-time tasks with at. 一次性调度执行 at Schedule recurring jobs with cron. 循环调度执行 cron Schedule recurring system jobs. 所有计划任务执行中的输出都会以邮件的方式发送给指定用户, 除非重定向 //循环调度执行cron 进程每分钟会处理一次计划任务 [root@xuliangwei ~] [root@xuliangwei ~] root 1201 0.0 0.0 126264 1640 ? Ss 11:15 0:00 /usr/sbin/crond -n 计划任务分为以下两种情况:1.系统级别的定时任务:清理系统缓存临时文件清理系统信息采集日志文件切割2.用户级别的定时任务:定时同步互联网时间定时备份系统配置文件定时备份数据库文件2.crond配置文件详解文件 说明 /etc/crontab /etc/cron.deny /var/spool/cron 3.crond计划任务管理crond任务管理参数 含义 指定示例 [root@xuliangwei ~] -e 编辑crontab文件内容 crontab -e -l 查看crontab文件内容 crontab -l -r 删除crontab文件内容 crontab -r -u 管理其他用户的计划任务 crontab -u xuliangwei -l 注意: crontab {-l -e}实际上就是在操作/var/spool/cron/username crond时间含义# Example of job definition: # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * command to be executed crond编写示例00 02 * * * ls //每天2:00整 00 02 1 * * ls //每月1号2:00整 00 02 14 2 * ls //每年2月14号2:00整 00 02 * * 7 ls //每周日2:00整 00 02 * 6 5 ls //每年6月的周五2:00整 00 02 14 * 7 ls //每月14号2:00整或每周日2:00整,这两个时间都执行 00 02 14 2 7 ls //每年 2 月 14 号 2:00 整 或者 每周日 2:00 整,这两个时间都执行 00 02 * * * ls //每天2:00整 * 02 * * * ls //每天2:00中的每一分钟 (逻辑错误) * * * * * ls //每分钟执行 ls * * 14 2 * ls //2月14号的每分钟(逻辑错误) */5 * * * * ls //每隔5分钟 00 02 * 1,5,8 * ls //每年1,5,8月的每天2:00整 00 02 1-8 * * ls //每月1到8号的2:00整 crond书写规范 [root@xuliangwei ~]# crontab -l ##time sync by xuliangwei 2018-00-00 */5 * * * * /usr/sbin/ntpdate time.windows.com &>/dev/null [root@xuliangwei ~]# crontab -l ##backup www to /backup xuliangwei 2018-00-00 00 01 * * * /bin/sh /soft/scripts/www_backup.sh &>/dev/null [root@xuliangwei ~]# crontab -l ####backup www to /backup xuliangwei 2018-00-00 00 01 * * * /bin/sh /soft/scripts/www_backup.sh &>/dev/null 4.crond配置编写实例[root@xuliangwei ~]# crontab -e #每天凌晨切割nginx日志 00 00 * * * /bin/sh -x /soft/scripts/cut_nginx.sh &> /soft/scripts/log/nginx.log #每天5点备份数据库 00 05 * * * /bin/sh -x /soft/scripts/dump_sql.sh &>/soft/scripts/log/mysql.log #每5分钟检测数据库是否正常 */5 * * * * /bin/sh /soft/scripts/start_mysql.sh &>/dev/null 1.我们所有的crond服务是运行的程序。而crontab命令用户用来设置定时规则的命令。 2.crond服务是企业生产工作中常用的重要服务,at很少使用,可以忽略。 3.几乎每个服务器都会用到crond服务。 5.crond计划任务调试1.调整任务每分钟执行, 检测是否是否正常, 有些任务不要频繁执行2.调整系统时间然后在检测任务, 生产不建议直接使用此方式3.执行脚本, 将脚本执行输出写入指定日志文件, 观察日志内容是否正常4.注意一些任务命令带来的问题echo “xuliangwei” >>/tmp/xlw.log &>/dev/null5.命令使用绝对路径, 防止无法找到命令导致定时任务执行故障6.查看/var/log/cron日志进行调试建议: 将需要定期执行的任务写入脚本中, 建立/soft/scripts目录统一存放脚本, 脚本中命令必须使用绝对路径,手动执行脚本检测输出是否正常, 然后将脚本加入计划任务测试, 测试后无问题将脚本输出写入对应的日志文件中即可。 1.手动执行保留执行命令的正确结果 2.编写脚本 脚本需要统一路径/soft/scripts 脚本开头建议填写注释信息, 包括执行时间、周期、任务 脚本内容复制执行成功的命令至脚本文件中(减少每个环节出错几率) 脚本内容尽可能的优化, 使用一些变量或使用简单的判断语句 脚本执行的输出信息不要随意打印, 可以重定向至其他位置保留或丢入黑洞 3.执行脚本 使用bash执行, 防止脚本没有增加执行权限(/usr/bin/bash) 执行命令以及脚本成功后并复制该命令 4.编写计划任务 加上必要的注释信息, 人、时间、任务 设定计划任务执行的周期 粘贴执行脚本的命令(不要手敲) 5.调试计划任务 增加任务频率测试、调整系统时间测试(不能用于生产) 检查环境变量问题、检查crond服务产生日志进行排查 转 xuliangwei.com
2023年11月01日
18 阅读
0 评论
0 点赞
2023-11-01
find 命令
文件查找概述Linux系统中的find命令在查找文件时非常有用而且方便。它可以根据不同的条件来进行查找文件:例如权限、拥有者、修改日期/时间、文件大小等等。 同时find命令是Linux下必须掌握的。find 命令的基本语法如下 命令 路径 选项 表达式 动作 find [path...] [options] [expression] [action] 查找 地区 犯罪嫌疑人 性别男25-30岁 枪决行动 find名称查找 touch /etc/sysconfig/network-scripts/{ifcfg-eth1,IFCFG-ETH1} [root@xuliangwei ~]# find /etc -name "ifcfg-eth1" [root@xuliangwei ~]# find /etc -iname "ifcfg-eth1" [root@xuliangwei ~]# find /etc/ -name "ifcfg-eth*" [root@xuliangwei ~]# find /etc -iname "ifcfg-eth*" find大小查找 [root@xuliangwei ~]# find /etc -size +5M [root@xuliangwei ~]# find /etc -size 5M [root@xuliangwei ~]# find /etc -size -5M find时间查找 [root@xuliangwei ~]# for i in {01..28};do date -s 201802$i && touch file-$i;done [root@xuliangwei ~]# find ./ -iname "file-*" -mtime +7 [root@xuliangwei ~]# find ./ -iname "file-*" -mtime -7 [root@xuliangwei ~]# find ./ -iname "file-*" -mtime 7 find /backup/ -iname "*.bak" -mtime +7 -delete find /backup/ -iname "*.bak" -mtime +90 -delete find用户查找//查找属主是jack [root@xuliangwei ~] //查找属组是admin [root@xuliangwei ~] //查找属主是jack, 属组是admin [root@xuliangwei ~] //查找属主是jack, 并且属组是admin [root@xuliangwei ~] //查找属主是jack, 或者属组是admin [root@xuliangwei ~] //查找没有属主 [root@xuliangwei ~] //查找没有属组 [root@xuliangwei ~] //查找没有属主或属组 [root@xuliangwei ~] find类型查找 [root@xuliangwei ~]# find /dev -type f [root@xuliangwei ~]# find /dev -type d [root@xuliangwei ~]# find /dev -type l [root@xuliangwei ~]# find /dev -type b [root@xuliangwei ~]# find /dev -type c [root@xuliangwei ~]# find /dev -type s [root@xuliangwei ~]# find /dev -type p find权限查找 [root@xuliangwei ~]# find . -perm 644 -ls [root@xuliangwei ~]# find /home -perm -324 [root@xuliangwei ~]# find . -perm -222 -ls [root@xuliangwei ~]# find /home -perm /442 [root@xuliangwei ~]# find /usr/sbin -perm -4000 -ls [root@xuliangwei ~]# find /usr/sbin -perm -2000 -ls [root@xuliangwei ~]# find /usr/sbin -perm -1000 -ls find处理动作当查找到一个文件后, 需要对文件进行如何处理, 默认动作 -print-print -ls -delete -exec -ok [root@xuliangwei ~]# find /etc -name "ifcfg*" [root@xuliangwei ~]# find /etc -name "ifcfg*" -print [root@xuliangwei ~]# find /etc -name "ifcfg*" -ls [root@xuliangwei ~]# find /etc -name "ifcfg*" -exec cp -rvf {} /tmp \; [root@xuliangwei ~]# find /etc -name "ifcfg*" -ok cp -rvf {} /tmp \; [root@xuliangwei ~]# find /etc -name "ifcfg*" -exec rm -f {} \; [root@xuliangwei ~]# find /etc -name "ifcfg*" -delete find结合xargs//xargs将查找到结果一个一个的处理 [root@xuliangwei ~] [root@xuliangwei ~] [root@xuliangwei ~] 转 xuliangwei.com
2023年11月01日
8 阅读
0 评论
0 点赞