您好,欢迎来到思海网络,我们将竭诚为您提供优质的服务! 诚征网络推广 | 网站备案 | 帮助中心 | 软件下载 | 购买流程 | 付款方式 | 联系我们 [ 会员登录/注册 ]
促销推广
客服中心
业务咨询
有事点击这里…  531199185
有事点击这里…  61352289
点击这里给我发消息  81721488
有事点击这里…  376585780
有事点击这里…  872642803
有事点击这里…  459248018
有事点击这里…  61352288
有事点击这里…  380791050
技术支持
有事点击这里…  714236853
有事点击这里…  719304487
有事点击这里…  1208894568
有事点击这里…  61352289
在线客服
有事点击这里…  531199185
有事点击这里…  61352288
有事点击这里…  983054746
有事点击这里…  893984210
当前位置:首页 >> 技术文章 >> 文章浏览
技术文章

CentOS系统常规初始化操作详解

添加时间:2017-3-22 15:58:31  添加: 思海网络 

环境准备:

1)设置本地国际化语言为en_US.UTF-8

[root@c58 ~]# sed -i 's/^\(LANG=\).*$/\1"en_US.UTF-8"/' /etc/sysconfig/i18n

[root@c58 ~]# cat /etc/sysconfig/i18n

LANG="en_US.UTF-8"

[root@c58 ~]# LANG=en_US.UTF-8

2)更新系统软件包

  备份默认yum源:

 find /etc/yum.repos.d -name '*.repo' -exec mv {} {}.bak \;

  添加163yum源:

  redhat5或centos5:

 wget http://mirrors.163.com/.help/CentOS5-Base-163.repo -P /etc/yum.repos.d

     redhat6或centos6

 wget http://mirrors.163.com/.help/CentOS6-Base-163.repo -P /etc/yum.repos.d

  添加epel yum源:

  redhat5.x 32bit:

 rpm -ivh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm

  redhat5.x 64bit:

 rpm -ivh http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm

  redhat6.x 32bit:

 rpm -ivh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

  redhat6.x 64bit:

 rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

>

  更新证书:

 yum -y upgrade ca-certificates --disablerepo=epel

  更新系统所有软件包:

 yum clean allyum makecacheyum -y upgrade

下文以redhat5/centos5为例

一、服务最小化原则

关闭所有开机自启动服务,仅开启sshd、crond、network、iptables、syslog(redhat5)、rsyslog(redhat6),然后在此基础上按需添加需要开机启动的服务。

1)关闭所有开机自启动服务

[root@c58 ~]# for i in `chkconfig --list | awk '{if ($1~/^$/) {exit 0;} else {print $1}}'`; do chkconfig $i off; done

2)开启基础服务

[root@c58 ~]# for i in sshd network syslog crond iptables; do chkconfig $i on; done

3)查看开启的服务

[root@c58 ~]# chkconfig --list | grep '3:on'

crond           0:off   1:off   2:on    3:on    4:on    5:on    6:off

iptables        0:off   1:off   2:on    3:on    4:on    5:on    6:off

network         0:off   1:off   2:on    3:on    4:on    5:on    6:off

sshd            0:off   1:off   2:on    3:on    4:on    5:on    6:off

syslog          0:off   1:off   2:on    3:on    4:on    5:on    6:off

二、用户登录限制

1)禁止使用root用户使用远程ssh

[root@c58 ~]# cd /etc/ssh

[root@c58 ssh]# cp sshd_config sshd_config~

[root@c58 ssh]# sed -i 's/#\(PermitRootLogin \)yes/\1no/' sshd_config

[root@c58 ssh]# grep 'PermitRoot' /etc/ssh/sshd_config

PermitRootLogin no

2)禁用登录提示信息

[root@c58 ssh]# >/etc/motd

3)修改ssh的默认监听端口(tcp:22)

#这里修改为tcp的11983端口

[root@c58 ssh]# sed -i 's/#\(Port \)22/\11983/' sshd_config

[root@c58 ssh]# grep 'Port ' sshd_config

Port 11983

4)只允许指定的ip可以ssh (可选)

方法1(使用tcpwrapper):

#只允许192.168.124.0网段的ip使用ssh

echo "sshd:192.168.124.0/255.255.255.0" >> /etc/hosts.allow   

echo "sshd:ALL" >> /etc/hosts.deny

方法2(使用iptables):

#注意,远程操作时需留心,以免把自己也拒绝而导致无法远程连接。如只允许192.168.1.0网段的所有ip进行ssh,其他所有ip都拒绝#先允许自己的ip,以防被后面的操作误伤

iptables -I INPUT -s 10.0.0.1 -p tcp --dport 22 -j ACCEPT

#允许192.168.1.0网段

iptables -I 2 INPUT -s 192.168.1.0/24 -p tcp --dport 22 -j ACCEPT

#拒绝所有

iptables -I 3 INPUT -p tcp --dport 22 -j DROP

#保存iptables的设置:

cp /etc/sysconfig/iptables /etc/sysconfig/iptables~

iptables-save > /etc/sysconfig/iptables

最后,重启sshd服务使上面配置生效(不用担心重启时已打开的远程终端连接会断开,重启只会对新开的终端生效)

[root@c58 ssh]# /etc/init.d/sshd restart

Stopping sshd:                                             [  OK  ]

Starting sshd:                                             [  OK  ]

三、用户及命令权限最小化

创建一个普通用户tom,将其加入sudo组,该用户作为系统管理员

groupadd sudo                 #创建sudo组

useradd -G sudo tom           #创建tom用户,加入sudo组

passwd tom                    #设置tom用户的登陆密码

修改sudo配置文件,授权sudo组的用户可以以root身份执行所有命令(可以针对不同用户授予不同的命令执行权限,这里允许执行所有命令,生产环境中系统管理员应该按需为用户分配尽可能少的可执行命令,以实现权限最少化),用户执行的所有sudo操作都将记录在/var/log/sudo.log中,以便日后的安全事件排查。执行命令如下:

[root@cloud ~]# cat >> /etc/sudoers <<EOF

> %sudo    ALL=(root)    ALL

> Defaults    logfile=/var/log/sudo.log

> EOF

[root@cloud ~]# visudo -c 

[root@cloud ~]# echo "local2.debug        /var/log/sudo.log" >> /etc/syslog.conf

[root@cloud ~]# /etc/init.d/syslog restart

注:"visudo -c"命令用于检查 /etc/sudoers 文件的语法正确性

四、内核安全参数设置

vim /etc/sysctl.conf                #添加如下内容:

#关闭对ping包的响应(可选,一般不建议,因为不方便网络故障时的排查)

net.ipv4.icmp_echo_ignore_all = 1

#关闭对广播ping的响应

net.ipv4.icmp_echo_ignore_broadcasts = 1  

#开启syncookie用于防范syn flood攻击,当出现syn等待队列溢出时(syn数量超过tcp_max_syn_backlog的设置值),启用cookie来处理,server在回复syn_ack前会先请求client回复一个序列号,该序列号中要求包含原先syn包中的信息,如果序列号不正确,则server端会忽略此syn连接。

net.ipv4.tcp_syncookies = 1 

#设置sync_ack的最大重传次数,默认值为5,范围0-255,重传5次的时间大约为180s

net.ipv4.tcp_synack_retries =  3

# 设置当keepalive打开的情况下,keepalive消息的发送间隔,默认为2小时(由于目前网络攻击等因素,造成了利用这个进行的攻击很频繁,如果两边建立了连接,然后不发送任何数据或者rst/fin消息,那么持续的时间就是2小时,成就了空连接攻击,tcp_keepalive_time就是预防此情形的.)

net.ipv4.tcp_keepalive_time = 1200

保存退出后,执行"sysctl -p"命令将以上设置加载到内核使其立刻生效

五、 内核性能相关参数设置(可选)

vim /etc/sysctl.conf                #添加如下内容:

#设置syn等待队列的长度,对于内存大于128M的机器,默认值是1024,在并发请求较大时,可以调大该值

net.ipv4.tcp_max_syn_backlog

#开启timewait重用。允许将time_wait socket重新用于新的tcp连接

net.ipv4.tcp_tw_reuse = 1

#开启tcp连接中time_wait socket的快速回收  

net.ipv4.tcp_tw_recycle = 1

#TCP发送keepalive探测以确定该连接已经断开的次数,默认值为9

net.ipv4.tcp_keepalive_probes = 5 

#指定探测消息发送的频率,该值乘以tcp_keepalive_probes就可以得到从开始探测到连接被删除所需的时间。默认值为75,也就是没有活动的连接将在大约11分钟以后将被丢弃。(对于普通应用来说,这个值有一些偏大,可以根据需要改小.特别是web类服务器需要改小该值,15是个比较合适的值)

net.ipv4.tcp_keepalive_intvl = 15  

#表示系统同时保持TIME_WAIT socket的最大数量,如果超过这个数字,TIME_WAIT套接字将立刻被清除并输出警告信息。默认为180000,改为5000.对于squid服务器来说,此参数可以控制TIME_WAIT套接字的最大数量,避免squid服务器被大量的TIME_WAIT socket拖死。

net.ipv4.tcp_max_tw_buckets = 5000

#表示向外连接的端口范围。默认值很小:32768~61000,改为1024~65000

net.ipv4.ip_local_port_range=1024 65000

保存退出后,执行"sysctl -p"命令将以上设置加载到内核使其立刻生效

 

关键字:CentOS、系统、服务器

分享到:

顶部 】 【 关闭
版权所有:佛山思海电脑网络有限公司 ©1998-2024 All Rights Reserved.
联系电话:(0757)22630313、22633833
中华人民共和国增值电信业务经营许可证: 粤B1.B2-20030321 备案号:粤B2-20030321-1
网站公安备案编号:44060602000007 交互式栏目专项备案编号:200303DD003  
察察 工商 网安 举报有奖  警警  手机打开网站