2018.8.28笔记

iptables规则的保存 备份 恢复

规则保存

编辑完iptables的规则使用命令:

service iptables save

把规则保存在iptables的配置文件里面:/etc/sysconfig/iptables

备份规则

想把此刻的规则备份一下,一般情况是拷贝一个iptables的配置文件,也可以对规则进行备份。可以直接查看备份文件。

iptables-save  >  my.ipt

cat my.ipt

恢复规则

规则修改完发现不能正常通信,想恢复到原来的规则,可以把备份的iptables配置文件进行覆盖,也可以把备份的规则进行恢复。

iptables-restore < my.ipt

设定的防火墙规则只是保存在内存中,并没有保存到配置文件中,也就说当系统重启后以前设定的规则就没有了,所以

设定好规则后要先保存规则,以免重启后规则丢失。

[root@yuzaoqian ~]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]

 

 

firewalld介绍

由于centos 7版本以后默认使用firewalld。官方文档如下:

官方文档地址:https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Security_Guide/sec-Using_Firewalls.html#sec-Introduction_to_firewalld

 firewalld简介

firewalld是centos7的一大特性,最大的好处有两个:支持动态更新,不用重启服务;第二个就是加入了防火墙的“zone”概念

firewalld有图形界面和工具界面,由于我在服务器上使用,图形界面请参照官方文档,本文以字符界面做介绍

firewalld的字符界面管理工具是 firewall-cmd 

firewalld默认配置文件有两个:/usr/lib/firewalld/ (系统配置,尽量不要修改)和 /etc/firewalld/ (用户配置地址)

zone概念

硬件防火墙默认一般有三个区,firewalld引入这一概念系统默认存在以下区域(根据文档自己理解,如果有误请指正):

drop(丢弃):默认丢弃所有包

block(限制):拒绝所有外部连接,允许内部发起的连接

public(公共):指定外部连接可以进入

external(外部):这个不太明白,功能上和上面相同,允许指定的外部连接

dmz(非军事):和硬件防火墙一样,受限制的公共连接可以进入

work(工作):工作区,概念和workgoup一样,也是指定的外部连接允许

home(家庭):类似家庭组

internal(内部):使用内部网络,信任所有连接。

trusted(信任):可接受所有的网络连接。

安装firewalld:

# yum install firewalld firewall-config

# systemctl enable firewalld

# systemctl start firewalld

运行、停止、禁用firewalld

启动:# systemctl start  firewalld

查看状态:# systemctl status firewalld 或者 firewall-cmd --state

停止:# systemctl disable firewalld

禁用:# systemctl stop firewalld

重载:#  firewall-cmd --reload

zone 增删查改设

查看全部的zone

# firewall-cmd --get-zones

block dmz drop external home internal public trusted work

 

查看默认的zone

# firewall-cmd --get-default-zone

public

 

修改默认的zone

# firewall-cmd --set-default-zone=work

success

 

指定网卡查询zone

# firewall-cmd --get-zone-of-interface=ens33

work

# firewall-cmd --get-zone-of-interface=ens37

no zone

 

给指定网卡设置zone

# firewall-cmd --zone=public --add-interface=ens37

success

 

给指定网卡修改zone

# firewall-cmd --zone=dmz --change-interface=lo

success

 

给指定网卡删除zone

# firewall-cmd --zone=dmz  --remove-interface=lo

success

# firewall-cmd --get-zone-of-interface=lo      

no zone

 

查看所有网卡所在的zone

# firewall-cmd --get-active-zones                

dmz

interfaces: ens37

work

interfaces: ens33

service 增删查改设

查看所有的service,(其实都是一些服务的名字)

# firewall-cmd  --get-services

 

查看当前zone的service

# firewall-cmd --list-services

ssh dhcpv6-client

 

查看指定zone下的service

# firewall-cmd --zone=public --list-service  

ssh dhcpv6-client

 

把http服务添加指定zone里面

# firewall-cmd --zone=public --add-service=http

success

# firewall-cmd --zone=public --list-service      

ssh dhcpv6-client http

 

把http服务添加指定zone里面,并写入配置文件

# firewall-cmd --zone=public --add-service=http --permanent

success

# cat /etc/firewalld/zones/public.xml

<service name="http"/>

 

删掉指定zone的http服务

# firewall-cmd --zone=public --remove-service=http

success

firewalld 文件

/etc/firewalld/zones/ 是zone类型开头.xml格式文件。还有前面文件.old结尾的文件的备份。例如:

public.xml  public.xml.old。分别保存了现在的文件,和修改之前的备份,用于恢复。

 

/etc/firewalld/services/ 是service类型的文件。

/usr/lib/firewalld/ 里面的 zones 和 services 目录里,分别保存了模板文件。用于手动添加firewalld规则。

Centos7中使用firewalld防火墙

 

[root@yuzaoqian ~]# systemctl stop iptables.service
[root@yuzaoqian ~]# systemctl disable iptables.service
Removed symlink /etc/systemd/system/basic.target.wants/iptables.service.
[root@yuzaoqian ~]# systemctl status iptables.service
● iptables.service - IPv4 firewall with iptables
   Loaded: loaded (/usr/lib/systemd/system/iptables.service; disabled; vendor preset: disabled)
   Active: inactive (dead) since Thu 2018-08-30 11:07:58 CST; 21s ago
 Main PID: 15897 (code=exited, status=0/SUCCESS)

Aug 28 09:20:13 yuzaoqian systemd[1]: Starting IPv4 firewall with iptables...
Aug 28 09:20:13 yuzaoqian iptables.init[15897]: iptables: Applying firewall rules: [  OK  ]
Aug 28 09:20:13 yuzaoqian systemd[1]: Started IPv4 firewall with iptables.
Aug 30 11:07:58 yuzaoqian systemd[1]: Stopping IPv4 firewall with iptables...
Aug 30 11:07:58 yuzaoqian iptables.init[18895]: iptables: Setting chains to policy ACCEPT: filter [  OK  ]
Aug 30 11:07:58 yuzaoqian iptables.init[18895]: iptables: Flushing firewall rules: [  OK  ]
Aug 30 11:07:58 yuzaoqian iptables.init[18895]: iptables: Unloading modules: [  OK  ]
Aug 30 11:07:58 yuzaoqian systemd[1]: Stopped IPv4 firewall with iptables.
Hint: Some lines were ellipsized, use -l to show in full.
[root@yuzaoqian ~]# ystemctl start firewalld.service

(由于没有安装firewalld于是重新安装)

-bash: ystemctl: command not found
[root@yuzaoqian ~]# yum install firewalld
Loaded plugins: fastestmirror
base                                                                               | 3.6 kB  00:00:00     
epel                                                                               | 3.2 kB  00:00:00     
extras                                                                             | 3.4 kB  00:00:00     
updates                                                                            | 3.4 kB  00:00:00     
(1/3): epel/x86_64/updateinfo                                                      | 937 kB  00:00:00     
(2/3): updates/7/x86_64/primary_db                                                 | 5.2 MB  00:00:00     
(3/3): epel/x86_64/primary                                                         | 3.6 MB  00:00:01     
Loading mirror speeds from cached hostfile
epel                                                                                          12662/12662
Resolving Dependencies
--> Running transaction check
---> Package firewalld.noarch 0:0.4.3.2-8.1.el7_3.3 will be updated
---> Package firewalld.noarch 0:0.4.4.4-14.el7 will be an update
--> Processing Dependency: python-firewall = 0.4.4.4-14.el7 for package: firewalld-0.4.4.4-14.el7.noarch
--> Processing Dependency: firewalld-filesystem = 0.4.4.4-14.el7 for package: firewalld-0.4.4.4-14.el7.noarch
--> Running transaction check
---> Package firewalld-filesystem.noarch 0:0.4.3.2-8.1.el7_3.3 will be updated
---> Package firewalld-filesystem.noarch 0:0.4.4.4-14.el7 will be an update
---> Package python-firewall.noarch 0:0.4.3.2-8.1.el7_3.3 will be updated
---> Package python-firewall.noarch 0:0.4.4.4-14.el7 will be an update
--> Processing Conflict: firewalld-0.4.4.4-14.el7.noarch conflicts selinux-policy < 3.13.1-118.el7
--> Restarting Dependency Resolution with new changes.
--> Running transaction check
---> Package selinux-policy.noarch 0:3.13.1-102.el7_3.16 will be updated
--> Processing Dependency: selinux-policy = 3.13.1-102.el7_3.16 for package: selinux-policy-targeted-3.13.1-102.el7_3.16.noarch
--> Processing Dependency: selinux-policy = 3.13.1-102.el7_3.16 for package: selinux-policy-targeted-3.13.1-102.el7_3.16.noarch
---> Package selinux-policy.noarch 0:3.13.1-192.el7_5.6 will be an update
--> Processing Dependency: policycoreutils >= 2.5-18 for package: selinux-policy-3.13.1-192.el7_5.6.noarch
--> Running transaction check
---> Package policycoreutils.x86_64 0:2.5-11.el7_3 will be updated
---> Package policycoreutils.x86_64 0:2.5-22.el7 will be an update
--> Processing Dependency: libsepol >= 2.5-8 for package: policycoreutils-2.5-22.el7.x86_64
--> Processing Dependency: libselinux-utils >= 2.5-12 for package: policycoreutils-2.5-22.el7.x86_64
---> Package selinux-policy-targeted.noarch 0:3.13.1-102.el7_3.16 will be updated
---> Package selinux-policy-targeted.noarch 0:3.13.1-192.el7_5.6 will be an update
--> Running transaction check
---> Package libselinux-utils.x86_64 0:2.5-6.el7 will be updated
---> Package libselinux-utils.x86_64 0:2.5-12.el7 will be an update
--> Processing Dependency: libselinux(x86-64) = 2.5-12.el7 for package: libselinux-utils-2.5-12.el7.x86_64
---> Package libsepol.x86_64 0:2.5-6.el7 will be updated
---> Package libsepol.x86_64 0:2.5-8.1.el7 will be an update
--> Running transaction check
---> Package libselinux.x86_64 0:2.5-6.el7 will be updated
--> Processing Dependency: libselinux(x86-64) = 2.5-6.el7 for package: libselinux-python-2.5-6.el7.x86_64
---> Package libselinux.x86_64 0:2.5-12.el7 will be an update
--> Running transaction check
---> Package libselinux-python.x86_64 0:2.5-6.el7 will be updated
---> Package libselinux-python.x86_64 0:2.5-12.el7 will be an update
--> Finished Dependency Resolution

Dependencies Resolved

==========================================================================================================
 Package                           Arch             Version                       Repository         Size
==========================================================================================================
Updating:
 firewalld                         noarch           0.4.4.4-14.el7                base              418 k
 selinux-policy                    noarch           3.13.1-192.el7_5.6            updates           453 k
Updating for dependencies:
 firewalld-filesystem              noarch           0.4.4.4-14.el7                base               49 k
 libselinux                        x86_64           2.5-12.el7                    base              162 k
 libselinux-python                 x86_64           2.5-12.el7                    base              235 k
 libselinux-utils                  x86_64           2.5-12.el7                    base              151 k
 libsepol                          x86_64           2.5-8.1.el7                   base              297 k
 policycoreutils                   x86_64           2.5-22.el7                    base              867 k
 python-firewall                   noarch           0.4.4.4-14.el7                base              328 k
 selinux-policy-targeted           noarch           3.13.1-192.el7_5.6            updates           6.6 M

Transaction Summary
==========================================================================================================
Upgrade  2 Packages (+8 Dependent packages)

Total download size: 9.5 M
Is this ok [y/d/N]: y
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
(1/10): firewalld-filesystem-0.4.4.4-14.el7.noarch.rpm                             |  49 kB  00:00:00     
(2/10): libselinux-2.5-12.el7.x86_64.rpm                                           | 162 kB  00:00:00     
(3/10): firewalld-0.4.4.4-14.el7.noarch.rpm                                        | 418 kB  00:00:00     
(4/10): libselinux-utils-2.5-12.el7.x86_64.rpm                                     | 151 kB  00:00:00     
(5/10): libselinux-python-2.5-12.el7.x86_64.rpm                                    | 235 kB  00:00:00     
(6/10): libsepol-2.5-8.1.el7.x86_64.rpm                                            | 297 kB  00:00:00     
(7/10): python-firewall-0.4.4.4-14.el7.noarch.rpm                                  | 328 kB  00:00:00     
(8/10): policycoreutils-2.5-22.el7.x86_64.rpm                                      | 867 kB  00:00:00     
(9/10): selinux-policy-3.13.1-192.el7_5.6.noarch.rpm                               | 453 kB  00:00:00     
(10/10): selinux-policy-targeted-3.13.1-192.el7_5.6.noarch.rpm                     | 6.6 MB  00:00:01     
----------------------------------------------------------------------------------------------------------
Total                                                                     4.5 MB/s | 9.5 MB  00:00:02     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Updating   : libsepol-2.5-8.1.el7.x86_64                                                           1/20 
  Updating   : libselinux-2.5-12.el7.x86_64                                                          2/20 
  Updating   : libselinux-utils-2.5-12.el7.x86_64                                                    3/20 
  Updating   : policycoreutils-2.5-22.el7.x86_64                                                     4/20 
  Updating   : selinux-policy-3.13.1-192.el7_5.6.noarch                                              5/20 
  Updating   : python-firewall-0.4.4.4-14.el7.noarch                                                 6/20 
  Updating   : firewalld-filesystem-0.4.4.4-14.el7.noarch                                            7/20 
  Updating   : firewalld-0.4.4.4-14.el7.noarch                                                       8/20 
  Updating   : selinux-policy-targeted-3.13.1-192.el7_5.6.noarch                                     9/20 
  Updating   : libselinux-python-2.5-12.el7.x86_64                                                  10/20 
  Cleanup    : selinux-policy-targeted-3.13.1-102.el7_3.16.noarch                                   11/20 
  Cleanup    : firewalld-0.4.3.2-8.1.el7_3.3.noarch                                                 12/20 
  Cleanup    : selinux-policy-3.13.1-102.el7_3.16.noarch                                            13/20 
  Cleanup    : policycoreutils-2.5-11.el7_3.x86_64                                                  14/20 
  Cleanup    : libselinux-utils-2.5-6.el7.x86_64                                                    15/20 
  Cleanup    : libselinux-python-2.5-6.el7.x86_64                                                   16/20 
  Cleanup    : firewalld-filesystem-0.4.3.2-8.1.el7_3.3.noarch                                      17/20 
  Cleanup    : python-firewall-0.4.3.2-8.1.el7_3.3.noarch                                           18/20 
  Cleanup    : libselinux-2.5-6.el7.x86_64                                                          19/20 
  Cleanup    : libsepol-2.5-6.el7.x86_64                                                            20/20 
  Verifying  : firewalld-filesystem-0.4.4.4-14.el7.noarch                                            1/20 
  Verifying  : libselinux-python-2.5-12.el7.x86_64                                                   2/20 
  Verifying  : libselinux-2.5-12.el7.x86_64                                                          3/20 
  Verifying  : libselinux-utils-2.5-12.el7.x86_64                                                    4/20 
  Verifying  : python-firewall-0.4.4.4-14.el7.noarch                                                 5/20 
  Verifying  : firewalld-0.4.4.4-14.el7.noarch                                                       6/20 
  Verifying  : selinux-policy-targeted-3.13.1-192.el7_5.6.noarch                                     7/20 
  Verifying  : policycoreutils-2.5-22.el7.x86_64                                                     8/20 
  Verifying  : libsepol-2.5-8.1.el7.x86_64                                                           9/20 
  Verifying  : selinux-policy-3.13.1-192.el7_5.6.noarch                                             10/20 
  Verifying  : python-firewall-0.4.3.2-8.1.el7_3.3.noarch                                           11/20 
  Verifying  : policycoreutils-2.5-11.el7_3.x86_64                                                  12/20 
  Verifying  : selinux-policy-targeted-3.13.1-102.el7_3.16.noarch                                   13/20 
  Verifying  : libselinux-utils-2.5-6.el7.x86_64                                                    14/20 
  Verifying  : selinux-policy-3.13.1-102.el7_3.16.noarch                                            15/20 
  Verifying  : libselinux-2.5-6.el7.x86_64                                                          16/20 
  Verifying  : libselinux-python-2.5-6.el7.x86_64                                                   17/20 
  Verifying  : firewalld-filesystem-0.4.3.2-8.1.el7_3.3.noarch                                      18/20 
  Verifying  : firewalld-0.4.3.2-8.1.el7_3.3.noarch                                                 19/20 
  Verifying  : libsepol-2.5-6.el7.x86_64                                                            20/20 

Updated:
  firewalld.noarch 0:0.4.4.4-14.el7               selinux-policy.noarch 0:3.13.1-192.el7_5.6              

Dependency Updated:
  firewalld-filesystem.noarch 0:0.4.4.4-14.el7     libselinux.x86_64 0:2.5-12.el7                         
  libselinux-python.x86_64 0:2.5-12.el7            libselinux-utils.x86_64 0:2.5-12.el7                   
  libsepol.x86_64 0:2.5-8.1.el7                    policycoreutils.x86_64 0:2.5-22.el7                    
  python-firewall.noarch 0:0.4.4.4-14.el7          selinux-policy-targeted.noarch 0:3.13.1-192.el7_5.6    

Complete!

 

[root@yuzaoqian ~]# systemctl start firewalld.service
[root@yuzaoqian ~]#  systemctl enable firewalld.service
Created symlink from /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service to /usr/lib/systemd/system/firewalld.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/firewalld.service to /usr/lib/systemd/system/firewalld.service.
[root@yuzaoqian ~]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2018-08-30 11:11:43 CST; 37s ago
     Docs: man:firewalld(1)
 Main PID: 19071 (firewalld)
   CGroup: /system.slice/firewalld.service
           └─19071 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid

Aug 30 11:11:43 yuzaoqian systemd[1]: Starting firewalld - dynamic firewall daemon...
Aug 30 11:11:43 yuzaoqian systemd[1]: Started firewalld - dynamic firewall daemon.
Aug 30 11:11:44 yuzaoqian firewalld[19071]: ERROR: Failed to load service file '/usr/lib/firewalld/...mn 0
Hint: Some lines were ellipsized, use -l to show in full.

 

 

 

 

crontab命令

crond 是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务 工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。

 

在Linux系统中,Linux任务调度的工作主要分为以下两类:
1、系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存
2、个人执行的工作:某个用户定期要做的工作,例如每隔10分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置

crontab命令的语法为:

crontab  [选项]

 

选项:

e:编辑一个新的计划任务

l:显示计划任务

r:删除计划任务

特殊符号含义:

*星号 :任何时刻都接受的意思,例如0 3 * * * 不管什么日期月份周只要到3点就执行工作

,逗号 :分隔的意思,例如0 3,6 * * * 3点和6点都执行工作

-减号 :代表时间范围,例如0 1-3 * * * 123点都执行工作

/n斜线:n为数字,表示每隔几个单位,例如 */5 * * * *每隔5分钟执行工作一次

 

chkconfig命令检查、设置系统的各种服务。这是Red Hat公司遵循GPL规则所开发的程序,它可查询操作系统在每一个执行等级中会执行哪些系统服务,其中包括各类常驻服务。谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接。

语法:

chkconfig(选项)

选项:

--add:增加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件内增加相关数据;
--del:删除所指定的系统服务,不再由chkconfig指令管理,并同时在系统启动的叙述文件内删除相关数据;
--level<等级代号>:指定读系统服务要在哪一个执行等级中开启或关毕。

查看service的列表信息

chkconfig --list

systemd  

系统服务管理systemd  Control the systemd system and service manager  #控制systemd系统和服务管理
先前的使用SysV初始化或Upstart的红帽企业版Linux版本中,使用位于/etc/rc.d/init.d/目录中的bash初始化脚本进行管理。
在RHEL 7/CentOS 7中,这些启动脚本被服务单元取代了。为了向后兼容,旧的service命令在CentOS 7中仍然可用,它会重定向所有命令到新的systemctl工具。

systemd的特性有:

  • 支持并行化任务
  • 同时采用socket式与D-Bus总线式激活服务;
  • 按需启动守护进程(daemon);
  • 利用Linux的cgroups监视进程;
  • 支持快照和系统恢复;
  • 维护挂载点和自动挂载点;
  • 各服务间基于依赖关系进行精密控制

Systemd可以管理所有系统资源,不同的资源统称为 Unit(单位),Unit可以归为以下几大类:

service:系统服务

target:多个unit组成的组

device:硬件设备

mount:文件系统挂载点

automount:自动挂载点

path:文件或路径

scope:不是由systemd启动的外部进程

slice:进程组

snapshot:systemd快照

socket:进程间的通信的套接字

swap:swap文件

timer:定时器

unit命令:

#systeamctl list-units // 列出正在运行的unit

#systeamctl list-units --all //列出所有的unit

#systeamctl list-units --all --state=inactive //列出所有inactive的unit

#systeamctl list-units --all --type=service//列出所有状态的service

#systeamctl list-units  --type=service//列出状态为active的service

#systeamctl is-active crond.service//查看某个unit是否为active

target类似于centos6中的启动级别,但target支持多个同时启动,target其实是多个unit的组合,系统启动说白了就是启动多个unit,为了管理方便,就使用target来管理这些unit

service、unit、target之间的联系

一个service属于一种unit

多个unit组成了target

一个target里面包含了多个service,你可以查看文件/usr/lib/systemd/system/ssh.service里面的isntall部分的内容,它定义了该service属于那种target.

转载于:https://my.oschina.net/u/3856250/blog/1936422

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值