CentOS系统安装完常规初始化操作
时间:2015-04-28 16:30 来源:linux.it.net.cn 作者:IT
环境准备:
[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
find
/etc/yum
.repos.d -name
'*.repo'
-
exec
mv
{} {}.bak \;
wget http:
//mirrors
.163.com/.help
/CentOS5-Base-163
.repo -P
/etc/yum
.repos.d
wget http:
//mirrors
.163.com/.help
/CentOS6-Base-163
.repo -P
/etc/yum
.repos.d
rpm -ivh http:
//dl
.fedoraproject.org
/pub/epel/5/i386/epel-release-5-4
.noarch.rpm
rpm -ivh http:
//dl
.fedoraproject.org
/pub/epel/5/x86_64/epel-release-5-4
.noarch.rpm
rpm -ivh http:
//dl
.fedoraproject.org
/pub/epel/6/i386/epel-release-6-8
.noarch.rpm
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
一、服务最小化原则
1
[root@c58 ~]
# for i in `chkconfig --list | awk '{if ($1~/^$/) {exit 0;} else {print $1}}'`; do chkconfig $i off; done
[root@c58 ~]
# for i in sshd network syslog crond iptables; do chkconfig $i on; done
[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
二、用户登录限制
[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
[root@c58
ssh
]
# >/etc/motd
#这里修改为tcp的11983端口
[root@c58
ssh
]
# sed -i 's/#\(Port \)22/\11983/' sshd_config
[root@c58
ssh
]
# grep 'Port ' sshd_config
Port 11983
#只允许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
#注意,远程操作时需留心,以免把自己也拒绝而导致无法远程连接。如只允许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
[root@c58
ssh
]
# /etc/init.d/sshd restart
Stopping sshd: [ OK ]
Starting sshd: [ OK ]
三、用户及命令权限最小化
groupadd
sudo
#创建sudo组
useradd
-G
sudo
tom
#创建tom用户,加入sudo组
passwd
tom
#设置tom用户的登陆密码
[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
四、内核安全参数设置
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
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
(责任编辑:IT)
环境准备:
一、服务最小化原则
二、用户登录限制
三、用户及命令权限最小化
四、内核安全参数设置
|