linux  系统安全


新装机器的配置


1  设置密码复杂一点

2  禁止root 远程ssh 登陆

3  修改ssh端口

4  设置防火墙

5  使用tcp_wrapper 

6  禁止control+alt+delelte 重启

7  检查:重要文件权限设置  

8  限制外来IP地址ping 主机(根据实际情况确定)

9  selinux  

 

 已经运行过的服务器,检查系统安全

 

 1  检查服务

 netstat -an   

 top

 ps -elf

 

 2 检查哪些用户在线

 

 w 

 who 

 who /var/log/wtmp

 users 

 last 


3 检查安全日志


less  /var/log/secure  







专题:linux 系统安全 



1 密码设置复杂一点

2 禁止root本地登录

  vi /etc/pam.d/login 

  auth required pam_succeed_if.so user != root quiet

  

  禁止root远程ssh登陆

  vi /etc/ssh/sshd_config

  PermitRootLogin no

  

3 修改ssh登陆端口

vi /etc/ssh/sshd_config


修改#port 22为port 47777

自定义端口选择建议在万位的端口(如:10000-65535之间)

重启SSH服务/etc/init.d/sshd restart

友情小提示:建议不要着急退出本ssh链接,新ssh链接测试,以防新手设置错误登不进来


4 设置防火墙



=================================================================

一 硬件安全

1 bios安全(硬件上的安全)


设置bios密码


2 禁止使用control+alt+delete 重启机器


vi /etc/inittab

# ca::ctrlaltdel:/sbin/shutdown -t3 -r now


二 账号安全


1 vi /etc/login.defs login程序的配置文件,修改密码长度和有效期

2 vi /etc/profile 环境变量设置文件

3 vi /etc/passwd 

4 特别账号处理


如果不启动用sendmail,删除如下用户

[root@tp wh]# userdel adm

[root@tp wh]# userdel lp

[root@tp wh]# userdel sync

[root@tp wh]# userdel shudown

[root@tp wh]# userdel halt

[root@tp wh]# userdel mail

如果不用X windows服务器.可有删除

[root@tp wh]# userdel news

[root@tp wh]# userdel uucp

[root@tp wh]# userdel operator

[root@tp wh]# userdel games

如果不允许匿名FTP帐号登陆,可删除

[root@tp wh]# userdel gopher

[root@tp wh]# userdel ftp




三 重要文件安全设置


1 chmod   改变文件的属主

2 chattr  改变文件的属性


我们要做的是把重要文件的属主改成root并给相应的权限,还有就是改变文件的属性让它禁止被修改


1,/etc/passwd,passwd-,passwd.OLD,group,group- 用户,组的ID等信息文件.

2,/etc/shadow,shadow-,gshadow,gshadow- 用户,组密码加密文件.

3,/etc/xinetd.conf 网络守护进程主配置文件

4,/etc/inittab  系统在启动是会读取这个文件里的内容.

5,/etc/services 防止未经许可的删除或添加服务

6,/etc/rc.d/rc.sysinit 系统启动是需要读取的文件,

7,/etc/rc.d/init.d/*  

以一个文件为例,其它都一样

[root@tp etc]# chmod 700 passwd

[root@tp etc]# chattr +i passwd

当chattr +i时就是禁止对文件进行修改,当我们要添加用户时,就会有麻烦,因为passwd文件禁止修改写入.所以


我们还要该掉它的属性.chattr -i.



四 防止攻击系统安全的设置


1 限制用户使用系统资源,主要包括资源最大进程数,内存使用量等.这样可以防止DOS类型攻击

vi /etc/security/limits.conf


2 vi /etc/pam.d/login


3 vi /etc/securetty 限制控制台的访问 


4  禁止外来的ping 请求


 vi /etc/rc.d/rc.local

 

在最后加入一行

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all


5  防止IP地址欺骗 

vi /etc/host.conf

加入如下几行

order bind,hosts

multi off

nospoof on



6  禁止su 命令进入root


 vi /etc/pam.d/su

...

在下面加入如下两行

auth sufficient /lib/security/pam_rootok.so debug

auth required /lib/security/pam_wheel.so group=xxx

这表示只有xxx组的用户可以su成root.



7 使用tcp_wrapper


vi  /etc/hosts.deny 

vi  /etc/hosts.allow 


8 删减登陆信息 


[root@tp ~]# rm -f /etc/issue

  [root@tp ~]# rm -f /etc/issue.net

 [root@tp ~]# touch /etc/issue

  [root@tp ~]# touch /etc/issue.net

 

 

 五 确保开启服务的安全性

 

 ps -eaf | wc -l 

 

 ps -aux 

 

 ntsysv 前面有*号就是开机自动启动的服务

 

 netstat -an 正在运行的服务

 

  

 

 六 日志文件

 

通过日志查看哪些可疑的用户登录过机器


 

三个重要的日志文件

/var/log/wtmp 记录每个用户登陆和推出时间的永久记录.

/var/run/utmp 记录当前登陆到系统的每个用户信息.

/var/log/lastlog 每个用户最后一次登陆的信息(最新的信息)

wtmp和utmp都是二进制文件,它们要用命令来查看内容.


1,命令who,查看utmp文件当前的每个用户的信息,它默认输出包括用户名,终端类型,登陆时间及远程主机.

  who /var/log/wtmp   如果指明了文件,则回显示自wtmp创建以来所有登陆的用户信息


2 命令w,查看utmp文件并显示当前系统中每个用户和它所运行的进程信息.


3 users,显示当前当前登陆的用户数量.


4 last命令,用来显示wtmp文件第一次 创建以来所有登陆过的用户.

  我们也可以指明用户,[root@tp log]# last root


5,命令ac,根据wtmp文件中每个用户进入和退出时间.(以小时计算),不用参数代表全部




1  top命令,查看有没有异常进程占用大量的CPU或者是内存资源;

2  查看less /var/log/secure文件,查看ssh日志,看是否有非法用户大量尝试ssh;

3  who命令,查看目前ssh到linux服务器的用户,是否是合法的;

4  查看在linux服务器上部署的应用是否有漏洞,有的话很容易受到攻击。


pam 相关内容后续上传