zoukankan      html  css  js  c++  java
  • iptables防火墙的基本应用

    iptables是Linux上常用的防火墙软件,下面说一下iptables的安装、清除iptables规则、iptables只开放指定端口、iptables屏蔽指定ip、ip段及解封、删除已添加的iptables规则、设置iptables开机启动等基本应用。

    一、安装iptables防火墙

    如果没有安装iptables需要先安装,CentOS执行:

    yum install iptables -y
    yum install iptables-services -y #CentOS7需安装此iptables的service软件包#

    CentOS 7上默认安装了firewalld建议关闭并禁用:

    systemctl stop firewalld
    systemctl mask firewalld

    配置文件路径:/etc/sysconfig/iptables

    二、清除已有的iptables规则

    iptables -F
    iptables -X
    iptables -Z

    三、开放指定的端口

    -A和-I参数分别为添加到规则末尾和规则最前面。

    #允许本地回环接口(即运行本机访问本机)
    iptables -A INPUT -i lo -j ACCEPT
    # 允许已建立的或相关连的通行
    iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    #允许所有本机向外的访问
    iptables -A OUTPUT -j ACCEPT
    # 允许访问22端口
    iptables -A INPUT -p tcp --dport 22 -j ACCEPT
    #允许访问80端口
    iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    #允许访问443端口
    iptables -A INPUT -p tcp --dport 443 -j ACCEPT
    #允许FTP服务的21和20端口
    iptables -A INPUT -p tcp --dport 21 -j ACCEPT
    iptables -A INPUT -p tcp --dport 20 -j ACCEPT
    #如果有其他端口的话,规则也类似,稍微修改上述语句就行
    #允许ping
    iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
    #禁止其他未允许的规则访问
    iptables -A INPUT -j REJECT  #(注意:如果22端口未加入允许规则,SSH链接会直接断开。)
    iptables -A FORWARD -j REJECT

    四、屏蔽IP

    #如果只是想屏蔽IP的话“3、开放指定的端口”部分设置可以直接跳过。
    #屏蔽单个IP的命令是
    iptables -I INPUT -s 123.45.6.7 -j DROP
    #封整个段即从123.0.0.1到123.255.255.254的命令
    iptables -I INPUT -s 123.0.0.0/8 -j DROP
    #封IP段即从123.45.0.1到123.45.255.254的命令
    iptables -I INPUT -s 124.45.0.0/16 -j DROP
    #封IP段即从123.45.6.1到123.45.6.254的命令是
    iptables -I INPUT -s 123.45.6.0/24 -j DROP

    五、屏蔽或允许某IP访问指定端口

    #屏蔽某IP访问指定端口,以22端口为例命令是
    iptables -I INPUT -s 123.45.6.7 -p tcp --dport 22 -j DROP
    #允许某IP访问指定端口,以22端口为例命令是
    iptables -I INPUT -p tcp --dport 22 -j DROP
    iptables -I INPUT -s 123.45.6.7 -p tcp --dport 22 -j ACCEPT

    六、查看已添加的iptables规则

    iptables -L -n

    v:显示详细信息,包括每条规则的匹配包数量和匹配字节数
    x:在 v 的基础上,禁止自动单位换算(K、M
    n:只显示IP地址和端口号,不将ip解析为域名

    七、删除已添加的iptables规则

    将所有iptables以序号标记显示,执行:

    iptables -L -n --line-numbers

    比如要删除INPUT里序号为8的规则(要删除OUTPUT的话就改成OUTPUT,以此类推),执行:

    iptables -D INPUT 8

    八、iptables的开机启动及规则保存

    CentOS上可能会存在安装好iptables后,iptables并不开机自启动,可以执行一下:

    chkconfig --level 345 iptables on

    CentOS7可执行:

    systemctl enable iptables

    将其加入开机启动。

    CentOS上可以执行:service iptables save保存规则。

  • 相关阅读:
    第二十九课 循环链表的实现
    第二十八课 再论智能指针(下)
    第二十七课 再论智能指针(上)
    第二十六课 典型问题分析(Bugfix)
    普通new和placement new的重载
    leetcode 581. Shortest Unsorted Continuous Subarray
    leetcode 605. Can Place Flowers
    leetcode 219. Contains Duplicate II
    leetcode 283. Move Zeroes
    leetcode 217. Contains Duplicate
  • 原文地址:https://www.cnblogs.com/myitnews/p/11482816.html
Copyright © 2011-2022 走看看