一、Linux系统调优及安全设置

系统安装安全最小化原则说明

◆安装linux系统最小化,即选包最小化,yum安装软件最小化。

◆开机自启动程序服务最小化,即无用的服务不开启。

◆操作命令最小化原则,rm -f 1.txt 不用rm -fr 1.txt。

◆登录linux用户最小化原则,平时没有需求不用root登录,用普通用户登录。

◆文件及目录的权限设置最小化。一般建议设置权限:文件644,目录755。

◆各种网络服务,系统配置参数合理,不要最大化。

1、关闭selinux(也不是强制的)

执行命令:

setenforce 0

getenforce

cp /etc/selinux/config /etc/selinux/config.bak

sed -i 's@SELINUX=enforcing@SELINUX=disabled@g' /etc/selinux/config

diff /etc/selinux/config.bak /etc/selinux/config

2、切换运行级别为3文本模式

执行命令:

cp /etc/inittab /etc/inittab.bak

sed -i 's@id:\(.*\):initdefault:@id:3:initdefault:@g' /etc/inittab

diff /etc/inittab.bak /etc/inittab /tmp/syscheck.log

linux的运行级别如下:

0:关机模式

1:单用户模式

2:无网络模式的多用户

3:文本模式

4:无用

5:图形界面模式

6:重启模式

3、精简开机自启动

执行命令:

LANG=en

for a in `chkconfig --list|grep 3:on|awk '{print $1}'`;do chkconfig --level 3 $a off;done

for a in crond network rsyslog sshd;do chkconfig --level 3 $a on;done

chkconfig --list |grep 3:on >>/tmp/syscheck.log

另一种方法:

chkconfig --list|grep "3:on"|grep -vE "sshd|crond|network|rsyslog" |awk '{print $1}'|sed -r 's#^(.*)#chkconfig \1 off#g'|bash 

chkconfig --list|grep "3:on"

4、更改ssh的远程登陆端口

执行命令:

/etc/init.d/iptables stop

cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

cat >>/etc/ssh/sshd_config<<EOF

#######by zhangsan  2016-11-11######

Port 52113

PermitRootLogin no

PermitEmptyPasswords no

UseDNS no

GSSAPIAuthentication no

#######by zhangsan  2016-11-11######

EOF

tail -8
/etc/ssh/sshd_config>>/tmp/syscheck.log

/etc/init.d/sshd
restart

关于GSSAPIAuthentication no参数的说明:

客户端需要对服务器端的IP地址进行反解析,如果服务器的IP地址没有配置PTR记录,则连接速率会比较慢。

5、加入sudo管理

可以用命令visudo或者vi /etc/sudoers 
,一般用前者,因为前者会检查语法。

格式如下:

用户     
机器=(授权那个角色的权利)       命令

zhangsan         ALL=(ALL)                       /bin/rm

授权zhangsan可以以所有用户角色的权限,执行rm。

执行命令:

echo 'zhangsan   ALL=(ALL)                      ALL'>>/etc/sudoers

tail -1
/etc/sudoers>>/tmp/syscheck.log

验证:

[zhangsan@c66-moban ~]$ rm -f /root/a.log

rm: cannot remove `/root/a.log': Permission denied

[zhangsan@c66-moban ~]$ sudo rm -f /root/a.log

[sudo] password for zhangsan:

6、更改字符集支持中文

[root@c66-moban /]# cat /etc/sysconfig/i18n 

LANG="en_US.UTF-8"

SYSFONT="latarcyrheb-sun16"

执行命令:

cp /etc/sysconfig/i18n
/etc/sysconfig/i18n.bak

echo
'LANG="zh_CN.UTF-8"'>/etc/sysconfig/i18n

source /etc/sysconfig/i18n

echo $LANG >>/tmp/syscheck.log

7、校准系统时间

执行命令:

echo '*/5 * * * * /usr/sbin/ntpdate
time.windows.com >/dev/null 2>&1'>/var/spool/cron/root

crontab -l >>/tmp/syscheck.log

[root@c66-moban /]# echo '*/5 * * * * /usr/sbin/ntpdate ntp.sjtu.edu.cn >/dev/null 2>&1' >>/var/spool/cron/root

[root@c66-moban /]# crontab -l

*/5 * * * * /usr/sbin/ntpdate ntp.sjtu.edu.cn >/dev/null 2>&1

同步到
BIOS里面:

[root@C66-mode
~]# hwclock

2015年01月08日 星期四 19时58分26秒 
-0.884854 seconds

8、调整连接工具的超时时间及历史记录数

l  TMOUT=5           是指SecureCRT或者Xshell的连接超时时间

l  HISTSIZE=5        是指当前shell命令history的最大值

l  HISTFILESIZE=5    是指.bash_history文件中保存的命令条数最大值

执行命令:

echo 'TMOUT=300' >>/etc/profile

echo 'HISTSIZE=5' >>/etc/profile

echo 'HISTFILESIZE=5' >>/etc/profile     

tail -3 /etc/profile

source /etc/profile

9、加大文件描述符

文件描述符是由无符号整数表示的句柄(一般使用范围0~65535),进程使用它来标识打开的文件。文件描述符与包括相关信息(如文件的打开模式、文件的位置类型、文件的初始类型等)的文件对象相关联,这些信息被称作文件的上下文。

对于内核而言,所有打开的文件都是通过文件描述符引用的。当打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符。

退出后再登陆,即生效

echo '*               -       nofile          65535 '
>>/etc/security/limits.conf

也可以加入开机自启动

cat >> /etc/rc.local <<EOF

#open files

ulimit -HSn 65535

#stack size

ulimit -s 65535

EOF

10、优化内核参数

执行命令:

cat >>/etc/sysctl.conf<<EOF

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_buckets = 36000

net.ipv4.route.gc_timeout = 100

net.ipv4.tcp_syn_retries = 1

net.ipv4.tcp_synack_retries = 1

net.core.somaxconn = 16384

net.core.netdev_max_backlog = 16384

net.ipv4.tcp_max_orphans = 16384

#############################################################

net.nf_conntrack_max = 25000000

net.netfilter.nf_conntrack_max = 25000000

net.netfilter.nf_conntrack_tcp_timeout_established = 180

net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120

net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60

net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120

EOF

sysctl -p

网络状态说明及优化参数,详细参见:

http://yangrong.blog.51cto.com/6945369/1321594

11、清空系统显示

执行命令:

>/etc/issue

>/etc/issue.net

可以加一些重要的系统提示!

[root@C66-mode
~]# echo " This is DataBase-Server,Please Be Careful!">/etc/motd

[root@C66-mode
~]# cat /etc/motd

This is
DataBase-Server,Please Be Careful!

12、特殊文件加锁

执行命令:

chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow
/etc/inittab

lsattr /etc/passwd /etc/shadow /etc/group /etc/gshadow
/etc/inittab

也可以把命令改名后再加锁:

mv /usr/bin/chattr /opt/zhangsan

/opt/zhangsan +i /etc/passwd /etc/shadow
/etc/group /etc/gshadow /etc/inittab

13、系统升级

执行命令:

cp /etc/yum.repos.d/CentOS-Base.repo
/etc/yum.repos.d/CentOS-Base.repo.bak

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo

命令说明:

yum upgrade    只升级所有包,不升级软件和系统内核

yum update    升级所有包同时也升级软件和系统内核

升级建议:

新装的服务器 可以更新

运行的服务器,上线了。尽量不要更新

14、禁止linux系统被ping(非必须)

执行命令:

echo"net.ipv4.icmp_echo_ignore_all=1"
>> /etc/sysctl.conf

tail -1 /etc/sysctl.conf

sysctl -p

LINUX调优的更多相关文章

  1. 于erlang依赖的linux调优

    [皇室]杭州-sunface(61087682) 上午 9:42:02 http://docs.basho.com/riak/latest/ops/tuning/linux/ 这篇文章对于erlang ...

  2. Linux调优(内存,CPU)

    一.相关概念简介 system call:系统调用 time slice:cpu时间片 O(1):Linux系统进程调度器 page frame:分页 RSS:常驻内存集,无法被页面化的数据 MMU: ...

  3. 【转】转 Linux调优方案,sysctl.conf的设置

      http://blog.sina.com.cn/s/blog_541086000100skq0.html proc/sys/net/ipv4/下各项的意义 http://blog.chinauni ...

  4. 转 Linux调优方案,sysctl.conf的设置

    $ /proc/sys/net/core/wmem_max最大socket写buffer,可参考的优化值:873200 $ /proc/sys/net/core/rmem_max最大socket读bu ...

  5. Linux 调优方案, 修改最大连接数(ulimit命令)【转】

    转自:http://blog.csdn.net/liangxiaozhang/article/details/8363435 Linux对于每个用户,系统限制其最大进程数.为提高性能,可以根据设备资源 ...

  6. Linux 调优方案, 修改最大连接数-ulimit

    Linux对于每个用户,系统限制其最大进程数.为提高性能,可以根据设备资源情况,设置各linux 用户的最大进程数 可以用ulimit -a 来显示当前的各种用户进程限制.下面我把某linux用户的最 ...

  7. Linux 调优方案--ulimit命令

    可以用ulimit -a 来显示当前的各种用户进程限制.下面把某linux用户的最大进程数设为10000个:     ulimit -u 10240     对于需要做许多 socket 连接并使它们 ...

  8. Linux调优(文件系统)

    查看单个文件是否发生碎片化(被存在磁盘非连续磁盘块上) # filefrag -v /var/log/messages 查看文件系统是否存在大量碎片(会显示空闲离散的块) # dumpe2fs /de ...

  9. 高负载linux调优

    调整Linux内核参数: # vi /etc/sysctl.conf# tells the Kernel it's ok if services bind to non-existant IP ADD ...

随机推荐

  1. hihocoder 1169 猜数字

    传送门 时间限制:10000ms 单点时限:5000ms 内存限制:256MB 描述 你正在和小冰玩一个猜数字的游戏.小冰首先生成一个长为N的整数序列A1, A2, …, AN.在每一轮游戏中,小冰会 ...

  2. 初试visual studio2012的新型数据库LocalDB

    http://www.cnblogs.com/zhangran/archive/2012/08/21/2649200.html 今天在vs2012里面打开以前的mvc3项目,结果弹出警告说在vs201 ...

  3. php升级

    由于5.3版本不支持[]数组简单声明,故升级版本. apt-get install python-software-properties apt-get install -y ppa-purge ad ...

  4. MyEclipse代码提示快捷键和常用设置

    我使用的是MyEclipse 6.0版本,代码助手(content assist)的快捷键由 Alt + / 改成了 Ctrl + Space,恰好我的输入法快捷键也是 Ctrl + Space .造 ...

  5. Lua函数之二

    Lua函数之二 Lua中函数的两个重要特性: 1.函数和其他类型(如number.string)一样,可以存放在变量中,也可以存放在table中,可以作为函数的参数,还可以作为函数的返回值. 2.嵌套 ...

  6. Apache22中配置虚拟主机(Apache VirtualHost)

    Apache VirtualHost的作用就是可以让一个apache为多个域名服务,相当于一个服务器挂了N多个网站,举个例子: 我的apache服务器,ip为x.x.x.x,我有两个域名www.too ...

  7. Homebrew安装

    1. 安装Command Line Tools 终端输入 xcode-select --install 回车,若下载慢,可搜索Command line Tools的pkg文件,自行安装. 或者直接安装 ...

  8. Jetty和tomcat的比较

    转自: http://blog.csdn.net/classicbear/article/details/6968930 相同点: 1.      Tomcat和Jetty都是一种Servlet引擎, ...

  9. System.gc()与Object.finalize()的区别

    finalize()是由JVM自动调用的,你可以用System.gc(),但JVM不一定会立刻执行,JVM感觉内存空间有限时,才会开始执行finalize(),至于新的对象创建个数和被收集个数不同是因 ...

  10. 一个不安装Oracle客户端的方法------未经试验

    (一)不安装客户端的解决办法.第一种方法:1.在安装ORACLE服务器的机器上搜索下列文件,oci.dllocijdbc10.dllociw32.dllorannzsbb10.dlloraocci10 ...