centos端口打开(centos6查看端口状态)
大家好,今天小编来为大家解答centos端口打开这个问题,centos6查看端口状态很多人还不知道,现在让我们一起来看看吧!
centos7查看端口是否开放
对于服务器操作系统来说,对外暴露一些不必要的端口都是非常危险的。因此,在管理服务器的时候,知道开放了哪些服务器端口对于运维人员来说算是一项基本技能。下面我们来看看,怎么知道服务器开放了哪些端口。
一、在本机上查看
在CentOS主机上查看当前主机在监听哪些端口的命令是netstat,常用的命令是: netstat-tlunp这个命令会显示出当前主机打开的所有端口,显示结果如下所示,从图中可以看到目前主机上开放的端口tcp端口的22和25,upd的68号端口
而端口名称后面关联了对应的进程名称,如下面图中所示。这里需要注意的是,如果你的服务器是公网服务器,你在公网上开放了22号端口,那么你的主机就会被公网上很多扫描器扫描,然后尝试爆破你的账号密码,来黑掉你的服务器。解决方法一般是通过修改特定服务监听的端口,如下面第二张图中所示,修改后的sshd进程监听的端口有22和63213端口,那么我把这个端口暴露出去,被扫描的纪律就小很多了。
上面这个命令查看的是服务器上的进程对外监听的端口,但是在CentOS7中,默认会打开firewalld防火墙,如果防火墙打开后,默认情况下只会监听在22号端口,也就是说主机对外暴露的端口只有22。如下面图中所示,查看防火墙开放端口的命令是 iptables-save结果如下面第二张图中所示:
如果想增加对外开放的端口,就需要通过防火墙的管理命令firewalld-cmd,例如我想开放80端口,那么命令就是: firewall-cmd--zone=public--add-port=80/tcp--permanent firewall-cmd--reload第一条命令是添加端口,第二条命令是重载防火墙。
看到sucess字样后,再使用iptables-save命令查看端口,可以看到,对外放开的端口增加了80.
如果你的服务器是内网服务器,那么是基本上你的服务器端口只会向内网放开,而不会向公网开放,如果想对公网开放,那么必须通过端口映射来实现,如下面图中所示,在服务器前端再加了一层防火墙。
以我使用的一款防火墙为例,登录以后,进入到管理页面,点击高级选项。然后点击里面的端口映射,就可以看到第二张图中所示的内容,会显示外部端口,内部服务器IP,内部端口。如果将防火墙上的8000端口映射到内部某台服务器的8000端口,那么对外开放的就是8000端口。但是如果把防火墙上的8000端口映射到内部服务器的22端口,那么实际暴露的就是22号端口。以上就是在CentOS 7主机上查看开放端口的所有内容。
二、在其他主机上通过软件侦测
在CentOS 7上有一个比较好用的端口侦测工具叫做nmap,首先看你的主机上是否安装了这个工具,命令是:rpm-qa| grep nmap如果安装了,那么就会显示对应的安装包。
安装完成了以后,就可以使用这个命令来扫描了,扫描的命令格式是: nmap ip_address ip_address就是你要扫描的主机IP地址。如下面图中所示:很快就会显示出这台CentOS7虚拟机对外暴露的端口了,而且注意,这是实际对外暴露的端口。
如何开放CentOS的端口
Centos升级到7之后,内置的防火墙已经从iptables变成了firewalld。所以,端口的开启还是要从两种情况来说明的,即iptables和firewalld。更多关于CentOs防火墙的最新内容,请参考Redhat官网。
一、iptables
1.打开/关闭/重启防火墙
开启防火墙(重启后永久生效):chkconfig iptables on
关闭防火墙(重启后永久生效):chkconfig iptables off
开启防火墙(即时生效,重启后失效):service iptables start
关闭防火墙(即时生效,重启后失效):service iptables stop
重启防火墙:service iptables restartd
2.查看打开的端口
/etc/init.d/iptables status
3.打开某个端口(以8080为例)
(1)开启端口
iptables-A INPUT-p tcp--dport 8080-j ACCEPT
(2)保存并重启防火墙
/etc/rc.d/init.d/iptables save
/etc/init.d/iptables restart
4.打开49152~65534之间的端口
iptables-A INPUT-p tcp--dport 49152:65534-j ACCEPT
同样,这里需要对设置进行保存,并重启防火墙。
5.其他打开方式
我们还可以通过修改/etc/sysconfig/iptables文件的方式开启端口,如下
vi/etc/sysconfig/iptables
然后在文件中增加一行
-A RH-Firewall-1-INPUT-m state–state NEW-m tcp-p tcp–dport 8080-j ACCEPT
参数说明:
–A参数就看成是添加一条规则
–p指定是什么协议,我们常用的tcp协议,当然也有udp,例如53端口的DNS
–dport就是目标端口,当数据从外部进入服务器为目标端口
–sport数据从服务器出去,则为数据源端口使用
–j就是指定是 ACCEPT-接收或者 DROP不接收
二、firewalld
Centos7默认安装了firewalld,如果没有安装的话,可以使用 yum install firewalld firewalld-config进行安装。
1.启动防火墙
systemctl start firewalld
2.禁用防火墙
systemctl stop firewalld
3.设置开机启动
systemctl enable firewalld
4.停止并禁用开机启动
sytemctl disable firewalld
5.重启防火墙
firewall-cmd--reload
6.查看状态
systemctl status firewalld或者 firewall-cmd--state
7.查看版本
firewall-cmd--version
8.查看帮助
firewall-cmd--help
9.查看区域信息
firewall-cmd--get-active-zones
10.查看指定接口所属区域信息
firewall-cmd--get-zone-of-interface=eth0
11.拒绝所有包
firewall-cmd--panic-on
12.取消拒绝状态
firewall-cmd--panic-off
13.查看是否拒绝
firewall-cmd--query-panic
14.将接口添加到区域(默认接口都在public)
firewall-cmd--zone=public--add-interface=eth0(永久生效再加上--permanent然后reload防火墙)
15.设置默认接口区域
firewall-cmd--set-default-zone=public(立即生效,无需重启)
16.更新防火墙规则
firewall-cmd--reload或firewall-cmd--complete-reload(两者的区别就是第一个无需断开连接,就是firewalld特性之一动态
添加规则,第二个需要断开连接,类似重启服务)
17.查看指定区域所有打开的端口
firewall-cmd--zone=public--list-ports
18.在指定区域打开端口(记得重启防火墙)
firewall-cmd--zone=public--add-port=80/tcp(永久生效再加上--permanent)
说明:
–zone作用域
–add-port=8080/tcp添加端口,格式为:端口/通讯协议
–permanent#永久生效,没有此参数重启后失效
在CentOS的防火墙上开启通行端口的方法
如果希望在服务器上提供服务,诸如CentOS或RHEL的企业级Linux发行版包含内置的强大防火墙,它们默认的防火墙规则十分严格。因此,如果你安装了任何定制的服务(比如web服务器、NFS和Samba),那么它们的流量很有可能被防火墙规则阻塞。所以需要在防火墙上开启必要的端口以允许流量通过。
在CentOS/RHEL 6或更早的版本上,iptables服务允许用户与netfilter内核模块交互来在用户空间中配置防火墙规则。然而,从CentOS/RHEL 7开始,一个叫做firewalld新用户空间接口被引入以取代iptables服务。
使用这个命令察看当前的防火墙规则:
代码如下:
$ sudo iptables-L
现在,让我们看看如何在CentOS/RHEL上修改防火墙来开启一个端口。
在CentOS/RHEL 7上开启端口
启动CentOS/RHEL 7后,防火墙规则设置由firewalld服务进程默认管理。一个叫做firewall-cmd的命令行客户端支持和这个守护进程通信以永久修改防火墙规则。
使用这些命令来永久打开一个新端口(如TCP/80)。
代码如下:
$ sudo firewall-cmd--zone=public--add-port=80/tcp--permanent
$ sudo firewall-cmd--reload
如果不使用“--permanent”标记,把么防火墙规则在重启后会失效。
在CentOS/RHEL 6上开启端口
在CentOS/RHEL 6甚至更早版本系统上,iptables服务负责维护防火墙规则。
使用iptables的第一条命令可以通过防火墙开启一个新TCP/UDP端口。为了永久保存修改过的规则,还需要第二条命令。
代码如下:
$ sudo iptables-I INPUT-p tcp-m tcp--dport 80-j ACCEPT
$ sudo service iptables save
另一种方法是通过一个名为system-config-firewall-tui的命令行用户接口(TUI)的防火墙客户端。
代码如下:
$ sudo system-config-firewall-tui
选择位于中间的“Customize”按钮,按下ENTER键即可。
如果想要为任何已知的服务(如web服务器)修改防火墙,只需勾选该服务,然后关闭工具。如果想要开启任意一个TCP/UDP端口,选择“Forward”按钮,然后进入下一个界面。
选择“Add”按钮添加一条新规则。
指定一个端口(如80)或者端口范围(如3000-3030)和协议(如tcp或udp)。
最后,保存修改过的配置,关闭工具。这样,防火墙就永久保存了。