当我使用 SSH 时,我希望获得denyhosts
我读到的这里,但使用以下命令时:
sudo apt-get install denyhosts
为了安装它,我收到此错误:
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package denyhosts
那么这个软件包不再可用了吗?还是只是换了个名字之类的?如果这个软件包在 Ubuntu 主存储库中不再可用,我还能从其他地方获取它吗?
操作系统信息:
Description: Ubuntu 14.10
Release: 14.10
答案1
Denyhosts 不再可用。您可以使用 fail2ban 或更好的方法,一些 ssh 技巧。
使用 ssh 密钥并禁用密码验证。
iptables 的功能与denyhosts 和fail2ban 基本相同。优点是不需要额外的软件包。
iptables -A INPUT -p tcp -m tcp --dport 22 -m tcp -m state --state NEW -m recent --set --name SSH --rsource iptables -A INPUT -p tcp -m tcp --dport 22 -m recent --update --seconds 600 --hitcount 8 --rttl --name SSH --rsource -j REJECT --reject-with icmp-host-prohibited iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
看:
http://bodhizazen.com/Tutorials/SSH_security
http://bodhizazen.com/Tutorials/iptables#Additional_Tips
在第二个链接上,向下滚动一点。您需要保存并恢复您的 iptables 规则。
答案2
运行以下命令下载 2.10 版本
cd /tmp/ && wget http://cznic.dl.sourceforge.net/project/denyhost/denyhost-2.10/denyhosts-2.10.tar.gz
接下来,运行以下命令来提取它。
tar xzf denyhosts*.tar.gz
然后运行以下命令进入解压的文件夹
cd DenyHosts*
最后,运行以下命令来安装程序
sudo python setup.py install
运行上述命令后,DenyHosts 将安装在您的服务器上,但尚未完全配置,您必须手动配置该工具。
将守护程序文件复制到/etc/init.d/
目录。
sudo cp /usr/local/bin/daemon-control-dist /etc/init.d/denyhosts
接下来,打开脚本(sudo vi /etc/init.d/denyhosts
)并进行以下突出显示的更改
###############################################
#### Edit these to suit your configuration ####
###############################################
DENYHOSTS_BIN="/usr/local/bin/denyhosts.py"
DENYHOSTS_LOCK="/run/denyhosts.pid"
DENYHOSTS_CFG="/etc/denyhosts.conf"
PYTHON_BIN="/usr/bin/env python"
安装后,配置完毕,即可保护您的服务器。大多数网站管理员都会将自己的 IP 地址列入白名单,以免被错误地屏蔽或禁止。
要将您自己的 IP 地址列入白名单,请打开 /etc/ 目录中的允许主机文件并添加您用于连接服务器的 IP 地址。
sudo vi /etc/hosts.allow
然后在文件中添加您的 IP 地址并保存。
###############
####Example####
###############
sshd: 172.145.33.45
通过运行以下命令重新启动 DenyHosts。
sudo /etc/init.d/denyhosts start
DenyHosts 配置文件位于/etc/denyhosts.conf
。