• windows主机无法访问服务器


    在CentOS下安装配置hadoop的时候,总显示因为网络端口而导致主机无法访问服务器,遂打算先关闭一下防火墙。

    偶然看到防火墙的配置操作说明,感觉不错。执行”setup”命令启动文字模式配置实用程序,在”选择一种工具”中选择”防火墙配置”,然后选择”运行工具”按钮,出现防火墙配置界面,将”安全级别”设为”禁用”,然后选择”确定”即可.

    或者用命令:

    #/sbin/iptables -I INPUT -p tcp –dport 8088 -j ACCEPT
    #/sbin/iptables -I INPUT -p tcp –dport 8042 -j ACCEPT
    #/etc/rc.d/init.d/iptables save
    #/etc/init.d/iptables restart
    #/etc/init.d/iptables status

    这样防火墙默认已经开放了8088和8042端口。

    关闭防火墙服务:
    #/etc/init.d/iptables stop

    永久关闭?不知道怎么个永久法:
    #chkconfig –level 35 iptables off

     看了好几个页面内容都有错,下面是正确方法:

    #/sbin/iptables -I INPUT -p tcp --dport 8088 -j ACCEPT
    #/sbin/iptables -I INPUT -p tcp --dport 8042 -j ACCEPT

    然后保存:
    #/etc/rc.d/init.d/iptables save

    再查看是否已经有了:
    [root@vcentos ~]# /etc/init.d/iptables status
    Table: filter
    Chain INPUT (policy ACCEPT)
    num target prot opt source destination   
    ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:8088
    2 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
    3 RH-Firewall-1-INPUT all -- 0.0.0.0/0 0.0.0.0/0   
     
    Chain FORWARD (policy ACCEPT)
    num target prot opt source destination   
    1 RH-Firewall-1-INPUT all -- 0.0.0.0/0 0.0.0.0/0

    服务器遭受到大量的大量SYN_RECV,80端号占死,网站打不开
    没有硬防

    有什么办法可以解决吗


    sysctl -w net.ipv4.tcp_syncookies=1 #启用使用syncookies
    sysctl -w net.ipv4.tcp_synack_retries=1 #降低syn重试次数
    sysctl -w net.ipv4.tcp_syn_retries=1 #降低syn重试次数
    sysctl -w net.ipv4.tcp_max_syn_backlog=6000 #最大半连接数
    sysctl -w net.ipv4.conf.all.send_redirects=0 
    sysctl -w net.ipv4.conf.all.accept_redirects=0 #不接受重定向的icmp數據包
    sysctl -w net.ipv4.tcp_fin_timeout=30 
    sysctl -w net.ipv4.tcp_keepalive_time=60 
    sysctl -w net.ipv4.tcp_window_scaling=1 
    sysctl -w net.ipv4.icmp_echo_ignore_all=1 #禁止ICMP
    sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1 #ICMP禁止广播

    2.限制单位时间内连接数,如:
    iptables -N syn-flood 
    iptables -A FORWARD -p tcp --syn -j syn-flood 
    iptables -A INPUT -p tcp --syn -j syn-flood
    iptables -A syn-flood -p tcp --syn -m limit --limit 3/s --limit-burst 1 -j ACCEP
    iptables -A syn-flood -j DROP
    iptables -A INPUT -i eth0 -p tcp ! --syn -m state --state NEW -j DROP 
    iptables -A INPUT -p tcp --syn -m state --state NEW -j DROP

    3 如果还是不行,
    iptables -A INPUT -p tcp --dport 80 -m recent --name BAD_HTTP_ACCESS --update --seconds 60 --hitcount 30 -j REJECT
    iptables -A INPUT -p tcp --dport 80 -m recent --name BAD_HTTP_ACCESS --set -j ACCEP

    如攻击过来的流量大于你的服务器的流量,那就没有什么办法了,如果流量不大,以上方法,可以暂时保证你的80可以访问

    如果你的内核已经支持iptables   connlimit可以使用, iptables 设定部份,也可以使用

    iptables -I FORWARD -p tcp --syn -m connlimit --connlimit-above 5 -j DROP

    iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 5 -j REJECT

    对付SYN FLOOD的话,真正起作用的是:

    sysctl -w net.ipv4.tcp_syncookies=1        #启用使用syncookies
    sysctl -w net.ipv4.tcp_synack_retries=1        #降低syn重试次数
    其他IPTABLES的限制速度功能不能用来对付SYN FLOOD的(不能阻止拒绝服务,但是确实可以防止服务器CRASH)。
  • 相关阅读:
    Python04 range()方法的使用、turtle.textinput()方法和write()的使用、turtle.numinput()的使用
    SpringBoot12 QueryDSL02之利用QueryDSL实现多表关联查询
    SpringBoot12 QueryDSL01之QueryDSL介绍、springBoot项目中集成QueryDSL、利用QueryDSL实现单表RUD、新增类初始化逻辑
    ES02 变量、数组、对象、方法
    JavaScript问题01 js代码放在header和body的区别
    Python03 字符串类型、强制类型转化、列表、元组、字典、集合
    Python02 标准输入输出、数据类型、变量、随记数的生成、turtle模块详解
    使用 Multipath TCP 为 iOS 创建备份连接(转)
    linux中的条件变量
    linux中网络编程<1>
  • 原文地址:https://www.cnblogs.com/timssd/p/4181076.html
Copyright © 2020-2023  润新知