zoukankan      html  css  js  c++  java
  • Ubuntu18.0.4 ufw iptables 安装防火墙启动、并设置允许策略详细使用

    SELinux、Netfilter、iptables、firewall和UFW五者关系

    一、五者是什么?
    1、SELinux是美国国家安全局发布的一个强制访问控制系统
    2、Netfilter是Linux 2.4.x引入的一个子系统,作为一个通用的、抽象的框架,提供一整套的hook函数的管理机制
    3、iptables是Linux下功能强大的应用层防火墙工具。

    4、firewall是centos7里面新的防火墙管理命令
    5、ufw是Ubuntu下的一个简易的防火墙配置工具。


    二、五者关系?
    1、Netfilter管网络,selinux管本地。
    2、iptables是用于设置防火墙,防范来自网络的入侵和实现网络地址转发、QoS等功能,而SELinux则可以理解为是作为Linux文件权限控制(即我们知道的rwx)的补充存在的
    3、ufw是自2.4版本以后的Linux内核中一个简易的防火墙配置工具,底层还是调用iptables来处理的,iptables可以灵活的定义防火墙规则, 功能非常强大。但是产生的副作用便是配置过于复杂。因此产生一个相对iptables简单很多的防火墙配置工具:ufw

    4、firewall是centos7里面新的防火墙管理命令,底层还是调用iptables来处理的,主要区别是iptables服务,每次更改都意味着刷新所有旧规则并从/etc/sysconfig/iptables读取所有新规则,firewall可以在运行时更改设置,而不丢失现有连接。
    5、iptables是Linux下功能强大的应用层防火墙工具, 说到iptables必然提到Netfilter,iptables是应用层的,其实质是一个定义规则的配置工具,而核心的数据包拦截和转发是Netfiler。Netfilter是Linux操作系统核心层内部的一个数据包处理模块

    iptables和Netfilter关系图:

    iptables和fillwall关系图:

    ================================================================

    启动iptables

    modprobe ip_tables

    关闭iptables(关闭命令要比启动复杂)

    
    iptalbes -F
    
    iptables -X
    
    iptables -Z
    
    iptables -P INPUT ACCEPT
    
    iptables -P OUTPUT ACCEPT
    
    iptables -P FORWARD ACCEPT
    
    modprobe -r ip_tables

    依次执行以上命令即可关闭iptables,否则在执行modproble -r ip_tables时将会提示FATAL: Module ip_tables is in use.

    清除预设表filter中的所有规则链的规则

    iptables -F

    清除预设表filter中使用者自定链中的规则

     iptables -X

    以数字形式查看iptables规则

    iptables -L -n

    抛弃所有不符合三种链规则的数据包

    
    iptables -P INPUT DROP
    
    iptables -P OUTPUT DROP
    
    iptables -P FORWARD DROP


    设置 本地进程 lo 的 INPUT 和 OUTPUT 链接,eth0 的 INPUT 链

    
    iptables -A INPUT -i lo -j ACCEPT
    
    iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -jACCEPT
    
    iptables -A INPUT -i eth0 -m state --state NEW,INVALID -j LOG
    
    iptables -A OUTPUT -o lo -j ACCEPT

    开放SSH端口22

    iptables -A INPUT -p tcp -i eth0 --dport ssh -j ACCEPT

    开放Web端口80

    iptables -A INPUT -p tcp -i eth0 --dport 80 -j ACCEPT

    开放FTP端口21、20

    
    iptables -A INPUT -p tcp --dport 20 -j ACCEPT
    
    iptables -A INPUT -p tcp --dport 21 -j ACCEPT

    删除FTP端口21、20

    
    iptables -D INPUT -p tcp --dport 20 -j ACCEPT
    
    iptables -D INPUT -p tcp --dport 21 -j ACCEPT

    允许loopback(不然会导致DNS无法正常关闭等问题)

    
    IPTABLES -A INPUT -i lo -p all -j ACCEPT (如果是INPUT DROP)
    
    IPTABLES -A OUTPUT -o lo -p all -j ACCEPT (如果是OUTPUT DROP)

    保存iptables规则

    iptables-save > /etc/iptables.up.rules

    iptables规则自动保存与自动加载

    nano /etc/network/interfaces
    

    修改 /etc/network/interfaces ,添加下面末尾2行脚本

    
    
    auto eth0
    
    iface eth0 inet dhcp
    
    pre-up iptables-restore < /etc/network/iptables.up.rules
    
    post-down iptables-save > /etc/network/iptables.up.rules
    
    

    ===============================

    UFW全称为Uncomplicated Firewall,是Ubuntu系统上配置iptables防火墙的工具。

    UFW提供一个非常友好的命令用于创建基于IPV4,IPV6的防火墙规则。

    但是,UFW是没有界面的,就是用命令的那一种,所以,操作起来就不是那么的方便,有人帮它写了个界面,名字就叫做“Gufw”。

    由于Ubuntu下的iptables操作起来比较复杂,依赖关系比较多,所以使用UFW时可以简化很多操作。

    当然Debian同样适用。无论是桌面版还是服务器版, UFW的命令行用法是一样的。

    1.安装方法:

    sudo apt-get install ufw


    2.使用方法
        2.1 启动防火墙并设置开机启动:

    sudo ufw enable
    sudo ufw default deny


    注:开启防火墙并关闭外部主机对本机的访问(不影响本机对外部主机访问)

         2.2 关闭

    sudo ufw disable


        2.3 查看防火墙状态(开启了为 active, 没开启为 inactive)

    sudo ufw status


        2.4 开启、禁用端口及其他服务

    sudo ufw allow port_number // 开放 port_number 端口
     
    sudo ufw delete allow port_number // 删除 port_number 端口
     
    sudo ufw allow from 192.168.1.1 // 允许来自 192.168.1.1 的主机的访问
     
    sudo ufw deny smtp // 禁止外部访问smtp服务
     
    sudo ufw delete allow smtp // 删除上面建立的某条规则


      2.5 重置所有的规则
     

    sudo ufw reset
    

    3、设置允许ssh访问:

    sudo ufw allow ssh

    4、查看防火墙状态:

    sudo ufw status


    更多详细参照:

    Ubuntu的防火墙配置-ufw-iptables
    自打2.4版本以后的Linux内核中, 提供了一个非常优秀的防火墙工具。这个工具可以对出入服务的网络数据进行分割、过滤、转发等等细微的控制,进而实现诸如防火墙、NAT等功能。
    一般来说, 我们会使用名气比较的大iptables等程序对这个防火墙的规则进行管理。iptables可以灵活的定义防火墙规则, 功能非常强大。但是由此产生的副作用便是配置过于复杂。一向以简单易用著称Ubuntu在它的发行版中,附带了一个相对iptables简单很多的防火墙配置工具:ufw。


    ufw默认是没有启用的。也就是说, ubuntu中的端口默认都是开放的。使用如下命令启动ufw:
    sudo ufw default deny
    sudo ufw enable
    通过第一命令,我们设置默认的规则为allow, 这样除非指明打开的端口, 否则所有端口默认都是关闭的。第二个命令则启动了ufw。如果下次重新启动机器, ufw也会自动启动。
    对于大部分防火墙操作来说, 其实无非就是的打开关闭端口。如果要打开SSH服务器的22端口, 我们可以这样:
    sudo ufw allow 22
    由于在/etc/services中, 22端口对应的服务名是ssh。所以下面的命令是一样的:
    sudo ufw allow ssh
    现在可以通过下面命令来查看防火墙的状态了:
    sudo ufw status
    Firewall loaded

    To Action From
    – —— —-
    22:tcp ALLOW Anywhere
    22:udp ALLOW Anywhere
    可以看到, 22端口的tcp和udp协议都打开了。
    删除已经添加过的规则:
    sudo ufw delete allow 22
    只打开使用tcp/ip协议的22端口:
    sudo ufw allow 22/tcp
    打开来自192.168.0.1的tcp请求的80端口:
    sudo ufw allow proto tcp from 192.168.0.1 to any port 22
    要关系防火墙:
    sudu ufw disable

    ubuntu下的ufw防火墙配置
    UFW防火墙是一个主机端的iptables类防火墙配置工具。这个工具的目的是提供给用户一个可以轻松驾驭的界面,就像包集成和动态检测开放的端口一样。
    在Ubuntu中安装UFW:
    目前这个包存在于Ubuntu 8.04的库中。
    sudo apt-get install ufw
    上面这行命令将把软件安装到您系统中。
    开启/关闭防火墙 (默认设置是’disable’)
    # ufw enable|disable
    转换日志状态
    # ufw logging on|off
    设置默认策略 (比如 “mostly open” vs “mostly closed”)
    # ufw default allow|deny
    许 可或者屏蔽某些入埠的包 (可以在“status” 中查看到服务列表[见后文])。可以用“协议:端口”的方式指定一个存在于/etc/services中的服务名称,也可以通过包的meta-data。 ‘allow’ 参数将把条目加入 /etc/ufw/maps ,而 ‘deny’ 则相反。基本语法如下:
    # ufw allow|deny [service]
    显示防火墙和端口的侦听状态,参见 /var/lib/ufw/maps。括号中的数字将不会被显示出来。
    # ufw status

    UFW 使用范例:
    允许 53 端口
     sudo ufw allow 53
    禁用 53 端口
     sudo ufw delete allow 53
    允许 80 端口
     sudo ufw allow 80/tcp
    禁用 80 端口
     sudo ufw delete allow 80/tcp
    允许 smtp 端口
     sudo ufw allow smtp
    删除 smtp 端口的许可
     sudo ufw delete allow smtp
    允许某特定 IP
     sudo ufw allow from 192.168.254.254
    删除上面的规则
     sudo ufw delete allow from 192.168.254.254


    ubuntu 防火墙
    ufw是Ubuntu下的一个简易的防火墙配置工具,底层还是调用iptables来处理的,虽然功能较简单,但对桌面型应用来说比较实用,基本常用功能都有,使用也较为容易。


    1.安装
    sudo apt-get install ufw

    2.启用
    sudo ufw enable
    sudo ufw default deny
    运行以上两条命令后,开启了防火墙,并在系统启动时自动开启。
    关闭所有外部对本机的访问,但本机访问外部正常。

    3.开启/禁用
    sudo ufw allow|deny [service]
    打开或关闭某个端口,例如:
    sudo ufw allow smtp 允许所有的外部IP访问本机的25/tcp (smtp)端口
    sudo ufw allow 22/tcp 允许所有的外部IP访问本机的22/tcp (ssh)端口
    sudo ufw allow 53 允许外部访问53端口(tcp/udp)
    sudo ufw allow from 192.168.1.100 允许此IP访问所有的本机端口
    sudo ufw allow proto udp 192.168.0.1 port 53 to 192.168.0.2 port 53
    sudo ufw deny smtp 禁止外部访问smtp服务
    sudo ufw delete allow smtp 删除上面建立的某条规则

    4.查看防火墙状态
    sudo ufw status

    一般用户,只需如下设置:
    sudo apt-get install ufw
    sudo ufw enable
    sudo default deny
    以上三条命令已经足够安全了,如果你需要开放某些服务,再使用sudo ufw allow开启。

    Ubuntu防火墙 UFW 设置简介
    2010-03-03 16:27
    1.安装
    sudo apt-get install ufw
    2.启用
    sudo ufw enable
    sudo ufw default deny
    运行以上两条命令后,开启了防火墙,并在系统启动时自动开启。关闭所有外部对本机的访问,但本机访问外部正常。
    3.开启/禁用
    sudo ufw allow|deny [service]
    打开或关闭某个端口,例如:
    sudo ufw allow smtp 允许所有的外部IP访问本机的25/tcp (smtp)端口
    sudo ufw allow 22/tcp 允许所有的外部IP访问本机的22/tcp (ssh)端口
    sudo ufw allow 53 允许外部访问53端口(tcp/udp)
    sudo ufw allow from 192.168.1.100 允许此IP访问所有的本机端口
    sudo ufw allow proto udp 192.168.0.1 port 53 to 192.168.0.2 port 53
    sudo ufw deny smtp 禁止外部访问smtp服务
    sudo ufw delete allow smtp 删除上面建立的某条规则
    4.查看防火墙状态
    sudo ufw status
    一般用户,只需如下设置:
    sudo apt-get install ufw
    sudo ufw enable
    sudo ufw default deny
    以上三条命令已经足够安全了,如果你需要开放某些服务,再使用sudo ufw allow开启。
    开启/关闭防火墙 (默认设置是’disable’)
    sudo ufw enable|disable
    转换日志状态
    sudo ufw logging on|off
    设置默认策略 (比如 “mostly open” vs “mostly closed”)
    sudo ufw default allow|deny
    许可或者屏蔽端口 (可以在“status” 中查看到服务列表)。可以用“协议:端口”的方式指定一个存在于/etc/services中的服务名称,也可以通过包的meta-data。 ‘allow’ 参数将把条目加入 /etc/ufw/maps ,而 ‘deny’ 则相反。基本语法如下:
    sudo ufw allow|deny [service]
    显示防火墙和端口的侦听状态,参见 /var/lib/ufw/maps。括号中的数字将不会被显示出来。
    sudo ufw status
    UFW 使用范例:
    允许 53 端口
     sudo ufw allow 53
    禁用 53 端口
     sudo ufw delete allow 53
    允许 80 端口
     sudo ufw allow 80/tcp
    禁用 80 端口
     sudo ufw delete allow 80/tcp
    允许 smtp 端口
     sudo ufw allow smtp
    删除 smtp 端口的许可
     sudo ufw delete allow smtp
    允许某特定 IP
     sudo ufw allow from 192.168.254.254
    删除上面的规则
     sudo ufw delete allow from 192.168.254.254

    正因为当初对未来做了太多的憧憬,所以对现在的自己尤其失望。生命中曾经有过的所有灿烂,终究都需要用寂寞来偿还。
  • 相关阅读:
    如何在ASP.NET Web站点中统一页面布局[Creating a Consistent Layout in ASP.NET Web Pages(Razor) Sites]
    JS 传播事件、取消事件默认行为、阻止事件传播
    脚本化CSS类-HTML5 classList属性
    offset、client、scroll开头的属性归纳总结
    使用insertBefore实现insertAdjacentHTML()
    HTML5 数据集属性dataset
    圣杯布局与双飞翼布局
    Lazyload Angular
    MongoDB学习笔记
    HTML5调用电脑摄像头拍照
  • 原文地址:https://www.cnblogs.com/candlia/p/11919923.html
Copyright © 2011-2022 走看看