让你的linux操作系统更加安全(二)
TCP_WRAPPERS
通过 TCP_WRAPPERS,可以使服务器更好地抵制外部侵入。最好的办法是拒绝所有主机:在“/etc/hosts.deny”文件中加入“ALL: ALL@ALL, PARANOID”,然后在“/etc/hosts.allow”列出允许访问的主机。TCP_WRAPPERS 受控于两个文件,搜索时停在第一个匹配的地方。
/etc/hosts.allow
/etc/hosts.deny
步骤1
编辑 hosts.deny 文件(/etc/hosts.deny),加入如下行:
# Deny access to everyone.
ALL: ALL@ALL, PARANOID
语句的意思是,除非在 allow 文件中说明允许访问,所有服务、所有主机都被拒绝。
步骤2
编辑 hosts.allow 文件(/etc/hosts.allow),例如在文件中添加如下行:
ftp: 202.54.15.99 foo.com
对于你的客户机来说:202.54.15.99为IP地址,foo.com为允许使用ftp的一个客户机。
步骤3
tcpdchk 程序是tcpd wrapper配置的检查程序。它对tcpd wrapper的配置进行检查,并报告所发现的潜在的和实际存在的问题。配置完成后,运行tcpdchk 程序:
[Root@kapil /]# tcpdchk
不要显示系统发行文件
当别人远程登录时,不应该显示系统发行文件。做法是在“/etc/inetd.conf”文件中更改telnet选项:
telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd
改为:
telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd -h
在末尾加“-h”标记使后台程序不显示任何系统信息,而只给用户提供一个 login: 提示符。
更改“/etc/host.conf”文件
“/etc/host.conf”文件用来指定如何解析名称的方法。编辑 host.conf 文件(/etc/host.conf),添加如下各行:
# Lookup names via DNS first then fall back to /etc/hosts.
order bind,hosts
# We have machines with multiple IP addresses.
multi on
# Check for IP address spoofing.
nospoof on
第一个选项首先通过DNS解析主机名称,然后解析主机文件。multi 选项用于确定“/etc/hosts”文件中的主机是否有多个IP地址(多接口以太网)。
nospoof 选项指明该机器不允许假信息。
为“/etc/services”文件免疫
必须为“/etc/services”文件进行磁盘免疫,以避免对文件未经授权的删除或添加。使用如下命令:
[root@kapil /]# chattr i /etc/services
不接受从不同控制台的根用户登录
“/etc/securetty”文件可以指定“root”用户允许从哪个TTY设备登录。编辑“/etc/securetty”文件,在不需要的tty前面加“#”,禁用这些设备。
禁止任何人使用su命令
su命令(Substitute User,替代用户)可以使你成为系统的现有用户。如果不希望别人使用su进入根帐户,或者对某些用户限制使用“su”命令,则在“/etc/pam.d/”目录的“su”配置文件顶部加上下文中给出的两行代码。
编辑su文件(/etc/pam.d/su),在文件顶部添加如下两行:
auth sufficient /lib/security/pam_rootok.so debug
auth required /lib/security/Pam_wheel.so group=wheel
意思是,只有“wheel”组的成员可以用su命令;其中还包括了日志。你可以在wheel组中添加允许使用该命令的用户。
shell日志
shell可存储500个旧命令在“~/.bash_history”文件中(其中“~/”代表主目录),这样可以便于重复前面的长命令。系统中的每个帐号用户在各自的主目录中都有这个“.bash_history”文件。为安全起见,应使shell存储较少的命令,并在注销用户时将其删除。
步骤1
“/etc/profile”文件中的 HISTFILESIZE 和 HISTSIZE 行决定了系统中所有用户的“.bash_history”文件可容纳的旧命令个数。建议将“/etc/profile”文件中的 HISTFILESIZE 和 HISTSIZE 设为比较小的数,比如30。
编辑 profile 文件(/etc/profile),并更改:
HISTFILESIZE=30
HISTSIZE=30
步骤2
系统管理员还应在“/etc/skel/.bash_logout”文件中加进“rm -f $HOME/.bash_history”行,这样就可以在每次用户退出时删除“.bash_history”文件。
编辑 .bash_logout 文件(/etc/skel/.bash_logout),并添加如下行:
rm -f $HOME/.bash_history
禁
新文章:
- CentOS7下图形配置网络的方法
- CentOS 7如何添加删除用户
- 如何解决centos7双系统后丢失windows启动项
- CentOS单网卡如何批量添加不同IP段
- CentOS下iconv命令的介绍
- Centos7 SSH密钥登陆及密码密钥双重验证详解
- CentOS 7.1添加删除用户的方法
- CentOS查找/扫描局域网打印机IP讲解
- CentOS7使用hostapd实现无AP模式的详解
- su命令不能切换root的解决方法
- 解决VMware下CentOS7网络重启出错
- 解决Centos7双系统后丢失windows启动项
- CentOS下如何避免文件覆盖
- CentOS7和CentOS6系统有什么不同呢
- Centos 6.6默认iptable规则详解