zoukankan      html  css  js  c++  java
  • 保护自己的VPS

    这段时间,我的VPS服务器也还是只部署了一套SS在网上裸奔。今天琢磨着,这样太危险了。只要有黑客扫到我的服务器,简直伸手就可以拿来用。为了给小黑制造点麻烦(真正NB的黑客是挡不住的,当然他们也不大会看得上的我的VPS),我在网上查找资料,利用iptables设置了一套简单的防火墙。

    学习资料

    建立规则

    和上篇一样,我把这个过程写成了Bash脚本文件,代码如下:
    (我的代码重度参考了文章Linux上iptables防火墙的基本应用教程

    #!/bin/bash
    # 清除已有iptables规则
    iptables -F
    iptables -X
    iptables -Z
    # 开放本机向外的所有访问
    iptables -A OUTPUT -j ACCEPT
    # 允许本地回环接口(即运行本机访问本机)
    iptables -A INPUT -i lo -j ACCEPT
    # 允许已建立的或相关连的通行
    iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    # 开放ssh端口
    echo Input Server SSH port
    read ServerSSHport
    iptables -A INPUT -p tcp --dport $ServerSSHport -j ACCEPT
    # 开放ShadowSocks Server端口
    echo Input ShadowSocks Server port
    read ShadowSocksServerPort
    iptables -A INPUT -p tcp --dport $ShadowSocksServerPort -j ACCEPT
    # 参照上几条规则,开放自己需要的服务端口,比如HTTP、FTP、VPN等
    # 不允许其它机器ping通本机
    iptables -A INPUT -p icmp -j REJECT
    # 最后两条,禁止所有未允许的访问,禁止所有未允许的转发
    iptables -A INPUT -j REJECT
    iptables -A FORWARD -j REJECT
    

    查看状态

    运行脚本后,防火墙规则就建立好了。执行代码iptables -L -n可以查看当前规则。

    Chain INPUT (policy ACCEPT)
    target     prot opt source               destination         
    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:SSH_PORT
    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:SS_PORT
    REJECT     icmp --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable
    REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable
    
    Chain FORWARD (policy ACCEPT)
    target     prot opt source               destination         
    REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable
    
    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination         
    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0       
    

    自动保存

    在Ubuntu环境下,iptables代理规则是没法自动保存。网上资料推荐的方法是:修改脚本执行权限让网卡关闭是保存iptables规则,启动时加载iptables规则。DigitalOcean则很用心的写了一篇iptables设置教程推荐了iptables-persistentdeb包。在安装deb包时会自动检测当前的iptables规则,并生成文件在下次重启时自动加载。

    sudo apt-get install iptables-persistent
    
  • 相关阅读:
    Python XPath抓取小说《三国演义》《一》
    Python 爬虫学习路径
    Python爬虫练习:抓取笔趣阁小说(一)
    import win32api 安装pip install pypiwin32
    pycharm 选中多行,点back space键无法删除
    No module named 'wx'
    python GUI wxPython
    python -m pip install --upgrade pip 失败
    停更一年了,要不要回归呢,离开了运维行业也一年了。
    zabbix使用percona的mysql监控模板监控
  • 原文地址:https://www.cnblogs.com/rim99/p/5009934.html
Copyright © 2011-2022 走看看