APP下载

配置防火墙规则保SSH安全

2017-03-09

网络安全和信息化 2017年9期
关键词:命令黑客数据包

对 于Linux来说,使用SSH连接可以实现远程访问。不过,这也成了黑客重点攻击的目标。如果黑客破译了连接密码,就可以轻松的对SSH服务器进行渗透和破坏。因此,如何保护SSH服务的安全,是管理员必须重视的问题。除了使用各种安全软件外,利用Linux中内置的NetFilter防火墙模块,通过编写简单的规则,就可以有力的保护SSH连接的安全。

发送特殊数据包,让SSH连接随用随开

对于SSH来说,最好的使用方法是随用随开。当使用完毕后,自动将其关闭。这样,不仅利于管理,还可以有效防范黑客偷袭。其实,只有合理配置规则,就可以实现上述功能。例如管理员可以自定义ping数据包的大小,当发送特定大小的ping数据包时,可以开启或者关闭TCP 22端口。执行“iptables-A INPUT -p icmp -icmptype echo-request -m length -length 1028 LOG-log-prefix "autossh"”命令,可以在“Filter”表中的“INPUT”链中追加一条规则,其作用是对于发送长度为1028字节的ping数据包的网络连接进行记录,将其添加“autossh”的前缀信息,存放到系统日志中。

其中的“-p icmp”参数表示处理ICMP协议,“-icmp-type echo-request”参数表示匹配ICMP连接类型,这里为请求连接的ping数据包。“-m”参数表示使用扩展匹配选项,“length-length 1028”参数表示匹配特定长度的ICMP数据包,这里长度为1028字节。“-log-prefix”参数表示执行记录操作,并添加指定的前缀。执行“iptables -A INPUT -p icmp-icmp-type echo-request-mlength-length 968-m recent -set -name opendoor -rsource -j ACCEPT”命令,可以追加一条规则,对于符合上述长度要求的ICMP连接进行记录,记 录 文 件 为“opendoor”。“--rsource”参数表示同步记录源地址。

执行“iptables -A INPUT -p tcp -dport 22-syn -m recent -rcheck-s econds 60 -name opendoor -rsource -j ACCEPT”命令,来追加一条规则。其作用是检测在60秒时间内,在名为“opendoor”的记录文件内是否存在地址记录信息,如果有的话,就允许其连接本机TCP 22端口。执行“iptables -A INPUT-p icmp -icmp-type echorequest -m length -length 1098 -m recent -set-name opendoor -rmove -j ACCEPT”命令,可以追加一条规则,其作用是当接收到客户端发来长度为1098字节的ICMP数据包时,将其地址从名为“opendoor”的记录文件中删除,其中的“-rmove”参数表示删除记录文件内容。当然,对于已经存在的连接是允许的。

执行“iptables -A INPUT -m state -state ESTABLISHED -j ACCEPT”命令,添加所需规则即可。这样,在客户端执行“ping xxx.xxx.xxx.xxx -l 1008”,向 Linux服务器(假设其地址为“xxx.xxx.xxx.xxx”)发送长度为 1008的ICMP包,其中的“-l”参数可以指定数据包大小,注意因为ICMP和IP头长度之和为20字节,所以实际发送的指定的长度应该为1008,当Linux服务器接收到该长度的ICMP数据包后,依据上述规则,Linux服务器就允许其使用SSH连接访问了。对应的,执行“ping xxx.xxx.xxx.xxx -l 1078”名命令,向服务器发送长度为1078的ICMP数据包,服务器就会按照预设规则禁止其建立新的SSH连接。对于已经建立的SSH连接,则不予拦截。

防御SYN洪水攻击

SYN攻击属于DoS攻击的一种,它利用TCP协议缺陷,通过发送大量的半连接请求,耗费服务器CPU和内存资源。SYN攻击除了能影响主机外,还可以危害路由器、防火墙等网络系统,事实上SYN攻击并不管目标是什么系统,只要这些系统打开TCP服务就可以实施。对于非伪造IP发起的SYN洪水攻击,可以使用对应的IPTables规则进行防御,这对于防御CC攻击同样有效。

执行“iptables -A INPUT -p tcp -dport 80-syn recent -name antidos-rcheck -seconds 30-hitcount 10 -j LOG -log-prefix ‘fyhs:’ -logip-options”命令,可以追加一条规则,其作用是当客户端针对Linux服务器的TCP 80端口发起连接时,如果在30秒内连接的次数超过10个,就记录客户端的IP等信息,其中的“-log-ipoptions”参数表示记录连接着的IP。执行“iptables-A INPUT -p tcp -dport 80 -syn recent -name antidos -rcheck -seconds 30 -hitcount 10 -j DROP”命令,来添加一条规则,当满足以上连接条件后,禁止其继续连接。执行“iptables-A INPUT -p tcp -dport 80 -syn -m recent -name antodos -ser -j ACCEPT”命令,添加一条规则,其作用是创建名为“antidos”的记录文件,记录符合要求的连接信息,例如10条以内的连接信息等。

抗击字典破解,保护密码安全

为便于远程管理Linux服务器,一般会开启SSH连接通道,让管理员可以远程登录到Linux服务器执行各种操作。黑客为非法控制目标Linux服务器,也会想方设法破解SSH连接密码。黑客往往会借助专用的破解工具,配合密码字典来加快密码破解速度。为防范这种入侵,可以执行“iptables -A INPUT -p tcp -syn -dport 22 -m recent -name caice-update -seconfs 120-hitcount 4 -j DROP”命令,在“Filter”表中的“INPUT”链中追加一条规则,其作用是如果在120秒内检测到针对TCP 22端口的首次连接的数量超过4次,就对其进行拦截。

其中的“-p tcp”参数表示针对TCP协议生效,因为SSH使用的是TCP 22端口。“-dport”参数表示目标端口为 22,“-name caice”参 数表示记录文件名为“caice”。执行“iptables -A Input-p -syn -dport 22 -m recent -name caice --set-j ACCEPT”命令,追加一条防火墙规则,其作用是创建名为“caice”的记录文件,将首个SSH连接信息写入到该记录文件中,作为上一条规则的检测条件。

即如果黑客在2分钟内连续建立的连接超过预设值,就被视为非法破解密码行为,防火墙即可对其进行拦截。使用VI命令打开“/etc/ssh/sshd_config”文件,在其中的“MaxAuthTries”参数中存储的是最大允许连接次数,默认为6。为安全起见,建议为其设置一个更小的数值,例如只允许尝试3次连接等。若黑客使用专用破解工具的话,会在终止连接后,自动向Linux服务器发送带有SYN标记的数据包来欺骗服务器实现连续猜测密码。利用上述防火墙规则,就可对其进行有效防御了。

对于非加密连接是可以针对其发送的数据包中的特征字符串进行过滤拦截的。如对邮件服务器,其提供的POP3服务提供收信功能。若黑客破解用户邮箱密码,使用WireShark等嗅探工具,针对POP3的连接过程进行分析,可发现当使用错误密码连接时,在返回的数据包中出现“-ERR Authentication failed”字样。

当黑客对POP3服务器进行密码破解时,也必然在返回的数据包中出现以上内容,因为黑客必须经过很多次的尝试方可。因此执行“iptables -A OUTPUT -p tcp --algo bm -sport 110 -m string-algo bm -string "-ERR Authentication failed "-m recent -name mailcc-update -seconds 600-hitcount 6 -j REJECT”命令,可以在“Filter”表中的“OUTPUT”链中追加一条规则,其作用是检测针对源TCP 110端口发出的数据包的内容进行过滤,如果发现其中包含“-ERR Authentication failed”内容,并且在名为“mailcc”的记录文件中记录的连接数量在600秒内超过6次时,就对其拦截。

其中的“OUTPUT”参数表示针对的是“OUTPUT”链,因为POP3服务器会将应答信息通过该“OUTPUT”链返回给客户端。“-sport 110”参数表示源端口为110,“--algo bm”参数表示使用的匹配的算法为Boyer-Mppre,参数“-string”表示匹配指定的字符串,“-j REJECT”参数表示执行拦截操作,但是会给客户端发送一个ICMP包给客户端。表示网络连接出现了问题。继续执行“iptables-A OUTPUT -p tcp --algo bm -sport 110 -m string-algo bm -string "-ERR Authentication failed "-m recent -name mailcc-set”命令,来追加一条规则,其作用是创建名为“mailcc”的记录文件,记录下针对满足以上条件的网络连接,为上一条规则提供检测基础。

猜你喜欢

命令黑客数据包
欢乐英雄
多少个屁能把布克崩起来?
只听主人的命令
网络黑客比核武器更可怕
SmartSniff
移防命令下达后
这是人民的命令
基于Libpcap的网络数据包捕获器的设计与实现
视觉注意的数据包优先级排序策略研究
蓝色命令