标签 系统服务 下的文章

centos6.6安装后系统配置

1.新建用户

useradd xxx
#设置密码
passwd xxx

2.设置sudo

visudo
root    ALL=(ALL)       ALL#找到这行添加如下行
xxx     ALL=(ALL)       ALL

安装两个软件,bash-completion(命令补全),dos2unix(dos格式文件转换成unix格式)
3.修改ssh

  vi /etc/ssh/sshd_config   
  #禁用root远程登录 
  PermitRootLogin no
  PermitEmptyPasswords no #禁止空密码登录 
  #不要支持闲置会话,并配置 Idle Log Out Timeout 间隔:
  ClientAliveInterval 600 # (Set to 600 seconds = 10 minutes)
  ClientAliveCountMax 0 
  #禁用用户的 .rhosts 文件:
  IgnoreRhosts yes
  Port 22#这个先留着免得配置错误导致的错误
  Port 22155

4.设置防火墙,放开刚刚设置的ssh端口,和需要开放的端口
防火墙设置可以看http://blog.csdn.net/scchary/article/details/46482777
5.消除登陆信息,在登陆的时候会提示是什么系统之类的信息,隐藏起来

sudo cp /etc/issue /etc/issue.bak#备份下
sudo cp /etc/issue.net /etc/issue.net.bak
sudo cp /etc/redhat-release /etc/redhat-release.bak 
sudo echo "Welcome" > /etc/issue#权限不足,用root直接改应该可以,直接vi编辑算了
sudo vi /etc/issue
sudo vi /etc/issue.net
sudo vi /etc/redhat-release

6.关闭不需要的服务,就剩下这几个了,就关了几个

auditd          0:关闭    1:关闭    2:启用    3:启用    4:启用    5:启用    6:关闭 #与selinux有关
crond           0:关闭    1:关闭    2:启用    3:启用    4:启用    5:启用    6:关闭 #定时任务
iptables        0:关闭    1:关闭    2:启用    3:启用    4:启用    5:启用    6:关闭 #防火墙
iscsi           0:关闭    1:关闭    2:关闭    3:启用    4:启用    5:启用    6:关闭 #一种新存储技术
iscsid          0:关闭    1:关闭    2:关闭    3:启用    4:启用    5:启用    6:关闭 #一种新存储技术
mysqld          0:关闭    1:关闭    2:启用    3:启用    4:关闭    5:启用    6:关闭 
network         0:关闭    1:关闭    2:启用    3:启用    4:启用    5:启用    6:关闭 #网络基础服务
nginx           0:关闭    1:关闭    2:启用    3:启用    4:启用    5:启用    6:关闭
php-fpm         0:关闭    1:关闭    2:启用    3:启用    4:关闭    5:启用    6:关闭
restorecond     0:关闭    1:关闭    2:启用    3:启用    4:启用    5:启用    6:关闭 #与selinux相关
rsyslog         0:关闭    1:关闭    2:启用    3:启用    4:启用    5:启用    6:关闭 #系统日志关键服务
sshd            0:关闭    1:关闭    2:启用    3:启用    4:启用    5:启用    6:关闭 
udev-post       0:关闭    1:启用    2:启用    3:启用    4:启用    5:启用    6:关闭 #设备管理

7.同步系统时间

sudo yum install ntpdate#安装更新时间软件
sudo ntpdate cn.pool.ntp.org;sudo hwclock --systohc#更新时间并写入bios
sudo crontab -e
11 11 * * * /usr/sbin/ntpdate cn.pool.ntp.org;/usr/sbin/hwclock --systohc#设置每天的11:11更新时间

8.注释不需要的用户和组

#注销用户
sudo 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
#注销用户
sudo vi /etc/group
#adm:x:4:adm,daemon
#lp:x:7:daemon
#uucp:x:14:
#games:x:20:
#dip:x:40:
#ftp:x:50:

9.调整文件描述大小

      echo "ulimit -SHn 65535" >> /etc/rc.local
      cp  /etc/profile  /etc/profilebak2
      ulimit -c unlimited
      ulimit -s unlimited
      ulimit -SHn 65535   
      source  /etc/profile    #使配置立即生效
      ulimit -a    #显示当前的各种用户进程限制
#配置完成之后普通用户登录会报错    -bash: ulimit: open files: cannot modify limit: 不允许的操作
      可以/etc/security/limits.conf在加上
        *        soft    noproc 65535
        *        hard    noproc 65535
        *        soft    nofile 65535
        *        hard    nofile 65535

10.调整记录历史命令的条数

vi /etc/profile      #在文件末尾添加以下内容
找到 HISTSIZE=1000 改为 HISTSIZE=50

11.禁止使用Ctrl+Alt+Del快捷键重启服务器

sudo vi /etc/init/control-alt-delete.conf
#注释下面两行
#start on control-alt-delete
#exec /sbin/shutdown -r now "Control-Alt-Delete pressed"

12.禁止用户su到root,只允许wheel组用户su到root

sudo vi /etc/pam.d/su
#找到下面这句,去掉注释
auth            required        pam_wheel.so use_uid

13.系统参数优化

vi /etc/sysctl.conf    #末尾添加如下参数  (备注:内核不够熟,加上注解大家谨慎选择使用)
net.ipv4.tcp_syncookies = 1           #1是开启SYN Cookies,当出现SYN 等待队列溢出时,启用Cookies来处理,可防范少量SYN攻击,默认是0关闭  net.ipv4.tcp_tw_reuse = 1             #1是开启重用,允许将TIME_AIT sockets重新用于新的TCP连接,默认是0关闭                                                       

net.ipv4.tcp_tw_recycle = 5            #TCP失败重传次数,默认是15,减 少次数可释放内核资源                                                                               

net.ipv4.tcp_max_syn_backlog = 10240    #进入SYN包的最大请求队列,默认 是1024                                                                                             

net.core.netdev_max_backlog =  10240  #允许送到队列的数据包最大设备队 列,默认300                                                                                        

net.core.somaxconn = 2048              #listen挂起请求的最大数量,默认 128                                                                                               

net.core.wmem_default = 8388608        #发送缓存区大小的缺省值                                                                                                           

net.core.rmem_default = 8388608        #接受套接字缓冲区大小的缺省值 (以字节为单位)                                                                                    

net.core.rmem_max = 16777216           #最大接收缓冲区大小的最大值                                                                                                       

net.core.wmem_max = 16777216           #发送缓冲区大小的最大值                                                                                                           

net.ipv4.tcp_synack_retries = 2        #SYN-ACK握手状态重试次数,默认5                                                                                                   

net.ipv4.tcp_syn_retries = 2           #向外SYN握手重试次数,默认4                                                                                                       

net.ipv4.tcp_max_orphans = 3276800     #系统中最多有多少个TCP套接字不 被关联到任何一个用户文件句柄上,如果超出这个数字,孤儿连接将立即复位并打印警告信息                 

net.ipv4.tcp_mem = 94500000 915000000 927000000   

#net.ipv4.tcp_mem[0]:低于此值,TCP没有内存压力;                                                                                                                          

#net.ipv4.tcp_mem[1]:在此值下,进入内存压力阶段;                                                                                                                         

#net.ipv4.tcp_mem[2]:高于此值,TCP拒绝分配socket。内存单位是页,可根据 物理内存大小进行调整,如果内存足够大的话,可适当往上调。上述内存单位是页,而不是字节。             

net.ipv4.ip_local_port_range = 20480  65535  #(表示用于向外连接的端口范围。缺省情况下很小:32768到61000  注意:这里不要将最低值设的太低,否则可能会占用掉正常的端口! 

14.自动注销

vi /etc/profile
#在"HISTSIZE="后面加入下面这行:
TMOUT=300 #300秒
source /etc/profile#立即生效

15.锁定系统重要的文件
主要作用:防止未经许可的删除或添加用户和分组

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

16.给系统服务端口列表文件加锁
主要作用:防止未经许可的删除或添加服务

chattr +i /etc/services

17.修改init目录文件执行权限

chmod -R 700 /etc/init.d/*

18.修改部分系统文件的SUID和SGID的权限:

chmod a-s /usr/bin/chage
chmod a-s /usr/bin/gpasswd
chmod g-s /usr/bin/wall
chmod a-s /usr/bin/chfn
chmod a-s /usr/bin/chsh
chmod a-s /usr/bin/newgrp
chmod g-s /usr/bin/write
chmod a-s /usr/sbin/usernetctl
chmod a-s /usr/sbin/traceroute#这个在6.6里面没有
chmod a-s /bin/mount
chmod a-s /bin/umount
chmod g-s /sbin/netreport

wall,write,netreport三个是SGID,这几个命令只用过mount和umount.....

参考:http://www.jb51.net/article/29873.htm
http://blog.csdn.net/zqtsx/article/details/9344709
http://blog.csdn.net/yunweigege/article/details/42002651
http://blog.csdn.net/knight_zhen/article/details/46444451

LINUX设置自定义服务(centos6.6)

安装了一个amoeba,这个并不是系统服务,要设置开机启动,于是就去修改/etc/rc.local文件,用了绝对路径,在命令行下测试是可以成功启动的,但是开机不生效,于是想把这个设置成系统的服务,之前没做过,记录下
1.照格式写shell

vi /etc/init.d/amoeba
#!/bin/bash
#
# auditd        This starts and stops auditd
#
# chkconfig: 2345 11 88
# description: This starts the Linux Auditing System Daemon, \
#              which collects security related events in a dedicated \
#              audit log. If this daemon is turned off, audit events \
#              will be sent to syslog.
#
#
######forjava
export JAVA_HOME=/usr/java/jdk1.6.0_45
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
#######

###amoeba
export AMOEBA_HOME=/usr/local/amoeba/
export PATH=$PATH:$AMOEBA_HOME/bin
#######
case "$1" in
start)
        echo "Starting amoeba"
        /usr/local/amoeba/bin/amoeba start &
        ;;

stop)
        echo "Stop amoeba"
        /usr/local/amoeba/bin/amoeba stop
        ;;
restart)
        echo "Stop amoeba..."
        /usr/local/amoeba/bin/amoeba stop
        echo "Starting amoeba"
        /usr/local/amoeba/bin/amoeba start &
        ;;
esac

再配置

chmod +x amoeba #给权限
chkconfig --add amoeba #添加到系统服务

ok