Linux系统安全
摘要 .................................................................................................................................................. 2 一、账户安全 ................................................................................................................................... 2
1.1 禁止root远程登 ............................................................................................................. 2 1.2 密钥登录 ........................................................................................................................... 2
1.2.1 设置密钥登录方法 ............................................................................................... 3 1.3 增加root密码的长度 ..................................................................................................... 3 1.4 配置sudo .......................................................................................................................... 4 1.5 禁止从不同的控制台进行root登陆 ............................................................................. 4 1.6 ssh防暴力破解 ................................................................................................................ 5 二、网络安全 ................................................................................................................................... 6
2.1 禁止ping反应 ................................................................................................................... 6 2.2 防洪水攻击 ........................................................................................................................ 6
2.2.1 DDoS攻击实例 - SYN Flood攻击 ....................................................................... 6 2.2.2 防洪水攻击的方法 ................................................................................................. 8 2.2.3 具体实施: ............................................................................................................. 8 2.3 防止源路由 ........................................................................................................................ 9 三、监控系统日志 ........................................................................................................................... 9
3.1登录日志的定时发送 ......................................................................................................... 9 3.2 更改历史记录 .................................................................................................................... 9 四、漏洞扫描 ................................................................................................................................. 10
4.1 Nessus介绍 ...................................................................................................................... 10 4.2 Nmap软件介绍 ................................................................................................................ 15
摘要
新安装的linux系统潜在的安全隐患较多,这篇文章对linux系统安全做了详细的说明与更改建议。
一、账户安全
1.1 禁止root远程登
由于采用远程使用root登录风险太大,故采用禁止root远程登录的方法。 vim /etc/ssh/sshd_config ###port 改成自己的端口
将PermitRootLogin yes改成PermitRootLogin no 将Usedns yes改成Usedns no service sshd restart
说明:SSH
服务默认启用了DNS反向解析的功能,这种设置会导致我们在通过ssh访问服务器时,如果该服务器的主机名在DNS中无记录的话,由于等待超时而出现响应极慢的情况。这时可对ssh服务器/etc/ssh/sshd_config添加如下设置:UseDNS no
1.2 密钥登录
1.2.1为什么要使用公钥认证
通常,通过ssh登录远程服务器时,使用密码认证,分别输入用户名和密码, 两者满足一定规则就可以登录。但是密码认证有以下的缺点:
① 用户无法设置空密码(即使系统允许空密码,也会十分危险) ② 密码容易被人偷窥或猜到
③ 服务器上的一个帐户若要给多人使用,则必须让所有使用者都知道密码,导致密码容易泄露,而且修改密码时必须通知所有人 而使用公钥认证则可以解决上述问题。
① 公钥认证允许使用空密码,省去每次登录都需要输入密码的麻烦
② 多个使用者可以通过各自的密钥登录到系统上的同一个用户 ③ 即使修改了对应用户的密码,也不会影响登陆
④ 若同时禁用密码认证,则只要保证私钥的安全,不会受到暴力破解的威胁
1.2.2 设置密钥登录方法
在一台机子上新建liuwei用户或其它要登录的用户 在liuwei用户下执行。
ssh-keygen将生成密钥对:\ 将密钥对copy出。 在另一台root下执行 cd /home/ useradd liuwei su - liuwei mkdir .ssh chmod 700 .ssh
echo \公钥\ chmod 600 .ssh/authorized_keys cat .ssh/authorized_keys exit
注视:公钥为用记事本打开copy出的id_rsa.pub文件内容 通过上面设置后使用ssh客户端就可以通过公钥方式登录了。
1.3 增加root密码的长度
将root密码设为20位以上,root密码只有少数人知道。
通过设置/etc/login.defs文件可以设置密码的最小长度,密码过期时间等设置。
1.4 配置sudo
配置sudo使普通用户执行sudo -s即可切换到root目录。普通用户不需要知道root密码。 配置sudo的方法: 在命令行执行: visudo 在下面
## Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL 添加
liuwei ALL=(ALL) NOPASSWD: ALL. 其中liuwei为所要登录的用户。
1.5 禁止从不同的控制台进行root登陆
\文件允许你定义root用户可以从那个TTY设备登陆。你可以编辑\
/etc/securetty\文件,再不需要登陆的TTY设备前添加“#”标志,来禁止从该TTY设备进行root登陆。或者在/etc/inittab文件中有如下一段话: # Run gettys in standard runlevels 1:2345:respawn:/sbin/mingetty tty1 2:2345:respawn:/sbin/mingetty tty2 #3:2345:respawn:/sbin/mingetty tty3 #4:2345:respawn:/sbin/mingetty tty4 #5:2345:respawn:/sbin/mingetty tty5
#6:2345:respawn:/sbin/mingetty tty6 将后面注释,只允许使用2个控制台。
1.6 ssh防暴力破解
DenyHosts,它是用Python2.3写的一个程序,它会分析/var/log/secure等日志文件,当发现同一IP在进行多次SSH密码尝试时就会记录IP
到/etc/hosts.deny文件,从而达到自动屏蔽该IP的目的。DenyHosts官方网站:http://denyhosts.sourceforge.net 安装DenyHosts
需要python2.3版本以上的支持 python -V查看版本
wget http://jaist.dl.sourceforge.net/sourceforge/denyhosts/DenyHosts-2.6.tar.gz tar -zxf DenyHosts-2.6.tar.gz cd DenyHosts-2.6 python setup.py install
程序脚本自动安装到/usr/share/denyhosts
库文件自动安装到/usr/lib/python2.3/site-packages/DenyHosts denyhosts.py自动安装到/usr/bin #设置启动脚本
cd /usr/share/denyhosts/
cp daemon-control-dist daemon-control chown root daemon-control chmod 700 daemon-control
grep -v \vim denyhosts.cfg
SECURE_LOG = /var/log/secure #RedHat/Fedora Core分析该日志文件 ,其它版本linux根据denyhosts.cfg-dist内提示选择。