当前位置:   article > 正文

CentOS7下操作iptables防火墙和firewalld防火墙_centos7安装iptable

centos7安装iptable

【1】安装iptables

步骤与命令如下:

#先检查是否安装了iptables
service iptables status

#安装iptables
yum install -y iptables

#升级iptables(安装的最新版本则不需要)
yum update iptables 

#安装iptables-services
yum install -y iptables-services
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

永久关闭防火墙:

[root@localhost ~] chkconfig   iptables off 
  • 1

永久关闭后启用:

[root@localhost ~] chkconfig   iptables on
  • 1

【2】禁用/停止自带的firewalld服务

步骤与命令如下:

#查看firewalld运行状态
systemctl status firewalld

#启动firewalld服务
systemctl start firewalld

#停止firewalld服务
systemctl stop  firewalld

#禁用firewalld服务
systemctl disable  firewalld
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

【3】设置现有规则

步骤与命令参考如下:

#查看iptables现有规则
iptables -L -n

#先允许所有,不然有可能会杯具
iptables -P INPUT ACCEPT

#清空所有默认规则
iptables -F

#清空所有自定义规则
iptables -X

#所有计数器归0
iptables -Z

#允许来自于lo接口的数据包(本地访问)
iptables -A INPUT -i lo -j ACCEPT

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

#开放21端口(FTP)
iptables -A INPUT -p tcp --dport 21 -j ACCEPT

#开放80端口(HTTP)
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

#开放443端口(HTTPS)
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

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

#允许接受本机请求之后的返回数据 RELATED,是为FTP设置的
iptables -A INPUT -m state --state  RELATED,ESTABLISHED -j ACCEPT

#其他入站一律丢弃
iptables -P INPUT DROP

#所有出站一律绿灯
iptables -P OUTPUT ACCEPT

#所有转发一律丢弃
iptables -P FORWARD DROP
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44

其他参考规则如下:

#如果要添加内网ip信任(接受其所有TCP请求)
iptables -A INPUT -p tcp -s 45.96.174.68 -j ACCEPT

#过滤所有非以上规则的请求
iptables -P INPUT DROP

#要封停一个IP,使用下面这条命令:
iptables -I INPUT -s ***.***.***.*** -j DROP

#要解封一个IP,使用下面这条命令:
iptables -D INPUT -s ***.***.***.*** -j DROP

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

【5】开启iptables服务

步骤与命令如下:

#注册iptables服务
#相当于以前的chkconfig iptables on
systemctl enable iptables.service

#开启服务
systemctl start iptables.service

#查看状态
systemctl status iptables.service
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

【6】Centos7下服务基本使用命令

启动一个服务:systemctl start firewalld.service
关闭一个服务:systemctl stop firewalld.service
重启一个服务:systemctl restart firewalld.service
显示一个服务的状态:systemctl status firewalld.service
在开机时启用一个服务:systemctl enable firewalld.service
在开机时禁用一个服务:systemctl disable firewalld.service
查看服务是否开机启动:systemctl is-enabled firewalld.service
查看已启动的服务列表:systemctl list-unit-files|grep enabled
查看启动失败的服务列表:systemctl–failed
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

【7】Centos7下firewalld防火墙的使用

① 配置firewalld一些命令

查看版本: firewall-cmd --version

查看帮助: firewall-cmd --help

显示状态: firewall-cmd --state

查看所有打开的端口: firewall-cmd --zone=public --list-ports

更新防火墙规则: firewall-cmd --reload

查看区域信息: firewall-cmd --get-active-zones

查看指定接口所属区域: firewall-cmd --get-zone-of-interface=eth0

拒绝所有包:firewall-cmd --panic-on

取消拒绝状态: firewall-cmd --panic-off

查看是否拒绝: firewall-cmd --query-panic

添加服务:

firewall-cmd --add-service=http --permanent
  • 1

查看所有开放服务:


[root@bogon apache-tomcat-8.5.42]#  firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens33
  sources:
  services: dhcpv6-client http ssh
  ports: 80/tcp 8080/tcp 8081/tcp
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

[root@bogon apache-tomcat-8.5.42]# firewall-cmd --zone=public --list-ports
80/tcp 8080/tcp 8081/tcp
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

② 添加一个端口

命令如下:

firewall-cmd --add-port=8081/tcp --permanent


#或如下
firewall-cmd --zone=public --add-port=3306/tcp --permanent   
//(--permanent永久生效,没有此参数重启后失效)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

重新载入

firewall-cmd --reload
  • 1

查看

firewall-cmd --zone=public --query-port=3306/tcp
  • 1

③ 删除一个端口

firewall-cmd --zone=public --remove-port=3306/tcp --permanent

  • 1
  • 2
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/669713
推荐阅读
相关标签
  

闽ICP备14008679号