03.Linux高级管理
1. Linux 中的 firewalld1.1. 什么是防火墙防火墙主要用于防范网络攻击防火墙一般分为软件防火墙、硬件防火墙1.2. 防火墙的作用主要作用是保护系统免受未经授权的访问和攻击它有助于防止黑客利用系统中的安全漏洞以及限制对特定网络服务的访问。1.3. Linux 防火墙分类CentOS6——防火墙——iptables 防火墙 防火墙系统管理工具CentOS7——防火墙 ——firewalld 防火墙1.4. firewalld 防火墙firewalld 工具是一个面向用户、方便用户的防火墙配置工具系统内核依然是基于 iptables 规则来工作的。firewalld 工具其实就是在帮我们配置 iptables 防火墙规则。1.4.1. firewalld 防火墙服务管理启动防火墙systemctl start firewalld停止防火墙systemctl stop firewalld重启防火墙systemctl restart firewalld查看防火墙状态systemctl status firewalld设置开机启动systemctlenablefirewalld设置开机不启动systemctl disable firewalld重载防火墙systemctl reload firewalld1.4.2. 防火墙 zone 的概念firewalld 相比于 iptables 增加区域zone的概念在 firewalld 中的区域会预先准备不同的防火墙策略集合。区域名默认规则策略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拒绝流入的流量除非与流出的流量相关对应配置文件位置ll /lib/firewalld/zones1.5. 防火墙命令及策略管理防火墙策略可以通过 firewalld 的管理工具 firewall-cmd 来对 firewalld 进行防火墙策略配置。1.5.1. firewall-cmd 工具常用命令查看防火墙状态firewall-cmd--state或systemctl status firewalld查看当前活动 zone 信息firewall-cmd --get-active-zones查看默认的 zonefirewall-cmd --get-default-zone设置默认的 zonefirewall-cmd --set-default-zonezone_name查看指定 zone 的详细信息firewall-cmd --info-zonezone_name查看当前 zone 可用的服务firewall-cmd --list-services查看所有的 zonesfirewall-cmd --list-all-zones查看当前所有 zone 名称firewall-cmd --get-zones查看现有的规则firewall-cmd --list-all重新加载防火墙规则firewall-cmd--reload1.5.2. 基于服务配置 firewalld 策略基于服务添加策略基本语法临时修改重载失效firewall-cmd --add-serviceservice_name永久修改重载生效firewall-cmd --add-serviceservice_name--permanentfirewall-cmd--reload案例安装 httpd 服务并配置防火墙规则httpd 是一个 web 服务安装后可以通过虚拟机的 IP地址加上端口 80即可访问到一个 apache 服务界面安装yum-yinstallhttpd启动systemctl start httpd查看状态systemctl status httpd查看端口ss-taunlp|grep80测试访问http:/192.168.19.128/无法访问原因是 firewalld 拦截配置 firewalld 规则firewall-cmd --list-allfirewall-cmd --add-servicehttp备注服务必须在/usr/lib/firewalld/services 目录中ll /usr/lib/firewalld/services|grephttpfirewall-cmd --list-allfirewall-cmd--reloadfirewall-cmd --list-all防火墙重载后规则失效永久配置firewall-cmd --add-servicehttp--permanent永久配置需要冲在防火墙才能生效配置基于服务删除策略firewall-cmd --remove-serviceservice_name永久修改重载生效firewall-cmd --remove-serviceservice_name--permanentfirewall-cmd--reload案例临时删除firewall-cmd -remove-servicehttp临时修改重载后失效永久修改永久修改需要重载防火墙才能生效配置1.5.3. 基于端口配置 firewalld 策略基于端口添加策略基本语法firewall-cmd --add-portport/protocolfirewall-cmd --add-portport/protocol--permanentfirewall-cmd--reload案例firewall-cmd --add-prot80/tcpfirewall-cmd --add-prot80/tcp--permanentfirewall-cmd--reload基于端口删除策略firewall-cmd --remove-portport/protocolfirewall-cmd --remove-portport/protocol--permanentfirewall-cmd--reload案例firewall-cmd --remove-port80/tcpfirewall-cmd --remove-port80/tcp--permanentfirewall-cmd--reload1.5.4. 基于规则配置 firewalld 策略扩展基于规则添加策略基本语法临时修改重载失效firewall-cmd --add-rich-rulerule 规则明细 action firewall-cmd --add-rich-rulerule 规则明细 action --permanentaction 对添加的策略实现的动作动作Reject 拒绝对进来的流量直接拒绝Accept 接收对进来的流量接收Drop 丢弃对进来的流量包直接丢弃reject 与 drop 的区别DROP 动作只是简单的丢弃数据并不反馈任何回应。需要 Client 等待超时Client 容易发现自己被防火墙所阻挡REJECT 动作则会更加礼貌的返回一个拒绝终止数据包明确的拒绝对方的连接动作。连接马上断开Client 会认为访问的主机不存在。使用 Firewalld 和 rich rules 常见的网络访问控制场景源和目标地址过滤允许特定网段地址的访问firewall-cmd --add-rich-rulerule familyipv4 source address192.168.10.0/24 accept允许特定 IP地址访问firewall-cmd --add-rich-rule rule familyipv4 source address192.168.10.129 accept服务过滤允许特定协议的访问firewall-cmd --add-rich-rulerule familyipv4 service namehttp accept协议过滤允许特定协议的访问firewall-cmd --add-rich-rulerule familyipv4 protocol valueicmp accept源和目标端口过滤允许从特定端口访问特定目标端口firewall-cmd --add-rich-rulerule familyipv4 service namessh source port1024-65535 destination port22 accept高级条件过滤限制特定 IP地址的访问速率firewall-cmd --add-rich-rulerule familyipv4 source address192.168.19.10 limit value3/m burst5 accept表示源地址 192.168.19.10 允许每分钟三次封包每次封包的数量不能超过 5 个网络地址转换和端口转发启用源地址转换firewall-cmd --add-rich-rulerule familyipv4 source address192.168.19.10 masquerade启用源地址 192.168.19.10 伪装firewall-cmd--permanent--add-rich-rulerule familyipv4 source address192.168.10.1 drop基于规则删除策略基本语法临时修改重载失效firewall-cmd --remove-rich-rulerule 规则明细 action 永久修改重载生效firewall-cmd --remove-rich-rulerule 规则明细 action --permanentfirewall-cmd--reload临时删除firewall-cmd --remove-rich-rulerule familyipv4 source address192.168.10.0/24 port port80 protocoltcp accept永久删除firewall-cmd --remove-rich-rulerule familyipv4 source address192.168.10.0/24 port port80 protocoltcp accept--permanentfirewall-cmd--reload2. 计划任务2.1. 什么是计划任务操作系统设置不可能完全由人去操作对一些特顶时间的任务我们可以设置计划任务让服务在规定时间去执行。2.2. Linux 中的计划任务2.2.1. 周期性计划任务 crontab基本语法crontab [ 选项 ]-llist显示当前已经设置的计划任务-e使用 vim 编辑器编辑计划文件计划任务的编辑计划任务的规则语法格式以行为单位一行就是一个计划分 时 日 月 周 要执行的命令必须使用命令的完整路径可以使用 which 查看取值范围分0-59时0-23日1-31月1-12周0-70 和 7 表示星期天四个符号*表示取值范围中的每个数字-表示做连续区间表达式的表示 1-7可以写为 1-7/表示每多少个执行一次如每 30 分钟一次*/30,表示多个取值例如每个月的 1 号 5 号 15 号执行1515计划任务案例**案例 1**每月 1、10、22 日的 445 重启 network 服务定制格式# 分 时 日 月 周 /usr/bin/systemctl restart network4541,10,12 * * /usr/r/bin/systemctl restart network**案例 2**每周六、周日的 110 分 重启 network 服务定制格式# 分 时 日 月 周 /usr/bin/systemctl restart network101* *6,7/usr/r/bin/systemctl restart network**案例 3**每天 1800 到 2300 之间每隔 30 分钟重启 network 服务定制格式# 分 时 日 月 周 /usr/bin/systemctl restart network*/3018-23 * * * /usr/r/bin/systemctl restart network**案例 4**每隔两天的上午 8 点到 11 点的第三分钟和第十五分钟执行一次重启 network 服务定制格式# 分 时 日 月 周 /usr/bin/systemctl restart network3,158-11 */2 * * /usr/bin/systemctl restart network案例 5:每月每周每天每小时每分钟创建一个内容为 1 的文件名为 readme.txt 的文件crontab-e* * * * * /usr/bin/echo1/root/readme.txt注 意 计划任务设置完成后确保计划任务服务是运行状态systemctl status crond systemctl start crond计划任务权限crontab 通过 /etc/cron.allow白名单和 /etc/cron.deny黑名单文件来限制用户是否可以使用 crontab规则如下如果文件/etc/cron.allow 存在则只允许在 cron.allow 提及的用户名使用。如果/etc/cron.allow 不存在则检查/etc/cron.deny然后允许 cron.deny 未提及的每个用户名在使用。空的/etc/cron.deny 表示每个用户都可以使用 crontab。如果两者都不存在则只允许超级用户在使用。白名单优于黑名单如果一个用户同时存在两个名单文件则会被默认允许创建计划任务计划任务的保存文件计划任务的文件具体保存在/var/spool/cron/用户名称案例crontab-e*/5 * * * * /usr/bin/touch /tmp/linux.txtsu- user1crontab-e系统中没有 user1 用户自行添加*/5 * * * * /usr/bin/touch /tmp/user1.txtexit验证ll /var/spool/cron/注意如果删除计划任务文件等于删除了计划任务也可以通过创建文件来创建计划任务计划任务日志在实际应用中一般会通过计划任务日志去 查看任务的运行情况tail-f/var/log/cron2.2.2.一次性计划任务在 linux 系统下有两个命令可以实现计划任务crontab 与 at第三方安装crontab每天定时执行计划任务at一次性定时执行任务安装 at图形化自带 at最小化需安装yuminstallat-y启动 atd 服务systemctl start atd systemctlenableatd案例**案例 1**三天后下午 5 点执行/bin/lsat 5pm3 daysat/bin/ls /root/readme.txtatctrld注意按键盘上的 ctrl d 键保存退出案例 2明天下午 18 点输出时间到指定的文件中at18:00 tomorrowatdate /root/readme.txtatctrld (退出)查看还没有执行的计划任务atq或at-l查看计划任务的详细信息at-c5删除指定的计划任务atrm 任务 id 删除任务atrm4atrm5计划任务权限at 通过 /etc/at.allow白名单 和 /etc/at.deny(黑名单) 文件来限制用户是否可以使用 at规则与 crontab 一致
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2424103.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!