centos 安全初始化-阿里云开发者社区

开发者社区> 开发与运维> 正文

centos 安全初始化

简介: 前  言   在 CentOS 安装好之后,安全性以及对硬件的适应性方面,可能并不完全符合我们的实际情况。

前  言

  在 CentOS 安装好之后,安全性以及对硬件的适应性方面,可能并不完全符合我们的实际情况。在这里,对新的 CentOS 系统进行初始环境设置将以如下方面为原则:

  1,为了安全,尽最大可能将访问限制限制到可能的最大程度;   2,为了节省内存及 CPU 使用率(以及安全方面的考虑),尽最大可能将不需要的服务关闭;   3,为了减少误操作可能带来的损失,平时通过 wheel 组用户登录进行系统管理;   4,为了让系统变的更加轻便、快速,将内核中不需要的模块卸载;   …………

CentOS 4.4 的安装后初始环境设定

   安装完毕重新启动系统后,出现如下的状态:

 release 4.4 (Final)
Kernel 2.6.9-42.EL on an i686

sample login:   ← 根据安装时网络设置的情况的不同,本站以“sample”,其位置显示的是你设置好的主机名。

[1] 系统的登录与退出

sample login: root ← 用root用户来登录系统,输入用户名root
Password: ← 在这里输入安装时设置的root密码,输入时密码不会被显示

[root@sample ~]# ← root用户登录成功,提示符为“#”。若一般用户登录成功后,提示符为“___FCKpd___1rdquo;

[root@sample ~]# exit ← 退出系统

sample login: ← 退出系统成功 

[2] 一般用户的建立与删除

[root@sample ~]# useradd pub ← 建立用户名为 pub 的一般用户
[root@sample ~]# passwd pub ← 为用户 pub 设置密码
Changing password for user pub.
New UNIX password:  ← 输入密码(密码不会被显示)
Retype new UNIX password:  ← 再次输入密码确认两次密码一致
passwd: all authentication tokens updated successfully. ← 密码设置成功

[root@sample ~]# userdel -r pub ← 删除用户名为 pub 的一般用户 

[3] 通过一般用户登录为root用户

  因为root用户对系统具有全权的操作权限,为了避免一些失误的操作,建议在一般情况下,以一般用户登录系统,必要的时候需要root操作权限时,再通过“su -”命令来登录为root用户进行操作。

[pub@sample ~]$  ← 提示符为“___FCKpd___3rdquo;,说明当前状态为一般用户pub登录在系统中

[pub@sample ~]$ su -  ← 输入登录为root用户的命令
Password:   ← 输入root密码(密码不会被显示),回车

[root@sample ~]# ← 成功登录为root用户,提示符变为“#”

[root@sample ~]# exit ← 回到一般用户的登录状态

[pub@sample ~]$ ← 提示符变为“___FCKpd___3rdquo;,回到了一般用户pub登录系统的状态 

[4] 建立管理员组内一般用户

   在 一般情况下,一般用户通过执行“su -”命令、输入正确的root密码,可以登录为root用户来对系统进行管理员级别的配置。但是,为了更进一步加强系统的安全性,有必要建立一个管理员的 组,只允许这个组的用户来执行“su -”命令登录为root用户,而让其他组的用户即使执行“su -”、输入了正确的root密码,也无法登录为root用户。在UNIX下,这个组的名称通常为“wheel”。

[root@sample ~]# usermod -G wheel pub  ← 将一般用户 pub 加在管理员组wheel组中

[root@sample ~]# vi /etc/pam.d/su  ← 打开这个配置文件

#auth required /lib/security/$ISA/pam_wheel.so use_uid   ← 找到此行,去掉行首的“#”
 ↓ 
auth required /lib/security/$ISA/pam_wheel.so use_uid  ← 变为此状态(大约在第6行的位置) 

[root@sample ~]# echo "SU_WHEEL_ONLY yes" >> /etc/login.defs ← 添加语句到行末 

  以上操作完成后,可以再建立一个新用户,然后用这个新建的用户测试会发现,没有加入到wheel组的用户,执行“su -”命令,即使输入了正确的root密码,也无法登录为root用户。

[5] 建立PPPoE连接(非xDSL接入方式的用户可跳过此步骤)

[root@sample ~]# adsl-setup  ← 建立ADSL连接


Welcome to the ADSL client setup. First, I will run some checks on
your system to make sure the PPPoE client is installed properly...


LOGIN NAME

Enter your Login Name (default root): ← 填入ADSL连接的用户名

INTERFACE

Enter the Ethernet interface connected to the ADSL modem
For Solaris, this is likely to be something like /dev/hme0.
For Linux, it will be ethX, where 'X' is a number.
(default eth0):  ← 指定网络接入设备,一块网卡的情况下,一般为默认eth0

Do you want the link to come up on demand, or stay up continuously?
If you want it to come up on demand, enter the idle time in seconds
after which the link should be dropped. If you want the link to
stay up permanently, enter 'no' (two letters, lower-case.)
NOTE: Demand-activated links do not interact well with dynamic IP
addresses. You may have some problems with demand-activated links.
Enter the demand value (default no):  ← 直接按回车,接受默认设置

DNS

Please enter the IP address of your ISP's primary DNS server.
If your ISP claims that 'the server will provide dynamic DNS addresses',
enter 'server' (all lower-case) here.
If you just press enter, I will assume you know what you are
doing and not modify your DNS setup.
Enter the DNS information here:  ← 如果知道DNS服务器的信息在此填入。不知道的情况按回车跳过

PASSWORD

Please enter your Password: ← 输入ADSL的连接密码
Please re-enter your Password: ← 再次确认输入ADSL的连接密码

USERCTRL

Please enter 'yes' (two letters, lower-case.) if you want to allow
normal user to start or stop DSL connection (default yes): no ← 填入no,不允许一般用户控制PPPoE的连接

FIREWALLING

Please choose the firewall rules to use. Note that these rules are
very basic. You are strongly encouraged to use a more sophisticated
firewall setup; however, these will provide basic security. If you
are running any servers on your machine, you must choose 'NONE' and
set up firewalling yourself. Otherwise, the firewall rules will deny
access to all standard servers like Web, e-mail, ftp, etc. If you
are using SSH, the rules will block outgoing SSH connections which
allocate a privileged source port.

The firewall choices are:
0 - NONE: This script will not set any firewall rules. You are responsible
for ensuring the security of your machine. You are STRONGLY
recommended to use some kind of firewall rules.
1 - STANDALONE: Appropriate for a basic stand-alone web-surfing workstation
2 - MASQUERADE: Appropriate for a machine acting as an Internet gateway
for a LAN
Choose a type of firewall (0-2): 0 ← 输入0,不在这里使用防火墙

Start this connection at boot time

Do you want to start this connection at boot time?
Please enter no or yes (default no): yes ← 填入yes,在系统启动时自动连接ADSL

** Summary of what you entered **

Ethernet Interface: eth0
User name: caun870293@ca.dti.ne.jp
Activate-on-demand: No
DNS: Do not adjust
Firewalling: NONE
User Control: no
Accept these settings and adjust configuration files (y/n)? y ← 配置信息确认无误后,键入y同意设置
Adjusting /etc/sysconfig/network-scripts/ifcfg-ppp0
Adjusting /etc/ppp/chap-secrets and /etc/ppp/pap-secrets
(But first backing it up to /etc/ppp/chap-secrets.bak)
(But first backing it up to /etc/ppp/pap-secrets.bak)

?

Congratulations, it should be all set up!

Type '/sbin/ifup ppp0' to bring up your xDSL link and '/sbin/ifdown ppp0'
to bring it down.
Type '/sbin/adsl-status /etc/sysconfig/network-scripts/ifcfg-ppp0'
to see the link status.

  然后,启动ADSL连接。

[root@sample ~]# adsl-start  ← 启动ADSL连接

[root@sample ~]#   ← 稍等片刻后若启动成功后出现提示符(无任何提示即意味着连接成功) 

  这时,通过“ifconfig”命令可以看到各网络接口的信息(IP地址等等)。

[6] root邮件的转送

  在系统出现错误或有重要通知发送邮件给root的时候,让系统自动转送到我们通常使用的邮箱中,这样方便查阅相关报告和日志。

[root@sample ~]# vi /etc/aliases   ← 编辑aliases,添加如下行到文尾

root: yourname@yourserver.com ← 加入自己的邮箱地址

[root@sample ~]# newaliases ← 重建aliasesdb
/etc/aliases: 79 aliases, longest 19 bytes, 825 bytes total

[root@sample ~]# echo test | mail root ← 发送测试邮件给root 

  如果成功的话,会在刚刚填入的 yourname@yourserver.com 的邮箱中收到测试的邮件。

[7] locate命令用数据库更新及自动更新设定

  locate命令是Linux下告诉搜索文件用的工具,它的原理和Windows下的“Google桌面搜索”有点类似,是通过事先建立数据库的方式,来达到高速查找目标文件的目的。

[root@sample ~]# vi /etc/updatedb.conf  ← 编辑locate数据库更新配置文件

DAILY_UPDATE=no  ← 找到这一行,将“no”改为“yes”
 ↓
DAILY_UPDATE=yes  ← 变为此状态后,保存、退出

[root@sample ~]# updatedb  ← 运行locate数据库更新命令,稍等片刻…更新成功后出现提示符 

[8] 定义yum的非官方库

  在服务器构建的过程中,我们将要用到的一些工具不存在于CentOS中yum的官方库中,所以需要定义yum的非官方库文件,让一些必需的工具通过yum也能够安装。

[root@sample ~]# vi /etc/yum.repos.d/dag.repo  ← 建立dag.repo,定义非官方库

[dag]
name=Dag RPM Repository for Red Hat Enterprise Linux
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
gpgcheck=1
enabled=1

[root@sample ~]# rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt  ← 导入非官方库的GPG 

[9] 停止打印服务

  如果不准备提供打印服务,停止默认被设置为自动启动的打印服务。

[root@sample ~]# /etc/rc.d/init.d/cups stop  ← 停止打印服务
Stopping cups:            [ OK ]    ← 停止服务成功,出现“OK”

[root@sample ~]# chkconfig cups off  ← 禁止打印服务自动启动

[root@sample ~]# chkconfig --list cups  ← 确认打印服务自启动设置状态
cups 0:off 1:off 2:off 3:off 4:off 5:off 6:off  ← 0-6都为off的状态就OK(当前打印服务自启动被禁止中) 

[10] 停止ipv6

  在CentOS默认的状态下,ipv6是被启用的状态。因为我们不使用ipv6,所以,停止ipv6,以最大限度保证安全和快速。

  首先再次确认一下ipv6功能是不是被启动的状态。

[root@sample ~]# ifconfig -a ← 列出全部网络接口信息

eth0 Link encap:Ethernet HWaddr 00:0C:29:B6:16:A3
inet addr:192.168.0.13 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:feb6:16a3/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:84 errors:0 dropped:0 overruns:0 frame:0
TX packets:93 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:10288 (10.0 KiB) TX bytes:9337 (9.1 KiB)
Interrupt:185 Base address:0x1400 
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:12 errors:0 dropped:0 overruns:0 frame:0
TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:952 (952.0 b) TX bytes:952 (952.0 b)

sit0 Link encap:IPv6-in-IPv4 ← 确认ipv6是被启动的状态
NOARP MTU:1480 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) 

  然后修改相应配置文件,停止ipv6。

[root@sample ~]# vi /etc/modprobe.conf ← 修改相应配置文件,添加如下行到文尾:

alias net-pf-10 off
alias ipv6 off

[root@sample ~]# shutdown -r now  ← 重新启动系统,使设置生效 

  最后确认ipv6的功能已经被关闭。

[root@sample ~]# ifconfig -a ← 列出全部网络接口信息

eth0 Link encap:Ethernet HWaddr 00:0C:29:B6:16:A3
inet addr:192.168.0.13 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:feb6:16a3/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:84 errors:0 dropped:0 overruns:0 frame:0
TX packets:93 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:10288 (10.0 KiB) TX bytes:9337 (9.1 KiB)
Interrupt:185 Base address:0x1400 lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:12 errors:0 dropped:0 overruns:0 frame:0
TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:952 (952.0 b) TX bytes:952 (952.0 b)

(确认ipv6的相关信息没有被列出,说明ipv6功能已被关闭。)  
<script type="text/javascript"><!-- google_ad_client = "pub-1560965776445653"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_type = "text_image"; google_ad_channel = ""; google_color_border = "FFFFFF"; google_color_bg = "FFFFFF"; google_color_link = "436976"; google_color_text = "436976"; google_color_url = "436976"; //--> </script> <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"> </script> <iframe name="google_ads_frame" marginwidth="0" marginheight="0" src="http://pagead2.googlesyndication.com/pagead/ads?client=ca-pub-1560965776445653&amp;dt=1201529153339&amp;lmt=1201529153&amp;prev_fmts=468x15_0ads_al_s%2C728x90_as&amp;format=728x90_as&amp;output=html&amp;correlator=1201529153158&amp;url=http%3A%2F%2Fwww.centos.ac.cn%2Fwiki%2F%25E6%259C%258D%25E5%258A%25A1%25E5%2599%25A8%25E9%2585%258D%25E7%25BD%25AE%2F%25E7%25B3%25BB%25E7%25BB%259F%25E5%25AE%2589%25E8%25A3%2585%25E5%2590%258E%25E7%259A%2584%25E5%2588%259D%25E5%25A7%258B%25E7%258E%25AF%25E5%25A2%2583%25E8%25AE%25BE%25E7%25BD%25AE&amp;color_bg=FFFFFF&amp;color_text=436976&amp;color_link=436976&amp;color_url=436976&amp;color_border=FFFFFF&amp;ad_type=text_image&amp;ref=http%3A%2F%2Fwww.google.cn%2Fsearch%3Fcomplete%3D1%26hl%3Dzh-CN%26newwindow%3D1%26q%3Dcentos%2B%25E4%25B8%25AD%25E6%2596%2587%25E7%258E%25AF%25E5%25A2%2583%26meta%3D%26aq%3Df&amp;cc=100&amp;ga_vid=668211289.1201529153&amp;ga_sid=1201529153&amp;ga_hid=2078491469&amp;flash=9&amp;u_h=768&amp;u_w=1024&amp;u_ah=734&amp;u_aw=1024&amp;u_cd=32&amp;u_tz=480&amp;u_java=true" frameborder="0" width="728" scrolling="no" height="90" allowtransparency="allowtransparency"></iframe>
 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章