1、关闭SELinux
修改配置文件: sed -i ‘s/SELINUX=enforcing/SELINUX=disabledd/’ /etc/selinux/config #修改配置文件使配置永久生效,单必须重启系统 grep SELINUX=disabled /etc/selinux/config #检查更改的配置 临时关闭SELinux: setenforce#生成设置选项 setenforce 0 #临时将selinux修改为Permissive状态,即disabled getenforce #查看selinux当前状态 2、设定运行级别为3(文本模式)
runlevel#查看当前系统运行级别 init 5#切换运行级别为5 # Default runlevel. The runlevels used are: # 0 - halt (Do NOT set initdefault to this) # 1 - Single user mode # 2 - Multiuser, without NFS (The same as 3, if you do not have networking) # 3 - Full multiuser mode # 4 - unused # 5 - X11 # 6 - reboot (Do NOT set initdefault to this) id:5:initdefault: 3、精简开机系统自启动
重要的开机自启动服务 (建议保留自启动的5个服务): sshd: rsyslog:系统守护进程是用rsyslog程序将各种信息写到各系统日志文件中,CentOS6前叫syslog network: crond:周期性的执行 系统及用户配置的任务计划 sysstat:一个软件包,包含监测系统性能及效率的一组工具 主要工具包括: iostat:提供CPU使用率、硬盘吞吐效率 的数据 mpstat:提供与单个或多个处理器相关的数据 sar: 负责收集、报告、存储 系统活跃信息 设置自启动方法: 1)执行命令,手动设置 执行ntsysv,弹出窗口进行设置
执行setup-->system service 在弹出窗口中设置 2)命令或shell脚本设置3种方法 LANG=en #调整成英文字符集,方便下面命令过滤中文字符串 chkconfig --list | grep 3:on#查看开机自启的服务 a、先关闭全部,再开启需要的 LANG=en #临时调整字符集为英文 for nineep in `chkconfig --list | grep 3:on |awk ‘{print $1}’`; do chkconfig --level 3 $nineep off; done#关掉所有的自启服务 for nineep in crond network rsyslog sshd sysstat ;do chkconfig --level 3 $nineep on;done#开启需要的服务 chkconfig --list | grep 3:on#查看设置结果 b、关闭不需要的服务(循环结构) for nineep in `chkconfig --list | grep “3:on” | awk ‘{print $1}’` | grep -vE “crond|network|sshd|rsyslog|sysstat”`;do chkconfig $nineep off;done chkconfig --list | grep 3:on c、另一种直接关闭不需要的服务方法(命令拼接) chkconfig --list | grep 3:on | grep -vE “crond|sshd|network|rsyslog|sysstat” | awk ‘{print “chkconfig “ $1 “off”}’ | bash 或者 chkconfig --list | grep 3:on |grep -vE “crond|sshd|network|rsyslog|sysstat” | awk ‘{print $1}’ | sed -r ‘s#(.*)#chkconfig \1 off#g’ | bash 4、关闭防火墙
/etc/init.d/iptables stop #执行2次,以确认关闭成功 chkconfig iptables off #关闭开机自启动 chkconfig --list | grep iptables #查看设置结果 5、Linux系统安全最小原则
-安装linux系统最小化,选安装包最小化,yum安装的软件包最小化,无用的包不装 -开机自启最小化 -操作命令最小化 -登录linux用户最小化 -普通用户授权最小化 -linux文件系统和目录权限设置最小化 6、更改SSH服务器远程登录的配置
windows服务器 3389 administrator guest linux服务器 22 root user cp /etc/ssh/sshd_config /etc/ssh/sshd_config.ori#备份配置文件 vim /etc/ssh/sshd_config#修改参数 ################################## port 54691 PermitRootLogin no PermitEmptyPasswords no UseDNS no GSSAPIAuthentication no ################################### /etc/init.d/sshd reload(restart)#平滑重启sshd
7、利用sudo控制用户对系统命令的使用权限
visudo vim /etc/sudoers tip:修改PATH环境变量 vim ~/.bash_profile #编辑环境变量文件 source ~/.bash_profile#使添加内容生效 echo $PATH#检查 8、linux中文显示设置
字符集: GBK: UTF-8:企业广泛使用 中文显示设置方法:
cat /etc/sysconfig/i18n cp /etc/sysconfig/i18n /etc/sysconfig/i18n.backup echo ‘LANG=”zh_CN.UTF-8”’ > /etc/sysconfig/i18n source /etc/sysconfig/i18n echo $LANG 9、设置linux服务器时间同步
linux系统时间同步服务为ntp服务 /usr/sbin/ntpdate time.nist.gov 利用定时任务crond,每5分自动执行一次: echo ‘#time sysnc’ >> /var/spool/cron/root echo ‘* /5 * * * * /usr/sbin/ntpdate time.nist.gov > /dev/null 2>&1’ >>/var/spool/cron/root crontab -l 10、历史记录数 及 登录超时环境变量设置
1)设置闲置账号超时时间(临时生效) export TMOUT=10 #10s提示超时 2)设置linux命令行历史数(临时生效) export HISTSIZE=5 #命令行的历史记录数为5 history export HISTFILESIZE=5#历史记录文件的命令数量 cat ~/.bash_history 3)永久生效 echo ‘export TMOUT=10’ >> /etc/profile source /etc/profile 12、linux服务器内核优化
vim /etc/sysctl.conf 文件结尾添加如下内容: net.ipv4.tcp_fin_timeout = 2 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_keepalive_time = 600 net.ipv4.ip_local_port_range = 4000 65000 net.ipv4.tcp_max_syn_backlog = 16384 net.ipv4.tcp_max_tw_buchets = 36000 net.ipv4.route.gc_timeout = 100 net.ipv4.tcp_syn_retries = 1 net.ipv4.tcp_synack_retries = 1 net.core.somaxconn = 16348 net.core.netdev_max_backlog = 16348 net.ipv4.tcp_max_orphans = 16384 #以下参数是对iptable防火墙的优化,防火墙不开会提示,可以忽略不理 net.nf_conntrack_max = 25000000 net.netfliter.nf_conntrack_max = 25000000 net.netfilter.nf_conntrack_tcp_timeout_established = 180 net.netfilter.nf_conntrack_tcp_timeuot_time_wait = 120 net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60 net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120 sysctl -p#执行,生效 13、定时清理邮件服务临时目录垃圾文件
centos5路径:/var/spool/clientmqueue/ centos6路径:/var/spool/postfix/maildrop/ 手动清理: find /var/spool/clientmqueue -type f | xargs rm -f #适合centos5的sendmail服务 find /var/spool/postfix/maildrop -type f |xargs rm -f #适合centos6的postfix服务 定时清理: mkdir -p /server/scripts echo “find /var/spool/postfix/maildrop -type f |xargs rm -f” >/server/scripts/del_file.sh echo “00 00 * * * /bin/sh /server/scripts/del_file.sh >/dev/null 2>&1” >>/var/spool/cron/root crontab -l df -i 14、隐藏linux版本信息显示
> /etc/issue#隐藏 cat /etc/issue#检验 >/etc/issue.net cat /etc/issue.net 15、锁定关键系统文件,防止被篡改(账号密码文件、启动文件)
chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab#加锁 chattr -i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab #解锁 16、清除多余的系统虚拟账号
如bin,adm,lp,halt,mail,uucp,operator,games,gopher, ftp,dbus,vcsa,abrt,ntp,saslauth,postfix,tcpdump等 17、为grub菜单加密
1)利用/sbin/grub-md5-crypt 生成一个MD5密码串 /sbin/grub-md5-crypt 2)将密码串(password --md5 密码串)添加至splashimage和title之间 vim /etc/grub.conf 设置完成后,下次开机需要管理grub时就会提示输入密码 18、禁止Linux系统被ping(非必须优化)
1)禁止ping:
echo “net.ipv4.icmp_echo_ignore_all = 1” >> /etc/sysctl.conf tail -1 /etc/sysctl.conf sysctl -p 2)开启ping: 删除/ect/sysctl/conf 中的net.ipv4.icmp_echo_ignore_all =1 执行echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all 19、升级具有典型漏洞的软件版本
1)查看软件版本号 rpm -qa openssl openssh bash 2)升级 yum install openssl openssh bash -y
|