欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入
1. Openssh 安全配置
这节主要讲与SSH有关的安全配置
1.1. 禁止root用户登录
只允许普通用户登陆,然后通过su命令切换到root用过。后面还会将怎样限制su命令
PermitRootLogin no
1.2. 限制SSH验证重试次数
超过3次socket连接会断开,效果不明显,有一点点用。
MaxAuthTries 3
1.3. 禁止证书登陆
证书登陆非常安全,但是很有可能正常用户在你不知道情况下,给你安装了一个证书,他随时都可能进入你的系统
任何一个有权限的用户都能很方便的植入一个证书到 .ssh/authorized_keys 文件中
PubkeyAuthentication no
AuthorizedKeysFile /dev/null
1.4. 使用证书替代密码认证
是不是自相矛盾? 这个跟上面讲的正好相反,这里只允许使用key文件登陆。
PasswordAuthentication no
这种方式比起密码要安全的多,唯一要注意的地方就是证书被拷贝 ,建议你给证书加上 passphrase.
证书的 passphrase 是可以通过openssl工具将其剥离的,SSH证书我没有试过,但是原理都差不多。
1.5. 图形窗口客户端记忆密码的问题
当你使用XShell, Xftp, WinSCP, SecureCRT, SecureFX ……等等软件登录时,该软件都提供记住密码的功能,使你下次再登陆的时候无须输入密码就可以进入系统。这样做的确非常方便,但是你是否想过你的电脑一旦丢失或者被其他人进入,那有多么危险。我之前每天背着笔记本电脑上班,上面安装着XShell并且密码全部记忆在里面。这使我意识到一点电脑丢失,有多么可怕。
禁止SSH客户端记住密码,你不要要求别人那么做。你也无法控制,最终我找到了一种解决方案。
ChallengeResponseAuthentication yes
每次登陆都回提示你输入密码。密码保存也无效。
1.6. 关闭 GSSAPI
GSSAPIAuthentication no
#GSSAPIAuthentication yes
#GSSAPICleanupCredentials yes
#GSSAPICleanupCredentials yes
#GSSAPIStrictAcceptorCheck yes
#GSSAPIKeyExchange no
1.7. 禁止SSH端口映射
禁止使用SSH映射Socks5翻墙等等
AllowTcpForwarding no
1.8. IP地址限制
只允许通过192.168.2.1,192.168.2.2 访问本机
# vim /etc/hosts.allow
sshd:192.168.2.1,192.168.2.2
禁止所有人访问本机
# vim /etc/hosts.deny
sshd:ALL
上面使白名单策略,你也可以采用黑名单策略。
2. Shell 安全
2.1. .history 文件
SA的操作记录问题
通过~/.bash_history文件记录系统管理员的操作记录,定制。bash_history格式
HISTSIZE=1000
HISTFILESIZE=2000
HISTTIMEFORMAT=”%Y-%m-%d-%H:%M:%S “
export HISTTIMEFORMAT
看看实际效果
$ history | head
1 2012-02-27-09:10:45 do-release-upgrade
2 2012-02-27-09:10:45 vim /etc/network/interfaces
3 2012-02-27-09:10:45 vi /etc/network/interfaces
4 2012-02-27-09:10:45 ping www.163.com
[1][2][3][4]
接受失败更是一种智者的宣言和呐喊