• Linux2-系统自有服务防火墙与计划任务


    一、什么是防火墙

    防火墙主要用于防范网络攻击,防火墙一般分为软件防火墙、硬件防火墙

    1、Windows中的防护墙设置

    2、防火墙的作用

    3、Linux中的防火墙分类

    Centos6、Centos6==>防火墙=>iptables防火墙 防火墙系统管理工具

    Centos7=>防火墙=>firewalld防火墙

    4、firewalld防火墙

    ①区域

    firewalld相比于iptables增加区域(zone)的概念,在firewalld中不同的区域会预先准备不同的防火墙策略集合。

    案例:在Linux系统中安装httpd服务(web服务)
    #yum install httpd -y #systemctl start httpd 安装完成后在浏览器中输入,虚机ens33的ip地址,即可访问服务

    出现以上问题的原因是firewall防护墙默认屏蔽httpd(TCP/80端口)流量。所以没办法访问这台服务器的web服务。

    解决方法:
    # systemctl stop firewalld
    systemctl start httpd

    访问成功后的页面

    ②防火墙模式

    运行模式:

    配置的防火墙策略立即生效,但是不写入配置文件

    永久模式:

    配置的防火墙策略写入配置文件,但不会立即生效,需要使用reload重新加载后才可生效

    5、防火墙设置

    ①查看运行状态status

    #systemctl status firewalld

    ②启动防火墙start

    #systemctl start firewalld

    ③停止防火墙stop

    #systemctl stop firewalld

    ④重启防火墙restart

    #systemctl restart firewalld

    ⑤重载防火墙reload

    #systemctl reload firewalld

    ⑥开机启动防火墙enable

    #systemctl enable firewalld

    ⑦开机不启动防火墙disable

    #systemctl disable firewalld

    6、firewalld防火墙规则

    6.1、firewalld防火墙管理工具

    基本语法:

    #firewalld-cmd [选项1] [选项2]

    命令帮助--help

    -v:打印防火墙版本信息

    6.2、查看防火墙的默认区域

    #firewall-cmd --get-default-zone

    6.3、查看防火墙的默认区域实操

    6.4、查看当前系统所有支持的区域

    #firewall-cmd --get-zones

    6.5、查看当前区域的规则设置

    #firewall-cmd --list-all

    6.6、查看所有区域的规则设置

    #firewall-cmd --list-all-zones

    6.7、修改默认区域为trusted操作,允许所有数据包访问

    成功访问

    把默认区域修改回public

    后面详解基于服务器services、端口ports、规则rules来配置防火墙策略

    6.8、通过服务的名称添加规则

    #firewall-cmd --zone=public --add-service=服务名称

    没有加--zone=public,默认添加服务是添加到当前域的策略中

    加了--zone=public是指定添加到public中

    访问成功

    这种模式是临时对http服务放行,运行模式临时生效。对firewall重载或者重启一下,这个服务就会关掉。

    以工具的形式重载也可以:#firewall - cmd -- reload

    备注:服务必须在/usr/lib/firewalld/services目录中

    案例:把http添加到防火墙规则中
    #firewall-cmd --zone=public --add-service=http

    案例:把http服务从防火墙策略中移除,不让其流量通过防火墙
    #firewall-cmd --zone=public --remove-service=http
    #firewall-cmd --list-all

    永久添加--permanent

    访问成功

    移除服务--remove:临时删除和永久删除

    6.9、通过服务的端口号添加规则

    #firewall-cmd --zone=public --add-port=端口号/tcp

    查看80端口协议:#netstat -tunlp | grep 80

    用的是tcp6协议

    不知道该命令的选项是什么意思,可以用帮助命令查看

    基于端口号进行放行

    访问成功

    查看指定域

    # firewall - cmd --info-zone=指定域名

    临时添加指定域添加端口号服务

    # firewall -cmd --zone=指定域名 --add-port=80/tcp

    永久移除--remove

    案例:移除80端口服务
    #firewall-cmd --zone=public --remove-port=80/tcp

    6.10、扩展:基于规则设置防火墙

    案例:
    #firewall- cmd --add- rich- rule='rule family="ipv4" source address=192.168.10.0/24 accept' 

    6.11、永久模式

    #firewall-cmd --zone=public --add-service=服务名称 --permannet

    #firewall-cmd --reload

    #firewall-cmd --zone=public --add-port=服务端口号 --permannet

    #firewaldd-cmd --reload

    二、Linux中的计划任务

    1、什么是计划任务

    操作系统设置任务不可能完全由人去操作,对一些特定时间点的任务,我们可以设置计划任务,让服务在规定时间去执行。

    2、windows中的计划任务

    在windows搜索栏搜索控制面板——管理工具


    3、Linux中的计划任务

    基本语法:
    #crontab [选项]
    -l:list,显示当前已经设置的计划任务
    -e:使用vim编辑器编辑计划任务文件

    案例1:
    #crontab -l

    案例2:
    #crontab -e


    4、#crontab -e命令:计划任务的编辑

    计划任务的规则语法格式,以行为单位,一行就是一个计划
    分 时 日 月 周 要执行的命令(必须使用该命令的完整路径,可以使用which查看

    which命令

    取值范围
    分:0-59
    时:0-23
    日:1-31
    月:1-12
    周:0-7,0和7表示星期天
    四个符号 :
    *:表示取值范围中的每一个数字
    -:做连续区间表达式的,表示1-7;可以写为1-7
    /:表示每多少个执行一次,如:每30分钟一次,*/30 ,
    :表示多个取值,例如每个月的1号5号15号执行,1,5,15


    5、计划任务案例

    案例1:每月1、10、22日的4:45 重启network服务
    ①定制格式
    分 时 日 月 周 /usr/bin/systemctl restart network
    45 4 1,10,12 * * /usr/bin/systemctl restart network

    案例2:每周六、周日的1:10分 重启network服务
    ①定制格式
    分 时 日 月 周 /usr/bin/systemctl restart networktl restart network
    10 1 * * 6,7 /usr/bin/systemctl restart network

    案例3:每天18:00到23:00之间每隔30分钟重启network服务
    ①定制格式
    分 时 日 月 周 /usr/bin/systemctl restart networktl restart network
    */30 18-23 * * * /usr/bin/systemctl restart networktl restart network

    案例4:每隔两天的上午8点到11点的第三分钟和第十五分钟执行一次重启network服务
    ①定制格式
    分 时 日 月 周 /usr/bin/systemctl restart networktl restart network
    3,15 8-11 */2 * * /usr/bin/systemctl restart networktl restart network

    案例:*
    #crontab -e
    * * * * * /usr/bin/echo 1 >> /root/readme.txt
    注意:想要执行该计划任务,要确保crond是运行状态
    #systemctl status crond
    #systemctl start crond

    实操:

    第一步:先确保服务是运行状态

    第二步:查看当前的计划任务
    #crontab -l

    第三步:编辑计划任务
    #crontab -e

    每周每月每天每时每隔一分钟创建此文件

    :wq保存并退出

    date命令:查看当前时间


    设置时间区间创建文件

    设置整点时间创建文件


    第四步、删除计划任务

    进编辑界面删掉命令即可


    6、计划任务的权限

    ①黑名单

    crontab默认情况下是可以让任何用户都去编辑计划任务的,如果想限制某个用户不能编辑计划任务,可以将该用户写入黑名单文件
    黑名单文件 --/etc/cron.dent
    #su - root
    #vim /etc/cron.deny
    zhangshan

    ②白名单

    白名单优先级优于黑名单,如果一个用户同时存在两个名单文件,则会被默认允许创建计划任务

    7、计划任务的保存文件

    计划任务的文件具体保存在/var/spool/cron/用户名称
    #ll /var/spool/cron [root@aliyun zhangsan]
    # ll /var/spool/cron total 8
    -rw-------. 1 root root 47 Oct 11 21:47 root
    -rw-------. 1 zhangsan zhangsan 42 Oct 12 19:04 zhangsan

    8、计划任务的日志程序

    在实际应用中,一般会通过计划任务日志,去 查看任务的运行情况
    #tail -f /var/log/cron


    9、at命令

    ①安装at
    #yum install at -y

    过滤查看此安装包

    ②启动atd服务
    #systemctl start atd
    #systemctl enable atd

    ③案例

    案例1:三天后下午5点执行/bin/ls
    #at 5pm+3 days
    at>/bin/ls >> /root/readme.txt
    at>Ctrl+D
    案例2:明天下午18点,输出时间到指定的文件中
    #at 18:00 tomorrow
    at>date > /root/readme.txt
    at>Ctrl+D (退出)

    查看还没有执行的计划任务
    #atq

    删除指定的计划任务
    #atq 查看任务的IP
    #atrm 任务id 删除任务

  • 相关阅读:
    C#(JS)几个常用的正则表达式
    Spring(二)Ioc 和 DI 入门案例
    Day39 进程
    Embedding技术与应用(3):Embeddings技术的实践应用
    Vue基础知识——数据绑定、数据代理
    04、添加 com.fasterxml.jackson.dataformat -- jackson-dataformat-xml 依赖报错
    Vue项目流程7,交易页面,提交订单,支付页面,利用element UI 以及 QRCode 完成微信支付,弹出框按钮的相关工作,个人中心以及子路由我的订单
    使用 Dify 和 AWS Bedrock 玩转 Anthropic Claude 3
    矩阵论理论知识(1)
    【数据结构】单链表
  • 原文地址:https://blog.csdn.net/m0_65436732/article/details/139631978