Google

Posts Tagged ‘ubuntu’

密码保护:linux学习笔记learning

星期四, 十二月 16th, 2010

这是一篇受密码保护的文章。您需要提供访问密码:


保障Ubuntu Apache Web服务器安全

星期四, 三月 5th, 2009

     在一个linux发行版本上设置一个web服务器是一个很快的过程,不过要让这种设置成为一种安全的过程可能就需要花点儿工夫。本文将向你展示如何有效地使用访问控制和身份验证策略,使你的apacheweb服务器更安全。下面所有的例子都假定你用的是ubuntu7.10,并对apache进行了基本的配置。不过,这些例子将帮助任何一位运行apache服务器的用户获得更大的安全性,因为其要领仍然适用于其它linux系统。本文中所涉及到的方法应当首先在一台测试服务器上进行试验,在成功之后才能迁移到一个实际使用的web服务器上。
  一、文件许可和访问控制

  1. 用户和组

  首先要保障的是apache不要以root身份运行,因为如果apache被攻破的话,那么攻击者就可以控制root账户。下面让我们看一下apache正以何种用户和组的身份运行:

  运行下面的命令:

      # ps auwwfx | grep apache www-data 25675 0.0 0.0 10348 508 ? s jan21 0:00 _ /usr/sbin/apache2 -k start
  www-data 25686 0.0 0.2 231816 2208 ? sl jan21 0:00 _ /usr/sbin/apache2 -k start
  www-data 25688 0.0 0.2 231816 2200 ? sl jan21 0:00 _ /usr/sbin/apache2 -k start
  可以看出,www-data是运行apache的用户。不过,我们需要编辑apache的配置并创建一个新用户和组:

   # groupadd www-data
  # useradd -g www-data www-data
  # vi /etc/apache2/apache2.conf
  将user root group root改为:

      user www-data group www-data
  然后重新加载以使改变生效:

      # /etc/init.d/apache2 reload
  2. 服务文件准许

  一个最易被忽视的安全问题是如何正确地使用chmod命令。例如,我们在apache 的html root目录中创建了一个index.cgi文件,不过在浏览器中打开这个文件时却被告知拒绝访问。为了让我们的index.cgi文件正常工作,我们执行一个chomod 777 index.cgi。在我们如此试验时,每一个apache管理员都在考虑这样安全吗?答案是否定的。不过,如何使这种许可足够安全并能允许index.cgi脚本正常运行呢?

  apache需要得到准许来访问index.cgi文件。不过,我们不希望人人都能读写index.cgi。这个文件的所有者应当拥有读写这个文件的许可。为此我们需要下面的命令:

      # chmod 755 index.cgi
  将下面的一行加入到你的apache.conf文件中是很重要的:

       options followsymlinks allowoverride none
  注意:

  1、上面的命令行防止apache访问root之外的文件。

  2、有一些linux发行版本比其它版本拥有更好的安全性。engarde secure linux就是一个很好的例子,因为它默认情况下就在其apache配置文件中包含了上面的代码行。

  我们并不想让用户在文件系统上的任何地方运行cgi脚本,不过我们确实需要它们在root中运行。对这个问题的解决办法是“options execcgi”指令。

  例如,将下面的行添加到/etc/apache2/apache2.conf文件中:

      allowoverride none options execcgi order allow,deny allow from all
  重新加载apache:

      # /etc/init.d/apache2 reload
  那么,如果你拥有只应当被某个网络或ip地址访问的资源怎么办?对这个问题的解决办法是使用我们的apache配置来为你增强安全性:

  先说一个只允许访问192.168.0.0网络的例子,需要改变/etc/apache2/apache2.conf文件中以下的一行:

      allowoverride none options execcgi order allow,deny allow from all
    将其改为:

allowoverride none options execcgi order deny,allow deny from all allow from 192.168.0.0/16
  然后重新加载以使更改生效:

      # /etc/init.d/apache2 reload
  现在只有你内部网络上的用户能够在/home/username/public_html/cgi-bin中运行cgi脚本。

       二、身份验证

  我们怎样才能仅允许那些拥有正确口令和用户名的用户访问部分web root呢?下面的步骤将向你展示如何安全地做到这一点:

  1. 基本验证

  允许.htaccess:

      # vi /etc/apache2/apache2.conf
  将allowoveride none改为allowoveride authconfig

  重新加载以使改变生效:

      # sudo /etc/init.d/apache2 reload
  创建一个口令文件:

   # mkdir /var/www/misc
  # chmod a+rx /var/www/misc
  # cd /var/www/misc
  # htpasswd -bc private.passwords username password adding password for user username
  创建.htaccess

      # cd /home/username/public_html/cgi-bin # vi .htaccess
  在.htaccess中增加下面的命令:

authname my private area” authtype basic authuserfile /var/www/misc/private.passwords authgroupfile /dev/null require valid-user
  将allowoverride none options execcgi order deny,allow deny from all allow from 192.168.0.0/16

  改变为:allowoverride .htaccess options execcgi order deny,allow deny from all allow from 192.168.0.0/16

  然后重新加载以使更改生效:

      # /etc/init.d/apache2 reload
  2、摘要验证(digest authentication)

  另外一种验证方法称之为摘要验证。如果采用摘要验证,你的口令将不是以明文通过网络传送,因为它们总是作为用户口令的一个md5摘要传送的。如果采用这种方法,那么通过嗅探网络通信的方法就不能决定用户的口令了。

  下面创建口令文件:

   # mkdir /var/www/misc
  # chmod a+rx /var/www/misc
  # cd /var/www/misc
  # htdigest -c private.passwords realm username adding password for username in realm realm. new password:
  创建 .htaccess :

      # cd /home/username/public_html/cgi-bin # vi .htaccess
  在.htaccess中增加下面的内容:

authname “my private area” authtype digest authuserfile /var/www/misc/private.passwords authgroupfile /dev/null require valid-user
  注意:

  1、一些老的浏览器并不支持摘要验证(digest authentication)

  2、要完全地保护你的.htaccess就要使用ssl

  三、总结

  使apache更安全的下一步措施是使用apache的模块来帮助实现更好的安全性,例如mod_security 和 mod_chroot。此外,要保护我们的验证我们还需要配置ssl。

在Ubuntu中用root帐号登录

星期一, 十二月 15th, 2008

一、
其实我个人认为这没有多大必要,因为当你需要 root 的权限时,使用 sudo 便可以了。如果你实在需要在 Ubuntu 中启用 root 帐号的话,那么不妨执行下面的操作:
1.重新设置 root 的密码:
$sudo passwd root #按照提示输入两次新的密码,并加以确认。
2.启用root用户登录:
$sudo vi /etc/X11/gdm/gdm.conf #打开gnome的配置文件,在末行模式中输入:AllowRoot回车,找到AllowRoot=false ,把false改为true,保存后退出。
之后,重启系统时,就可以用 root 登录了。如果你想要禁用 root 帐号,则执行下列命令:
$sudo passwd -l root

二、
Ubuntu 中的 root 帐号默认是被禁用了的。在这种情况之下,如果你想要使用 root 的权限来干些事情,就需要 sudo 指令。对某些朋友来说,他们可能需要激活 Ubuntu 中的 root 帐号。
在 Ubuntu 中激活 root 帐号的过程如下:
1. 在终端执行 sudo passwd root 指令后,系统将会提示你设置一个新的 root 帐号密码。
2. 点击 System -> Preferences -> Login Window 菜单,并切换到 Security 选项页,然后选中其下的“Allow local system administrator login”选项。
执行上述两步后,你便可以使用 root 帐号登录 Ubuntu 系统了。
如果要再次禁用 root 帐号,那么可以执行 sudo passwd -l root。

三、
如果一直想一直用root也可以”sudo -s”。
Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论

Ubuntu常用命令与技巧

星期一, 十二月 15th, 2008

Ubuntu常用命令与技巧

sudo apt-get install 软件名 安装软件命令
sudo nautilus 打开文件(有root权限)
su root 切换到“root”

ls 列出当前目录文件(不包括隐含文件)
ls -a 列出当前目录文件(包括隐含文件)
ls -l 列出当前目录下文件的详细信息

cd .. 回当前目录的上一级目录
cd – 回上一次所在的目录
cd ~ 或 cd 回当前用户的宿主目录
mkdir 目录名 创建一个目录
rmdir 空目录名 删除一个空目录
rm 文件名 文件名 删除一个文件或多个文件
rm -rf 非空目录名 删除一个非空目录下的一切

mv 路经/文件 /经/文件 移动相对路经下的文件到绝对路经下
mv 文件名 新名称 在当前目录下改名
find 路经 -name “字符串” 查找路经所在范围内满足字符串匹配的文件和目录

fdisk fdisk -l 查看系统分区信息
fdisk fdisk /dev/sdb 为一块新的SCSI硬盘进行分区
chown chown root /home 把/home的属主改成root用户
chgrp chgrp root /home 把/home的属组改成root组

Useradd 创建一个新的用户
Groupadd 组名 创建一个新的组
Passwd 用户名 为用户创建密码
Passwd -d用户名 删除用户密码也能登陆
Passwd -S用户名 查询账号密码
Usermod -l 新用户名 老用户名 为用户改名
Userdel–r 用户名 删除用户一切

tar -c 创建包 –x 释放包 -v 显示命令过程 –z 代表压缩包
tar –cvf benet.tar /home/benet 把/home/benet目录打包
tar –zcvf benet.tar.gz /mnt 把目录打包并压缩
tar –zxvf benet.tar.gz 压缩包的文件解压恢复
tar –jxvf benet.tar.bz2 解压缩

make 编译
make install 安装编译好的源码包
reboot Init 6 重启LINUX系统
Halt Init 0 Shutdown –h now 关闭LINUX系统

uname -a 查看内核版本
cat /etc/issue 查看ubuntu版本
lsusb 查看usb设备
sudo ethtool eth0 查看网卡状态
cat /proc/cpuinfo 查看cpu信息
lshw 查看当前硬件信息
sudo fdisk -l 查看磁盘信息
df -h 查看硬盘剩余空间
free -m 查看当前的内存使用情况
ps -A 查看当前有哪些进程
kill 进程号(就是ps -A中的第一列的数字)或者 killall 进程名( 杀死一个进程)
kill -9 进程号 强制杀死一个进程

常用apt命令:

apt-cache search package 搜索包
apt-cache show package 获取包的相关信息,如说明、大小、版本等
sudo apt-get install package 安装包
sudo apt-get install package – - reinstall 重新安装包
sudo apt-get -f install 修复安装”-f = –fix-missing”
sudo apt-get remove package 删除包
sudo apt-get remove package – - purge 删除包,包括删除配置文件等
sudo apt-get update 更新源
sudo apt-get upgrade 更新已安装的包
sudo apt-get dist-upgrade 升级系统
sudo apt-get dselect-upgrade 使用 dselect 升级
apt-cache depends package 了解使用依赖
apt-cache rdepends package 是查看该包被哪些包依赖
sudo apt-get build-dep package 安装相关的编译环境
apt-get source package 下载该包的源代码
sudo apt-get clean && sudo apt-get autoclean 清理无用的包
sudo apt-get check 检查是否有损坏的依赖

清理所有软件缓存(即缓存在/var/cache/apt/archives目录里的deb包 )
sudo apt-get clean

删除系统不再使用的孤立软件
sudo apt-get autoremove