优化:
可删除用户:adm,lp,sync,shutdown,halt,news,uucp,operator,games,gopher. :userdel games
可删除组:adm,lp,news,uucp,games,dip,pppusers,popusers,slipusers. :groupdel games
不需要用户登录的用户,比如www供apache使用的用户可以关闭其登录功能 :usermod -s /sbin/nologin www
删除多余的登录欢迎信息:/etc/issue,/etc/issue.net,/etc/redhat-release,/etc/motd. #如果需要用户登录完之后显示/etc/issue.net信息的话在 /etc/ssh/sshd_config 加入
Banner /etc/issue.net
其他包含系统信息的文件:/etc/redhat-release, #/etc/motd 该文件会显示在用户终端,可以写一些通知例如:欢迎登录。
关闭快捷键重启:vim /etc/init/control-alt-delete.conf #exec /sbin/shutdown -r now "Control-Alt-Delete pressed"
关闭多余的服务:
一般情况下不需要的服务:
anacron,auditd,autofs,avahi-daemon,avahi-dnsconfd,bluetooth,cpuspeed,firsboot,gpm,haldaemon,hidd,
ip6tables,ipsec,isdn,lpd,mcstrans,messagebus,netfs,nfs,nfslock,nscd,pcscd portmap,readahead_early,restorecond,
rpcgssd,rpcidmapd,rstatd,sendmail,setroubleshoot,yppasswdd ypsery. :chkconfig --level 345 anacron off
系统必须运行的服务:
服务名称 |
服务内容 |
acpid | 电源管理 |
apmd | 高级电源管理,可监控电池性能 |
kudzu | 检测硬件变化 |
crond | 为linux下自动安排的进程提供运行服务 |
atd | 计划任务功能相识 |
keytables | 装载镜像键盘 |
iptables | 内置的防火墙 |
xinetd | 支持多种网络服务的核心守护进程 |
xfs | x windows 必须的服务 |
network | 启动网络服务 |
sshd | 远程安全登录 |
syslog | 记录系统日志服务 |
关闭口令登录,使用key登录 :vim /etc/ssh/sshd_config #PasswordAuthentication no
重启sshd : /etc/rc.d/init.d/sshd restart
系统安全
用户权限:vim /etc/sudoers
让普通用户可以执行提权的命令:username ALL=(ALL)NOPASSWD:ALL #该用户可以提权sudo su -
让普通用户只可以执行某条特权命令:user01 ALL=/bin/more /etc/shadow , user01 ALL=NOPASSWD: /etc/init.d/httpd restart
简单防火墙配置 : /etc/hosts.allow /etc/host.deny #先匹配hosts.allow如有匹配则结束,没有则继续匹配。常用服务(sshd,vsftpd,sendmail)
例子:vim /etc/hosts.allow #sshd: 1.1.1.1 vim /etc/host.deny #sshd:ALL #拒绝除1.1.1.1外的sshd服务连接。
文件系统安全
:chattr -R +i #锁定该文件的权限 lsattr [-adlRvV] 查询文件属性。
文件权限检查和修改:
sudi和sgid详解:http://www.cnblogs.com/cp-miao/p/5519123.html
找出全部用户有写权限的文件和目录:find / -type f -perm -2 -o -perm -20 | xargs ls -al :find / -type f -perm -2 -o -perm -20 | xargs ls -ld
找出含有‘s’位的程序:find / -type f -perm -4000 -o -pperm -2000 -print | xargs ls -al #有S位可提权,尽可能降低。
找出所有含sudi和sgid的文件:find / -user root -perm -2000 -print -exec md5sum {} \; find / -user root -perm -4000 -print -exec md5sum {} \;
#可把该结果保存在一个文件里面,日后可用来对比权限查看服务器文件有没有被篡改
find / -nouser -o -nogroup #找出可以属主的文件,避免黑客利用。
tmp临时目录的权限控制:创建一个新的目录给予权限控制之后挂载到tmp下。
1 dd -f=/dev/zero of =/dev/tmpfs bs=1M count=1000 2 mke2fs -j /dev/tmpfs 3 cp -av /tmp /tmp.old 4 mount -o loop,noexec,nosuid,rw /dev/tmpfs /tmp 5 chmod 1777 /tmp 6 mv -f /tmp.old/* /tmp/ 7 rm -rf /tmp.old
vim /etc/fstab
/dev/tmpfs /tmp ext3 loop,nosuid,noexec,rw 0 0 #如果tmp目录直接是挂载目录的话直接添加:loop,nosuid,noexec。 在/tmp 下写一个shell脚本,运行测试。
/dev/shm #共享内存设备,挂载属性修改 :tmpfs /dev/shm tmpfs defaults,nosuid,noexec,rw 0 0.
Hacker攻防
chkrootkit后门rootkit检测工具,www.chkrootkit.org #用法 /usr/local/chkrootkit/chkrootkit
备份好chkrootkit入侵检测需要用到的系统命令:
mkdir /usr/share/.commands cp `which --skip-alias awk cut echo find egrep id head ls netstat ps strings sed uname` /usr/share/.commands /usr /local/chkrootkit/chkrootkit -p /usr/share/.commands/