V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
qingwuguo
V2EX  ›  程序员

一台云服务器,入站端口全部关闭,出站打开,是不是即使公布 IP 地址,也不会被攻击

  •  
  •   qingwuguo ·
    qingwg · 2020-04-15 10:06:18 +08:00 · 8389 次点击
    这是一个创建于 773 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我有一台亚马逊云服务器

    我把入站端口全部关闭,出站全部放开,是不是即使服务器 IP 地址暴露,也不会被攻击

    排除物理攻击、机房其它云服务器被攻击导致连带的问题

    只考虑从远处,且只有 IP 地址的情况下,是否能被攻击呢

    第 1 条附言  ·  2020-04-16 09:58:30 +08:00
    真实情况是这样的:

    我原来做了个量化交易软件,这个软件面向所有用户

    用户想要用软件的话,需要提供他们所在交易所的 AppKey

    而这个 AppKey 需要绑定服务器 IP 才能使用,且需要用户自己去交易所生成,并给我

    所以必须公布 IP (不过交易所可以绑定 10 个 IP )

    这台服务器只需要请求交易所 API 来交易

    依据回复总结:(感谢各位的回复)

    1 、如果关闭了所有入站端口,可以避免大部分攻击,尤其是来自脚本小子的自动扫描工具之类的初级攻击

    2 、DDos 攻击依然无法避免。这里有个猜测,不知道亚马逊策略如何。如果我的服务器遭遇 ddos 攻击,不知道会不会影响该服务器出站请求。如果是阿里云就没办法,直接进黑洞,直接断网。

    3 、公布多个 IP 有效。考虑到成本问题,我看了下亚马逊云的弹性 IP,一个大约每个月 22 元,打算多申请几个,但是不绑定服务器,以节约服务器成本。当然更好的做法是多台服务器,用户分配到不同服务器运行他们的交易策略,做好无缝切换的准备(这点很容易,因为数据都在数据库上,没有在服务器上有重要缓存)

    4 、入站端口依然全部关闭,出站放开
    70 条回复    2020-04-16 15:38:49 +08:00
    henvm
        1
    henvm  
       2020-04-15 10:11:47 +08:00
    不是很明白你的意思,你把外面请求访问你服务器的 0-65535 端口所有请求关闭与外界隔绝就约定于断网。
    难道你平时的使用是一直对外发数据包,不收数据包?
    你这个的就跟现在家里宽带 NAT 差不多。外面主动请求不到你的电脑任何端口。
    celeron533
        2
    celeron533  
       2020-04-15 10:13:07 +08:00   ❤️ 1
    巨量的连接请求送过来,还是有可能挤爆网口或者上级交换
    lhx2008
        3
    lhx2008  
       2020-04-15 10:13:14 +08:00 via Android
    应该是可以的,前端会把数据转发到你机器上
    henvm
        4
    henvm  
       2020-04-15 10:15:35 +08:00
    你在系统做这样的防火墙规则,那你平时也只能通过云厂商的面板控制台输入你的机器系统账户密码进去使用了。就跟平时在家里上网一样,但是想对外提供服务就没法了。
    难道是买云服务器挂 QQ,挂游戏,挖矿?
    littlewing
        5
    littlewing  
       2020-04-15 10:15:40 +08:00 via iPhone
    我想知道那你怎么 ssh 上去
    qingwuguo
        6
    qingwuguo  
    OP
       2020-04-15 10:15:51 +08:00
    @celeron533

    @lhx2008

    我没有开放任何出站端口,对方怎么连接请求呢
    bashbot
        7
    bashbot  
       2020-04-15 10:16:41 +08:00
    按照理解就是服务器上没有 listen 端口,只能从服务器向外发起链接。确实可以屏蔽许多攻击。
    sshd 需要 listen 端口的,不开怎么上去?
    qingwuguo
        8
    qingwuguo  
    OP
       2020-04-15 10:18:15 +08:00
    @henvm 这台服务器还是需要连接数据库的,读取数据库、请求别出 API 来获取相应信息,然后服务器计算后,又写入数据库
    qingwuguo
        9
    qingwuguo  
    OP
       2020-04-15 10:19:06 +08:00
    @bashbot
    @littlewing
    ssh 我可以零时打开,并且指定我 IP,只需要短时间连接
    tankren
        10
    tankren  
       2020-04-15 10:20:31 +08:00
    可以把所有从外网发起访问的连接丢掉
    ourFEer
        11
    ourFEer  
       2020-04-15 10:21:51 +08:00
    你在扯淡吧,压根用不着你公布 ip,别人 ping 你或者 nslook 你的 dns,再不济,站长之家也能查到你域名背后的 ip 地址
    qingwuguo
        12
    qingwuguo  
    OP
       2020-04-15 10:22:55 +08:00
    @ourFEer 没有域名,且并不需要对外访问
    zocome
        13
    zocome  
       2020-04-15 10:22:55 +08:00
    如果我没理解错的话,防 C 不防 D 吧?
    xnode
        14
    xnode  
       2020-04-15 10:23:32 +08:00   ❤️ 4
    ..... 连接都是双向的,如果任何系统防火墙端口都关闭,那么理论上会直接拒绝 100%的访问,但是流量仍然会到达你的机器,只是机器的处理效率是非常高的,100%拒绝,实际上来说如果攻击量足够大的话,仍然可以是你的 cpu 满载然后挂掉,亚马逊的端口策略应该是在云里和上层路由里,所以不会到达你的机器,所以一般也不会挂掉,除非整个节点都挂掉
    henvm
        15
    henvm  
       2020-04-15 10:23:56 +08:00   ❤️ 1
    @qingwuguo #6,就是这台服务器的业务需求就是请求外的数据库,读取,然后计算完之后,写入数据库。
    那你倒是可以屏蔽出站端口。但是平时管理会比较麻烦,只能通过亚马逊的面板控制台来管理服务器,如果平时管理次数不多。就是放着让他跑很稳定的话。可以这么做,杜绝了很多攻击。
    ddos 除外。
    star7th
        16
    star7th  
       2020-04-15 10:23:57 +08:00   ❤️ 1
    我感觉这样的问题不大。只是说黑客技术发展,不知道有没有什么黑技术出现。但至少这种情况下,能阻止大部分的攻击,尤其是来自脚本小子的自动扫描工具之类的初级攻击。
    qingwuguo
        17
    qingwuguo  
    OP
       2020-04-15 10:24:24 +08:00
    @xnode 感谢,这是我想要的答案
    qingwuguo
        18
    qingwuguo  
    OP
       2020-04-15 10:25:52 +08:00
    @henvm 感谢,感谢
    sodora
        19
    sodora  
       2020-04-15 10:27:45 +08:00   ❤️ 1
    当然会被攻击。DDoS 攻击根本就不管你端口有没有开放。
    qingwuguo
        20
    qingwuguo  
    OP
       2020-04-15 10:30:37 +08:00
    情况是我必须要公布这台服务器 IP,那我是否可以多公布几个 IP (自己申请的 IP 池,没有绑定服务器的),来分担被攻击的压力。那么对方能否知道自己攻击到了正确的 IP 呢

    @sodora
    @star7th
    @henvm
    @xnode
    xnode
        21
    xnode  
       2020-04-15 10:33:25 +08:00   ❤️ 1
    @qingwuguo 你可能没搞明白 你的机器 cpu 不会爆掉,但是你的钱包会爆掉,因为可能会算流量费用,因为 ddos 的 原理就是不管你是否拒绝连接, 强行像你发包, 开启防火墙只会是你的处理效率变高,不能使你拒绝所有 数据包
    atpking
        22
    atpking  
       2020-04-15 10:34:03 +08:00
    AWS 不知道, 但是 阿里云我还是试过的,

    当 ddos 向你的机器的 ip 发超过 5Gbps 的数据后, 是会进黑洞的, 无论你是否接受, 是否配 iptables 是否在阿里云上层提供的防火墙 禁止数据包 结果都一样 ==> 黑洞
    atpking
        23
    atpking  
       2020-04-15 10:35:33 +08:00   ❤️ 1
    @qingwuguo

    老哥 其实可以放在 cdn 后面的

    如果说非要公布 ip 建议你在你的 dns 中设置 不同的区域 分配不同的 ip
    atpking
        24
    atpking  
       2020-04-15 10:38:29 +08:00   ❤️ 1
    @qingwuguo
    个人建议, 如果没必要, 关闭所有入口的 udp 这玩意各种放大攻击, 还能隐藏源
    tcp 的话确实没啥好办法,如果暴露 ip 只能按区域划分,我最近被 upnp 开启的路由器 ddos 的妈都不认识了

    一般攻击的话 还好境外的比较多, 去 dnspod 买个高级版, 分片搞一下, 再就是设置挂了自动切 ip
    毕竟攻击也是有成本的 耗呗

    土豪直接上高防 阿里的报价是 2w 一个月吧好像是
    qingwuguo
        25
    qingwuguo  
    OP
       2020-04-15 10:43:00 +08:00
    @atpking 好的。我可以把服务器所有的入口关闭,服务器并不需要入口。
    看来 IP 还不能公布
    我目前需求是,需要暴露 IP,且 IP 还不能随意更改,需要固定
    sodora
        26
    sodora  
       2020-04-15 10:45:51 +08:00
    别人要大规模 DDoS 打你,也是要成本的,你能做的就是花钱买防御,最后拼谁能扛到底。所以,防 DDoS 说到底就是钱的问题。
    lewis89
        27
    lewis89  
       2020-04-15 10:54:10 +08:00
    @sodora #26 DDos 的成本 相对而言很低吧, 而且现在物联网设备这么多漏洞 还有 DNS 放大反射 等各种手法, 我感觉互联网最早设计的时候 就没考虑过这些问题
    learningman
        28
    learningman  
       2020-04-15 10:59:36 +08:00
    @bashbot vnc
    henvm
        29
    henvm  
       2020-04-15 11:01:20 +08:00
    @qingwuguo #20,你这个要公布你的这个服务器 IP ?不这个不提供对外服务,是不是你需要的访问外部服务器的数据库,那外部的数据库服务器是外面公司的?你要把你这边的 IP 给对方过白名单?你是怕对方知道 IP 攻击你?
    还有一个可能,你们做的业务可能是爬虫之类的,需要怕外面的一些数据,然后服务器计算清洗,怕别人知道未经允许爬然后来攻击你们?不过这也只是我的猜测。
    henvm
        30
    henvm  
       2020-04-15 11:03:09 +08:00
    @henvm #29 纠正下, 不这个不提供对外服务 ->你们这个不提供对外服务
    需要怕外面的一些数据 ->需要爬外面的一些数据
    qingwuguo
        31
    qingwuguo  
    OP
       2020-04-15 11:08:22 +08:00
    @henvm 真实情况是这样的,我原来做了个量化交易软件,这个软件面向所有用户
    用户想要用软件的话,需要提供他们所在交易所的 AppKey
    而这个 AppKey 需要绑定服务器 IP 才能使用
    这台服务器只需要请求交易所 API 来交易
    xcodeghost
        32
    xcodeghost  
       2020-04-15 11:09:00 +08:00
    除了被 DDOS 攻击,理论上很安全了。
    henvm
        33
    henvm  
       2020-04-15 11:09:25 +08:00
    @sodora #26 我也只是好奇,不是拆楼主的台。他这个的业务需求怎么怕别人攻击。
    我以为楼主防的是入侵攻击,比如扫描漏洞端口,入侵服务器。他连别人 DDOS 也考虑到。
    他都不提供对外服务,就好比你在街上租了一个店面,但是你不对外营业,就是平常去别家店里“买东西,获取东西”到自己的店里,然后重新包装(计算)。别人还会攻击他?你租了店铺都不营业,可以说没有竞争对手吧。但是你租了店铺在这里每天去买人家店里的东西?别人估计会怀疑你搞什么鬼。
    =========
    说了这么多我只是好奇,没有其他恶意。
    henvm
        34
    henvm  
       2020-04-15 11:14:53 +08:00
    @qingwuguo #31 原来是这个啊?其实没不必要担心需求,你把入站请求都屏蔽了。外界一些黑客批量扫描的几乎认为你这个服务器 IP 是一台不存活的。
    受到攻击,要么就是交易所那边泄露了你 IP,你这个软件响所有用户,用户使用你们的软件过程中,抓包的话,是否会抓出你们服务器的 IP,如果是的话,那你这个也不能保证用户是不是有你们的竞争对手参与进来。
    qingwuguo
        35
    qingwuguo  
    OP
       2020-04-15 11:16:39 +08:00
    @henvm 需要直接告诉所有用户,我服务器的 IP,因为生成 appkey,需要用户自己去交易所生成,并且填写这个 IP
    also24
        36
    also24  
       2020-04-15 11:19:13 +08:00
    @qingwuguo #31
    > 而这个 AppKey 需要绑定服务器 IP 才能使用
    > 这台服务器只需要请求交易所 API 来交易


    那么这些交易信息是如何传递给这台服务器的呢?这实际上是个入口
    henvm
        37
    henvm  
       2020-04-15 11:20:22 +08:00   ❤️ 1
    @qingwuguo #31 那你这种还确实需要防止有恶意的人,来套你 IP 出来,然后攻击你。那这个的话。
    如果你们能与交易所达成协议,双方之间使用 VPN 通道走内网,这样应该能杜绝。
    qingwuguo
        38
    qingwuguo  
    OP
       2020-04-15 11:21:06 +08:00
    @also24 关闭所有入口 ,服务器依然可以请求其它服务器 API 的
    also24
        39
    also24  
       2020-04-15 11:23:25 +08:00
    @qingwuguo #38
    我的意思是说,你不需要对这个软件做任何的外部实时控制了嘛?

    类似于修改下交易策略、交易参数之类的操作是如何进行的?

    还是说部署的时候一次性配好,每次修改都从云主机控制台进去操作?
    coymail
        40
    coymail  
       2020-04-15 11:23:27 +08:00 via iPhone
    服务器端口全关闭了,几乎没可能会被攻击了,但是这和关机有什么区别
    qingwuguo
        41
    qingwuguo  
    OP
       2020-04-15 11:25:36 +08:00
    @also24 通过读取数据库和请求交易所 API 来获取信息
    henvm
        42
    henvm  
       2020-04-15 11:26:09 +08:00
    @coymail #特殊应用确实可以关闭入站端口,就好比我们平时在家里使用电脑炒股一样。只是他这个用服务器来帮别人炒股。
    henvm
        43
    henvm  
       2020-04-15 11:28:28 +08:00
    @qingwuguo #41 他的意思是说 用户下载你开发的软件,这个软件肯定是需要连接你的服务器来请求展示数据给用户看,如果不开入站请求,用户怎么使用软件。
    我觉得你这个软件是直接运行在服务器上。用户只要到交易所申请 APPKEY 提交给你们,然后剩下的事情就是你们去操作。
    coymail
        44
    coymail  
       2020-04-15 11:30:45 +08:00 via iPhone
    看了圈回复,楼主就是想要云服务器但是所使用的是家宽的那种性质,只与外网主动发起连接但是不提供服务,这种情况,交易所的 ip 或者域名白名单就可以了,其余数据包 drop 掉,这种情况下没有安全问题
    also24
        45
    also24  
       2020-04-15 11:31:39 +08:00
    @qingwuguo #41
    本地数据库还是远程?

    远程数据库的话,也许可以通过对这个数据库进行攻击,构造数据。

    当然,只是说也许存在,实际执行的可能性仍然是极小的。
    henvm
        46
    henvm  
       2020-04-15 11:33:59 +08:00   ❤️ 1
    @coymail #44 IP 因为要泄露给用户拿去交易所申请 APPKEY,不排除恶意用户得到 IP,来 DDOS 。ddos 的话关机都没有,打包服务器提供商带宽只能被劝退。
    henvm
        47
    henvm  
       2020-04-15 11:39:50 +08:00   ❤️ 1
    @coymail #41 《交易所的 ip 或者域名白名单就可以了》 这个不存在的,交易所不会自动发起请求他的服务器 IP,所以没有这个一说。只有他服务器主动发起请求给交易所。防止的就是 IP 泄露给用户被 DDOS,然后带宽被打爆,服务器提供商劝退。
    唯一的办法就是与交易所达成交易采用 VPN 内网连接,来杜绝 IP 泄露。当然这个不现实
    Yourshell
        48
    Yourshell  
       2020-04-15 11:40:27 +08:00
    跟你拿锤子锤墙同理
    alphatoad
        49
    alphatoad  
       2020-04-15 11:57:20 +08:00 via iPhone
    DDoS 又不是只有传输层的嘛
    henvm
        50
    henvm  
       2020-04-15 12:11:49 +08:00
    @alphatoad DDOS 就是打带宽流量的,只要知道你的 IP 就行,你关机都没用。流量还是会过来,最主要的影响还不是你,而是服务提供商。
    比如别人打你 IP,你在服务器提供商拿了 100M 带宽,机房出口 100G 如果有 80G 流量打过来机房就受好大的影响。
    有的机房有清洗设备,有的没有。100G 的出口部署硬件防火墙,打 80G 过来,平时机房总业务量在 50%,那受影响很大的。清洗不过来。而且清洗服务是要钱的。
    libook
        51
    libook  
       2020-04-15 12:39:19 +08:00   ❤️ 1
    安全都是相对的,看你参照的是哪些种类的威胁。

    如果是主动扫描攻击的话,楼主的方案是安全的。
    但如果是 DDoS 攻击的话,这种策略可能不能应对。
    还有其他的攻击方式,比如服务器每隔一段时间会自动请求另一个服务器(很多高危的都不是站长主动开的,一般是系统自带的服务,比如 DNS 、NTP 、自动检查系统更新等),那么可以攻下这外部服务器,等楼主的服务器主动过来请求,再返回恶意数据。如果这些自动发送出站请求的程序存在漏洞的话,可能就会被攻击而开放系统管理权限。
    还有就是社会工程学的攻击,比如通过钓鱼邮件之类的手段欺骗楼主打开端口或套取登录服务器的方式,又或者通过恶意软件控制楼主终端,待楼主使用终端登录服务器的时候发起攻击。

    建议:
    即时更新系统和软件,避免存在漏洞被利用。
    使用有行为分析的防火墙,识别出异常流量自动防御。
    登录服务器使用双重认证,避免任何一个登录凭据泄露导致系统失守。
    警惕钓鱼和诈骗,链接不随便点、文件不随便下,多验证信息来源的真实性。
    Richardyyz
        52
    Richardyyz  
       2020-04-15 12:58:53 +08:00
    我在想反向代理能解决用户端泄露 ip 的可能性吧?
    交易所不清楚,但是券商可以谈专线。
    lysS
        53
    lysS  
       2020-04-15 13:52:08 +08:00
    没有请求怎么回复??? 又不是广播
    AlghaPorthos
        54
    AlghaPorthos  
       2020-04-15 13:59:52 +08:00
    我个人刚刚玩服务器,不知道这么说合不合适:
    每一次访问就像是敲博物馆的门,你是保安,决定开门还是关门。但是如果被 DDoS,网络就会因为敲门次数太多而无法找到正常的游客——要么全部放进来,要么全部拒绝,要么用技术手段解决。但前提是你的服务器够好。
    workspace
        55
    workspace  
       2020-04-15 14:04:00 +08:00
    不能, 别人不能连接到你的任何服务,包括你自己。
    FS1P7dJz
        56
    FS1P7dJz  
       2020-04-15 14:08:14 +08:00
    那你这样的服务器还有啥意义呢...
    iminto
        57
    iminto  
       2020-04-15 14:28:10 +08:00   ❤️ 1
    DDOS 就是锤子,你不想让屋里的人提供服务,于是你把门关了,但是没用啊,直接把你门砸了。

    同理,不管如何,防火墙都需要执行阻断这个动作,光是执行这个阻断动作就足以让 DDOS 直接把你防火墙干死了。
    mysy2001
        58
    mysy2001  
       2020-04-15 16:30:13 +08:00
    端口都关了,跟你拿锤子锤墙同理。

    物理服务器我会前端加个防火墙设备,IPS 最好,IDS 也可以,
    分散压力搞个 F5 设备,后面挂多台物理机,硬抗流量。
    GKLuke
        59
    GKLuke  
       2020-04-15 16:48:20 +08:00
    frp 什么的情况考虑么
    pmispig
        60
    pmispig  
       2020-04-15 16:53:02 +08:00
    攻击你,流量不需要到你这,上一级就掐了,你就死了
    sampeng
        61
    sampeng  
       2020-04-15 18:37:10 +08:00 via iPhone
    这种情况请用 nat
    sampeng
        62
    sampeng  
       2020-04-15 18:38:49 +08:00 via iPhone
    nat+workspace 。安全
    sampeng
        63
    sampeng  
       2020-04-15 18:41:36 +08:00 via iPhone   ❤️ 1
    哦。一定要公布 ip 。再套个负载均衡器解决
    dreamage
        64
    dreamage  
       2020-04-15 18:44:15 +08:00   ❤️ 1
    @qingwuguo 多公布 IP 是对的 但不是做假 IP 被打 而是真正要做多机房出口……真被封了某个 IP 还可以换其它出口
    felixcode
        65
    felixcode  
       2020-04-15 18:46:17 +08:00 via Android
    最好能有个中转的服务器,客户端那里用域名访问中转服务器,不然你 ip 暴露以后想改也不好改
    memeda
        66
    memeda  
       2020-04-15 21:20:50 +08:00
    物理隔离都能被隔离,更何况联网的,可以攻击你的母鸡啊
    Tink
        67
    Tink  
       2020-04-15 22:02:06 +08:00 via iPhone
    @coymail 出站是开的
    newmlp
        68
    newmlp  
       2020-04-15 22:16:30 +08:00
    流量攻击啊,才不管你连不连的了,直接把你带宽占完正常连接就进不来了
    Fcsle
        69
    Fcsle  
       2020-04-16 09:13:36 +08:00
    你直接关机不就行了??
    energetic
        70
    energetic  
       2020-04-16 09:39:13 +08:00
    只保留必要的端口,套个 CDN 隐藏自己的服务器 IP 就行吧,没必要搞这么复杂
    no1xsyzy
        71
    no1xsyzy  
       2020-04-16 15:38:49 +08:00
    @libook #51 供应链攻击和社会工程学攻击,都算 APT 范畴了吧
    量化交易倒是要考虑下这个。
    另外,DNS 考虑下是否可以被泛洪抢答然后接 MITM 。
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1129 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 19:59 · PVG 03:59 · LAX 12:59 · JFK 15:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.