• iptables



    1.防火墙开启
    service iptables start

    2.防火墙关闭
    service iptables stop

    3.防火墙规则保存
    service iptables save

    4.防火墙状态
    service iptables status

    5.防火墙规查看
    iptables -L -n

    6.防火墙规则清除
    iptables [-t tables] [-FXZ]
    -F 清除所有的已定义规则
    -X 清除所有用户自定义规则
    -Z 将所有的chain的计数和流量归0


    7.iptables定义默认策略
    iptables [-t nat] -P [INPUT, OUTPUT, FORWARD] [ACCEPT, DROP]

    例:
    将本机INPUT设置为DROP,其他设置为ACCEPT
    #iptables -P INPUT DROP
    #iptables -P OUTPUT ACCEPT
    #iptables -P FORWARD ACCEPT

    8.防火墙规则查看

    #iptables -nL --line-number

    9.按行删除防火墙规则

    #iptables -D INPUT 2 #删除input的第二行


    9.iptables设置规则:
    #iptables [-AI 链] [-io 网络接口] [-p 协议] [-s 来源ip/网段] [--sprot 端口范围] [-d 目标ip/网段] [--dport 端口范围] -j [ACCEPT/DROP]

    参数介绍:
    -AI 针对某点规则进行插入或累加
    -A 加在现有规则的最后面
    -I 插入现有规则的最前面

    -io 网络接口
    -i 数据进入接口 如 -i eth0
    -o 数据流出接口 需要与OUTPUT配合

    -p 协议,主要有tcp,udp, icmp, 及all

    -s 来源ip
    -d 目标ip

    -j 主要有ACCEPT/接受 DROP/丢弃 LOG/记录

    开启80端口
    #iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    #iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT

    开启22端口
    #iptables -I INPUT -p tcp --dport 22 -j ACCEPT

    打开主动模式21端口
    iptables -A INPUT -p tcp --dport 21 -j ACCEPT 



    打开被动模式49152~65534之间的端口
    iptables -A INPUT -p tcp --dport 49152:65534 -j ACCEPT
    iptables -A INPUT -i lo -j ACCEPT
    iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT

    把3306端口设置为只允许本机访问
    #iptables -A INPUT -p tcp -s 127.0.0.1 --dport 3306 -j ACCEPT
    #iptables -A OUTPUT -p tcp -s 127.0.0.1 --dport 3306 -j ACCEPT

    开放进出端口

    iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT

    设置完iptables后要记得保存下

    service iptables save

    否则重启后将失效

    *******************************************************************************

    为了更严厉的防火墙存取限制,一般初学者会这样配配置:
    #iptables -P INPUT DROP
    #iptables -A INPUT -p tcp --dport 22 -j ACCEPT
    也就是主机只有打算开放 ssh 服务对外提供存取。

    这样乍看之下好像非常正确,但是设定好后外面是可以连到该 port 22 服务,但是却导致了一个后续的问题,也就是 "该主机若是要主动对外要建立连线却被禁止"。比方这台服务主机无法使用 ssh 登入到远端主机,也无法用浏览器看其他主机 port 80 的 http 服务的。

    引起该问题的原因呢? TCP/IP 本身是双向的,也就是有出必有进,有进必有出。这个规则没考虑到这点问题。

    当主机对外要建立连线时,对方势必也要回应封包到原主机,所以回应的封包是要被允许的。不过该配置来看却没考虑到这点问题,所以导致回应的封包被丢弃,所以连线根本建立失败。

    所以设定 -P INPUT DROP 时,一般正确方式应该考虑加上允许主机本身对外连线时对方回应封包项目,也就是:
    #iptables -P INPUT DROP
    #iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT
    #iptables -A INPUT -p tcp --dport 22 -j ACCEPT
    不过上面规则通常应该考虑的是,主机本身对外只有提供可以连结存取port 22 该 ssh 服务,但是若是自己主机有开 port 80 与 port 25 等  服务项目的话,这样配置却也导致自己存取自己的主机服务也被限制住了。

    基于该问题,一般会建议加上由 loopback interface 该界面不受到该 firewall 组态限制而被阻挡,一般会建议改成:
    #iptables -P INPUT DROP
    #iptables -A INPUT -i lo -j ACCEPT
    #iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT

    #iptables -A INPUT -p tcp --dport 22 -j ACCEPT

  • 相关阅读:
    干货分享:QQ群排名霸屏优化规则靠前的新技术
    QQ群排名优化到霸屏的策略怎么做?
    百度知道芝麻将,申请资格&权限介绍&奖惩制度(简剖)
    新媒体运营之如此微信养号不易封
    知道引流于需求之上 势必更为精准有效
    价值内容争夺背后的流量推荐 以及利润分发逻辑
    深度剖析:自媒体爆文十大标题写法
    据统计:90%的爆文都这样敲出来滴
    短视频不为人知的素材来源 以及平台推荐的黑盒机制
    说什么月入几万 我是不是应该一头撞死?
  • 原文地址:https://www.cnblogs.com/itfenqing/p/4429416.html
Copyright © 2020-2023  润新知