1、如果是新安装系统对磁盘分区应考虑安全性:
1)根目录(/)、用户目录(/home)、临时目录(/tmp)和/var目录应分开到区别磁盘分区;
2)以上各目录所在分区磁盘空间大小应充分考虑避免因某些原因造成分区空间用完而导致系统崩溃;
2、对于/tmp和/var目录所在分区大多数情况下不需要有suid属性所以应为这些分区添加nosuid属性;
思路方法:修改/etc/fstab文件添加nosuid属性字例如:
/dev/hda2 /tmp ext2 exec,dev,nosuid,rw 0 0
^^^^^^
思路方法 2:如果对/etc/fstab文件操作不熟建议通过linuxconf来修改
* 运行linuxconf;
* 选择"File systems"下"Access local drive";
* 选择需要修改属性磁盘分区;
* 选择"No uid programs allowed"选项;
* 根据需要选择其它可选项;
* 正常退出(般会提示重新mount该分区)
2、安装
1、对于非测试主机不应安装过多软件Software包这样可以降低因软件Software包而导致出现安全漏洞可能性
2、对于非测试主机在选择主机启动服务时不应选择非必需服务例如routed、ypbind等
3、安全配置和增强
内核升级起码要升级至2.2.16以上版本
GNU libc共享库升级(警告:如果没有经验不可轻易尝试可暂缓)
关闭危险网络服务echo、chargen、shell、login、finger、NFS、RPC等
关闭非必需网络服务talk、ntalk、pop-2等
常见网络服务安全配置和升级
确保网络服务所使用版本为当前最新和最安全版本
取消匿名FTP访问
去除非必需suid
使用tcpwrapper
使用ipchains防火墙
日志系统syslogd
些细节:
1.操作系统内部log file是检测是否有网络入侵重要线索当然这个假定你logfile不被侵入者所破坏如果你有台服务器用专线直接连到Internet上这意味着你IP地址是永久固定牡刂罚慊岱⑾钟泻芏嗳硕阅愕南低匙鰐elnet/ftp登录尝试试着运行#more /var/log/secure | grep refused 去检查
2. 限制具有SUID权限标志数量具有该权限标志以root身份运行是个潜在安全漏洞当然有些是必须要具有该标志象passwd
3.BIOS安全设置BIOS密码且修改引导次序禁止从软盘启动系统
4. 用户口令用户口令是Linux安全个最基本起点很多人使用用户口令就是简单‘password'这等于给侵入者敞开了大门虽然从理论上说没有不能确解用户口令只要有足够时间和资源可以利用比较好用户口令是那些只有他自己能够容易记得并理解串并且绝对不要在任何地方写出来
5./etc/exports 文件如果你使用NFS网络文件系统服务那么确保你/etc/exports具有最严格存取权限设置不意味着不要使用任何通配符不允许root写权限mount成只读文件系统编辑文件/etc/exports并且加:例如:
/dir/to/export host1.mydo.com(ro,root_squash)
/dir/to/export host2.mydo.com(ro,root_squash)
/dir/to/export 是你想输出目录host.mydo.com是登录这个目录机器名
ro意味着mount成只读系统root_squash禁止root写入该目录
为了让上面改变生效运行/usr/sbin/exportfs -a
6.确信/etc/inetd.conf所有者是root且文件权限设置为600
[root@deep]# chmod 600 /etc/inetd.conf
ENSURE that the owner is root.
[root@deep]# stat /etc/inetd.conf
File: "/etc/inetd.conf"
Size: 2869 Filetype: Regular File
Mode: (0600/-rw-------) Uid: ( 0/ root) Gid: ( 0/ root)
Device: 8,6 Inode: 18219 Links: 1
Access: Wed Sep 22 16:24:16 1999(00000.00:10:44)
Mody: Mon Sep 20 10:22:44 1999(00002.06:12:16)
Change:Mon Sep 20 10:22:44 1999(00002.06:12:16)
编辑/etc/inetd.conf禁止以下服务:
ftp, telnet, shell, login, exec, talk, ntalk, imap, pop-2, pop-3, finger,
auth, etc. 除非你真想用它
特别是禁止那些r命令.如果你用ssh/scp那么你也可以禁止掉telnet/ftp
为了使改变生效运行#killall -HUP inetd
你也可以运行#chattr +i /etc/inetd.conf使该文件具有不可更改属性
只有root才能解开用命令
#chattr -i /etc/inetd.conf
7. TCP_WRAPPERS
默认地Redhat Linux允许所有请求,用TCP_WRAPPERS增强你站点安全性是举手
的劳你可以放入
“ALL: ALL”到/etc/hosts.deny中禁止所有请求然后放那些明确允许请求到
/etc/hosts.allow中如:
sshd: 192.168.1.10/255.255.255.0 gate.openarch.com
对IP地址192.168.1.10和主机名gate.openarch.com允许通过ssh连接
配置完了的后用tcpdchk检查
[root@deep]# tcpdchk
tcpchk是TCP_Wrapper配置检查工具
它检查你tcp wrapper配置并报告所有发现潜在/存在问题
8. 别名文件aliases
编辑别名文件/etc/aliases(也可能是/etc/mail/aliases)移走/注释掉下面行
# Basic system aliases -- these MUST be present.
MAILER-DAEMON: postmaster
postmaster: root
# General redirections for pseudo accounts.
bin: root
daemon: root
#games: root ?remove or comment out.
#ingres: root ?remove or comment out.
nobody: root
#system: root ?remove or comment out.
#toor: root ?remove or comment out.
#uucp: root ?remove or comment out.
# Well-known aliases.
#manager: root ?remove or comment out.
#dumper: root ?remove or comment out.
#operator: root ?remove or comment out.
# trap decode to catch security attacks
#decode: root
# Person who should get root's mail
#root: marc
最后更新后不要忘记运行/usr/bin/aliases使改变生效
9.阻止你系统响应任何从外部/内部来ping请求
既然没有人能ping通你机器并收到响应你可以大大增强你站点安全性你可以加下面行命令到/etc/rc.d/rc.local以使每次启动后自动运行
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
10. 不要显示出操作系统和版本信息
如果你希望某个人远程登录到你服务器时不要显示操作系统和版本信息你能改变
/etc/inetd.conf中行象下面这样:
telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd -h
加-h标志在最后使得telnet后台不要显示系统信息而仅仅
最新评论