13703353520(同微信) 周一~周五, 8:00 - 20:00
QQ:25681881或25295110 邮箱:qhdzxz@163.com
易得优软件 河北•秦皇岛
  • 站群系统

    自主建站,易得优自主建站站群系统

  • 易得优餐饮库管系统

    十七年专注开发

  • 易得优智能工控

    智能工控,易得优是认真的

  • 音乐打铃播放无需电脑

    易得优音乐打铃系统无电脑版

CentOS 7服务器的安全设置

    时间:2019-05-17 07:39:48     人气:3823


    (本文刊发于《网络安全和信息化》2019年第5期)   CentOS是Community Enterprise Operating System(社区企业操作系统)的缩写,它是一个基于Red Hat Linux 提供的可自由使用源代码的企业级Linux发行版本,其最新版本为 CentOS 7.6。CentOS 7在内核层面支持Docker容器技术,可以提高Docker稳定性和可靠性,也正是因此CentOS 7成了服务器系统的最佳首选。

 我们都知道配置任何服务器,都必须把不用的服务关闭、把系统权限设置到最小化,这样才能保证服务器最大的安全,CentOS 7服务器安全设置也是如此。


640.jpg


一、   修改ssh默认的22端口


用以下命令修改防火墙设置:


# firewall-cmd --zone=public --add-port=2019/tcp –permanent

# semanage port -a -t ssh_port_t -p tcp 2019

# semanage port -l | grep ssh


再修改sshd_config


# vi  /etc/ssh/sshd_config


在文件中加入一行:


Port=2019   #即把默认的22端口改成2019

保存文件后,执行下面命令:


# systemctl restart sshd

# systemctl restart sshd.service

# systemctl restart firewalld.service


二、   修改root用户名


以root身份登录终端,执行以下命令:


# cp  /etc/passwd  /etc/passwdbak   #修改之前先备份

# cp  /etc/shadow  /etc/shadowbak

# cp  /etc/group  /etc/groupbak

# vi  /etc/passwd   # 修改第1行第1个root为新的用户名

# vi  /etc/shadow   # 修改第1行第1个root为新的用户名

# vi  /etc/group    # 在这个文件中还可以修改用户组名


三、   限制用户 SSH 登录


1.只允许指定用户进行登录(白名单):

在/etc/ssh/sshd_config 配置文件中设置 AllowUsers 选项,(配置完成需要重启 SSHD 服务)格式如下:

AllowUsers    qhdedu test@192.168.1.1           

#允许qhdedu和从192.168.1.1登录的test帐户通过SSH登录系统。

2.只拒绝指定用户进行登录(黑名单):

在/etc/ssh/sshd_config配置文件中设置DenyUsers选项,(配置完成需要重启SSHD服务)格式如下:  

DenyUsers    qhdedua  qhdedub   #拒绝CentOs系统账户qhdedua、qhdedub通过SSH登录系统

 

四、   限制 IP  SSH 登录


除了可以禁止某个用户登录,我们还可以针对固定的IP进行禁止登录,CentOs 服务器通过设置 /etc/hosts.allow 和 /etc/hosts.deny 这个两个文件来进行控制,hosts.allow许可大于hosts.deny,可以限制或者允许某个或者某段IP地址远程SSH登录服务器。方法比较简单,具体如下:


# vi  /etc/hosts.allow


sshd: 192.168.1.10:allow  #允许192.168.1.10这个IP SSH登录
sshd:192.168.2.:allow    #允许192.168.2 这个IP段 SSH登录

sshd:all:deny           #全部禁止

如果写入:sshd:ALL    #允许全部的 ssh 登录


五、   设置系统口令策略


# vi/etc/login.defs

PASS_MAX_DAYS   99999   #密码最大有效天数

PASS_MIN_DAYS   0        #两次修改密码的最小间隔天数

PASS_MIN_LEN    12      #密码最小长度为12位,对于root无效

PASS_WARN_AGE   7    #密码过期前多少天开始提示


六、   防止IP SPOOF(欺骗):


# vi/etc/host.conf

添加:nospoof  on 不允许服务器对IP地址进行欺骗。


七、   注释掉系统不需要的用户和用户组


# 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:FTPUser:/var/ftp:/sbin/nologin    #注释掉ftp匿名账号


  # vi /etc/group  #编辑用户组,在前面加上#注释掉此行,建议关闭的用户组有:


# adm:x:4:root,adm,daemon

# lp:x:7:daemon,lp

# uucp:x:14:uucp

# games:x:20:

# dip:x:40:


八   根据实际需要,关闭系统一些不需要的服务


# serviceacpid stop  chkconfig acpid off   #停止服务,取消开机启动电源进阶设定

# serviceautofs stop  chkconfig autofs off  #停用自动挂载档按系统与周边装置

# servicebluetooth stop  chkconfig  bluetooth off   #停用Bluetooth蓝牙

# servicecpuspeed stop  chkconfig  cpuspeed off   #停用控制CPU速度主要用来省电

# servicecups stop   chkconfig cups off    #停用Common UNIX Printing System 使系统支援印表机

# serviceip6tables stop  chkconfig ip6tablesoff   #禁止IPv6


若想恢复某个服务,可以使用service  servicename start命令,如启用蓝牙服务:


#service Bluetooth  start  chkconfig Bluetooth  on


九  修改别名文件


# vi/etc/aliases   #建议注释掉不要的

# games:root

# ingres:root

# system:root

# toor:root

# uucp:root

# manager:root

# dumper:root

# operator:root

# decode:root

# root:marc 


修改后执行/usr/bin/newaliases


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


# cp /usr/lib/systemd/system/ctrl-alt-del.target  /usr/lib/systemd/system/ctrl-alt-del.target.bak   #修改前备份


直接编辑/usr/lib/systemd/system/ctrl-alt-del.targe这个文件,按以往设置关闭这个功能的方式去操作:全部注释掉文件中的内容即可。但是由于此文件是/usr/lib/systemd/system/reboot.target的软链接文件,这样的话会使reboot命令失效,因此要想解决这个问题只需要删除文件:/usr/lib/systemd/system/ctrl-alt-del.target即可,同时执行#init q重新加载配置文件使配置生效,此时Ctrl+Alt+Del失效,同时reboot也能用,恢复ctrl+ALt+Del只需将reboot.target文件软链接成ctrl-alt-del.target即可。即


# ln -s /usr/lib/systemd/system/reboot.target/usr/lib/systemd/system/ctrl-alt-del.target


十一、      服务器禁止ping


# cp  /etc/rc.d/rc.local  /etc/rc.d/rc.localbak    #修改前备份

# vi  /etc/rc.d/rc.local  #修改文件,在文件末尾增加下面这一行


   echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all #参数0表示允许,1表示禁止


十二、      修改history命令记录


      # cp/etc/profile  /etc/profilebak  #修改前备份

# vi/etc/profile


    找到 HISTSIZE=1000 改为 HISTSIZE=50


十三、      隐藏服务器系统信息


    在缺省情况下,当你登陆到CentOS系统,它会告诉你该CentOS发行版的名称、版本、内核版本、服务器的名称。

    为了不让这些默认的信息泄露出来,我们要进行下面的操作,让它只显示一个"login:"提示符。

    删除/etc/issue和/etc/issue.net这两个文件,或者把这2个文件改名,效果是一样的。


# mv  /etc/issue  /etc/issuebak

# mv  /etc/issue.net  /etc/issue.netbak


十四、      禁止非root用户执行/etc/rc.d/init.d/下的系统命令


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

# chmod-R 777 /etc/rc.d/init.d/*    #恢复默认设置


十五、      给下面的文件加上不可更改属性,从而防止非授权用户获得权限


      # chattr+i /etc/passwd

# chattr+i /etc/shadow

# chattr+i /etc/group

# chattr+i /etc/gshadow

# chattr+i /etc/services  #给系统服务端口列表文件加锁,防止未经许可的删除或添加服务 

# lsattr  /etc/passwd  /etc/shadow  /etc/group  /etc/gshadow  /etc/services   #显示文件的属性


    注意:执行以上权限修改之后,就无法添加删除用户了。

    如果再要添加删除用户,需要先取消上面的设置,等用户添加删除完成之后,再执行上面的操作 


# chattr-i /etc/passwd   #取消权限锁定设置

# chattr-i /etc/shadow

# chattr-i /etc/group

# chattr-i /etc/gshadow

# chattr-i /etc/services  #取消系统服务端口列表文件加锁


    现在可以进行添加删除用户了,操作完之后再锁定目录文件


十六、      限制不同文件的权限


# chattr+a .bash_history       #避免删除.bash_history或者重定向到/dev/null

# chattr+i .bash_history

# chmod700 /usr/bin         #对应恢复语句  chmod 555 /usr/bin

# chmod700 /bin/ping        #对应恢复语句  chmod 4755 /bin/ping

# chmod700 /usr/bin/vim     #对应恢复语句  chmod 755 /usr/bin/vim

# chmod700 /bin/netstat     #对应恢复语句  chmod 755 /bin/netstat

# chmod700 /usr/bin/tail     #对应恢复语句  chmod 755 /usr/bin/tail

# chmod700 /usr/bin/less    #对应恢复语句  chmod 755 /usr/bin/less

# chmod700 /usr/bin/head    #对应恢复语句  chmod 755 /usr/bin/head

# chmod700 /bin/cat         #对应恢复语句  chmod 755 /bin/cat

# chmod700 /bin/uname      #对应恢复语句chmod 755 /bin/uname

# chmod500 /bin/ps          #对应恢复语句  chmod 755 /bin/ps



 (本文刊发于《网络安全和信息化》2019年第5期)