• linux下的防火墙


    centos6防火墙iptables

    配置文件

    centos6下配置文件为/etc/sysconfig/iptables

    # Generated by iptables-save v1.4.7 on Mon Dec 25 11:46:40 2017
    *filter
    :INPUT ACCEPT [0:0]
    :FORWARD ACCEPT [0:0]
    :OUTPUT ACCEPT [2:208]
    -A INPUT -p udp -m state --state NEW -m udp --dport 8989 -j ACCEPT
    -A INPUT -p tcp -m state --state NEW -m tcp --dport 8989 -j ACCEPT
    -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
    -A INPUT -p icmp -j ACCEPT
    -A INPUT -i lo -j ACCEPT
    -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
    -A INPUT -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT
    -A INPUT -j REJECT --reject-with icmp-host-prohibited
    -A FORWARD -j REJECT --reject-with icmp-host-prohibited
    COMMIT
    # Completed on Mon Dec 25 11:46:40 2017
    

    添加端口号

    iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
    

    net转发

    cat m-net-forward.sh
    echo "1" > /proc/sys/net/ipv4/ip_forward
    iptables -t nat -D POSTROUTING 1
    iptables -t nat -D POSTROUTING 1
    iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o ppp0 -j SNAT --to $1
    iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
    

    查看

    iptables -L -t nat  --line-number
    
    Chain PREROUTING (policy ACCEPT)
    num  target     prot opt source               destination
    
    Chain INPUT (policy ACCEPT)
    num  target     prot opt source               destination
    
    Chain OUTPUT (policy ACCEPT)
    num  target     prot opt source               destination
    
    Chain POSTROUTING (policy ACCEPT)
    num  target     prot opt source               destination
    1    SNAT       all  --  192.168.1.0/24       anywhere             to:100.102.180.11
    2    MASQUERADE  all  --  anywhere             anywhere
    

    删除

    iptables -D INPUT 2
    iptables -t nat -D POSTROUTING 1
    

    修改

    iptables -R INPUT 3 -j ACCEPT
    

    iptables服务启动与关闭

    sudo service iptables status
    sudo service iptables start
    sudo service iptables stop
    

    重定向

    iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
    iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 8443
    

    iptables端口转发

    首先程序绑定1024以上的端口,然后root权限下做转发注意有些系统需要手动开启IP FORWARD功能。但是转发功能是否需要开启呢,有遇到过不需要这一步的情况。

    vi /etc/sysctl.conf
    

    修改

    net.ipv4.ip_forward = 1
    

    重新加载

    sysctl -p /etc/sysctl.conf
    

    centos7防火墙firewalld

    firewalld的基本使用

    启动 systemctl start firewalld
    查看状态 systemctl status firewalld
    停止 systemctl disable firewalld
    禁用 systemctl stop firewalld

    systemctl

    systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。

    启动一个服务 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  

    配置firewalld-cmd

    查看版本 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 --zone=public --add-port=80/tcp --permanent (--permanent永久生效,没有此参数重启后失效)

    • 添加一个地址段

      firewall-cmd --zone=public --add-port=5060-5061/udp --permanent

    • 重新载入,热加载

      firewall-cmd --reload

    • 冷加载

      firewall-cmd --complete-reload

    • 查看

      firewall-cmd --zone= public --query-port=80/tcp

    • 看到新端口已经添加

      firewall-cmd --zone=public --list-all

    • 删除

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

    使用案例

    共享pppoe

    cat my-net-forward.sh

    echo "1" > /proc/sys/net/ipv4/ip_forward
    iptables -t nat -D POSTROUTING 1
    iptables -t nat -D POSTROUTING 1
    iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o ppp0 -j SNAT --to $1
    iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
    

    查看结果

    iptables -L -t nat  --line-number
    

    img

    80,443端口重定向

    sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
    sudo iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 8443
    

    firewalld 与 iptables的比较

    • firewalld可以动态修改单条规则,动态管理规则集,允许更新规则而不破坏现有会话和连接。而iptables,在修改了规则后必须得全部刷新才可以生效;
    • firewalld使用区域和服务而不是链式规则;
    • firewalld默认是拒绝的,需要设置以后才能放行。而iptables默认是允许的,需要拒绝的才去限制;
    • firewalld自身并不具备防火墙的功能,而是和iptables一样需要通过内核的netfilter来实现。也就是说,firewalld和iptables一样,它们的作用都用于维护规则,而真正使用规则干活的是内核的netfilter。只不过firewalld和iptables的结果以及使用方法不一样!

    netfilter工作流程相关图片

    img
    img
    img
    img

    相关链接

    firewalld 与 iptables
    linux的防火墙firewalld和iptables区别和用法
    通过iptables实现端口转发和内网共享上网

  • 相关阅读:
    小球与盒子的故事
    2020.1.11 考试总结
    P4249 [WC2007]剪刀石头布
    P3825 [NOI2017]游戏
    BZOJ 2238 Mst
    P4240 毒瘤之神的考验
    生成函数(严重残缺)
    Min_25
    P3455 [POI2007]ZAP-Queries
    P3233 [HNOI2014]世界树
  • 原文地址:https://www.cnblogs.com/BlackSwanYucatan/p/10146527.html
Copyright © 2020-2023  润新知