CentOS7安装iptables防火墙(禁用/停止自带的firewalld服务)

使用背景:

 1,CentOS7 默认的防火墙 不是iptables, 而是firewalle.

 2,一些软件的端口号要放开来提供服务,如:22,80等常用端口

3,提供web服务的需要

使用步骤:

一,安装centos7,自行百度

二,centos7 基本配置,参考我的另一篇文章:https://blog.csdn.net/gaokcl/article/details/82834925

三,CentOS7安装iptables防火墙:

      0,CentOS7默认的防火墙不是iptables,而是firewalle.

           查看: 打开/etc/sysconfig/目录后,并未发现iptables文档(可能会有iptables-config文档等,别混淆了)

                       [root@localhost  ~]#   cd /etc/sysconfig/

    1,    安装   iptable  与    iptable-service

      #先检查是否安装了iptables
              [root@localhost  ~]#    service iptables status
      #安装iptables
               [root@localhost  ~]#    yum install -y iptables             #通常情况下是安装好了的
     #升级iptables
               [root@localhost  ~]#   yum update iptables 
     #安装iptables-services
               [root@localhost  ~]#   yum install iptables-services      #通常情况下没有安装

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

       #停止firewalld服务
                    [root@localhost  ~]#    systemctl stop firewalld
       #禁用firewalld服务
                    [root@localhost  ~]#    systemctl mask firewalld

      #查看iptables现有规则
                       [root@localhost  ~]#    iptables -L -n
       #先允许所有,不然有可能会杯具
                       [root@localhost  ~]#     iptables -P INPUT ACCEPT

[root@localhost ~]#      systemctl enable iptables.service               #   设置防火墙开机启动

--------------------- 启动/关闭/重启 iptables ------------------------------------

[root@localhost ~]#  systemctl stop iptables      
[root@localhost ~]#  systemctl start iptables 
[root@localhost ~]#  systemctl restart iptables

--------------------------------------------------------------------------------------------
#   @1,手动添加端口号   (方法一)
[root@localhost ~]#  vi /etc/sysconfig/iptables  #配置防火墙端口

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 6379 -j ACCEPT



[root@localhost ~]#  service iptables save      #保存防火墙配置

--end

###################################   具体配置说明   ######################################

@ 2,命令 添加端口号 ( 方法二 ):

参考:https://www.linuxidc.com/Linux/2017-10/147238.htm

一,安装iptable iptable-service

1,先检查是否安装了iptables

[root@localhost ~]# service iptables status 

2,安装iptables

[root@localhost ~]# yum install -y iptables 

3,升级iptables

[root@localhost ~]# yum update iptables  

4,安装iptables-services

[root@localhost ~]# yum install iptables-services 

二,禁用/停止自带的firewalld服务

1,停止firewalld服务

[root@localhost ~]# systemctl stop firewalld 

2,禁用firewalld服务

[root@localhost ~]# systemctl mask firewalld 

三,设置现有规则


  1. #查看iptables现有规则
  2. [root@localhost ~]# iptables -L -n
  3. #先允许所有,不然有可能会杯具
  4. [root@localhost ~]# iptables -P INPUT ACCEPT
  5. #清空所有默认规则
  6. [root@localhost ~]# iptables -F
  7. #清空所有自定义规则
  8. [root@localhost ~]# iptables -X
  9. #所有计数器归0
  10. [root@localhost ~]# iptables -Z
  11. #允许来自于lo接口的数据包(本地访问)
  12. [root@localhost ~]# iptables -A INPUT -i lo -j ACCEPT
  13. #开放22端口
  14. iptables -A INPUT -p tcp --dport 22 -j ACCEPT
  15. #开放21端口(FTP)
  16. iptables -A INPUT -p tcp --dport 21 -j ACCEPT
  17. #开放80端口(HTTP)
  18. iptables -A INPUT -p tcp --dport 80 -j ACCEPT
  19. #开放443端口(HTTPS)
  20. iptables -A INPUT -p tcp --dport 443 -j ACCEPT
  21. ...
  22. ====> 按照实际要求:是否加下面的:
  23. -------------------------------------------------------------------
  24. #允许ping
  25. iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT
  26. #允许接受本机请求之后的返回数据 RELATED,是为FTP设置的
  27. iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
  28. #其他入站一律丢弃
  29. iptables -P INPUT DROP
  30. #所有出站一律绿灯
  31. iptables -P OUTPUT ACCEPT
  32. #所有转发一律丢弃
  33. iptables -P FORWARD DROP
  34. -------------------------------------------------------------------

四,其他规则设定


  1. #如果要添加内网ip信任(接受其所有TCP请求)
  2. iptables -A INPUT -p tcp -s 45.96.174.68 -j ACCEPT
  3. #过滤所有非以上规则的请求
  4. iptables -P INPUT DROP
  5. #要封停一个IP,使用下面这条命令:
  6. iptables -I INPUT -s ***.***.***.*** -j DROP
  7. #要解封一个IP,使用下面这条命令:
  8. iptables -D INPUT -s ***.***.***.*** -j DROP

五,保存规则设定


  1. #保存上述规则
  2. service iptables save

六,开启iptables服务


  1. #注册iptables服务
  2. #相当于以前的chkconfig iptables on
  3. systemctl enable iptables.service
  4. #开启服务
  5. systemctl start iptables.service
  6. #查看状态
  7. systemctl status iptables.service

----------------------------------------------------------------------------------------------------

                                                     问题

-----------------------------------------------------------------------------------------------------

问题:解决vsftpd在iptables开启后,无法使用被动模式的问题

1.首先在/etc/sysconfig/iptables-config中修改或者添加以下内容


  1. #添加以下内容,注意顺序不能调换
  2. IPTABLES_MODULES="ip_conntrack_ftp"
  3. IPTABLES_MODULES="ip_nat_ftp"

2.重新设置iptables设置

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 

以下为完整设置脚本


  1. #!/bin/sh
  2. iptables -P INPUT ACCEPT
  3. iptables -F
  4. iptables -X
  5. iptables -Z
  6. iptables -A INPUT -i lo -j ACCEPT
  7. iptables -A INPUT -p tcp --dport 22 -j ACCEPT
  8. iptables -A INPUT -p tcp --dport 21 -j ACCEPT
  9. iptables -A INPUT -p tcp --dport 80 -j ACCEPT
  10. iptables -A INPUT -p tcp --dport 443 -j ACCEPT
  11. iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT
  12. iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
  13. iptables -P INPUT DROP
  14. iptables -P OUTPUT ACCEPT
  15. iptables -P FORWARD DROP
  16. service iptables save
  17. systemctl restart iptables.service

参考:https://blog.csdn.net/bitterliquor/article/details/70256141

CentOS7

[root@localhost ~]#   cat    /etc/redhat-release                       #  查看centos版本
      CentOS Linux release 7.2.1511 (Core)

1.关闭firewall

[root@localhost ~]# systemctl stop firewalld.service             #   停止firewall
[root@localhost ~]# systemctl disable firewalld.service        #  禁止firewall开机启动

2.安装iptables

[root@localhost ~]#     yum install iptables-services                     #  安装

[root@localhost ~]#     systemctl restart iptables.service              #  重启防火墙使配置生效

[root@localhost ~]#     systemctl enable iptables.service             #  设置防火墙开机启动

[root@localhost ~]#     systemctl disable iptables.service            #  禁止防火墙开机启动

CentOS6

[root@localhost ~]#    service iptable status          --查看防火墙状态

[root@localhost ~]#    servcie iptables stop           --临时关闭防火墙

[root@localhost ~]#    service iptables start           --临时启动防火墙

[root@localhost ~]#   service iptables restart        --重启防火墙

[root@localhost ~]#   chkconfig iptables off          --永久关闭防火墙

[root@localhost ~]#   chkconfig iptables on          --永久开启防火墙



转载于:https://blog.csdn.net/gaokcl/article/details/82908844

Next 版本更新

0 Comments (+add yours?)

Leave a Reply