防火墙主要用于防范网络攻击,防火墙一般分为软件防火墙、硬件防火墙
Centos6、Centos6==>防火墙=>iptables防火墙 防火墙系统管理工具
Centos7=>防火墙=>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重新加载后才可生效
#systemctl status firewalld
#systemctl start firewalld
#systemctl stop firewalld
#systemctl restart firewalld
#systemctl reload firewalld
#systemctl enable firewalld
#systemctl disable firewalld
基本语法:
#firewalld-cmd [选项1] [选项2]
命令帮助--help
-v:打印防火墙版本信息
#firewall-cmd --get-default-zone
#firewall-cmd --get-zones
#firewall-cmd --list-all
#firewall-cmd --list-all-zones
成功访问
把默认区域修改回public
后面详解基于服务器services、端口ports、规则rules来配置防火墙策略
#firewall-cmd --zone=public --add-service=服务名称
访问成功
这种模式是临时对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:临时删除和永久删除
#firewall-cmd --zone=public --add-port=端口号/tcp
用的是tcp6协议
不知道该命令的选项是什么意思,可以用帮助命令查看
基于端口号进行放行
访问成功
# firewall - cmd --info-zone=指定域名
# firewall -cmd --zone=指定域名 --add-port=80/tcp
永久移除--remove
案例:移除80端口服务
#firewall-cmd --zone=public --remove-port=80/tcp
案例:
#firewall- cmd --add- rich- rule='rule family="ipv4" source address=192.168.10.0/24 accept'
#firewall-cmd --zone=public --add-service=服务名称 --permannet
#firewall-cmd --reload
#firewall-cmd --zone=public --add-port=服务端口号 --permannet
#firewaldd-cmd --reload
操作系统设置任务不可能完全由人去操作,对一些特定时间点的任务,我们可以设置计划任务,让服务在规定时间去执行。
在windows搜索栏搜索控制面板——管理工具
基本语法:
#crontab [选项]
-l:list,显示当前已经设置的计划任务
-e:使用vim编辑器编辑计划任务文件
案例1:
#crontab -l案例2:
#crontab -e
计划任务的规则语法格式,以行为单位,一行就是一个计划
分 时 日 月 周 要执行的命令(必须使用该命令的完整路径,可以使用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
案例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
每周每月每天每时每隔一分钟创建此文件
:wq保存并退出
设置时间区间创建文件
设置整点时间创建文件
进编辑界面删掉命令即可
crontab默认情况下是可以让任何用户都去编辑计划任务的,如果想限制某个用户不能编辑计划任务,可以将该用户写入黑名单文件
黑名单文件 --/etc/cron.dent
#su - root
#vim /etc/cron.deny
zhangshan
白名单优先级优于黑名单,如果一个用户同时存在两个名单文件,则会被默认允许创建计划任务
计划任务的文件具体保存在/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
在实际应用中,一般会通过计划任务日志,去 查看任务的运行情况
#tail -f /var/log/cron
过滤查看此安装包
案例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 删除任务