V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
thekll
V2EX  ›  Linux

如何用 iptables 实现只允许内网以及外网指定 ip 段的主机访问服务器某个端口?

  •  
  •   thekll · 2014-06-24 04:41:53 +08:00 · 20921 次点击
    这是一个创建于 3811 天前的主题,其中的信息可能已经有所发展或是发生改变。
    发现总有一些闲着没事干的整天在网络上瞎扫瞄,还爆破ssh密码,连放在8080的web应用也不得安宁…

    所以想临时先限制一些不相干的IP,只让内网和本地省份的IP段可以访问服务器,用iptables来做的话应该注意些什么?iptables博大精深,目前还没完全搞清楚,服务器又不在本地,担心配错了连自己都进不去就麻烦了。
    google一圈,发现写法各异,目前想法是直接编辑iptables,添加规则,然后save,再重启iptables.规则部分怎么写呢?
    看了 http://blog.csdn.net/mangdun/article/details/8103868 ,还是不敢下手,求指点。

    @clowwindy
    5 条回复    2014-06-24 17:03:13 +08:00
    helloworld00
        1
    helloworld00  
       2014-06-24 04:54:14 +08:00   ❤️ 1
    1. 关闭root登录

    2. 用denyhosts http://denyhosts.sourceforge.net/
    自动扫描你log里尝试密码错误超过一定次数的ip然后自动添加到iptable里给屏蔽

    3. 关闭ssh密码登录,用private/public key登录一劳永逸
    helloworld00
        2
    helloworld00  
       2014-06-24 04:58:35 +08:00   ❤️ 1
    这里说的很详细
    https://help.ubuntu.com/community/IptablesHowTo

    基本规则也就是你说的那种。
    jasontse
        3
    jasontse  
       2014-06-24 07:31:48 +08:00 via iPad   ❤️ 1
    # 允许内网
    iptables -A INPUT -p tcp -s 192.168.1.0/24 --dport 22 -j ACCEPT
    # 禁止其它
    iptables -A INPUT -p tcp --dport 22 -j DROP

    以此类推。
    rrfeng
        4
    rrfeng  
       2014-06-24 09:52:21 +08:00   ❤️ 2
    修改之前在 crontab 里加入『每 5 分钟关闭一次 iptables』的计划任务。
    修改完确认无误之后再删掉
    thekll
        5
    thekll  
    OP
       2014-06-24 17:03:13 +08:00 via iPhone
    @jasontse

    基本就是按照这种方式先临时处理的,有效。
    发现iptables规则是按顺序匹配的,规则顺序一定不能写错。
    其他复杂一点的规则不敢写。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1168 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 22:52 · PVG 06:52 · LAX 14:52 · JFK 17:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.