<b>保护你的Ubuntu服务器</b>[Linux安全]
本文“<b>保护你的Ubuntu服务器</b>[Linux安全]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
安全是相对的,利用本文介绍的这些办法不能绝对保证你的服务器是“安全的”,但可以必定的是它比从前更安全,也比大大都服务器要安全,至少菜鸟级的黑客是无法攻破的;安满是一个持续的历程,它不是一蹴而就的,我们认为,在安全范畴是需求一点偏执精神的.
本文所摆列的这些保护办法在Ubuntu Server 10.04(Lucid)和10.10(Maverick)中测试通过,假如你想让你的新Ubuntu服务器变得固若金汤,你应当细心阅读本文.
Ubuntu服务器计划优异,并有按期更新,相对来说是对比安全的,Ubuntu安全团队表示会不断勤奋,保护Ubuntu的安全,将会按期供应安全更新.
· 不掀初阶口
· 基于角色的管理
· 无X服务器
· 安全更新
· 内核和编译器保护
在这篇文章中,我们将从差别方历来应对安全挑衅,包含:系统解析,改正设置,安装防火墙,扫描rootkit和拟定周期性保护制度.
· 改正设置,加强安全性
· 实施UFW,简单的防火墙
· 利用denyhosts自动将攻击者列入黑名单
· 利用Tiger扫描系统漏洞
· 利用psad检测入侵尝试行为
· 安装nmap,扫描系统翻开的端口
· 利用chkrootkit查抄系统rootkit
· 监控日记
改正设置,加强安全
保护同享内存
攻击一个运行中的服务(如httpd)经常常要利用/dev/shm,改正/etc/fstab使其更安全.
sudo vi /etc/fstab
增添下面这一行内容:
tmpfs /dev/shm tmpfs defaults,noexec,nosuid 0 0
禁止root通过SSH登录
Root帐号在Ubuntu中默许是被禁用了的,假如你在Slicehost或Linode上安装Ubuntu,root则是被启用的,无论怎样,禁止root通过SSH登录系统都是一个好主张.
sudo vi /etc/ssh/sshd_config
将PermitRootLogin设为no:
PermitRootLogin no
当然,假如你通过SSH拜候你的服务器,在禁用root利用SSH之前,确保别的用户可以正常利用sudo工作.
只答应管理用户利用su
这将有助于预防特权晋升,默许情形下,Ubuntu没有供应管理组,因此需求先成立一个管理组.
sudo groupadd admin
将你自己加入到管理组:
sudo usermod -a -G admin andrew
限制/bin/su的拜候权,仅授与管理构成员:
sudo dpkg-statoverride --update --add root admin 4750 /bin/su
查抄/bin/su的权限:
ls -lh /bin/su
看到下面的输出内容:
-rwsr-x--- 1 root admin 31K 2010-01-26 17:09 /bin/su
不答应跟踪入站数据包的源路由
sudo sysctl -w net.ipv4.conf.all.accept_source_route=0
sudo sysctl w net.ipv4.conf.default.accept_source_route=0
不答应系统用户拜候FTP服务器
只有当你安装了ftpd才需求这么做,只要tiger扫描报告中不呈现相关告诫便可,SFTP比FTP的安全性要好,假如大概,应尽大概利用SFTP.
Edit /etc/ftpusers:
sudo vi /etc/ftpusers
增添系统用户回绝利用ftpd:
backup
bin
daemon
games
gnats
irc
libuuid
list
lp
mail
man
mysql
news
ntp
postfix
proxy
sshd
sync
sys
syslog
uucp
www-data
UFW:简单防火墙
UFW(Uncomplicated Firewall,简单防火墙)供应了一个易于理解的接口掌握iptable(iptable掌握Netfilter,Netfilter内置于内核之中),只需求几个简单的号令,你的服务器便可以掌握拜候,成立状况也很简单.
UFW是用于配置iptable的一个简单接口.
安装并启用Uncomplicated Firewall:
sudo aptitude install -y ufw
sudo ufw enable
显示可用的UFW号令:
sudo ufw show
显示UFW配置:
sudo ufw status
答应SSH和HTTP拜候Apache服务器:
sudo ufw allow ssh
sudo ufw allow http
在上面的示例中,OpenSSH和Apache的端口通过服务名(ssh和http)翻开,你可以利用端口号替换这里的服务名(如用80替换http).
查看服务运行情形:
查看运行中的服务,便知道应当翻开哪些端口:
sudo ufw app list
查看UFW利用的服务:
less /etc/services
Denyhosts:避免SSH攻击
项目主页: http://denyhosts.sourceforge.net/
查看服务器上的/var/log/auth.log,我发现有一连串的SSH攻击,对付这种攻击有很多办法,首先就是denyhosts.
Denyhosts会周期性地扫描/var/log/auth.log,找出通过SSH反复失利拜候系统的行为和根源,然后将它们增添到/etc/hosts.deny中.具体情形请拜候项目主页.
sudo aptitude -y install denyhosts
要做的就这些,剩下来的都是自动的,你可以利用下面的号令查看增添到/etc/hosts.deny中的IP地址:
sudo less /etc/hosts.deny
Tiger:系统安全扫描器
项目主页: http://www.nongnu.org/tiger/
通过解析系统上的文件和设置,Tiger成立自动的安全考核,终究以报告的情势列出解析的内容,告诫,警报和弊端.
Tiger号令在/var/log/tiger中记录了潜在的安全问题,利用tigexp号令查找后果编码可以得到具体的注释和安全加固倡议,tiger认为很严重的问题都标志为Fail.
安装tiger:
sudo aptitude -y install tiger
运行tiger,成立一个安全问题报告:
sudo tiger
利用less查看近来的tiger报告:
sudo -i
less /var/log/tiger/`ls -t1 /var/log/tiger | head -1`
exit
利用tigexp列出Fail代码的注释:
tigexp dev002f
当然利用Google搜索一下也可以.
忽视这些:
--FAIL-- [dev002f] /dev/fuse has world permissions
--FAIL-- [logf005f] Log file /var/log/btmp permission should be 660
改正它们的权限大概会招致别的问题.
利用psad检测入侵行为
项目主页: http://www.cipherdyne.org/psad/
Psad可以记录下入侵行为,还可以监控iptable.
安装psad:
sudo aptitude -y install psad
后台进程会自动运行.
查抄当前的状况:
sudo psad -S
你可以改正psad设置,检测到入侵行为时给管理员发送电子邮件.
Nmap:端口扫描
项目主页: http://nmap.org/
Nmap答应你查看翻开的端口,考证UFW/iptable工作能否正常.
安装nmap:
sudo aptitude install -y nmap
端口扫描:
nmap -v -sT localhost
SYN扫描:
sudo nmap -v -sS localhost
扫描范例注释: http://nmap.org/book/man-port-scanning-techniques.html
Chkrootkit:查抄rootkit
项目主页: http://www.chkrootkit.org/
Chkrootkit扫描系统中能否存在rootkit.
抱负情形下,你并不需求做这种扫描,但实际中最好还是按期运行一下.
安装chkrootkit:
sudo aptitude install -y chkrootkit
运行chkrootkit:
sudo chkrootkit
LogWatch
Ubuntu社区文档: https://help.ubuntu.com/community/Logwatch
日记再具体,假如没有一款好用的日记查看器,日记起的作用也非常有限,Logwatch可以从海量的日记中精选出最有效的信息,形成一个易读的报告,每天翻开Logwatch看一下系统产生的日记是一个杰出的习惯.
安装:
sudo aptitude -y install logwatch
用法:
sudo logwatch | less
持续保护
你的服务器目前更安全了,但不要就此停下来,每周例行一次保护是个好习惯.
更新软件:
sudo aptitude update
sudo aptitude safe-upgrade
我喜好利用safe-upgrade,因为它履行的是安全更新.
请看: http://wiki.debian.org/Aptitude
大概,你可以将安全更新设置为自动,假如你不能每周保护一次,这不是一个完善的办理筹划,因为管理员没有监控更新了什么,更新后也没有履行测试.请看: https://help.Ubuntu.com/10.04/serverguide/C/automatic-updates.html
查抄入侵行为:
sudo psad -S
请先利用tiger解析一下系统,因为tiger在/var/log/tiger中的报告属于root用户,每次都运行一下这些号令,办理有些用户的权限问题.
sudo -i
tiger
grep FAIL /var/log/tiger/`ls -t1 /var/log/tiger | head -1`
exit
在上面的号令中,利用grep从最新的报告文件中提取出Fail标志,ls子句给grep运送目录中的最新文件,sudo -i号令答应你以root用户运行多个号令,利用exit完毕号令.
利用tigexp列出Fail代码的注释:
tigexp dev002f
利用nmap扫描端口:
sudo nmap -v -sS localhost
查抄rootkit:
sudo chkrootkit
查看日记:
sudo logwatch | less
以上是“<b>保护你的Ubuntu服务器</b>[Linux安全]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |