ssh服务器配置文件是/etc/ssh/sshd_conf
1 port 22 修改ssh监听端口
2 protocol 2 仅允许ssh协议版本2
3 permitrootlogin no 不允许root用户通过ssh登录同时创建一个没有实际权限的虚拟用户natasha并确保属于wheel组用作ssh登录
4 allowusers natasha 仅允许用户natasha通过ssh登录
5 ssh-keygen -t dsa 创建dsa密钥对 私钥位置 ~/.ssh/id_dsa 公钥位置 ~/.ssh/id_dsa.pub 拷贝公钥中的内容到另一台机器的~/ssh/authorized_keys文件中
chmod 600 ~/.ssh/authorized_keys 修改该文件的权限
去掉下面3行的注释
RSAAuthentition yes
PubkeyAuthentication no 只允许dsa认证登录
AuthorizedKeysFile %h/.ssh/authorized_keys
6 tcp wrappers仅允许指定的主机连接
在/etc/hosts.deny 添加sshd:all 所有主机拒绝ssh服务
在/etc/hosts.allow 添加sshd:192.168.1 192.180.177.13 允许192.168.1.0网段和192.168.177.13使用ssh服务
7 使用iptables允许特定的主机连接
iptables -A INPUT -p tcp -m state --state NEW --source 193.180.177.13 --dport 22 -j ACCEPT 允许一个特定的主机连接到你的ssh服务
iptables -A INPUT -p tcp --dport 22 -j DROP 确保没有其他的主机可以访问ssh服务
8 ssh时间锁定
第一个例子,如果一个用户输入了错误的密码,锁定一分钟内不允许在访问SSH服务,这样每个用户在一分钟内只能尝试一次登陆:
~# iptables -A INPUT -p tcp -m state --syn --state NEW --dport 22 -m limit --limit 1/minute --limit-burst 1 -j ACCEPT
~# iptables -A INPUT -p tcp -m state --syn --state NEW --dport 22 -j DROP
第二个例子,设置iptables只允许主机193.180.177.13连接到SSH服务,在尝试三次失败登陆后,iptables允许该主机每分钟尝试一次登陆:
~# iptables -A INPUT -p tcp -s 193.180.177.13 -m state --syn --state NEW --dport 22 -m limit --limit 1/minute --limit-burst 1 -j ACCEPT
~# iptables -A INPUT -p tcp -s 193.180.177.13 -m state --syn --state NEW --dport 22 -j DROP
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。