位置: 编程技术 - 正文
推荐整理分享CentOS系统常规初始化操作详解(centos 常用命令教程),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:centos 常用命令教程,centos的基本命令,centos oom,centos oom,centosgui,centos基本操作,centos 操作,centosgui,内容如对您有帮助,希望把文章链接给更多的朋友!
环境准备:
1)设置本地国际化语言为en_US.UTF-8
[root@c ~]# sed -i 's/^(LANG=).*$/1"en_US.UTF-8"/' /etc/sysconfig/in
[root@c ~]# cat /etc/sysconfig/in
LANG="en_US.UTF-8"
[root@c ~]# LANG=en_US.UTF-8
2)更新系统软件包
备份默认yum源:
find /etc/yum.repos.d -name '*.repo' -exec mv {} {}.bak ;
添加yum源:
redhat5或centos5:
wget -P /etc/yum.repos.d
redhat6或centos6
wget -P /etc/yum.repos.d
添加epel yum源:
redhat5.x bit:
rpm -ivh redhat5.x bit:
rpm -ivh redhat6.x bit:
rpm -ivh redhat6.x bit:
rpm -ivh
更新证书:
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@c ~]# for i in `chkconfig --list | awk '{if ($1~/^$/) {exit 0;} else {print $1}}'`; do chkconfig $i off; done
2)开启基础服务
[root@c ~]# for i in sshd network syslog crond iptables; do chkconfig $i on; done
3)查看开启的服务
[root@c ~]# 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@c ~]# cd /etc/ssh
[root@c ssh]# cp sshd_config sshd_config~
[root@c ssh]# sed -i 's/#(PermitRootLogin )yes/1no/' sshd_config
[root@c ssh]# grep 'PermitRoot' /etc/ssh/sshd_config
PermitRootLogin no
2)禁用登录提示信息
[root@c ssh]# >/etc/motd
3)修改ssh的默认监听端口(tcp:)
#这里修改为tcp的端口
[root@c ssh]# sed -i 's/#(Port )//' sshd_config
[root@c ssh]# grep 'Port ' sshd_config
Port
4)只允许指定的ip可以ssh (可选)
方法1(使用tcpwrapper):
#只允许...0网段的ip使用ssh
echo "sshd:...0/...0" >> /etc/hosts.allow
echo "sshd:ALL" >> /etc/hosts.deny
方法2(使用iptables):
#注意,远程操作时需留心,以免把自己也拒绝而导致无法远程连接。如只允许..1.0网段的所有ip进行ssh,其他所有ip都拒绝#先允许自己的ip,以防被后面的操作误伤
iptables -I INPUT -s .0.0.1 -p tcp --dport -j ACCEPT
#允许..1.0网段
iptables -I 2 INPUT -s ..1.0/ -p tcp --dport -j ACCEPT
#拒绝所有
iptables -I 3 INPUT -p tcp --dport -j DROP
#保存iptables的设置:
cp /etc/sysconfig/iptables /etc/sysconfig/iptables~
iptables-save > /etc/sysconfig/iptables
最后,重启sshd服务使上面配置生效(不用担心重启时已打开的远程终端连接会断开,重启只会对新开的终端生效)
[root@c 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-,重传5次的时间大约为s
net.ipv4.tcp_synack_retries = 3
# 设置当keepalive打开的情况下,keepalive消息的发送间隔,默认为2小时(由于目前网络攻击等因素,造成了利用这个进行的攻击很频繁,如果两边建立了连接,然后不发送任何数据或者rst/fin消息,那么持续的时间就是2小时,成就了空连接攻击,tcp_keepalive_time就是预防此情形的.)
net.ipv4.tcp_keepalive_time =
保存退出后,执行"sysctl -p"命令将以上设置加载到内核使其立刻生效
五、 内核性能相关参数设置(可选)
vim /etc/sysctl.conf #添加如下内容:
#设置syn等待队列的长度,对于内存大于M的机器,默认值是,在并发请求较大时,可以调大该值
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就可以得到从开始探测到连接被删除所需的时间。默认值为,也就是没有活动的连接将在大约分钟以后将被丢弃。(对于普通应用来说,这个值有一些偏大,可以根据需要改小.特别是web类服务器需要改小该值,是个比较合适的值)
net.ipv4.tcp_keepalive_intvl =
#表示系统同时保持TIME_WAIT socket的最大数量,如果超过这个数字,TIME_WAIT套接字将立刻被清除并输出警告信息。默认为,改为.对于squid服务器来说,此参数可以控制TIME_WAIT套接字的最大数量,避免squid服务器被大量的TIME_WAIT socket拖死。
net.ipv4.tcp_max_tw_buckets =
#表示向外连接的端口范围。默认值很小:~,改为~
net.ipv4.ip_local_port_range=
保存退出后,执行"sysctl -p"命令将以上设置加载到内核使其立刻生效
CentOS性能诊断工具命令集详解 #查看当前系统loaduptime#查看系统状态和每个进程的系统资源使用状况top#可视化显示CPU的使用状况htop#查看每个CPU的负载信息mpstat-PALL1#每隔1秒查看磁盘IO
CentOS6下发送消息命令的详解 1、wall'...'wall是给所有的用户发送消息,消息内容用''包含。2、writeuserNametty先用who命令查看在线的用户以及他们的tty,然后用write命令给他发消息,输入
centos中的/etc/sudoers文件中的权限设定方法讲解 我们看到/etc/sudoers文件中有这种设定:##Allowspeopleingroupwheeltorunallcommands#%wheelALL=(ALL)ALL##Samethingwithoutapassword#%wheelALL=(ALL)NOPASSWD:ALL其中的NOPASSWD:ALL是什么意
标签: centos 常用命令教程
本文链接地址:https://www.jiuchutong.com/biancheng/359128.html 转载请保留说明!友情链接: 武汉网站建设