1、关闭SELinux功能
Selinux是什么?
安全工具,控制太严格,生产环境不用它,使用其他安全手段。
简介:
SELinux带给Linux的主要价值是:提供了一个灵活的,可配置的MAC机制。
Security-Enhanced Linux (SELinux)由以下两部分组成:
1) Kernel SELinux模块(/kernel/security/selinux)
2) 用户态工具
SELinux是一个安全体系结构,它通过LSM(Linux Security Modules)框架被集成到Linux Kernel 2.6.x中。它是NSA (United States National Security Agency)和SELinux社区的联合项目。
SELinux提供了一种灵活的强制访问控制(MAC)系统,且内嵌于Linux Kernel中。SELinux定义了系统中每个【用户】、【进程】、【应用】和【文件】的访问和转变的权限,然后它使用一个安全策略来控制这些实体(用户、进程、应用和文件)之间的交互,安全策略指定如何严格或宽松地进行检查。
SELinux对系统用户(system users)是透明的,只有系统管理员需要考虑在他的服务器中如何制定严格的策略。策略可以根据需要是严格的或宽松的。
关闭SElinux方式:
1) 通过vi /etc/selinux/config 进入配置文件进入修改
2) 通过sed 命令操作:
实现命令:
1 | sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config |
输出:
1 | [root@oldboy ~]# cp /etc/selinux/config /etc/selinux/config.ori 操作前的备份 |
查看对比修改后的文件:
实现命令:
1 | (vimdiff)diff /etc/selinux/config.ori /etc/selinux/config |
输出:
7c7
< SELINUX=enforcing
-–
> SELINUX=disabled
SELINUX=disabled(永久生效)重启系统
-————–
1 | [root@bigboy ~]# getenforce(查看命令行是否关闭selinux) |
2、运行级别
什么是运行级别:
runlevel linux运行时的一种状态标示,这个标示用数字表示。
运行级别的其中状态:
0
halt,关机状态
1
single user 单用户,找回root密码
2
multiuser without nfs 多用户没有NFS网络文件系统
3
文本模式(Full multiuser mode)***工作模式
4
unused
5
图形。桌面、X11
6
reboot 重启
如何查看linux运行级级别:
实现命令:
1 | runlevel |
输出:
1 | [root@oldboy ~]# runlevel |
N(前一次) 3(当前)
更改运行级别:
1 | init |
3、精简开机系统启动
为什么要设置开机自启动?
1、节省开机时间、加快启动速度
2、节省资源开销
3、减少安全隐患
需要保留的开机自启动:
1 | sshd:远程连接linux服务器 |
如何实现?
第一种方法:通过setup来修改
第二种方法:通过ntsysv来修改
第三种方法:通过chkconfig来实现
a.
1 | [root@bigboy ~]# chkconfig --list|grep 3:on|awk '{print $1}'|grep -Ev "sshd|network|rsyslog|crond|sysstat"|awk '{print "chkconfig " $1 " off"}'|bash |
b.
1 | [root@bigboy ~]# chkconfig --list|grep 3:on|awk '{print $1}'|grep -Ev "sshd|network|rsyslog|crond|sysstat"|sed -r 's#(.*)#chkconfig \1 off#g'|bash |
c.
1 | [root@bigboy ~]# for name in `chkconfig --list|grep 3:on|awk '{print $1}'|grep -Ev "sshd|network|rsyslog|crond|sysstat"`;do chkconfig $name off;done |
4、关闭iptables防火墙
查看防火墙:
1 | iptables -L -n |
关闭防火墙
1 | service iptables stop |
输出:
iptables:将链设置为政策 ACCEPT:filter [确定]
iptables:清除防火墙规则: [确定]
iptables:正在卸载模块: [确定]
查看防火墙状态:
1 | service iptables status |
输出:
1 | Table: filter |
5、linux运维思想最小化原则
原则:多一事不如少一事!
1、安装linux系统最小化,选包最小化,yum安装软件包也要最小化,无用的包不装。
2、开机自启动最小化
3、操作命令最小化
例如:用rm -f test.txt而不用rm -fr test.txt
4、登录linux用户最小化。
平时没有需求不用root登录,用普通用户登录即可
5、普通用户授权权限最小化,
即只给必须的管理系统的命令。
6、linux系统文件及目录的权限设置最小化,禁止随意创建、更改、删除。理论上限制掉。
6、更改SSH服务端远程登录的配置
(配置文件:/etc/ssh/sshd_config)
更改方法:
方法一:通过vi进入配置文件进行修改
1 | vi /etc/ssh/sshd_config |
方法二:通过sed命令实现修改
1 | sed -ir '13 i Port 52113\nPermitRootLogin no\nPermitEmptyPasswords no\nUseDNS no\nGSSAPIAuthentication no' sshd_config |
重启生效:/etc/init.d/sshd reload【平滑重启不影响用户】(restart)
Linux下SSH远程连接服务慢的解决方案请见老男孩的博客:
http://oldboy.blog.51cto.com/2561410/1300964
8、利用sudo管理文件描述
在visudo进入文件增加普通用户的命令路径使得普通用户环境下利用sudo进行命令操作。
1 | vim /etc/sudoers |
用户 用户管理的机器 临时拥有的用户角色 /bin/ls
注意:内置命令无法用到sudo。
9、linux字符显示设置:
字符集是一套文字符号及其编码:GBK 、UTF-8(企业广泛使用)
调整服务器端字符集:调整字符集路径(/etc/sysconfig/i18n)记住
1 | [root@bigboy/]# cat /etc/sysconfig/i18n |
1 | [root@bigboy/]#cp/etc/sysconfig/i18n /etc/sysconfig/i18n.oldboy.20151003 修改文件前的备份 |
10、设置linux服务器时间同步
互联网同步时间
1 | [root@bigboy/]/usr/sbin/ntpdate time.nist.govov 互联网同步时间 |
1 | [root@bigboy/]# ntpdate time.nist.gov set the date and time viaNTP |
1 | [root@bigboy /]# hwclock query and set the hardwareclock |
crond :定时任务
每5分钟同步一次
1 | [root@bigboy/]# echo "*/5 * * * * /usr/sbin/ntpdate time.nist.gov /dev/null2>&1" >>/var/spool/cron/root |
11、设置超时
临时生效
1 | [root@bigboy /]# export TMOUT=300设置超时时间300S |
12、history历史记录数
临时生效
1 | [root@bigboy /]# export HISTSIZE=5 定义历史记录数5条 |
永久生效
1 | [root@oldboy ~]# echo 'export TMOUT=300'>>/etc/profile |
13、history显示历史命令执行时间
在文件 ~/.bashrc 或者 ~/.bash_profile 添加以下内容
1 | vim ~/.bash_profile |
执行source使命令生效
1 | source ~/.bash_profile |
只想使用一次的话可以执行
1 | export HISTTIMEFORMAT="%F %T " |
然后使用history 命令就可以了
14、调整linux系统文件描述符数量
文件描述符是由无符号整数表示的句柄,进程使用它来标示打开文件。
文件描述符概念:
1、表示形式为整数数字(0-65535)
2、会占用文件描述符(标示打开文件)
查看默认文件描述符
1 | ulimit-n |
3、调整文件描述符
1 | [root@bigboy ~]# ulimit -SHn 65535 设置文件描述符数量 |
15、调整内核参数文件 (/etc/sysctl.conf)
1 | vim/etc/sysctl.conf |
网络状态说明及优化命令和优化细节参考资料请看:
http://yangrong.blog.51cto.com/6945369/1321594老男孩教育的优秀学生博文
http://oldboy.blog.51cto.com/2561410/1336488
sysctl -p 使得加载的参数生效
16、隐藏linux版本号:
1 | [root@oldboy ~]# cat /etc/issue |
17、锁定系统文件
相关的系统文件:/etc/passwd/etc/shadow /etc/group /etc/gshadow /etc/inittab
1 | [root@oldboy~]# chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab +i锁定系统文件 |
rm: 无法删除”/etc/passwd”: 不允许的操作
1 | [root@oldboy ~]# chattr -i /etc/passwd/etc/shadow /etc/group /etc/gshadow/etc/inittab -i解除系统文件 |
18、禁止linux系统被ping
内核中修改禁止ping,缺点是禁止自己ping
1 | [root@www ~]# echo 0 >/proc/sys/net/ipv4/icmp_echo_ignore_all |
生效:
1 | [root@www ~]# echo"net.ipv4.icmp_echo_ignore_all=1" >> /etc/sysctl.conf |
还原禁ping:
1 | echo 0 >/proc/sys/net/ipv4/icmp_echo_ignore_all |
19、定时清理邮件服务临时目录垃圾文件
centos5系列的系统默认安装Sen时dmail服务,因此邮件临时存放地点的路径/var/spool/clientmqueue/.
centos6默认情况下没有安转Sendmail服务,而是改装了Posfix服务,因此邮件存放地点的路径为:/var/spool/postfit/maildrop/
以上两个目录很容易被垃圾文件填满导致系统的inode数量不够用,从而导致无地方存放文件
手动清理的方法:
1 | find /var/spool/clientmqueue/ -typef|xargs rm -f #适合centOS5的sendmail服务 |
定时清理的方法为:将上述命令写成脚本,然后做定时任务,每天晚上0点执行一次(定时任务再说)