linux学习笔记7-增强系统的安全性

 

强系统的安全性

全问题概述与常见隐患

息系统的安全要求

密性 confidentity

整性 integrity

否认性 non-repudiation

能性 availability

息系统的安全性由系统中最脆弱的安全组件决定(木桶原则)

见信息安全术语

Hacker(黑客) 拥有超群的计算机技术追求技术创新的人

Cracker(骇客) 破坏信息安全的破坏者

漏洞(loophole) 由软硬件的疏忽导致的能避过系统的安全措施的一种错误,可以被cracker直接利用,常见的有缓冲溢出漏洞。

弱性(vulnerability) 能被cracker用来破坏信息系统安全的弱点,不能被cracker直接利用,一般是计算机的使用者无意中提供的。可以是一个容易猜测的密码,或者是一个没有加密的服务。

(attack) 试图绕过安全控制的破坏活动。攻击的目的一般是破坏或盗取数据,或者破坏系统的正常功能。

洛伊木马(Trojan horse)简称木马,是一种通过正常路径混进计算机的有害程序。可以让远程用户遥控这台有木马的计算机。

病毒Virus)依赖其他程序生存,可以自我自制传播的代码。

虫(Worm)不需要寄主,可以独立生存,主动传播的程序。

拒绝服务(Dos/DDoS)通过大量无效的正常请求,让服务器达到最大的服务极限,从而拒绝正常用户的服务。

窃听Wiretapping)指在数据的通信线路上截取数据,盗取不该获得的数据。根据数据的获取手段分主动式和被动式。

增强Linux系统安全性

Linux系统的安全策略

物理安全只允许管理员物理接触主机

动安全(BIOS,GRUB/LILO)对于多人共享的主机,应该为BIOS或者引导程序设置密码。

登陆安全使用任何方式登陆服务器的用户都需要认证授权。

运行安全运行中的程序不应该有漏洞,也不应该被用户利用来寻找系统中的漏洞(当心suid,sgid程序)

信安全任何跟服务器通信过程中传输的用户密码以及敏感数据都应该加密。

络服务安全限制服务器的客户主机地址,限制联机频率等

理员职责

根据前面的要求部署安全策略

期检查日志,设置报警功能

跟踪应用软件的发布网站,及时为软件升级,打补丁

订阅安全电子邮件列表,密切注意最新的安全警告。

全网站: http://www.cert.org

http://www.securityfocus.org

grub加密

vi /etc/grub.conf

password –md5

[root@server ~]# grub-md5-crypt

Password:

Retype password:

$1$bvv0m$MPIdmKnGSvqEpzC0OdHqZ0

grub-md5-crypt >> /etc/grub.conf

vi /etc/grub.conf

password --md5 $1$xlw0m$gGVYHBJ5jQZVQ0Jb3pJgv

统中不应该有777的全局可写的文件

find / -perm -002

find / -perm +6000

以找出来删除,或用安全工具监视

般来说ftp,imap,smtp,http,telnet都是不安全的协议

可用这些协议来代替sftp,ftps,imaps,smtps,https,ssh

络服务安全可以用防火墙来保证

户认证

常一台服务器会开启很多服务SMTPTELNETPOP3,FTPSSH等,这些服务都把验证交给了系统验证。这样一旦这些服务用户泄露密码或是配置服务的疏忽,那将会对系统造成影响。

Linux-PAM认证模块

Pluggable Authentication Modules for Linux

Client sendmail pam(libpam.so) Pam_unix.so

ipop3d Pam_env.so

imapd Pam_nologin.so

vsftpd Pam_rootok.so

... Pam_shells.so

...

/etc/pam.d/<service>

于不同的服务器调用的模块这是不同的,可能用ldd来检查

ldd /usr/sbin/sshd

libpam.so.0 => /lib/libpam.so.0 (0x00138000)如果这个服务器在编译的时候连接到libpam.so模块,就表示这个服务器可以用pam提供验证。

pam本身也不能验证,它是调用了很多其它模块。

这些模块放在ls /lib/security/下面

不是都要使用这此模块,具体的服务,它专门由/etc/pam.d/<service>,下面的文件所定义的。

ls /etc/pam.d/定义各种服务所需的PAM文件时

我们更改服务的认证,首先应该改这里的认证文件


PAM服务文件

more /etc/pam.d/login

#%PAM-1.0

auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so

auth include system-auth

account required pam_nologin.so

account include system-auth

password include system-auth

# pam_selinux.so close should be the first session rule

session required pam_selinux.so close

session required pam_loginuid.so

session optional pam_console.so

# pam_selinux.so open should only be followed by sessions to be executed in the user context

session required pam_selinux.so open

session required pam_namespace.so

session optional pam_keyinit.so force revoke

session include system-auth

session optional pam_ck_connector.so


PAM服务文件格式

module-type control-flag module-path arguments

module-type:auth,account,session,password

control-flag:required,requisite,sufficient,optional

e.g.

auth required pam_securetty.so

auth required pam_stack.so service=system-auth

...

用的PAM服务文件

login /etc/pam.d/login

ipop3d /etc/pam.d/pop

vsftpd /etc/pam.d/ftp/etc/pam.d/vsftpd

su /etc/pam.d/su

imap /etc/pam.d/imap

有的关于服务的认证模块都放在cd /etc/pam.d/

面的每个认证都有相关的pam模块

相关的pam模块的文档都放在cd /usr/share/doc/pam-1.0.1/txts/

more /etc/pam.d/login

以看到account required pam_nologin.so模块

可以参考more /usr/share/doc/pam-1.0.1/txts/README.pam_nologin进行修改


证堆栈

每一个模块放进行验证,把认证成功的标识位放进堆栈。

任何一级的成功都需要其下一级的认证,任何一级的失败导致失败。

用的pam模块

pam_access.so 控制访问者地址与账号名称

pam_listfile.so 控制访问者账号名称或登陆位置

pam_limits.so 控制为用户分配的资源

pam_rootok.so 对管理员(uid=0)无条件允许通过

pam_userdb.so 设定独立用户账号数据库认证


cd /usr/share/doc/pam-1.0.1/txts/这里面全部放的是pam模块的用法

securetty

more README.pam_securetty这样可以查看securetty模块的用法

more /usr/share/doc/pam-1.0.1/txts/README.pam_nologin

pam_nologin is a PAM module that prevents users from logging into the system

when /etc/nologin exists


touch /etc/nologin

ssh redhat@192.168.0.101登陆失败

rm /etc/nologin

ssh redhat@192.168.0.101可以登陆成功



ssh

cd /etc/pam.d/

vi sshd

account required pam_access.so

vi /etc/security/access.conf

-: redhat : ALL EXCEPT 192.168.0. 拒绝redhat用户登陆除了 192.168.0.


ssh redhat@192.168.0.101 可以登陆成功

ssh redhat@127.0.0.1登陆失败


pam_access.so


果要用account required pam_access.so来控制FTP服务器

先打开FTP服务器的PAM服务文件加上account required pam_access.so模块

后改相应的控制域就可以了

加到system_auth,会影响系统全局

因为这个模块pam_access.so使用一个默认的文件

果好几个服务都使用这个,如果不同服务需要控制不同的用户,怎么办呢?

more /usr/share/doc/pam-1.0.1/txts/README.pam_access

accessfile=/path/to/access.conf可以看到有个参数


pam_listfile.so


cd /usr/share/doc/pam-1.0.1/txts/

more README.pam_listfile


vi /etc/pam.d/ftp

auth required /lib/security/pam_listfile.so item=user sense=allow file=/etc/ftpusers onerr=succeed

item里面的用户是user,可以改成group


vi /etc/pam.d/sshd

account required pam_listfile.so item=user sense=deny file=/etc/denyuser onerr=succeed

echo "redhat">/etc/denyuser


ssh -l redhat 192.168.0.101

redhat@192.168.0.101's password:

Connection closed by 192.168.0.101

以看到redhat用户登陆失败说明pam_listfile.so生效

vi /etc/pam.d/sshd

account required pam_listfile.so item=user sense=allow file=/etc/denyuser onerr=succeed

ssh -l redhat 192.168.0.101改成allow后登陆成功

ssh -l root 192.168.0.101换成另的用户就不行了,因为root没有写进这个/etc/denyuser文件

tail /etc/denyuser

redhat


pam_limits.so


more /usr/share/doc/pam-1.0.1/txts/README.pam_limits

vi /etc/pam.d/sshd

session required pam_limits.so

vi /etc/security/limits.conf

@redhat - maxlogins 1

ssh -l redhat 192.168.0.101只能让redhat用户组登陆一次

w可以查看系统中有多少个人


pam_rootok.so


more /etc/pam.d/chfn 是一个修改用户信息的finger工具

more /etc/pam.d/chfn

auth sufficient pam_rootok.so

su - redhat切换到redhat

chfn可以看系统提示你输入密码

退回到root,没有提示你输入密码


pam_userdb.so前面增加vsftpd己讲过例子


级软件

1.浏览软件的发布站点,寻找更新记录与说明

2.下载最新的软件包

3.如果有补丁,最好下载最新的补丁包

4.如果有数字签名或者MD5校验文件,应该一起下载,用来校验软件的完整性

5.编译安装升级


范:升级Samba

1.寻找samba官方网站www.samba.org,找到速度最快的镜像服务器

2.下载最新软件包和数字签名

3.校验数字签名

wget http://us1.samba.org/samba/ftp/samba-pubkey.asc

wget http://us1.samba.org/samba/ftp/stable/samba-3.2.4.tar.asc

wget http://us1.samba.org/samba/ftp/stable/samba-3.2.4.tar.gz

gpg –import samba-pubkey.asc

gzip -d samba-3.2.4.tar.gz

gpg --verify samba-3.2.4.tar.asc如果出现 Good signature说明这个软件包是samba组织发布的,而且没有被破坏

4.编译安装升级

tar xvf samba-3.2.4.tar



gpg --import samba-pubkey.asc

gzip -d samba-3.2.4.tar.gz

gpg --verify samba-3.2.4.tar.asc

tar xvf samba-3.2.4.tar

cd samba-3.2.4/ source/ 存放着samba的源代码

./configure –help|more


./configure;make;make install


范:为Kernel打补丁

http://www.kernel.org/pub/linux/kernel/v2.6/patch-2.6.27.7.bz2

http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.27.7.tar.bz2


1.准备好2.4.26版本的内核文件linux-2.4.26.tar.bz2

2.下载2.4.27版本的补丁patch-2.4.27.bz2md5校验文件

3.打补丁

tar xvjf linux-2.4.26.tar.bz2

bzcat patch-2.4.26.bz2|more

bzcat patch-2.4.26.bz2|patch -p0

mv linux-2.4.26 linux-2.4.27

4.编译新内核替换旧内核

cd linux-2.4.27;make menuconfig

make dep bzImage modules modules_install install


http://www.kernel.org/


查看内核版本

cat /proc/version


查看linux版本

cat /etc/redhat-release

cat /etc/issue

lsb_release -a


http://www.kernel.org/signature.html

vi kernel.pubkey

-----BEGIN PGP PUBLIC KEY BLOCK-----

----

-----END PGP PUBLIC KEY BLOCK-----

gpg --import kernel.pubkey

gpg --verify patch-2.4.27.bz2.sign

good signiture,说明没有问题


用系统安全分析工具

扫描nmap 可以扫描一个服务器开启的服务,帮助管理员远程分析一台服务器是否安全,是否有潜在的漏洞。招描的可以是一个网段也可以是一个具体的IP地址

用法:nmap 192.168.0.101 默认的TCP

nmap -sU -sR 192.168.0.101 同时扫描UDP

nmap -sS -sU -sR 192.168.0.101

探器 tcpdump 帮助分析一个服务器的流量,数据包的具体情况,可以捕捉某一种数据包

用法:tcpdump -i eth0 -X dst 192.168.0.101

tcpdump -i eth0 -X dst 192.168.0.101 and dst port 21只捕捉端口是21的数据包

志服务器 syslog

法:比较复杂


vi /etc/syslog.conf


yum install rsyslog

vi /etc/rsyslog.conf

*.* /tmp/log

service rsyslog restart

tail /tmp/log

志服务器还可以把几个日志合在一起用

vi /etc/rsyslog.conf

*.* @192.168.0.101表示发给192.168.0.101这台主机

vi /etc/sysconfig/syslog

为了让192.168.0.101可以接受消息SYSLOGD_OPTIONS="-m 0 -r -x"

grep syslog /etc/services

netstat -unl |grep :514

志都放在 ls /var/log/

tail -f boot.log 来监视日志的变化


志系统

1.编辑/etc/syslog.conf

2.重新启动日志服务器

service syslog restart

3.检查日志/var/log/*

存日志分析软件SWATCH/lire

yum install swatch

http://heanet.dl.sourceforge.net/sourceforge/swatch/swatch-3.2.tar.gz

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值