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 相关内容后续上传