linux安全
物理安全
物理安全的考虑还是与Unix服务器有很大不同的。使用Linux做服务器时,一定要把它锁在机房里,不让别人可以物理接近。本地破解Linux密码比Solaris要方便,不必使用安装光盘重启,只需要在系统重新启动的时候选择linux single或linux 1的参数,就可以在进入单用户模式后直接修改root密码。如果限于条件,没有机房(有不少小公司倒真的是这样的),那就用机柜、铁柜等把服务器锁起来,但这时要注意服务器的通风、温度等问题。这样的服务器最好使用远程管理,不在本地接显示器、键盘和鼠标(为黑客本地做坏事制造尽量多的不方便因素,呵呵)。不过作为Linux运行平台的PC服务器,在BIOS中可以设置启动密码,可以为我们提供这方面的安全保障,在重启机器时必须有BIOS密码才可以进入系统引导过程,防止了非法reboot。
Linux有自己的lilo启动管理器,我们可以在启动时选择相应的image,也就是不同的操作系统或者内核。在lilo里面也可以设置启动密码,也许是大家平时没有注意到的。这些软件、密码等方法也不是完全安全,因为BIOS启动密码可以通过放电和厂家默认密码破解,还可以从软盘、光盘启动绕过。我们还需要通过设置禁止从上述设备启动,而且最好在装机时考虑选择那些带锁的机箱,避免别人打开机箱放电。虽然机箱上挂把锁会让人觉得是个守财奴的样子,但安全第一嘛。
这样就会给黑客造成了很多麻烦,他们需要做更多的工作才能达到其不可示人的目的,既花费时间又会留下更多的证据。
其实只要加一条password=“xxxxxxx”就可以了,注意这个密码的选项是只对这一个image有效的。也就是说如果您想用密码保护3个image,那么就需要为每一个image都分配一个密码,加在各自相应的区域。还要把lilo.conf文件的属性改为600,避免被普通用户读到。
与那些专业的服务器不同的是,Linux系统还可以作为桌面操作端,供终端用户使用。如果在家庭应用中,物理安全当然不必太过考虑,但还是要注意放在不易被伤害的地方,远离水房、厨房、卫生间。用Linux做桌面操作时,与Windows系统一样,我们可以锁定屏幕,在console里输入
# xlock
就可以像Windows的屏幕保护一样,在重新使用桌面时需要输入密码。
再次与大家强调一下物理安全是其他安全的基础,因为这与可用性相关,需要很重视。不但要防止人为破坏,还要对自然及环境的安全性加以考虑。
文件系统安全
◆ 文件和目录的权限。根据自己的特定环境与需要设置访问权限,具体方法为:
/etc/inetd.conf的所有者是root,且文件权限为600;
/etc/rc.d/init.d/* 所有文件所有者是root,且权限为700。在chmod时要加“-R”参数,让所有子目录也生效。
◆ umask。超级用户的umask最好设置为077。
◆ SetUID与SetGID权限。找出不合适的SetUID与SetGID文件并禁止此属性。一般来讲,Linux系统中有这些文件默认具有不适合的setuid与setgid权限,建议大家去除:
usr/bin/chage、/usr/bin/gpasswd、/usr/bin/wall、/usr/bin/chfn、/usr/bin/chsh、/usr/bin/newgrp、
/usr/bin/write、/usr/sbin/usernetctl、/usr/sbin/traceroute、/bin/mount、/bin/umount、/bin/ping、
/sbin/netreport。
◆ 账号与密码。特别是root账号的安全。如果可以,禁止下列账号:adm、lp、sync、shutdown、halt、news、uucp、games、mail、operator、gopher、ftp。组:adm、lp、mail、news、uucp、games、dip、pppusers、popusers、slipusers。注意有的组是某些服务必须的,禁止的时候要慎重考虑。
◆ su与sudo命令。基本上同Solaris的安全方法一样。Linux有一点特殊,就是用/etc/pam.d/su文件来强制某一组用户才能su为root,这样会更安全。如:
auth sufficient /lib/security/pam_rootok.so debug
auth required /lib/security/pam_wheel.so group=power
这样只有power这一组的用户可以su为root,其他用户想有这个特权,必须先被加入这个组中。
◆ cron安全。检查那些可能不安全的cron项目,禁止无用的用户使用crontab;
◆ 文件与进程检查工具 fuser与lsof。与Solaris基本相同;
◆ 完整性检查工具。使用Tripwire和Aide等。
网络设置安全
◆ 停止不必要的服务。从启动时就不运行不需要的服务。
◆ 在Linux中不得已而使用NFS时,要特别注意etc/exports 文件。让/etc/exports文件只对NFS存取权限进行,不要使用任何通配符,不允许root有写权限,mount成只读的分区。vi /etc/exports,改为:
/dir/to/export host1.mydomain.com(ro,root_squash)
/dir/to/export host2.mydomain.com(ro,root_squash)
修改后要执行 “/usr/sbin/exportfs -a” 使其生效。
◆ 用更安全的方式代替危险的服务。
◆ 用ssh代替明文的Telnet,进行安全的远程管理。
◆ 使用TCP-Wrappers,或者是比inetd更加强健的xinetd。
◆ SATAN,COPS这些Unix平台的漏洞检查程序同样对Linux有效。
Kernel的安全设置
Linux非常诱人的一个特点是用户可以自己定制Kernel来增加或者减少某些功能,使系统更加适合自己的需要。这里面也有不少与安全相关的选项,我们在编辑新的Kernel时可以注意激活它们。
此外,我们在编译新的Kernel时,别忘了经常查看是否有新的稳定版本发布出来,与打补丁一样,Kernel也是用最新的好。无论是运行make config、make menuconfig还是make xconfig,都可以找到下列的安全相关选项:
注意,这处给出的是2.0.X的Kernel选项。
◆ Network Firewalls (CONFIG_FIREWALL)
如果您的Linux主机要运行防火墙,此选项是需要激活的。
◆ IP: syn cookies (CONFIG_SYN_COOKIES)
此选项用来防止“SYN Attack”,拒绝服务攻击的一种。
◆ IP: Firewalling (CONFIG_IP_FIREWALL)
同样是主机作为防火墙时必须的选项。
◆ IP:firewall packet logging (CONFIG_IP_FIREWALL_VERBOSE)
此选取项对防火墙接收到的数据包进行记录。
◆ IP: Drop source routed frames (CONFIG_IP_NOSR)
此选项用来丢弃源路由帧(包),源路由包的危害在Solaris安全中已经介绍过。
◆ IP: masquerading (CONFIG_IP_MASQUERADE)
此选项是一种假冒技术,即假冒被防火墙保护的机器。如果您用自己的Linux系统做防火墙,内部网中有一台机器想与外部通讯时,您的Linux机器可以把IP包转发给目的主机,而从目的主机看来这些数据是从那台机器直接发来的。
◆ IP: ICMP masquerading (CONFIG_IP_MASQUERADE_ICMP)
此选取项是ICMP通讯假冒,前面的假冒只是针对TCP与UDP通讯的。加上这个选项您的Linux防火墙就更能干一些了,呵呵。
◆ IP:transparent proxy support (CONFIG_IP_TRANSPARENT_PROXY)
此选取项支持透明代理。您的Linux防火墙支持此功能后,内网的机器向外访问时,会认为自己是与远程的主机在直接通信,这样对于终端用户来说方便一些。
◆ IP: always defragment (CONFIG_IP_ALWAYS_DEFRAG)
此选项使IP包总是在传输的时候分片,可以用于防止teardrop攻击。
◆ Packet Signatures (CONFIG_NCPFS_PACKET_SIGNING)
此选项对NCP包进行签名以提高安全性。
◆ IP: Firewall packet netlink device (CONFIG_IP_FIREWALL_NETLINK)
此选项让您可以通过程序来分析IP包的前128个字节,根据事先定义的规则决定是接收还是丢弃这个包。这一点有点类似于防火墙的功能。
下面是2.2.x kernel发布时,除了包括以上的安全选项外,新的功能:
◆ Port Forwarding
端口转发。当您想在Linux防火墙后面运行服务器,让其他人从防火墙外面访问时,启动此选项。
◆ Socket Filtering (CONFIG_FILTER)
套接字(socket)过滤。类似防火墙的功能,对那些在套接字中传送的数据进行过滤,丢弃那些不安全的数据。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论