七周五次课

 

1. iptables规则备份和恢复

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

备份

# service iptables save 

/etc/sysconfig/iptables    //默认保存的位置

指定备份位置

[root@localhost ~]# iptables-save > /tmp/ipt.txt

[root@localhost ~]# cat /tmp/ipt.txt

# Generated by iptables-save v1.4.21 on Fri Dec  1 21:16:41 2017

*filter

:INPUT DROP [9:702]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [262:26184]

-A INPUT -p icmp -m icmp --icmp-type 8 -j DROP

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

-A INPUT -s 192.168.8.0/24 -p tcp -m tcp --dport 22 -j ACCEPT

-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT

-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT

COMMIT

# Completed on Fri Dec  1 21:16:41 2017

恢复备份的规则

[root@localhost ~]# iptables-restore < /tmp/ipt.txt

[root@localhost ~]# iptables-save > /tmp/ipt.txt            #保存修改的规则

[root@localhost ~]# iptables -t nat -F            #清空掉

[root@localhost ~]# iptables -t nat -nvL             #查看规则

实例:

保存和备份iptables规则

service iptables save  ##会把规则保存到/etc/sysconfig/iptables里

下图是清空后的filter规则并保存的。

示例保存规则操作:

步骤1:先写一条规则进filter表

步骤2:保存规则并把规则备份到一个文件中、或者iptables-save >保存的路径

查看配置文件是否已经保存

查看保存规则文件是否已备份

步骤4:清空规则利用备份文件进行恢复

iptables-restore < 规则备份路径

重定向到一个文件中。


3. firewalled的9个zone

打开firewalld

systemctl disable iptables           #开机关闭netfilter

systemctl stop iptables               #停止netfilter服务

systemctl enable firewalld            #开机启动firewalld

systemctl start firewalld            #打开防护墙,以上是打开 firewalld的步骤

firewalld默认有9个zone

默认zone为public

firewall-cmd --get-zones                     //查看所有zone

firewall-cmd --get-default-zones                     //查看默认zone

service具体可以对哪些服务使用,你可以chkconfig --list 看看。

查看所有zone命令 firewall-cmd --get-zones

查看默认zones命令

firewall-cmd --get-default-zone(下图显示默认是public)


4. firewalld关于zone的操作

关于firewalld有两个基础的概念,分别是zone和service,每一个zone里面有不同的iptables规则,默认一共有9个zone。

设定系统默认的zone方法

firewall-cmd --set-default-zone=work  //设定默认zone

查看指定网卡的zone

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

给指定网卡设置zone

firewall-cmd --zone=home --add-interface=ens33

针对网卡更改zone

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

针对网卡删除zone

firewall-cmd --zone=public --remove-interface=ens33

图下删除后的zone为模块本来默认work

 

查看系统所以网卡所在zone

 firewall-cmd --get-active-zones

常见问题:1.改不了

image.png

答:把NetworkManager先关闭。systemctl stop NetworkManager

2.image.png我整37没有zone 是不是导致之前nat地址转换时B机器不能访问外网的原因,之前只能ping同192.168.122.130,192.168.122.1是ping不通的

答:做nat实验的时候 用的并不是firewalld服务。 所以跟这个没有关系。 

3.不自动补全原因?

答:yum install -y bash-completion

4.并没有提示“The interface is under control of NetworkManager,settint zone to 'block'”,并且remove ens37的zone也没有类似提示,而且查看结果不是恢复为默认的zone(默认为work),而是“no zone”,见下图

zone-ens37.png

答:不提示,说明你并没有开启NetworkManager服务。

5.

image.png

ens37不能单独ifup/ifdown的?要service network restart 才能挂载网卡

答:可能是你配置文件内容不合适。

 

 


 5. firewalld关于service的操作

http:80端口          https443:端口  

  • firewall-cmd --zone=public --add-service=http --add-service=https --add-service=ftp
  • firewall 有netfilter中的端口映射和转发

irewalld还是iptables-service,其实底层用到的都是netfilter,都有INPUT OUTPUT FORWORD等链,有filter、nat等表。

关于之所以有9种zone,是因为每一个zone里面都使用了不同的service,而service就是针对一个服务(端口)做的iptables规则。zone就是一个规则集合

  • firewall-cmd --zone=block --list-service
  • block里面没有任何的services

实例:

列出系统里面所以service

 firewall-cmd --get-services

查看系统默认的zone下面有哪些service

 firewall-cmd --list-services

查看指定zone有哪里service

 firewall-cmd --zone=public --list-services

指定zone来添加服务

firewall-cmd --zone=public  --add-service=ftp

添加后的服务保存到配置文件(之后会在/etc/firewalld/zones目录生成一个配置文件)

firewall-cmd --zone=public  --add-service=ftp --permanent     (--permanent会写入配置文件永久生效)

这里需要说明一下/etc/firewalld/zones目录下的配置文件。

图下有2个配置文件,带有old的文件类似模板,当你第一次使用--permanent的时候他会重新写一份配置文件,之后添加服务都会添加到xml这个配置文件里。

zones模板路径:/usr/lib/firewalld/zones  (9种zones的模板)

service模板路径:/usr/lib/firewalld/service

查看系统默认的zone下面有哪些service

 firewall-cmd --list-services

查看指定zone有哪里service

 firewall-cmd --zone=public --list-services

指定zone来添加服务

firewall-cmd --zone=public  --add-service=ftp

添加后的服务保存到配置文件(之后会在/etc/firewalld/zones目录生成一个配置文件)

firewall-cmd --zone=public  --add-service=ftp --permanent     (--permanent会写入配置文件永久生效)

这里需要说明一下/etc/firewalld/zones目录下的配置文件。

图下有2个配置文件,带有old的文件类似模板,当你第一次使用--permanent的时候他会重新写一份配置文件,之后添加服务都会添加到xml这个配置文件里。

zones模板路径:/usr/lib/firewalld/zones  (9种zones的模板)

service模板路径:/usr/lib/firewalld/service

列出来系统里所有的service,加不加s都行

查看当前的zone,default-zone

查看当前的firewall有那些service

查看public有哪些servisce服务,直接在zone后面,添加要查看的内容

查看哪些信任的service服务,显示没有

把http增加到,public zone下面

增加一个ftp服务。在后面添加--permanent

查看配置文件,里面的ftp,添加成功了

(第二是)查看zone配置文件模板,后缀old是之前保存的

查看services服务的模板文件。

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

第一步更改ftp服务,把ftp的services加到work zone

第二步

重新加载

查看指定的work的services,添加成功了

练习:

需求:ftp服务自定义端口改为1121,在work,zone下面放行ftp

步骤1,:首先先把ftp模板拷贝到firewalld服务里

cp /usr/lib/firewalld/services/ftp.xml /etc/firewalld/services/ 

步骤2:编辑firewalld里的ftp端口

vim  /etc/firewalld/services/ftp.xml 

步骤3:把work模板拷贝到etc下的firewall的zone里

cp /usr/lib/firewalld/zones/work.xml /etc/firewalld/zones/

步骤4:增加work里的服务

vim /etc/firewalld/zones/work.xml

步骤5:重新加载firewall

测试:查询是否添加成功

如何查看被占用的端口:windows版

netstat -ano,列出所有端口的情况

查看被占用端口对应的PID,输入命令:netstat -aon|findstr "49157",回车,记下最后一位数字,即PID,这里是2720。

继续输入tasklist|findstr "2720",回车,查看是哪个进程或者程序占用了2720端口,结果是:svchost.exe

如何查看某个端口被谁占用

或者是我们打开任务管理器,切换到进程选项卡,在PID一列查看2720对应的进程是谁,如果看不到PID这一列,如下图:

如何查看某个端口被谁占用

则我们点击查看--->选择列,将PID(进程标示符)前面的勾打上,点击确定。

如何查看某个端口被谁占用

看到PID这一列标识,看一下2720对应的进程是谁,如果没有,我们把下面的显示所有用户的进程前面的勾打上,就可以看到了,映像名称是svchost.exe,描述是,Windows的主进程,与上面命令查看的完全一致。

如何查看某个端口被谁占用

结束该进程:在任务管理器中选中该进程点击”结束进程“按钮,或者是在cmd的命令窗口中输入:taskkill /f /t /im Tencentdl.exe。

如何查看某个端口被谁占用

linux版

输入端口查询命令netstat -an|grep *(*表示端口号),如果没有任何显示表明端口没有被占用

如果显示tcp    0    0:::*          :::*          LISTEN表示端口被占用

Linux怎么查看端口是否被占用

猜你喜欢

转载自my.oschina.net/u/3803405/blog/1795820