centos防火墙开启firewall和iptables

在centos7默认启用的是firewall,但是如果需要用到iptables是否会冲突

冲突,默认启动firewall,iptables需要安装

如果开启了firewall在开启iptables那么firewall会关闭

iptables服务将配置存储在/etc/sysconfig/iptables和/etc/sysconfig/ip6tables中,

而firewalld将配置存储在/usr/lib/firewalld/和/etc/firewalld/中的各种XML文件中。
注意,/etc/sysconfig/iptables文件不存在,因为在Red Hat Enterprise Linux上默认安装了firewalld。
在iptables服务中,每次更改都意味着刷新所有旧规则并从/etc/sysconfig/iptables读取所有新规则,而在firewalld中不需要重新创建所有规则。只应用差异。
因此,firewalld可以在运行时更改设置,而不会丢失现有的连接

 

查看已经启动的服务列表
systemctl list-unit-files|grep enabled

 

iptables和firewall建议使用哪一个

答:iptables更合适一点,规则更好实现

 

iptables 4个表

iptables包含4个表:filter,nat,mangle,raw。我们最常用的就是filter这个表。filte表有三个内建的chain:INPUT、OUTPUT和FORWORD。

INPUT:用来处理发给本机的数据包;如主机A发给本机的数据,数据通信路径会像这:主机A------>本机localhost

OUTPUT:用来处理本机发送出去的数据包;如本机访问百度服务器,数据通信路径会像这样,如本机localhost------>百度服务器

FORWORD:用来处理流经本机,但又不是发给本机的数据包;如主机A要给主机B发送数据包,经过了本机,路径会像这样:主机A--->本机localhost--->主机B。

1. Filter表

Filter表示iptables的默认表,因此如果你没有自定义表,那么就默认使用filter表,它具有以下三种内建链:

  • INPUT链 – 处理来自外部的数据。
  • OUTPUT链 – 处理向外发送的数据。
  • FORWARD链 – 将数据转发到本机的其他网卡设备上。

2. NAT表

NAT表有三种内建链:

  • PREROUTING链 – 处理刚到达本机并在路由转发前的数据包。它会转换数据包中的目标IP地址(destination ip address),通常用于DNAT(destination NAT)。
  • POSTROUTING链 – 处理即将离开本机的数据包。它会转换数据包中的源IP地址(source ip address),通常用于SNAT(source NAT)。
  • OUTPUT链 – 处理本机产生的数据包。

3. Mangle表

Mangle表用于指定如何处理数据包。它能改变TCP头中的QoS位。Mangle表具有5个内建链:

  • PREROUTING
  • OUTPUT
  • FORWARD
  • INPUT
  • POSTROUTING

4. Raw表

Raw表用于处理异常,它具有2个内建链:

  • PREROUTING chain
  • OUTPUT chain

 

 

iptables的使用

查看iptables和iptables-services服务是否安装

查看iptables是否安装:rpm -qa | grep iptables

显示版本号:iptables -V

查看iptables是否运行systemctl status iptables

查看iptables防火墙状态chkconfig --list iptables

 

 

安装iptablesyum install -y iptables

安装iptables-servicesyum install iptables-services

 

启动服务:   service iptables start

停止服务:   service iptables stop

重启服务:   service iptables restart

 

iptables规则保存重启也生效

执行命令service iptables save
规则自动保存到了/etc/sysconfig/iptables,用此命令保存的规则开机会自动生效

 

 

iptables规则保存

#每一次输入了service iptables save命令才会命令在/etc/sysconfig/iptables

查看当前规则:

cat /etc/sysconfig/iptables

 

运行了这个命令才能写入文件/etc/sysconfig/iptables里面service iptables save

#同步iptables文件备份的命令到iptables.save文件iptables-save > /etc/sysconfig/iptables.save

重启iptables服务
service iptables stop
service iptables start    

重启防火墙使配置文件生效systemctl restart iptables.service

查看当前规则:cat /etc/sysconfig/iptables

恢复系统备份的规则:

 

查看现有 iptables 规则

列表现有规则iptables -L -n

 

查看mangle表:iptables -t mangle --list

查看NAT表:iptables -t nat --list

查看RAW表: iptables -t raw --list

iptables [-t tables] [-L] [-nv]
选项与参数:
-t:后面接table,例如nat或filter,若省略,则使用默认的filter
-L:列出目前的table的规则
-n:不进行IP与HOSTNAME的反查,显示信息速度回快很多。
-v:列出更多的信息,包括通过该规则的数据包总位数、相关的网络接口等

 

target:代表进行的操作,ACCEPT是放行,而REJECT则是拒绝,此外,还有DROP表示丢弃。
prot:代表使用的数据包协议,主要有TCP、UDP以及ICMP3种数据包格式。
opt:额外选项说明。
source:代表此规则是针对哪个来源IP进行限制。
destination:代表此规则是针对哪个目标进行限制

 

列表现有规则iptables-save

iptables-save [-t table]
选项与参数:
-t:可以针对某些数据表格来输出,例如针对NAT或Filter等。
该命令会完整列出防火墙的规则

列:iptables-save -t filter

 

清除iptables

# 清除iptables 所有规则
iptables -F -t nat
iptables -F -t mangle
iptables -F -t security
iptables -F -t raw
iptables -F -t filter

#清除规则(默认规则除外)
iptables -F

#清空所有自定义规则

iptables -X

#所有计数器归0
iptables -Z

 

 

 

#永久性生效
chkconfig iptables on
chkconfig ip6tables off ---针对ipv6

#永久性生效关闭
chkconfig iptables off
chkconfig ip6tables off ---针对ipv6


#设置防火墙开机启动,重启服务器命令还在
systemctl enable iptables.service 
#重启防火墙使配置生效
systemctl restart iptables.service
 
#禁止防火墙开机启动
systemctl disable iptables.service 

 

 

如果启动不,就先所住firewalld服务

1.关闭firewalld命令

查看防火墙是否启动:   firewall-cmd --state

关闭防火墙systemctl stop firewalld.service

设置防火墙开机启动systemctl enable firewalld

禁止防火墙开机启动systemctl disable firewalld

锁定systemctl mask firewalld
解锁systemctl unmask firewalld

2.查看iptables

查看iptables是否安装:rpm -qa | grep iptables

查看iptables是否运行systemctl status iptables

查看iptables防火墙状态chkconfig --list iptables

 

安装iptablesyum install -y iptables

安装iptables-servicesyum install iptables-services

 

systemctl restart iptables

启用:service iptables start

iptables服务启动:service iptables save

#提示Redirecting to /biji/systemctl start iptables.service    翻译:重定向到 /biji/systemctl start iptables.service

 

服务开机启动systemctl enable iptables.service

服务重启systemctl restart iptables.service

查看开启chkconfig --list iptables

iptables服务启动service iptables save

 

查看相关规则:iptables -L

查看已经启动的服务列表:systemctl list-unit-files|grep enabled

#编辑防火墙文件 (建议都在配置文件配置,不要命令配置)
vi /etc/sysconfig/iptables

#重启防火墙使配置文件生效
systemctl restart iptables.service

#设置iptables防火墙为开机启动项
systemctl enable iptables.service

 

iptables规则端口的使用

配置文件都vi /etc/sysconfig/iptables 保存重启防火墙生效

 

保存策略重启服务使策略生效

说明以下:/etc/sysconfig/iptables.save 和 service iptables save 命令

直接输入了 iptables策略是在文件iptables 那么运行了保存的 iptables.save 是重启也会生效还在的

就有必要运行这个命令了,想要生效就保存在/etc/sysconfig/iptables.save 里面

 

 

查看生效

iptables -L -n --line-number //查看当前iptables的规则及所有过滤的条目(白名单显示在这里)

 

开放和关闭端口

-A INPUT -p tcp --dport 22 -j ACCEPT    #22端口开放

-A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT          #80端口开放

-A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j DROP           #80端口关闭

 

iptables -A INPUT -p tcp --dport 80 -j DROP                   #拒绝其他所有访问80端口

ip白名单

 

iptables -A INPUT -s 192.111.51.45 -p all -j ACCEPT       #/开放所有端口给指定ip:192.111.51.45

 

 

开放白名单ip和指定端口

 

-I INPUT -s 192.111.51.45 -p tcp --dport 8080 -j ACCEPT   #开放固定ipIP访问 8080

-I INPUT -s 192.111.51.45 -p tcp --dport 8089 -j DROP    #禁止指定IP访问 8089

 

允许/禁止ping

iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT      #允许ping

iptables -A INPUT -p icmp --icmp-type 8 -j DROP     #禁止ping

 

firewall的使用

基础的使用

#查看防火墙是否启动
firewall-cmd --state
未开启:not running
开启:running

 

 

 

#开启防火墙
systemctl start firewalld.service

#关闭防火墙
systemctl stop firewalld.service

#设置防火墙开机启动
systemctl enable firewalld

#禁止防火墙开机启动
systemctl disable firewalld


如果开启了firewalld需要关闭在禁止开机启动

 

# 每次修改添加了更新防火墙规则firewall规则需要更新规则才能生效
firewall-cmd --reload

 

查看规则firewalld是否启用,底层也是用的iptables,但是需要用iptables规则还需要安装
iptables -L -n

 

#防火墙配置目录文件位置

/etc/firewalld/zones/public.xml

 

firewalld端口的操作

#查看防火墙所有开放的端口
firewall-cmd --zone=public --list-ports

#开启8888端口通讯
firewall-cmd --zone=public --add-port=8888/tcp --permanent

#关闭8888端口通讯
firewall-cmd --zone=public --remove-port=8888/tcp --permanent

#添加ip到防火墙白名单8888端口
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="123.144.0.0/14" port protocol="tcp" port="8888" accept'

 

#查看防火墙所有开放的端口
firewall-cmd --zone=public --list-ports

#开启8888端口通讯
firewall-cmd --zone=public --add-port=8888/tcp --permanent

#关闭8888端口通讯
firewall-cmd --zone=public --remove-port=8888/tcp --permanent

#添加ip到防火墙白名单8888端口
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="123.144.0.0/14" port protocol="tcp" port="8888" accept'

 

firewalld规则删除

#删除 firewalld 规则:
rm -rf /etc/firewalld/zones
#重启防火墙服务
systemctl restart firewalld
#清理自定义规则
rm -f /etc/firewalld/direct.xml

查看生效
iptables -L 

 

 

版权声明:
作者:wanghaha
链接:http://www.aiii.vip/2087.html
来源:我的生活分享
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>