linux安全
服务器安全:
1.1账户和登录安全:
1.删除不必要的用户和用户组
2.关闭系统不需要的服务:
建议开启的服务:
acpid:用于电源管理
apmd:高级电源管理服务
kudzu:检测硬件是否变化的服务
crond:linux下自动安排的 进程提供运行的服务
atd:提供在指定时间做指定事情的服务
keytables:用于装载镜像键盘
iptables:内置防火墙
xinetd:支持多种服务的核心守候进程
netwowrk:启动网络服务
sshd:提供登陆远程服务
syslog:记录系统日志的服务
3.密码安全策略:
密码认证&密钥认证
4.合理使用su&sudo
在/etc/sudoer下分配用户的权限
user01 ALL = /bin/more /etc/shadow
user02 ALL = NOPASSWD: /eetc/init.d/nagios restart --user02可以不使用密码重启nagios服务
user03 ALL = (ALL) NOPASSWD:ALL --user03具有超级用户的权限且不需要输入密码
5.删减系统登录欢迎信息
/etc/issue 、/etc/issue.net 、/etc/motd 、/etc/redhat-release
1.2远程访问和认证安全
1.远程取消telnet而采用ssh方式
vim /etc/ssh/sshd_config
2.合理使用shell历史命令记录功能
shell命令操作默认记录在用户目录下的.bash_history下,可以查询黑客入侵的操作,但是操作记录也会被删除:
记录命令的执行时间:
vim /etc/bashrc
HISTFILESIZE=4000
HISTSIE=4000
HISTTIMEFORMAT='%F %T'
export HISTTIMEFORMAT
详细记录登陆过系统的用户、IP地址、shell命令以及详细的操作时间,并将这些信息以文件得到形式保存在一个安全的地方,以供系统审计
和故障排查
vim /etc/profile
history
USER_IP='who -u am i 2>/dev/null | awk '{print $NF}'|sed -e 's/[()]//g''
HISTDIR=/usr/share/.history
if [ -z $USER_IP ]
then
USER_IP='hostname'
fi
if [ ! -d $HISTDIR ]
then
mkdir -p $HISTDIR
chmod 777 $HISTDIR
fi
if [ ! -d $HISTDIR/${LOGNAME} ]
then
mkdir -p $HISTDIR/${LOGNAME}
chmod 300 $HISTDIR/${LOGNAME}
fi
export HISTSIZE=4000
DT='date+%Y%m%d_%H%M%S'
export HISTFILE="$HISTDIR/${LOGNAME}/${USESR_IP}.history.$DT"
export HISTTIMEFORMAT="[%Y.%m.%d %H:%M:%S]"
chmod 600 $HISTDIR/${LOGNAME}/.history 2 >/dev/null
3.启用tcp_wrappers防火墙:
iptables防火墙通过直观的监控系统运行状况,如果通过了第一层防护,那么下一层防护就是tcp_wrappers:
/etc/hosts.allow & /etc/hosts.deny
会先匹配hosts.allow的规则,再去匹配hosts.deny的规则:
1.3文件系统安全:
1.锁定系统重要文件:
root用户都不能删除和修改的文件:
chattr & lsattr:
chattr常用参数:
+:在原有参数设定上,追加参数
-:在原有参数设定上,移除参数
=:更新为指定参数
a:只能向文件中添加数据,而不能删除
c:设定文件是否压缩后再存储,读取时需要经过自动解压操作
i:文件不能被修改、删除、重命名、设定链接等,同时不能写入或新增内容
s:安全地删除文件或目录,即文件被删除后全部回收硬盘空间
u:系统会保留其数据块以便以后能够恢复删除这个文件
lsattr常用参数:
-a:列出目录中所有文件,包括以“.”开头的文件
-d:显示指定目录属性
-R:以递归的方式列出目录下所有文件及子目录以及属性值
-v:显示文件或目录版本
根目录不可有不能修改的属性:
2.文件权限检查和修改
1.4系统软件安全管理:
1.软件自动升级工具yum
2.yum的安装与配置
3.yum的特点与基本用法:
特点:
安装方便/可以同时配置多个资源库/配置文件简单明了/保持与RPM数据库的一致性
[注]:yum会自动下载所有所需的升级资源包并默认放在/var/cache/yum目录下
几个不错的yum源:
epel/RPMForge
1.5linux后门入侵检测工具
rootkit是linux平台下最常见的一种木马后门工具,主要有两种类型:文件级别和内核级别
1.文件级别rootkit:
2.内核级别rootkit:
rootkit后门检测工具RKHunter:
1.MD5校验测试,检测文件是否有改动
2.检测rootkit使用的二进制和系统工具文件
3.检测特洛伊木马程序的特征码
4.检测常用程序的文件属性是否异常
5.检测系统相关的测试
6.检测可疑的核心模块LKM
7.检测系统已启动的监听端口
1.6服务器遭受攻击后的处理过程:
处理服务器遭受攻击的一般思路:
1.切断网络
2.查找攻击源
分析系统日志或登录日志文件,查看可以信息,查看系统打开的端口运行了哪些进程
3.分析入侵原因和途径
4.备份用户数据
如果攻击源在用户数据中,一定要彻底删除
5.重新安装系统
6.修复程序或系统漏洞
7.恢复数据和连接网络
检查并锁定可疑用户:
无法立刻切断网络连接时,必须登录系统查看可疑用户,如果有可疑用户登录了系统,需要马上锁定这个用户,中断此用户的远程连接
1.登录系统查看可疑用户
$w --查看登录的用户
2.锁定可以用户
$passwd -l nobody --锁定用户
$ps -ef | grep @pts/1 --kill用户登录的pid
3.通过last命令查看用户登录事件
查看系统日志
检查并关闭系统可疑进程:
检查文件系统的完好性:
$ rpm -Va
SM5....T. c /etc/yum.repos.d/CentOS-Base.repo
missing c /etc/yum.repos.d/CentOS-Debuginfo.repo
missing c /etc/yum.repos.d/CentOS-Media.repo
missing c /etc/yum.repos.d/CentOS-Vault.repo
missing c /etc/yum.repos.d/CentOS-fasttrack.repo
S.5....T. c /etc/dracut.conf
....L.... c /etc/pam.d/fingerprint-auth
....L.... c /etc/pam.d/password-auth
....L.... c /etc/pam.d/smartcard-auth
....L.... c /etc/pam.d/system-auth
S.5....T. c /etc/security/limits.conf
S.5....T. c /etc/sysctl.conf
S.5....T. c /etc/ssh/sshd_config
S表示文件长度发生了变化
M文件的访问权限或文件类型发生了变化
5表示MD5校验和发生了变化
D设备节点的属性发生了变化
L文件的符号链接发生了变化
U文件/子目录/设备节点的owner发生了变化
G文件/子目录/设备节点的group发生了变化
--如果输出的结果中有M标记,那么对应的文件可能已经遭到篡改或替换
--不过这个命令有个局限性,只能检测RPM包方式安装的所有文件
网络安全运维:
2.1网络实时流量监测工具iftop
iftop可以监控指定网卡的实时流量,端口连接信息,反向解析ip,还可以精确显示本机网络流量情况及网络内各逐句与本机相互通信的流量、
集合。
安装依赖:
$yum -y install libpcap libpcap-devel ncurses ncurses-devel
$yum -y install flex byacc
iftop常用参数:
-i:指定需要监测的网卡
-n:将输出的主机信息都通过IP显示,不进行DNS反向解析
-B:将输出以Byte为单位显示网卡流量,默认是bit
-p:以混杂模式运行iftop,此时iftop可以用作网络嗅探器
-N:只显示连接端口号,不显示端口对应的服务名称
-P:显示主机以及端口信息
-F:显示特定网段的网卡进出流量
-m:设置iftop输出界面中最上面的流量刻度最大值,流量刻度分5个大段显示
网络流量监控与分析工具Ntop和Ntopng:
Ntop主要功能:
自动从网络中获取有用的信息
将获取的数据包信息转换为可识别的格式
记录网络的通信时间和过程
对网络中失败的通信进行分析
发现网络环境通信的瓶颈
自动识别客户端正在使用的操作系统
Ntopng新增功能:
以图形的方式动态展示流量状态
实时监控网络数据并实时汇总
以矩阵图的方式显示IP流量
可以生成基于HTML5/AJAX的网络流量统计
支持历史流量数据分析
基于HTML5的动态图形用户界面
网络性能评估工具iperf:
网络性能评估主要是监测网络带宽的使用率
网络探测和安全审核工具nmap:
主机发现
端口扫描
应用程序及版本侦测
操作系统及版本侦测
数据安全工具DRBD、extundelete
DRBD基本功能:
1.实时性:当应用对磁盘数据有修改操作时,数据复制立即发生
2.透明性:应用程序的数据存储在镜像设备上是透明和独立的,数据可以存储在基于网络的不同服务器上
3.同步镜像:当本地应用申请写操作时,同时也在远程主机上开始进行写操作
4.异步镜像:当本地写操作已经完成时,才开始对远程主机进行写操作
DRBD主要特性:
1.单主模式:
主要用在高可用集群的数据存储方面,解决集群中数据共享的问题,在这种模式下,集群中只有一个主节点可以对数据进行读写操作,可以用在
这种模式下的文件系统有ext3、ext4、xfs等
2.双主模式:
主要用在负载均衡集群中,解决数据共享的一致性问题,通过集群文件系统的分布式锁机制就可以解决集群中两个主节点同时操作数据的问题.
3.复制模式:
4.传输完整性校验
5.脑裂通知和自动修复
extundelete恢复数据的过程:
在数据被误删除后,第一时间要做的事卸载被删除数据所在的磁盘或磁盘分区,如果是系统根分区的数据遭到误删除,就需要将系统进入单用户
,并且将根分区以只读模式挂载。这样做的原因是:将文件删除后,仅仅是将文件的Inode节点中的扇区指针清零,实际文件还存储在磁盘上,
如果磁盘以读写模式挂载,这些已删除的文件的数据块就可能被操作系统重新分配出去,在这些数据块被新的数据覆盖后,这些数据就真的丢失了,
恢复工具也无力回天。所以,以只读模式挂载磁盘可以尽量降低数据块中数据被覆盖idea风险,以提高恢复数据成功的比率.
通过extundelete恢复单个文件:
1.模拟数据误删环境:
$mkdir /data
$mkfs.ext3 /dev/sdc1
$mount /dev/sdc1 /data
$cp /etc/passwd /data
$rm -rf /data/*
2.卸载磁盘分区:
$umount /data
3.查询可恢复的数据信息:
$extundelete /dev/sdc1 --inode 2
4.恢复单个文件:
$extundelete /dev/sdc1 --restore-file passwd
$cd RECOVERD_FILES/
在文件恢复后,extundelete命令默认会在执行命令的当前目录下创建一个RECOVERRD_FILES目录,此目录用于存放恢复的文件,所以执行extundelete
命令的当前目录必须是可写的.
故障排查:
检查网卡是否正常工作:
1.检查路由表信息是否正确:
$route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.10.1.0 * 255.255.255.0 U 0 0 0 eth1
103.6.128.0 * 255.255.255.0 U 0 0 0 eth0
link-local * 255.255.0.0 U 1002 0 0 eth0
link-local * 255.255.0.0 U 1003 0 0 eth1
default v1091.r0.101.eq 0.0.0.0 UG 0 0 0 eth0
更改默认路由:
$route delete default
$route add default gw xx.xx.xx.xx