`

iptables防火墙禁止某些IP访问ssh的方法分享

阅读更多
本文介绍下,在linux中通过使用iptables防火墙,禁止某些IP或IP段访问ssh服务的方法,有需要的朋友,参考下吧。
web服务器挂掉了,原因不明,要好好查查了,竟然发现是ssh的问题。

查看nginx的日志,在/var/log/nginx中,没有发现任何出错信息。
也可能是系统内存超了,被OpenVZ内核KILL了吧?
查了一下,果然发现:
 

uid resource held maxheld barrier limit failcnt
3004536: kmemsize 3626521 4652581 51200000 51200000 0
lockedpages 0 0 2048 2048 0
privvmpages 34041 131231 131200 262200 3
shmpages 1281 1297 128000 128000 0

私有虚拟页面privvmpages的数值超了,有3次失败请求。一个页面4KB,所以这个VPS的内存是512M.

我在这个VPS上只开启了nginx,vsftpd,Mysqld,php-cgi,xxfpm等服务,不可能占用那么多内存吧。
php的进程数量是用自己写的xxfpm限制死了,只能有3个进程。这些所有的服务一共才占用100多MB内存,怎么可能超了512M呢?

而nginx占用的内存真的很小呀,
 

复制代码代码示例:
root 22333 0.0 0.1 4988 716 ? Ss Apr29 0:00 nginx: master process /usr/sbin/nginx
www-data 22334 0.0 0.3 5524 1740 ? S Apr29 0:00 nginx: worker process

再次查看/var/log下的日志文件,发现auth.log文件体积很大,难道枚举root密码了。
因为sshd会给每个连接fork一个进程,所以当被大量攻击时,ssh的进程会变得很多。
 

...
Apr 29 11:39:02 293621 CRON[21809]: pam_unix(cron:session): session closed for user root
Apr 29 12:09:01 293621 CRON[21843]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 29 12:09:01 293621 CRON[21843]: pam_unix(cron:session): session closed for user root
Apr 29 12:25:01 293621 CRON[21861]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 29 12:25:01 293621 CRON[21861]: pam_unix(cron:session): session closed for user root
Apr 29 12:28:58 293621 sshd[21867]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=208.115.207.253 user=root
Apr 29 12:28:58 293621 sshd[21866]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=208.115.207.253 user=root
Apr 29 12:29:01 293621 sshd[21867]: Failed password for root from 208.115.207.253 port 58931 ssh2
Apr 29 12:29:01 293621 sshd[21866]: Failed password for root from 208.115.207.253 port 56639 ssh2
Apr 29 12:39:01 293621 CRON[21879]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 29 12:39:01 293621 CRON[21879]: pam_unix(cron:session): session closed for user root
Apr 29 13:09:01 293621 CRON[21913]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 29 13:09:01 293621 CRON[21913]: pam_unix(cron:session): session closed for user root
Apr 29 13:25:01 293621 CRON[21931]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 29 13:25:01 293621 CRON[21931]: pam_unix(cron:session): session closed for user root
Apr 29 13:39:01 293621 CRON[21947]: pam_unix(cron:session): session opened for user root
...

对付这种攻击,可以限制IP、用户连接数,也可以取消root账户密码登录,采用证书认证。
之前脚本学堂,发过一篇文章:免口令登录远程SSH服务,就是使用证书登录的。

个人觉得,最有效的方法,还是使用iptables防火墙,在防火墙里设置IP白名单。
即避免了产生大量的流量,也不会产生sshd的连接进程。

在iptables中,添加两个常用的IP段,其他网段的数据包都DROP了,而不是REJECT(REJECT还要发送ICMP回应包给连接方)。
 

复制代码代码示例:
# iptables -A INPUT -p tcp --dport 22 -s 120.0.0.0/8 -j ACCEPT
# iptables -A INPUT -p tcp --dport 22 -s 183.0.0.0/8 -j ACCEPT
# iptables -A INPUT -p tcp --dport 22 -j DROP

测试:
在另外一个机子连接这个VPS,数据包被成功DROP了。
 

复制代码代码示例:
root@293621:~# iptables -vL
Chain INPUT (policy ACCEPT 36 packets, 6257 bytes)
pkts bytes target prot opt in out source destination
222 16280 ACCEPT tcp -- any any 120.0.0.0/8 anywhere tcp dpt:ssh
0 0 ACCEPT tcp -- any any 183.0.0.0/8 anywhere tcp dpt:ssh
4 240 DROP tcp -- any any anywhere anywhere tcp dpt:ssh

又一次体会到iptables的威力,看来这块的内容,得找个时间好好加强下,好用啊。

本文出处参考:http://www.jbxue.com/LINUXjishu/9833.html

分享到:
评论

相关推荐

    Linux防火墙iptables入门教程

    Iptables是一个基于命令行的防火墙工具,它使用规则链来允许/阻止网络流量。当一条网络连接试图在你的系统中建立时,iptables会查找其对应的匹配规则。如果找不到,iptables将对其采取默认操作。几乎所有的Linux发行...

    firewall:使用 iptables 在 Linux 中生成防火墙的 bash 脚本集。 基于

    防火墙使用 iptables 在 Linux 上管理防火墙的脚本。标准用法您只需要运行一个脚本来管理防火墙,但您可以向其传递各种命令。 它们通常应按显示的顺序运行。 请注意,所有命令都需要以 root 权限执行(例如,通过...

    Linux CentOS上用iptables设置防火墙遇到的问题

     允许入站ssh连接 iptables -A INPUT -p tcp –dport 22 -m state –state NEW,ESTABLISHED -j ACCEPT  允许针对eth0网卡的入站8092端口访问 iptables -A INPUT -i eth0 -p tcp -m tcp –dport 8092 -j ...

    Docker中iptables规则在iptables重启后丢失的完整过程

    msg: /bin/sh: /usr/bin/python: No such file or directory\r\nOpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n 7 Dec 2017\r\ndebug1: Reading configuration data /etc/ssh/ssh_config\r\ndebug1: /etc/ssh/...

    commonsec:在默认的 Ubuntu SSH 和防火墙配置上降低舱口

    常识安全 ... 使用 ip_conntrack 限制 SSH 登录尝试 禁用 SSH 密码登录 禁用 root 登录 将用户添加到 sudoers 警告,这将覆盖: /etc/ssh/sshd_config 你的 iptables 设置 在 /etc/sudoers.d 中进行修改

    Shell监控iptables运行状态

    最近在调试服务器的iptables,自己做了个定时关iptables,但晚上回家很少开电脑,所以就没法去启动iptables,当然你可能会说,为什么不取消定时关闭iptables,我只能说个人的环境不一样,需求也就不一样. 脚本内容: 代码...

    firewallsetup:快速防火墙设置

    这是一个用于设置防火墙的脚本,其中包含用于tar ssh的设置以及每个人都需要的基本保护。 将规则下载到/ etc / git clone https://github.com/ChrisTitusTech/firewallsetup.git 使规则永久化 基于Debian的发行版 ...

    CentOS服务器iptables配置简单教程

    iptables是Linux类服务器重要的网络安全防范系统工具,考虑到多数服务器有专门的团队托管,服务器管理员多数时间只能通过SSH进行远程管理,在安全允许的情况下,保证SSH的合法联通,需要做如下的配置。 iptables -P...

    Abuse-IP-blacklist:我的服务器和路由器上收集了滥用IP黑名单

    滥用IP黑名单我的服务器和路由器上收集了滥用IP黑名单这些列表(1天,7天和30天)在这里主要供我个人使用,由我的服务器收集并分发回去,以在防火墙之间交换滥用IP黑名单。 这些列表每天更新一次。 所有IP(IPv4 / ...

    Centos 6.5 服务器优化配置备忘(一些基础优化和安全设置)

    2、ifconfig查询IP进行SSH链接 3、更新系统源并且升级系统 4、系统时间更新和设定定时任 5、修改ip地址、网关、主机名、DNS 6、关闭selinux,清空iptables 7、创建普通用户并进行sudo授权管理 8、修改SSH端口号和...

    企业级Linux服务攻略

    1.2.2 使用ifconfig配置IP地址及辅助IP地址 1.2.3 禁用和启用网卡 1.2.4 更改网卡MAC地址 1.2.5 route命令设置网关 1.2.6 网卡配置文件 1.2.7 setup命令 1.2.8 修改resolv.conf设置DNS 1.3 网络环境测试 1.3.1 ping...

    kvm-practice:kvm虚拟化实践,包含nat、bridge方式创建windows、linux虚拟机详细步骤

    使用ssh访问虚拟机 4、nat方式创建linux虚拟机 配置iptables端口转发,使用使用远程连接访问虚拟机 5、VMWare三种网络模式 三种模式描述,适用场景 实际生产部署模式 5、iptables学习笔记 HOOK规则、原理 防火墙/...

    hadoop-2.4.1安装软件包以及教程jdk.zip

    1.0点击VMware快捷方式,右键打开文件所在位置 -> 双击vmnetcfg.exe -> VMnet1 host-only ->修改subnet ip 设置网段:192.168.1.0 子网掩码:255.255.255.0 -> apply -> ok 回到windows --> 打开网络和共享中心...

    fwknop:单个数据包授权>端口敲门

    SPA仅需要一个经过HMAC加密,不可重播和经过身份验证的单个数据包,以传达对默认情况下丢弃过滤状态下隐藏在防火墙后面的服务的所需访问权限。 SPA的主要应用是使用防火墙来丢弃所有尝试连接到服务(例如SSH)的...

    Linux常用的命令。。。。。

    /etc/cron.deny 禁止使用计划任务 计划任务中执行脚本: command 处写 sh *.sh(脚本文件) quota(磁盘配额:限制个人所用的磁盘大小):目录在哪分区,则针对某分区进行磁盘配额 检测:edquota –u user edquota ...

    Turbolinux 学习入门宝典

    4.4.2 防火墙和IPTABLES 的使用 62 4.5 加密 64 4.5.1 ssh 65 4.5.2 Open SSL 65 4.5.3 PGP 65 4.6 CERT ADVISORY 66 4.6.1 TCP/IP 网络自身的攻击 66 4.6.2 服务器程序问题 67 4.6.3 特定应用问题和有效集合的问题 ...

    CentOS 7 在vmware中的网络设置详细介绍

    (1)宿主机网络正常,在虚拟机的centos中无法访问外网。 (2)宿主机可以ping通,且可以使用SSH连接,但无法telnet虚拟机centos的端口。 (3)centos 固定IP问题 (4)防火墙设置问题 经过查阅相关资料及实践,...

    redhat linux教材20课程学习文档

    18.9.3 防火墙iptables 18.10 简单攻击检测 18.11 使用安全工具 18.11.1 saint 18.11.2 SSH 18.11.3 tcplogd 18.11.4 swatch 18.11.5 tcpdump 18.11.6 whois 第十九章 系统优化和核心参数调整 19.1 系统性能与优化...

Global site tag (gtag.js) - Google Analytics