搜索
简帛阁>技术文章>Linux系统调优及安全设置

Linux系统调优及安全设置

1.关闭SELinux

#临时关闭
setenforce 0

#永久关闭
vim /etc/selinux/config

SELINUX=disabled

 2.设定运行级别为3

#设定运行级别
vim /etc/inittab

id:3:initdefault:

#查看当前级别
[root@cobbler ~]# runlevel
N 3

 3.精简开机自启动

#系统安装后只保留crond、sshd、network、rsyslog、sysstat五个服务开机启动

chkconfig --list | grep 3:on | egrep -v "crond|sshd|network|rsyslog|sysstat" | awk '{print "chkconfig "$1" off"}' | bash

 4.关闭iptables防火墙

#iptables一般在配置了外网ip的服务器才需打开,内网一般关闭。iptables开启会损失一部分性能

/etc/init.d/iptables stop

#检查开机启动项

chkconfig --list | grep iptables

 5.修改SSH服务端远程登录配置

vim /etc/ssh/sshd_config

Port 52113                       #修改端口
PermitRootLogin no               #禁止root登录
PermitEmptyPasswords no          #禁止空密码登录
UseDNS no                        #不对主机名进行反解,加速连接
GSSAPIAuthentication no          #加速连接
ListenAddress 172.16.1.0/24      #仅监听内网IP地址

 6.利用sudo控制用户管理权限

visudo

peter   ALL=(ALL)       NOPASSWD: ALL

#语法检查

visudo -c

 7.调整字符集

vim /etc/sysconfig/i18n

LANG="en_US.UTF-8"        #表示语言为英文,字符集为utf-8
SYSFONT="latarcyrheb-sun16"


#LANG="zh_CN.UTF-8"  表示语言为中文,字符集为utf-8

 8.设置时间同步

#使用定时任务同步时间服务器上的时间
echo "Time sync by peter at 2017-10-16" >> /var/spool/cron/root
echo "*/5 * * * * /usr/sbin/ntpdate time.nist.gov &> /dev/null" >> /var/spool/cron/root

 9.设置历史记录和登录超时

#设置登录超时
echo 'export TMOUT=300' >> /etc/profile

#设置历史记录条数
echo 'export HISTSIZE=4096' >> /etc/profile

#设置历史纪录文件(~/.bash_history)命令的数量
echo 'export HISTFILESIZE=4096' >> /etc/profile

#设置历史记录格式
echo 'export HISTTIMEFORMAT="%F %T `whoami` "' >> /etc/profile

#使配置文件生效
source /etc/profile

 10.设置文件描述符的数量

在编写文件操作的或者网络通信的软件时,初学者一般可能会遇到“Too many open files”的问题。这主要是因为文件描述符是系统的一个重要资源,虽然说系统内存有多少就可以打开多少的文件描述符,但是在实际实现过程中内核是会做相应的处理的,一般最大打开文件数会是系统内存的10%(以KB来计算)(称之为系统级限制),查看系统级别的最大打开文件数可以使用sysctl -a | grep fs.file-max命令查看。与此同时,内核为了不让某一个进程消耗掉所有的文件资源,其也会对单个进程最大打开文件数做默认值处理(称之为用户级限制),默认值一般是1024,使用ulimit -n命令可以查看。在Web服务器中,通过更改系统默认值文件描述符的最大值来优化服务器是最常见的方式之一。

#设置单个进程文件描述符的数量
vim /etc/security/limits.conf 

*     -    nofile    65535

#重新登录shell才能查看更改,因为shell也是一个进程

[root@cobbler ~]# ulimit -n
65535

#系统级别的文件描述符数量会在内核参数调优中加以调整

 11.内核参数优化

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.tcp_max_syn_backlog = 16384
net.ipv4.tcp_max_tw_buckets = 36000
net.ipv4.route.gc_timeout = 100
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_max_orphans = 16384
net.ipv4.ip_forward = 1
#net.ipv4.icmp_echo_ignore_all = 1
net.ipv4.ip_local_port_range = 10000  65000
net.core.somaxconn = 16384
net.core.netdev_max_backlog = 16384
fs.file-max = 2000000
vm.swappiness = 0

sysctl -p

 12.定时清理邮件服务临时目录垃圾文件

#将清理命令写入脚本
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" >> /var/spool/cron/root

13.隐藏登录时版本信息

> /etc/issue
> /etc/issue.net 

 14.锁定关键系统文件

#锁定
 chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab

#解锁
 chattr -i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab

 15.用户操作审计

vim /etc/bashrc
export PROMPT_COMMAND='{ msg=$(history 1 | { read x y; echo $y; });logger "[euid=$(whoami)]":$(who am i):[`pwd`] "$msg"; }'

 

1关闭SELinux临时关闭setenforce0永久关闭vim/etc/selinux/configSELINUXdisabled2设定运行级别为3设定运行级别vim/etc/inittabid:3
清理开机自动启动的服务显示出所有服务的所有运行级别的启动状态chkconfig–list停止所有在运行级别3上开机启动的服务foroldboyin`chkconfig–list|grep3:on|aw
一、系统安全记录文件操作系统内部的记录文件是检测是否有网络入侵的重要线索。如果您的系统是直接连到Internet,您发现有很多人对您的系统做Telnet/FTP登录尝试,可以运行“more/var/l
在日常运维工作中,对加固服务器的安全设置是一个机器重要的环境。比较推荐的做法是:1)严格限制ssh登陆(参考:Linux系统下的ssh使用(依据个人经验总结)):修改ssh默认监听端口禁用root登陆
系统时钟查看系统时间,使用date命令:[root@IoT7000A~]dateThuJan100:46:05UTC1970设置系统时钟,先使用date命令设置好时间,然后使用hwclockw命令将时
[chen@bogon~]$suPassword:su:Authenticationfailure[chen@bogon~]$dateFriOct1105:25:34PDT2019输入hwclock可
于做了虚拟机的克隆,发现克隆机和被克隆机的MAC地址相同了,下面我将要介绍一下linux中网卡的配置步骤,我使用的linux是CentOSrelease69(Final)1、root用户编辑/etc
linux系统安全防护大体上分成4个关键部分:1文件系统的保护。linux系统就是文件系统,其中的所有设备都是通过文件进行操作和管理的。2用户管理安全linux是多任务,多用户的操作系统,用户的管
1、只对当前用户有效:方法一:include(setenv需要头文件)setenv(TZ,UTC08:00,1);具体参数根据需要进行设置方法二:在/etc/profile中设置环境变量exportT
前言信号量是IPC(进程间通信)机制的一种,用于协调多个进程或线程对共享数据的读写操作,本质上是一个计数器。类似于锁,主要用于保护共享资源,控制同时访问资源的进程数。信号量只允许调用者对它进行等待信号