首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux基础(day35)

Linux基础(day35)

作者头像
运维小白
发布2018-02-06 15:04:02
8230
发布2018-02-06 15:04:02
举报
文章被收录于专栏:运维小白运维小白

10.19 iptables规则备份和恢复

iptables规则的备份和恢复

  • 保存和备份iptables规则
  • service iptables save //会把规则保存到/etc/sysconfig/iptables
  • 把iptables规则备份到my.ipt文件中
  • iptables-save > my.ipt
  • 恢复刚才备份的规则
  • iptables-restore < my.ipt

将iptables规则保存到其他文件中

  • service iptables save 这个命令会把规则保存到配置文件中/etc/sysconfig/iptables
  • 需求:
  1. 若不想保存到这个配置文件中,把规则保存保存到另一个文件中
  2. 使用命令iptables-save将文件重定向到 /tmp/ipt.txt 文件中——>文件名称随便起
[root@hanfeng ~]# iptables-save > /tmp/ipt.txt
[root@hanfeng ~]# cat /tmp/ipt.txt        //会看到保存的规则——>这里的和视频的不同,感觉nat表应用哪里挂掉了
# Generated by iptables-save v1.4.21 on Fri Dec  1 23:01:03 2017
*nat
-A PREROUTING -j PREROUTING_direct
-A PREROUTING -j PREROUTING_ZONES_SOURCE
COMMIT
# Completed on Fri Dec  1 23:01:03 2017

将iptables恢复刚备份的规则

  1. 先将之前备份的规则清空下iptables -t nat -F
  2. 再用iptables -t nat -nvL查看到规则都被清空了
  3. 再恢复之前备份的规则,命令iptables-restore < /tmp/ipt.txt
  4. 在使用命令iptables -t nat -nvL 会查看到清空的规则又回来了
  • 备份的规则,只有恢复的时候会用到,若是服务器一重启,就想要加载一些规则,那最好将规则放到/etc/sysconfig/iptables文件中去

10.20 firewalld的9个zone

Linux防火墙-firewalld

  • 打开firewalld
  • systemctl disable iptables
  • systemctl stop iptables
  • systemctl enable firewalld
  • systemctl start firewalld
  • firewalld默认有9个zone
  • 默认zone为public
  • firewall-cmd --get-zones //查看所有zone
  • firewall-cmd --get-default-zone//查看默认zone

firewalld防火墙机制

  • 因为之前禁掉了firewalld,打开了iptables,所以现在需要 打开firewalld,禁掉iptables
打开firewalld

[root@hf-01 ~]# systemctl disable iptables
[root@hf-01 ~]# systemctl stop iptables
[root@hf-01 ~]# systemctl enable firewalld
Created symlink from /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service to /usr/lib/systemd/system/firewalld.service.
Created symlink from /etc/systemd/system/basic.target.wants/firewalld.service to /usr/lib/systemd/system/firewalld.service.
[root@hf-01 ~]# systemctl start firewalld
[root@hf-01 ~]# 

这时用iptables -nvL和iptables -t nat -nvL查看规则,会看到增加了很多的链

  • firewalld默认有9个zone,zone是firewalld的一个单位,默认使用public zone——>每个zone就好比一个规则集
    • 规则集就是zone里面自带一些规则,比如:这个zone放行了80端口,放行了22端口,关闭了某某端口,这就是一个规则集

firewalld中查看所有zone

  • firewall-cmd --get-zones //查看所有zone
[root@hf-01 ~]# firewall-cmd --get-zones    //查看所有zone
block dmz drop external home internal public trusted work
[root@hf-01 ~]# 

firewalld中查询默认的zone

  • firewall-cmd --get-default-zone //查看默认zone
[root@hf-01 ~]# firewall-cmd --get-default-zone    //查看默认zone
public
[root@hf-01 ~]# 

firewalld中9个zone的区别

10.21 firewalld关于zone的操作

Linux防火墙-firewalld

  • firewall-cmd --set-default-zone=work //设定默认zone
  • firewall-cmd --get-zone-of-interface=ens33 //查指定网卡
  • firewall-cmd --zone=public --add-interface=lo //给指定网卡设置zone
  • firewall-cmd --zone=dmz --change-interface=lo //针对网卡更改zone
  • firewall-cmd --zone=dmz --remove-interface=lo //针对网卡删除zone
  • firewall-cmd --get-active-zones //查看系统所有网卡所在的zone

firewall-cmd设定默认zone

  • firewall-cmd --set-default-zone=work //设定默认的zone
[root@hf-01 ~]# firewall-cmd --set-default-zone=work
success
[root@hf-01 ~]# firewall-cmd --get-default-zone
work
[root@hf-01 ~]# 

firewall-cmd查看指定网卡

  • firewall-cmd --get-zone-of-interface=ens16777736 //查指定网卡
[root@hf-01 ~]# firewall-cmd --get-zone-of-interface=eno16777736
work
[root@hf-01 ~]# firewall-cmd --get-zone-of-interface=lo
no zone
[root@hf-01 ~]# 

  • 若是后续添加的网卡ens36,显示no zone,就需要把eno16777736的网卡配置环境复制一份,命令为ens36,并修改配置文件,最后重启网络服务,在重新加载firewalld服务(systemctl restart firewalld),在来查看ens36的zone
    • 若还是没有zone,我们就去增加给ens36增加一个zone
      • firewall-cmd --zone=public --add-interface=ens36 //给指定网卡设置zone

[root@hf-01 ~]# firewall-cmd --get-zone-of-interface=ens36
no zone
[root@hf-01 ~]# cd /etc/sysconfig/network-scripts/
[root@hf-01 network-scripts]# ls
ifcfg-eno16777736    ifdown-post      ifup-bnep   ifup-routes
ifcfg-eno16777736:0  ifdown-ppp       ifup-eth    ifup-sit
ifcfg-lo             ifdown-routes    ifup-ippp   ifup-Team
ifdown               ifdown-sit       ifup-ipv6   ifup-TeamPort
ifdown-bnep          ifdown-Team      ifup-isdn   ifup-tunnel
ifdown-eth           ifdown-TeamPort  ifup-plip   ifup-wireless
ifdown-ippp          ifdown-tunnel    ifup-plusb  init.ipv6-global
ifdown-ipv6          ifup             ifup-post   network-functions
ifdown-isdn          ifup-aliases     ifup-ppp    network-functions-ipv6
[root@hf-01 network-scripts]# cp /etc/sysconfig/network-scripts/ifcfg-eno16777736 /etc/sysconfig/network-scripts/ens36
[root@hf-01 network-scripts]# vi !$        //编辑配置文件
vi /etc/sysconfig/network-scripts/ens36
[root@hf-01 network-scripts]# systemctl restart network.service    //重启网络服务
[root@hf-01 network-scripts]# systemctl restart firewalld    //重新加载firewalld服务
[root@hf-01 network-scripts]# firewall-cmd --get-zone-of-interface=ens36    //查看ens36网卡的zone
no zone
[root@hf-01 network-scripts]# firewall-cmd --zone=work --add-interface=ens36    //给ens36网卡设置zone
success
[root@hf-01 network-scripts]# firewall-cmd --get-zone-of-interface=ens36    //查看ens36网卡的zone
work
[root@hf-01 network-scripts]# 

firewall-cmd给指定网卡设置zone

  • firewall-cmd --zone=public --add-interface=lo //给指定网卡设置zone
[root@hf-01 network-scripts]# firewall-cmd --zone=public --add-interface=lo    给lo网卡设置zone 
success
[root@hf-01 network-scripts]# firewall-cmd --get-zone-of-interface=lo
public
[root@hf-01 network-scripts]# 

firewall-cmd给指定网卡设置zone

  • firewall-cmd --zone=dmz --change-interface=lo //针对网卡更改zone
[root@hf-01 network-scripts]# firewall-cmd --get-zone-of-interface=lo
public
[root@hf-01 network-scripts]# firewall-cmd --zone=dmz --change-interface=lo    //针对网卡更改zone
success
[root@hf-01 network-scripts]# firewall-cmd --get-zone-of-interface=lo
dmz
[root@hf-01 network-scripts]# 

firewall-cmd针对网卡删除zone

  • firewall-cmd --zone=block --remove-interface=ens37 //针对网卡删除zone
[root@hf-01 network-scripts]# firewall-cmd --zone=block --change-interface=ens36    给ens36网卡设置zone 
success
[root@hf-01 network-scripts]# firewall-cmd --zone=block  --remove-interface=ens36    //针对ens36网卡删除zone 
success
[root@hf-01 network-scripts]# firewall-cmd --get-zone-of-interface=ens36
no zone
[root@hf-01 network-scripts]#

  • 在remove删除zone后,恢复默认的zone——>自己在删除后,就显示no zone,而并不是恢复默认的zone!!!

firewall-cmd查看系统所有网卡所在的zone

  • firewall-cmd --get-active-zones //查看系统所有网卡所在的zone
[root@hf-01 network-scripts]# firewall-cmd --get-active-zones        //查看系统所有网卡所在的zone
dmz
  interfaces: lo
work
  interfaces: eno16777736
[root@hf-01 network-scripts]# 

10.22 firewalld关于service的操作

Linux防火墙-firewalled

  • firewall-cmd --get-services 查看所有的servies
  • firewall-cmd --list-services //查看当前zone下有哪些service
  • firewall-cmd --zone=public --add-service=http //把http增加到public zone下面
  • firewall-cmd --zone=public --remove-service=http
  • ls /usr/lib/firewalld/zones/ //zone的配置文件模板
  • firewall-cmd --zone=public --add-service=http --permanent //更改配置文件,之后会在/etc/firewalld/zones目录下面生成配置文件
  • 需求:ftp服务自定义端口1121,需要在work zone下面放行ftp
  • cp /usr/lib/firewalld/services/ftp.xml /etc/firewalld/services
  • vi /etc/firewalld/services/ftp.xml //把21改为1121
  • cp /usr/lib/firewalld/zones/work.xml /etc/firewalld/zones/
  • vi /etc/firewalld/zones/work.xml //增加一行
  • <service name="ftp"/>
  • firewall-cmd --reload //重新加载
  • firewall-cmd --zone=work --list-services

firewall-cmd查看所有的servies

  • firewall-cmd --get-services 查看所有的servies(这里的 s 可省略)
    • servies,就是zone下面的一个子单元,可理解为它是一个指定的端口
      • 防火墙就是针对一些端口做出一些限制,比如:http操作的是80端口,https操作的是43端口,ssh操作的是22端口

[root@hf-01 ~]# firewall-cmd --get-services    //列出系统中所有的services
amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-client dns ftp high-availability http https imaps ipp ipp-client ipsec kerberos kpasswd ldap ldaps libvirt libvirt-tls mdns mountd ms-wbt mysql nfs ntp openV** pmcd pmproxy pmwebapi pmwebapis pop3s postgresql proxy-dhcp radius rpc-bind samba samba-client smtp ssh telnet tftp tftp-client transmission-client vnc-server wbem-https
[root@hf-01 ~]# 

firewall-cmd查看当前zone下有哪些service(service可加 s,也可不加 s)

  • firewall-cmd --list-services //查看当前zone下有哪些service
[root@hf-01 ~]# firewall-cmd --get-default-zone    //查看当前的zone
work
[root@hf-01 ~]# firewall-cmd --list-services    //查看当前zone下有哪些service
dhcpv6-client ipp-client ssh
[root@hf-01 ~]# 

  • 指定对应的zone,有哪些services
[root@hf-01 ~]# firewall-cmd --zone=public --list-services
dhcpv6-client ssh
[root@hf-01 ~]# 

firewall-cmd将http服务增加到public zone下面

  • firewall-cmd --zone=public --add-service=http //把http增加到public zone下面
[root@hanfeng ~]# firewall-cmd --zone=public --add-service=http
success
[root@hanfeng ~]# firewall-cmd --zone=public --list-service
dhcpv6-client http ssh
[root@hanfeng ~]# firewall-cmd --zone=public --add-service=ftp
success
[root@hanfeng ~]# firewall-cmd --zone=public --list-service
dhcpv6-client ftp http ssh
[root@hanfeng ~]# 

  • 现在仅仅是内存里面zone增加了一些service,若想将这些配置保存到配置文件中去,只需在后面在增加--permanent,来更改配置文件
    • firewall-cmd --zone=public --add-service=http --permanent //更改配置文件,之后会在/etc/firewalld/zones目录下面生成配置文件

[root@hanfeng ~]# firewall-cmd --zone=public --add-service=http --permanent
success
[root@hanfeng ~]# ls /etc/firewalld/zones/    //每次改完配置文件,就会生成一个旧的作为备份,后缀名为.old
public.xml   public.xml.old
[root@hanfeng ~]# cat /etc/firewalld/zones/public.xml    //查看更改后的配置文件
<?xml version="1.0" encoding="utf-8"?>
<zone>
  <short>Public</short>
  <description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>
  <service name="dhcpv6-client"/>
  <service name="http"/>
  <service name="ssh"/>
</zone>
[root@hanfeng ~]# 

zone的配置文件模板

  • ls /usr/lib/firewalld/zones/ //zone的配置文件模板
    • 能查看到有9个模板

[root@hanfeng ~]# ls /usr/lib/firewalld/zones/
block.xml  drop.xml      home.xml      public.xml   work.xml
dmz.xml    external.xml  internal.xml  trusted.xml
[root@hanfeng ~]# ls /usr/lib/firewalld/services/
amanda-client.xml      ipp-client.xml   mysql.xml       rpc-bind.xml
bacula-client.xml      ipp.xml          nfs.xml         samba-client.xml
bacula.xml             ipsec.xml        ntp.xml         samba.xml
dhcpv6-client.xml      kerberos.xml     openV**.xml     smtp.xml
dhcpv6.xml             kpasswd.xml      pmcd.xml        ssh.xml
dhcp.xml               ldaps.xml        pmproxy.xml     telnet.xml
dns.xml                ldap.xml         pmwebapis.xml   tftp-client.xml
ftp.xml                libvirt-tls.xml  pmwebapi.xml    tftp.xml
high-availability.xml  libvirt.xml      pop3s.xml       transmission-client.xml
https.xml              mdns.xml         postgresql.xml  vnc-server.xml
http.xml               mountd.xml       proxy-dhcp.xml  wbem-https.xml
imaps.xml              ms-wbt.xml       radius.xml
[root@hanfeng ~]# 

firewall-cmd将public zone下面的http服务删除

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

firewalled案例

需求

  • 将ftp服务自定义端口1121,需要在work zone下面放行ftp

实现

[root@hanfeng ~]# cp /usr/lib/firewalld/services/ftp.xml /etc/firewalld/services
[root@hanfeng ~]# vi /etc/firewalld/services/ftp.xml

将内容中的21端口改为1121端口

[root@hanfeng ~]# cp /usr/lib/firewalld/zones/work.xml /etc/firewalld/zones/
[root@hanfeng ~]# vi /etc/firewalld/zones/work.xml

增加一行,内容为 <service name="ftp"/>

[root@hanfeng ~]# firewall-cmd --reload        //重新加载
success
[root@hanfeng ~]# firewall-cmd --zone=work --list-services
dhcpv6-client ftp ipp-client ssh
[root@hanfeng ~]# 

  • firewall-cmd --reload //重新加载
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 10.19 iptables规则备份和恢复
    • iptables规则的备份和恢复
      • 将iptables规则保存到其他文件中
      • 将iptables恢复刚备份的规则
  • 10.20 firewalld的9个zone
    • Linux防火墙-firewalld
      • firewalld防火墙机制
      • firewalld中查看所有zone
      • firewalld中查询默认的zone
      • firewalld中9个zone的区别
  • 10.21 firewalld关于zone的操作
    • Linux防火墙-firewalld
      • firewall-cmd设定默认zone
      • firewall-cmd查看指定网卡
      • firewall-cmd给指定网卡设置zone
      • firewall-cmd给指定网卡设置zone
      • firewall-cmd针对网卡删除zone
      • firewall-cmd查看系统所有网卡所在的zone
  • 10.22 firewalld关于service的操作
    • Linux防火墙-firewalled
      • firewall-cmd查看所有的servies
      • firewall-cmd查看当前zone下有哪些service(service可加 s,也可不加 s)
      • firewall-cmd将http服务增加到public zone下面
      • zone的配置文件模板
      • firewall-cmd将public zone下面的http服务删除
    • firewalled案例
      • 需求
      • 实现
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档