栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

linux小知识--Centos防火墙端口开放的神奇小知识

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

linux小知识--Centos防火墙端口开放的神奇小知识

研究了一天的onvif协议,学会了如何扫描并发现onvif协议摄像头,协议我们后续再讲,在扫描过程中遇到了一个奇怪的问题,就是扫描程序,在一台虚拟机中能用,在另一台以太网虚拟机里就扫描不到,结果抓包发现,被扫描的设备也回应了消息,扫描程序却收不到

结果发现了是防火墙的问题,扫描到的虚拟机是关闭了防火墙,扫不到的虚拟机是开启了防火墙,并且只是打开了onvif的发送端口(事实证明这个端口没鸟用)
扫描的流程大致如下图

可以清晰的看出,扫描程序的虚拟机,需要打开的端口应该是那个随机端口,此处有3种做法,

  1. 是固定x的值,那么防火墙只需要打开这个x,但是缺点是,有可能你用的这个端口,被人占用
  2. 是方法1的变种,就是固定x也是3702,这样就不会有问题了,但是发送和接收是同一个端口,感觉怪怪的
  3. 是随机申请端口,随时开放端口和关闭端口,那样就稳妥一些,但是繁琐了一些。
    哪个都行,没有什么高低之分,具体实现,我会另起文章讲解。
    我还是想讲今天的重点:
CentOS中的防火墙开启端口

因为我前面一直在查看onvif的端口,发现这种udp的协议,接收应答还真是麻烦,就突然想到了前面的dhcp协议,同样是udp,为何我并没有开启它的端口,它就能接收应答呢??
因为我一直用下面的命令查看开放端口

[root@localhost 41src]# firewall-cmd --zone=public --list-ports
514/tcp 514/udp 4321/tcp 4001/tcp 160/udp 161/udp 67/udp 3702/udp

结果并没有发现dhcp的端口在其中,难道dhcp和系统有私交?偷偷放过去了?

然后就查看防火墙的其他开发方法,终于被我发现了还有一种通过service的方式。

通过下面命令,我们可以查看到另一种方式所开启的端口

进一步,我们需要掌握都有哪些服务可以这么操作,命令firewall-cmd --get-service

[root@localhost 41src]# firewall-cmd --get-service
RH-Satellite-6 RH-Satellite-6-capsule amanda-client amanda-k5-client amqp amqps apcupsd audit bacula 
bacula-client bgp bitcoin bitcoin-rpc bitcoin-testnet bitcoin-testnet-rpc ceph ceph-mon cfengine 
condor-collector ctdb dhcp dhcpv6 dhcpv6-client distcc dns docker-registry docker-swarm 
dropbox-lansync elasticsearch etcd-client etcd-server finger freeipa-ldap freeipa-ldaps 
freeipa-replication freeipa-trust ftp ganglia-client ganglia-master git gre high-availability 
http https imap imaps ipp ipp-client ipsec irc ircs iscsi-target isns jenkins kadmin kerberos 
kibana klogin kpasswd kprop kshell ldap ldaps libvirt libvirt-tls lightning-network llmnr 
managesieve matrix mdns minidlna mongodb mosh mountd mqtt mqtt-tls ms-wbt mssql murmur mysql 
nfs nfs3 nmea-0183 nrpe ntp nut openvpn ovirt-imageio ovirt-storageconsole ovirt-vmconsole plex 
pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy proxy-dhcp ptp pulseaudio 
puppetmaster quassel radius redis rpc-bind rsh rsyncd rtsp salt-master samba samba-client samba-dc
 sane sip sips slp smtp smtp-submission smtps snmp snmptrap spideroak-lansync squid ssh 
 steam-streaming svdrp svn syncthing syncthing-gui synergy syslog syslog-tls telnet tftp 
 tftp-client tinc tor-socks transmission-client upnp-client vdsm vnc-server wbem-http 
 wbem-https wsman wsmans xdmcp xmpp-bosh xmpp-client xmpp-local xmpp-server zabbix-agent 
 zabbix-server

以telnet为例
开启telnet service,

firewall-cmd --permanent --zone=public --add-service=telnet;firewall-cmd --reload

关闭telent service,

firewall-cmd --permanent --zone=public --remove-service=telnet;firewall-cmd --reload

如果想查看telnet服务对应的开放了哪些端口,可以如下操作

firewall-cmd --info-service=telnet
结果
telnet
  ports: 23/tcp
  protocols: 
  source-ports: 
  modules: 
  destination: 

firewall命令的详细解释,可以参考某高人的文章 https://ipcmen.com/firewall-cmd

马上就国庆节了,本来想提早一天回家,结果触犯了扎堆请假的bug,没好意思再去请了

也好,那就节后再请两天,还能多休一天

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/276929.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号