大家好,又见面了,我是你们的朋友全栈君。
CentOS7
想通过防火墙打开8080端口登录tomcat却发现提示 /etc/rc.d/init.d/iptable.找不到文件, 最后发现因为于CentOS7不用iptables执行命令了,所以应用firewall相关命令控制防火墙
介绍
防火墙守护 firewalld 服务引入了一个信任级别的概念来管理与之相关联的连接与接口。它支持 ipv4 与 ipv6,并支持网桥,采用 firewall-cmd (command) 或 firewall-config (gui) 来动态的管理 kernel netfilter 的临时或永久的接口规则,并实时生效而无需重启服务。
Firewall 能将不同的网络连接归类到不同的信任级别,Zone 提供了以下几个级别
drop: 丢弃所有进入的包,而不给出任何响应 block: 拒绝所有外部发起的连接,允许内部发起的连接 public: 允许指定的进入连接 external: 同上,对伪装的进入连接,一般用于路由转发 dmz: 允许受限制的进入连接 work: 允许受信任的计算机被限制的进入连接,类似 workgroup home: 同上,类似 homegroup internal: 同上,范围针对所有互联网用户 trusted: 信任所有连接
安装
代码语言:javascript复制# yum install firewalld
如果需要图形界面的话,则再安装
# yum install firewall-config
使用
代码语言:javascript复制# 开启防火墙
systemctl start firewalld.service
# 防火墙开机启动
systemctl enable firewalld.service
# 关闭防火墙
systemctl stop firewalld.service
# 查看防火墙状态
firewall-cmd --state
# 查看现有的规则
iptables -nL
# 重载防火墙配置
firewall-cmd --reload
# 添加单个单端口
firewall-cmd --permanent --zone=public --add-port=81/tcp
# 添加多个端口
firewall-cmd --permanent --zone=public --add-port=8080-8083/tcp
# 删除某个端口
firewall-cmd --permanent --zone=public --remove-port=81/tcp
# 针对某个 IP开放端口
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.142.166" port protocol="tcp" port="6379" accept"
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.0.233" accept"
# 删除某个IP
firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address="192.168.1.51" accept"
# 针对一个ip段访问
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.0.0/16" accept"
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="9200" accept"
# 添加操作后别忘了执行重载
firewall-cmd --reload
查看指定级别的所有信息,譬如 public
#firewall-cmd --zone=public --list-all
public (default, active)
interfaces: eth0
sources:
services: dhcpv6-client http ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
常见问题
centos7里面除了默认的firewall还有一个selinux会对开放端口有影响
代码语言:javascript复制永久关闭
修改selinux的配置文件,重启后生效。
打开 selinux 配置文件
[root@localhost ~]# vim /etc/selinux/config
修改 selinux 配置文件
将SELINUX=enforcing改为SELINUX=disabled,保存后退出
reboot #重启服务器
CentOS6
linux 查看并对外开放端口(防火墙拦截处理)
查看端口是否可访问:telnet ip 端口号 (如本机的35465:telnet localhost 35465)
开放的端口位于/etc/sysconfig/iptables中
查看时通过 more /etc/sysconfig/iptables 命令查看
如果想开放端口(如:8889)
(1)通过vi /etc/sysconfig/iptables 进入编辑增添一条-A INPUT -p tcp -m tcp –dport 8889 -j ACCEPT 即可
(2)执行 /etc/init.d/iptables restart 命令将iptables服务重启
#(3)保存 /etc/rc.d/init.d/iptables save
注:如若不想修改iptables表,可以直接输入下面命令:
# iptables -I INPUT -p tcp –dport 8889 -j ACCEPT
附:参考自:http://www.cnblogs.com/alimac/p/5848372.html
[iptables -A和-I的区别](https://www.cnblogs.com/mustark/p/11189883.html)
若/etc/sysconfig/iptables不存在,
原因:在新安装的linux系统中,防火墙默认是被禁掉的,一般也没有配置过任何防火墙的策略,所有不存在/etc/sysconfig/iptables文件。
解决:
- 在控制台使用iptables命令随便写一条防火墙规则,如:iptables -P OUTPUT ACCEPT
- 使用service iptables save进行保存,默认就保存到了/etc/sysconfig目录下的iptables文件中
Linux防火墙iptables学习笔记
一、概要 1、防火墙分类 ①包过滤防火墙(pack filtering)在网络层对数据包进行选择过滤,采用访问控制列表(Access control table-ACL)检查数据流的源地址,目的地址,源和目的端口,IP等信息。 ②代理服务器型防火墙 2、iptables基础 ①规则(rules):网络管理员预定义的条件 ②链(chains): 是数据包传播的路径 ③表(tables):内置3个表filter表,nat表,mangle表分别用于实现包过滤网络地址转换和包重构的功能 ④filter表是系统默认的,INPUT表(进入的包),FORWORD(转发的包),OUTPUT(处理本地生成的包),filter表只能对包进行授受和丢弃的操作。 ⑤nat表(网络地址转换),PREROUTING(修改即将到来的数据包),OUTPUT(修改在路由之前本地生成的数据包),POSTROUTING(修改即将出去的数据包) ⑥mangle表,PREROUTING,OUTPUT,FORWORD,POSTROUTING,INPUT 3、其它 iptables是按照顺序读取规则 防火墙规则的配置建议 Ⅰ 规则力求简单 Ⅱ 规则的顺序很重要 Ⅲ 尽量优化规则 Ⅳ 做好笔记 二、配置 1、iptables命令格式 iptables [-t 表] -命令 匹配 操作 (大小写敏感) 动作选项 ACCEPT 接收数据包 DROP 丢弃数据包 REDIRECT 将数据包重新转向到本机或另一台主机的某一个端口,通常功能实现透明代理或对外开放内网的某些服务 SNAT 源地址转换 DNAT 目的地址转换 MASQUERADE IP伪装 LOG 日志功能 2、定义规则 ①先拒绝所有的数据包,然后再允许需要的数据包 iptalbes -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT ②查看nat表所有链的规则列表 iptables -t nat -L ③增加,插入,删除和替换规则 iptables [-t 表名] <-A|I|D|R> 链名 [规则编号] [-i|o 网卡名称] [-p 协议类型] [-s 源ip|源子网] [–sport 源端口号] [-d 目的IP|目标子网] [–dport 目标端口号] [-j 动作] 参数:-A 增加 -I 插入 -D 删除 -R 替换
三、例子 ①iptables -t filter -A INPUT -s 192.168.1.5 -i eth0 -j DROP 禁止IP为192.168.1.5的主机从eth0访问本机②iptables -t filter -I INPUT 2 -s 192.168.5.0/24 -p tcp –dport 80 -j DROP 禁止子网192.168.5.0访问web服务③iptables -t filter -I INPUT 2 -s 192.168.7.9 -p tcp –dport ftp -j DROP 禁止IP为192.168.7.9访问FTP服务 ④iptables -t filter -L INPUT 查看filter表中INPUT链的规则 ⑤iptables -t nat -F 删除nat表中的所有规则 ⑥iptables -I FORWARD -d wwww.playboy.com -j DROP 禁止访问 www.playboy.com网站 ⑦iptables -I FORWARD -s 192.168.5.23 -j DROP 禁止192.168.5.23上网
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/192278.html原文链接:https://javaforall.cn