zoukankan      html  css  js  c++  java
  • iptable 限制ip访问

     -- 查找所有规则
    iptables -L INPUT --line-numbers

    -- 删除一条规则
    iptables -D INPUT 11 (注意,这个11是行号,是iptables -L INPUT --line-numbers 所打印出来的行号)

    限制访问:
    iptables -I INPUT -p tcp --dport 6700 -j DROP
    容许本机访问:
    iptables -I INPUT -s 127.0.0.1 -j ACCEPT
    iptables -I INPUT -s 10.x.x.x -j ACCEPT

    查看端口情况
    1.netstat -ntpl
    2.iptables -F 清除预设表filter中的所有规则链的规则
    3.iptables -X 清除预设表filter中使用者自定链中的规则
    4.iptables -L -n 查看本机关于IPTABLES的设置情况  【远程连接规则将不能使用,注意】 
      /etc/init.d/iptables status
    5./etc/rc.d/init.d/iptables save
    6./etc/rc.d/init.d/iptables restart

    初始化
    7. ACCEPT/DROP
    iptables -P INPUT DROP 
    iptables -P OUTPUT DROP
    iptables -P FORWARD DROP
    上面的意思是,当超出了IPTABLES里filter表里的两个链规则(INPUT,FORWARD)时,不在这两个规则里的数据包怎么处理呢,那就是DROP(放弃).应该说这样配置是很安全的.我们要控制流入数据包
    而对于OUTPUT链,也就是流出的包我们不用做太多限制,而是采取 ACCEPT,也就是说,不在着个规则里的包怎么办呢,那就是通过.
    可以看出INPUT,FORWARD两个链采用的是允许什么包通过,而OUTPUT链采用的是不允许什么包通过.
    这样设置还是挺合理的,当然你也可以三个链都DROP,但这样做我认为是没有必要的,而且要写的规则就会增加.但如果你只想要有限的几个规则是,如只做WEB服务器.还是推荐三个链都是DROP.
    注:如果你是远程SSH登陆的话,当你输入第一个命令回车的时候就应该掉了.因为你没有设置任何规则.
    重复5,6步骤,查看结果 iptables -L -n


    8.添加规则
    eg. ssh端口 
    iptables -A INPUT -p tcp --dport 22 -j ACCEPT
    iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT 
    (注:这个规则,如果你把OUTPUT 设置成DROP的就要写上这一部,好多人都是望了写这一部规则导致,始终无法SSH.在远程一下,是不是好了.
    其他的端口也一样,如果开启了web服务器,OUTPUT设置成DROP的话,同样也要添加一条链
    重复5,6步骤,查看结果 iptables -L -n
    web
    iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT

    如下:

    只允许指定的ip访问本机的指定端口50070:

    例如允许的的ip:192.168.1.123,192.168.1.124, 192.168.1.100,其他ip都禁止访问。

    切换到root用户

    iptables -F#清除预设表filter中的所有规则链的规则 

    1、在tcp协议中,禁止所有的ip访问本机的50070端口。

    iptables -I INPUT -p tcp --dport 50070 -j DROP

     

    2、允许192.168.1.123访问本机的50070端口

    iptables -I INPUT -s 192.168.1.123 -p tcp --dport 50070 -j ACCEPT

     

    3、允许192.168.1.124访问本机的50070端口

    iptables -I INPUT -s 192.168.1.124 -p tcp --dport 50070 -j ACCEPT

     

    4、允许192.168.1.100访问本机的50070端口

    iptables -I INPUT -s 192.168.1.100 -p tcp --dport 50070 -j ACCEPT

    注意以上4条命令的顺序不能错。

    以上是临时设置。

    5.然后保存iptables

    # service iptables save

    6.重启防火墙

    #service iptables restart

    7.在此说一下关于启动和关闭防火墙的命令:

    1) 重启后生效

    开启: chkconfig iptables on

    关闭: chkconfig iptables off

    2) 即时生效,重启后失效

    开启: service iptables start

    关闭: service iptables stop 

    说明:

    1、如果对某一网段做限制可以直接执行如下命令:

    2-3-4步可直接使用如下命令代替:

    iptables -I INPUT-s 192.168.1.0/24 -p tcp --dport 50070 -j ACCEPT

    2、对其他端口做限制,直接修改为对应端口后依次执行 1-7步操作


    ---------------------
    作者:ZhaoYingChao88
    来源:CSDN
    原文:https://blog.csdn.net/zyc88888/article/details/73274456/
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    .NET HttpWebRequest应用
    .NET 文件上传和文件接收
    小程序报错:对应的服务器 TLS 为 TLS 1.0 ,小程序要求的 TLS 版本必须大于等于 1.2
    发布微信小程序体验版
    .NET 通过entity framework报数据库连接错误:ORA-01017: invalid username/password; logon denied
    将Oracle 12c的某用户数据迁移至OracleXE的用户
    C# Oracle 时间字符串转时间类型
    在.NET中调用Java的类
    Oracle 取前几条记录
    oracle impdp将导出用户的所有对象导入至另一个用户下,生成的触发器语句问题处理
  • 原文地址:https://www.cnblogs.com/williamjie/p/10478026.html
Copyright © 2011-2022 走看看