【基础知识】Linux系统的安全与优化

引言:

我们必须明白:最小的权限+最少的服务=最大的安全

    很久没有写过文章了,最近收到不少朋友来信,提及了有关优化配置和一些新的安全问题,在此我想和大家浅显讨论一下这些问题,有什么不准确和有更好的方式,请给我来信共同讨论提高。

    在网上看到不少有关linux优化方面的好文章,在此我也不赘述这些文章了,我只想从我自己的体会来谈谈这方面的问题。

所以,无论是配置任何服务器,我们都必须把不用的服务关闭、把系统权限设置到最小话,这样才能保证服务器最大的安全。下面是CentOS服务器安全设置,供大家参考。

前提条件:安装linux操作系统的时候选择最小化版本。本文以centos6为例,其他linux发行版仅供参考。

一、注释掉系统不需要的用户和用户组
注意:不建议直接删除,当你需要某个用户时,自己重新添加会很麻烦。

  cp  /etc/passwd  /etc/passwdbak  #修改之前先备份
  vi /etc/passwd  #编辑用户,在前面加上#注释掉此行 
#adm:x:3:4:adm:/var/adm:/sbin/nologin
#lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
#sync:x:5:0:sync:/sbin:/bin/sync
#shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
#halt:x:7:0:halt:/sbin:/sbin/halt
#uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
#operator:x:11:0:operator:/root:/sbin/nologin
#games:x:12:100:games:/usr/games:/sbin/nologin
#gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
#ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin    #注释掉ftp匿名账号
cp /etc/group  /etc/groupbak  #修改之前先备份
  vi /etc/group  #编辑用户组,在前面加上#注释掉此行
#adm:x:4:root,adm,daemon
#lp:x:7:daemon,lp
#uucp:x:14:uucp
#games:x:20:
#dip:x:40:
二、关闭系统不需要的服务
service acpid stop  chkconfig acpid off  #停止服务,取消开机启动  #电源进阶设定,常用在 Laptop 上
service autofs stop  chkconfig autofs off  #停用自动挂载档桉系统与週边装置
service bluetooth stop  chkconfig  bluetooth  off  #停用Bluetooth蓝芽
service cpuspeed stop  chkconfig  cpuspeed  off  #停用控制CPU速度主要用来省电
service cups stop  chkconfig cups off    #停用 Common UNIX Printing System 使系统支援印表机
service ip6tables stop  chkconfig ip6tables off  #禁止IPv6
####################################################################################################
  如果要恢复某一个服务,可以执行下面操作
  service acpid start  chkconfig acpid on  
三、禁止非root用户执行/etc/rc.d/init.d/下的系统命令
chmod -R 700 /etc/rc.d/init.d/*
chmod -R 777 /etc/rc.d/init.d/*    #恢复默认设置

四、给下面的文件加上不可更改属性,从而防止非授权用户获得权限
chattr +i /etc/passwd
chattr +i /etc/shadow
chattr +i /etc/group
chattr +i /etc/gshadow
chattr +i /etc/services    #给系统服务端口列表文件加锁,防止未经许可的删除或添加服务
lsattr  /etc/passwd  /etc/shadow  /etc/group  /etc/gshadow  /etc/services  #显示文件的属性
  注意:执行以上权限修改之后,就无法添加删除用户了。
如果再要添加删除用户,需要先取消上面的设置,等用户添加删除完成之后,再执行上面的操作
chattr -i /etc/passwd    #取消权限锁定设置
  chattr -i /etc/shadow
  chattr -i /etc/group
  chattr -i /etc/gshadow
  chattr -i /etc/services  #取消系统服务端口列表文件加锁
现在可以进行添加删除用户了,操作完之后再锁定目录文件
五、限制不同文件的权限
chattr +a .bash_history          #避免删除.bash_history或者重定向到/dev/null
chattr +i .bash_history
chmod 700 /usr/bin                恢复  chmod 555 /usr/bin
chmod 700 /bin/ping              恢复  chmod 4755 /bin/ping
chmod 700 /usr/bin/vim        恢复  chmod 755 /usr/bin/vim
chmod 700 /bin/netstat          恢复  chmod 755 /bin/netstat
chmod 700 /usr/bin/tail          恢复  chmod 755 /usr/bin/tail
chmod 700 /usr/bin/less        恢复  chmod 755 /usr/bin/less
chmod 700 /usr/bin/head      恢复  chmod 755 /usr/bin/head
chmod 700 /bin/cat                恢复  chmod 755 /bin/cat
chmod 700 /bin/uname          恢复  chmod 755 /bin/uname
chmod 500 /bin/ps                恢复  chmod 755 /bin/ps
六、禁止使用Ctrl+Alt+Del快捷键重启服务器
cp /etc/inittab  /etc/inittabbak
vi /etc/inittab    #注释掉下面这一行
#ca::ctrlaltdel:/sbin/shutdown -t3 -r now
七、使用yum update更新系统时不升级内核,只更新软件包

由于系统与硬件的兼容性问题,有可能升级内核后导致服务器不能正常启动,这是非常可怕的,没有特别的需要,建议不要随意升级内核。
cp /etc/yum.conf    /etc/yum.confbak
1、修改yum的配置文件 vi /etc/yum.conf  在[main]的最后添加 exclude=kernel*
2、直接在yum的命令后面加上如下的参数:
yum --exclude=kernel* update
查看系统版本  cat /etc/issue
查看内核版本  uname -a
八、关闭Centos自动更新
chkconfig --list yum-updatesd  #显示当前系统状态
yum-updatesd    0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭
service yum-updatesd stop      #关闭  开启参数为start
停止 yum-updatesd:                                        [确定]
service yum-updatesd status  #查看是否关闭
yum-updatesd 已停
chkconfig --level 35 yum-updatesd off  #禁止开启启动(系统模式为3、5)
chkconfig yum-updatesd off  #禁止开启启动(所有启动模式全部禁止)
chkconfig --list yum-updatesd  #显示当前系统状态
yum-updatesd    0:关闭  1:关闭  2:启用  3:关闭  4:启用  5:关闭  6:关闭
九、关闭多余的虚拟控制台
我们知道从控制台切换到 X 窗口,一般采用 Alt-F7 ,为什么呢?因为系统默认定义了 6 个虚拟控制台,
所以 X 就成了第7个。实际上,很多人一般不会需要这么多虚拟控制台的,修改/etc/inittab ,注释掉那些你不需要的。
cp  /etc/inittab  /etc/inittabbak
vi /etc/inittab
# Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1
#2:2345:respawn:/sbin/mingetty tty2
#3:2345:respawn:/sbin/mingetty tty3
#4:2345:respawn:/sbin/mingetty tty4
#5:2345:respawn:/sbin/mingetty tty5

#6:2345:respawn:/sbin/mingetty tty6

十、删除MySQL历史记录
用户登陆数据库后执行的SQL命令也会被MySQL记录在用户目录的.mysql_history文件里。
如果数据库用户用SQL语句修改了数据库密码,也会因.mysql_history文件而泄漏。
所以我们在shell登陆及备份的时候不要在-p后直接加密码,而是在提示后再输入数据库密码。
另外这两个文件我们也应该不让它记录我们的操作,以防万一。
cd
cp .bash_history  .bash_historybak  #备份
cp .mysql_history .mysql_historybak
rm .bash_history .mysql_history
ln -s /dev/null .bash_history
ln -s /dev/null .mysql_history

十一、修改history命令记录
cp /etc/profile  /etc/profilebak
vi /etc/profile
找到 HISTSIZE=1000 改为 HISTSIZE=50

十二、隐藏服务器系统信息
在缺省情况下,当你登陆到linux系统,它会告诉你该linux发行版的名称、版本、内核版本、服务器的名称。
为了不让这些默认的信息泄露出来,我们要进行下面的操作,让它只显示一个"login:"提示符。
删除/etc/issue和/etc/issue.net这两个文件,或者把这2个文件改名,效果是一样的。
mv  /etc/issue /etc/issuebak
mv  /etc/issue.net  /etc/issue.netbak

十三、优化Linux内核参数
cp /etc/sysctl.conf  /etc/sysctl.confbak
vi /etc/sysctl.conf    #在文件末尾添加以下内容
net.ipv4.ip_forward = 1 #修改为1
net.core.somaxconn = 262144
net.core.netdev_max_backlog = 262144
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.netfilter.ip_conntrack_max = 131072
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 180
net.ipv4.route.gc_timeout = 20
net.ipv4.ip_conntrack_max = 819200
net.ipv4.ip_local_port_range = 10024  65535
net.ipv4.tcp_retries2 = 5
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_len = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_keepalive_time = 120
net.ipv4.tcp_keepalive_probes = 3
net.ipv4.tcp_keepalive_intvl = 15
net.ipv4.tcp_max_tw_buckets = 36000
net.ipv4.tcp_max_orphans = 3276800
net.ipv4.tcp_max_syn_backlog = 262144
net.ipv4.tcp_wmem = 8192 131072 16777216
net.ipv4.tcp_rmem = 32768 131072 16777216
net.ipv4.tcp_mem = 94500000 915000000 927000000
/sbin/sysctl -p  #使配置立即生效

十四、CentOS 系统优化
cp  /etc/profile  /etc/profilebak2
vi /etc/profile      #在文件末尾添加以下内容
ulimit -c unlimited
ulimit -s unlimited
ulimit -SHn 65535
ulimit -S -c 0
export LC_ALL=C
source  /etc/profile    #使配置立即生效
ulimit -a    #显示当前的各种用户进程限制
十五、服务器禁止ping
cp  /etc/rc.d/rc.local  /etc/rc.d/rc.localbak
vi  /etc/rc.d/rc.local        #在文件末尾增加下面这一行
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
参数0表示允许  1表示禁止

编辑host.conf文件并增加如下几行来防止IP欺骗攻击。 

order bind,hosts 

 multi off 
 nospoof on

  对系统所有的用户设置资源限制可以防止DoS类型攻击。如最大进程数和内存使用数量等。
可以在/etc/security/limits.conf中添加如下几行: 
   * hard core 0 
   * hard rss 5000 
   * hard nproc 20 
   然后必须编辑/etc/pam.d/login文件检查下面一行是否存在。 
   session required /lib/security/pam_limits.so 
   上面的命令禁止调试文件,限制进程数为50并且限制内存使用为5MB

iptables  
iptables -A INPUT -p all -m state --state INVALID -j DROP  
iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP  
iptables -A INPUT -p icmp --icmp-type 0 -m length --length :100 -m limit --limit 6/s --limit-burst 10 -j ACCEPT  
iptables -A INPUT -p icmp --icmp-type 8 -m length --length :100 -m limit --limit 6/s --limit-burst 10 -j ACCEPT  
iptables -A INPUT -p icmp --icmp-type 11 -m length --length :100 -m limit --limit 6/s --limit-burst 10 -j ACCEPT  
iptables -A INPUT -p icmp -j DROP  
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT  
iptables -A INPUT -p tcp --syn -m state --state NEW --dport 80 -j ACCEPT  
iptables -A INPUT -p tcp --syn -m state --state NEW --dport 1433 -j ACCEPT  
iptables -A INPUT -p tcp --syn -m state --state NEW --dport 3389 -j ACCEPT  
iptables -A INPUT -p tcp --syn -m state --state NEW --dport 5022 -j ACCEPT  
iptables -A INPUT -p udp --dport 3389 -j ACCEPT  
iptables -A INPUT -p tcp -m multiport --dport 80,1433,3389,5022 -j DROP  
  
  
netfilter  
net.ipv4.tcp_fastopen = 1  
net.ipv4.tcp_thin_linear_timeouts= 0  
net.ipv4.tcp_thin_dupack= 0  
net.ipv4.ip_local_port_range = 1024 65000  
net.ipv4.ip_conntrack_max = 655360  
net.ipv4.icmp_echo_ignore_broadcasts = 1  
net.ipv4.icmp_ignore_bogus_error_responses = 1  
net.ipv4.tcp_syncookies = 1  
net.ipv4.conf.all.log_martians = 1  
net.ipv4.conf.default.log_martians = 1  
net.ipv4.conf.all.accept_source_route = 0  
net.ipv4.conf.default.accept_source_route = 0  
net.ipv4.conf.all.rp_filter = 1  
net.ipv4.conf.default.rp_filter = 1  
net.ipv4.conf.all.accept_redirects = 0  
net.ipv4.conf.default.accept_redirects = 0  
net.ipv4.conf.all.secure_redirects = 0  
net.ipv4.conf.default.secure_redirects = 0  
net.ipv4.ip_forward = 0  
net.ipv4.conf.all.send_redirects = 0  
net.ipv4.conf.default.send_redirects = 0  
kernel.exec-shield = 1  
kernel.randomize_va_space = 1  

十六、服务器内网隔离(有些业务需要直接ssh免密钥直连除外)

尽量把服务器都放在后端前面加个总分代理或者负载访问,这样基本不会暴露在外网

十七、有条件的可以采用VPN、跳板机或者运维审计系统,提高权限操作意识

十八、安全无小事,最终都是定位在人的误操作或者对数据的管理上

疑人不用,用人不疑,加强人员的分工分块协作。

最后补充几点虽然不是安全范畴但对安全特别重要:

1、服务器各种日志的留存(系统日志、操作日志、访问日志以及消息等)至少留存6个月以上(以便出问题溯源)

2、必要的情况可以购买一些安全软件虽然linux本身安全体系有但对于技术能力不够的系统管理人员还是有必要的,例如安全狗、360主机卫士、悬镜、云锁、安慧网盾、云盾和安骑士等

3、对于一个项目团队,尽量不给root用户权限尽量不给,开发人员可以分配临时账号或者实现web在线化管理进行上传代码部署调试等

4、多去逛一些安全博客论坛和及时关注最新系统和软件的漏洞信息,尤其是linux上基本上全是开源的,时刻关注安全漏洞及时修复才是每个系统人员的应尽的义务

5、Linux管理人员必须会IPtables hostdeny selinux、Nmap、Snort、Nesseu和honeynet 这些开源的安全软件规则

6、硬件资产优化,例如BIOS、TCP/IOS、IPMI远程卡、网关交换路由设备和存储设备进行统一管理

7、有软件也有硬件,从内核优化编译到防火墙、Proxy、LDAP、SSL、数据库还有FTP、WEB、Sendmail。

8、sshd服务安全配置和优化这个一般都是很多企业的首位策略(密钥登陆)

Port 56100 #ssh服务端口号,我们可以改成高端口,一般端口扫描工具不会扫描高端口的。
AddressFamily any #ssh服务的协议族,可以用ipv4 ipv6或者直接使用any。
Protocol 2 #ssh服务协议版本,默认为1,建议使用2,1有漏洞。
KeyRegenerationInterval 3600 # 在SSH-1协议下,短命的服务器密钥将以此指令设置的时间为周期(秒),不断重新生成。这个机制可以尽量减小密钥丢失或者黑客攻击造成的损失。
ServerKeyBits 2048 #  指定临时服务器密钥的长度。1024存在认证漏洞,安全最低2048位。
LogLevel ERROR #日志级别,可以使用 QUIET, FATAL, ERROR, INFO(默认), VERBOSE, DEBUG, DEBUG1, DEBUG2, DEBUG3。
LoginGraceTime 30 #限制用户必须在指定的时限内认证成功,建议设置低,增加暴力破解难度,单位为秒。
MaxAuthTries 3 #最多登录尝试次数,建议设置低一些,加大暴力破解难度。
RSAAuthentication yes #使用纯 RSA公钥认证。
PubkeyAuthentication yes #使用公钥认证,推荐使用安全高效!
AuthorizedKeysFile      .ssh/authorized_keys #用户公钥文件保存路径,默认为用户的home目录下.ssh隐藏文件夹中的authorized_keys,建议更换到其他目录,防止丢失或者被恶意登陆者在默认的这个路径中找到篡改。
PermitEmptyPasswords no #不允许空密码登录,这个太危险啦。
GSSAPIAuthentication no #不基于 GSSAPI 的用户认证,关闭,优化性能。
UsePAM no #使用PAM认证,如果不用LDAP之类的登陆,建议关闭,优化性能。
X11Forwarding no #如果没有使用x11转发最好关闭掉,优化性能。
PrintMotd no #登录打印公告信息,可以修改或者关闭,修改/etc/motd来震慑恶意登陆者,默认会显示一些系统信息,关闭掉,减少恶意登陆者获取的信息量,防止被恶意利用。
PrintLastLog no #不打印最后登陆信息,减少恶意登陆者获取的信息量,防止被恶意利用。
TCPKeepAlive yes #保持长连接,加快连接速度,优化性能。
PidFile /var/run/sshd.pid #ssh服务的pid文件。
Banner none #不显示系统banner信息,如果开启会在每次登陆时显示系统信息,减少恶意登陆者获取的信息量,防止被恶意利用。
PermitRootLogin no #禁止root用户登陆,降低远程登陆的用户权限。
PasswordAuthentication no #允许用户名密码登陆,no,禁止使用用户名和密码登陆,使用公钥登陆,防止针对用户名和密码的暴力破解。

至此,CentOS Linux服务器安全设置基本完成,以上设置经过笔者实战测试(CentOS-5.5-x86_64)完全可用,更多的安全设置以及服务器优化,还请大家自行测试。


【作者总结补充内容】

关于优化

基本原则:

  • 最小的权限+最小的服务=最大的安全
  • 操作之前先备份;
  • 为避免配置错误无法登录主机,请始终保持有一个终端已用root登录并不退出,在另一个终端中做配置修改。这样即使改错,也不至于因系统无法登录导致永远无法登录或恢复配置。

说起优化,其实最好的优化就是提升硬件的配置,例如提高cpu的运算能力,提高内存的容量,个人认为如果你考虑升级硬件的话,建议优先提高内存的容量,因为一般服务器应用,对内存的消耗使用要求是最高的。当然这都是题外话了。

这里我们首要讨论的,是在同等硬件配置下(同一台服务器,不提升硬件的情况下)对你的系统进行优化。

作为系统管理员,我认为,首先我们要明确一个观点:在服务器上作任何操作,升级和修改任何配置文件或软件,都必须首要考虑安全性,不是越新的东西就越好,这也是为什么linux管理感觉上和windows有所不同的地方,windows首先推荐大家去使用它的最新版本软件和操作系统,其实我个人认为这是一种商业行为,作为从系统管理上来讲,这是很不好的,使用新的软件和系统可能带来新的问题,有些甚至是致命的。

因此,作为管理,我们还是应该考虑稳定的长期使用的软件版本来作为我们的版本,具体的好处我就不多说了。相信作为管理员的你应该知道的。

其实个人使用的linux最直接的一个优化就是升级内核,自己编译的内核是根据自己的系统编译而来,将得到最大的性能和最小的内核。

但是,服务器就不太一样了,当然我们也希望每一台服务器都是自己手工编译的内核,高效而精巧。但是实际和愿望是有差距的,试想一下,如果你管理100来台linux主机,而每一台也许配置都不一样,那编译内核的一个过程将是一个浩大工程,而且从实际考虑,工作量大得难以想象。我想你也不会愿意做这种事情吧。因此,个人建议,采用官方发布的内核升级包是很好的选择。

首先,我们对新安装的系统,将做一系列升级,包括软件和内核,这是很重要的步骤。

在升级好所有软件后,基本的防火墙和配置都做好以后,我们开始优化一些细节配置,如果你是老系统,那么在作本问题及的一些操作和优化你系统之前,务必被备份所有数据到其他介质。

1、虚拟内存优化

首先查看虚拟内存的使用情况,使用命令

# free

查看当前系统的内存使用情况。

一般来说,linux的物理内存几乎是完全used。这个和windows非常大的区别,它的内存管理机制将系统内存充分利用,并非windows无论多大的内存都要去使用一些虚拟内存一样。这点需要注意。

Linux下面虚拟内存的默认配置通过命令

# cat /proc/sys/vm/freepages

可以查看,显示的三个数字是当前系统的:最小内存空白页、最低内存空白页和最高内存空白。

注意,这里系统使用虚拟内存的原则是:如果空白页数目低于最高空白页设置,则使用磁盘交换空间。当达到最低空白页设置时,使用内存交换(注:这个是我查看一些资料得来的,具体应用时还需要自己观察一下,不过这个不影响我们配置新的虚拟内存参数)。

内存一般以每页4k字节分配。最小内存空白页设置是系统中内存数量的2倍;最低内存空白页设置是内存数量的4倍;最高内存空白页设置是系统内存的6倍。这些值在系统启动时决定。

一般来讲在配置系统分配的虚拟内存配置上,我个人认为增大最高内存空白页是一种比较好的配置方式,以1G的内存配置为例:

可将原来的配置比例修改为:

2048 4096 6444

通过命令

# echo "2048 4096 6444" > /proc/sys/vm/freepages

因为增加了最高空白页配置,那么可以使内存更有效的利用。

2、硬盘优化

如果你是scsi硬盘或者是ide阵列,可以跳过这一节,这节介绍的参数调整只针对使用ide硬盘的服务器。

我们通过hdparm程序来设置IDE硬盘,

使用DMA和32位传输可以大幅提升系统性能。使用命令如下:

# /sbin/hdparm -c 1 /dev/hda

此命令将第一个IDE硬盘的PCI总线指定为32位,使用 -c 0参数来禁用32位传输。

在硬盘上使用DMA,使用命令:

# /sbin/hdparm -d 1 /dev/hda

关闭DMA可以使用 -d 0的参数。

更改完成后,可以使用hdparm来检查修改后的结果,使用命令:

# /sbin/hdparm -t /dev/had

为了确保设置的结果不变,使用命令:# /sbin/hdparm -k 1 /dev/hda

Hdparm命令的一些常用的其他参数功能

-g 显示硬盘的磁轨,磁头,磁区等参数。

-i 显示硬盘的硬件规格信息,这些信息是在开机时由硬盘本身所提供。

-I 直接读取硬盘所提供的硬件规格信息。

-p 设定硬盘的PIO模式。

-Tt 评估硬盘的读取效率和硬盘快取的读取效率。

-u <0或1> 在硬盘存取时,允许其他中断要求同时执行。

-v 显示硬盘的相关设定。

3、其他优化

关闭不需要的服务,关于系统自动启动的服务,网上有很多资料,在此我就不赘述了;

关于安全

1、安全检查

作为一个系统管理员来说,定期对系统作一次全面的安全检查很重要的,最近遇到一些朋友来信说出现了一些莫名其妙的问题,例如最大的一个问题就是明显感觉网络服务缓慢,这极有可能是被攻击的现象。

实践证明,无论是那种系统,默认安装都是不安全的,实际不管你用windows也好,linux,bsd或其他什么系统,默认安装的都有很多漏洞,那怎么才能成为安全的系统呢,这正是我们系统管理人员需要做的事情。配置配置再配置。

任何系统,只要细心的配置,堵住已知的漏洞,可以说这个系统是安全的,其实并非很多朋友说的那样,安装了系统,配置了防火墙,安装了杀毒软件,那么就安全了,其实如果对系统不作任何安全设置,那就等于向黑客敞开一扇纸做的大门,数十分钟就能完全控制!

这并非骇人听闻。

作为linux系统,同样存在很多漏洞,黑可能利用这些漏洞控制你的整个系统,要防止这些问题,我们需要做以下步骤:

1、 升级系统中所有软件包的最新版本;

2、 设置较为强壮的防火墙;

3、 定期检查关键记录文件,配置杀毒软件

4、 多关心一下发布安全信息警告的网站,掌握一些最新的病毒和黑客程序的特点,这些都利于系统的正常运作。

这篇文章主要以优化为主,为了配合这一主题,安全部分我们只讨论一下日常的一些维护工作。

除了上面列出的4条是管理员必修之课外,对一些linux系统细节的维护也很重要。

包括:

1、 配置日志轮训工具,定期下载备份日志,是个非常好的习惯,这样不但能减少日志的消耗的磁盘空间,提高系统效率,更能及时发现问题,linux下有些很好的系统日志分析器,能直接提取日志中的特殊项目,省去了阅读日志的烦恼;

2、 使用命令lsof –i ,netstat –a ,ps –e等命令,定期检查系统服务端口监听等情况,也可制作一个定期执行的脚本,将这些命令定期执行后发到邮箱中;

3、 定期检查root用户的history列表,last列表,vipw用户列表是否正常;

4、 定期备份文件,用tar命令就能很好的备份了,当然需要下载这些备份并转移介质;

5、IPtables hostdeny selinux、Nmap、Snort、Nesseu和honeynet 

如一点发现有任何特别的没见过的情况或端口,那么要引起足够的重视,切勿因小失大。

以上是我对linux系统安全和优化的一些浅显认识,希望大家都能安全高效的使用linux为你的工作生活带来方便。

【参考文章】

CentOS6安全加固及性能优化 - http://blog.csdn.net/knight_zhen/article/details/46444451 (有些参数写的很详细)

Linux系统安全基础知识 - guisu程序人生。 逆水行舟,不进则退。http://blog.csdn.net/hguisu/article/details/8751432 (高手写的,不过有些优化需要根据公司自身的需求制定计划的不用全部照搬)

目录(?)[-]

  1. 1基本的系统安全
    1. 1 安全的磁盘布局
    2. 2 提高文件系统的安全性
    3. 去除非必要的特殊权限
    4. 检查重要的文件权限
    5. 避免安装不必要的软件包
    6. 软件包的更新
    7. 关闭不必要的服务
    8. 关闭IPv6的内核功能
  2. 2物理安全和登录安全
    1. 一配置GRUB的口令
    2. 二为单用户模式启用认证
    3. 三禁用重启热键
    4. 四为单用户模式启用认证
    5. 五禁用启动时的交互热键
    6. 六设置屏幕锁定
    7. 七为BASH设置超时自动注销帐号
  3. 3账号安全问题禁用root登录和sudo
    1. 一sudo简介
    2. 二与sudo相关的文件
    3. 三sudo的执行过程 
    4. 四快速配置sudo
    5. 五限制su命令
    6. 六修改ssh服务的登录权限
    7. 七修改ssh服务的sshd 端口
  4. 4系统安全记录文件
  5. 5防止攻击
  6. 4可插播认证模块PAM
  7. 5基于PAM的口令安全和口令策略
  8. 6基于PAM的访问控制
  9. 5基于PAM的口令安全和口令策略
  10. 4可插播认证模块PAM

【推荐书籍】

1、Red Hat Linux安全与优化(Kabir Mohammed J.) PDF扫描版[22MB] 电子书 下载http://www.jb51.net/books/186592.html

2、Linux安全与优化概要_百度文库 https://wenku.baidu.com/view/116e200cf12d2af90242e696.html


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值