记centos系统的基本安全优化

鼎峰_小配专门针对CentOS7版本安装进行说明,是本人在学习CentOS7的过程中的一点点心得,好啦废话不多说,直接上干货。需要香港服务器的,详情可联系鼎峰新滙运维技术支持——小配(Q2880501305)

总纲:

1 一.关闭selinux

2 二.更改为阿里yum源

3 三.提权dm用户可以使用sudo

4 四.优化ssh远程登录配置

5 五.设置中文字符集

6 六.设置时间同步

7 七.历史记录数及登录超时环境变量设置

8 八.调整linux描述符

9 九.定时清理邮件服务临时目录垃圾文件

10 十.锁定关键系统文件,防止被提权篡改

11 十一.ssh限制ip登录

12 十二.为grub菜单加密

13 十三.优化开机自启服务

14 十四.内核优化

15 十四.更新系统到最新

一.关闭selinux

1 #修改配置文件可使配置文件生效,但必须要重启系统,此步骤是sed快速修改方法,也可以通过vim编辑/etc/selinux/config来修改此文件.

2 sed -i ‘/^SELINUX/s/enforcing/disabled/g’ /etc/selinux/config

3

4 检查替换结果为disabled就表示成功了.

5 grep SELINUX=disabled /etc/selinux/config

6 SELINUX=disabled

7

8 #临时关闭

9 setenforce

10 usage: setenforce [ Enforcing | Permissive | 1 | 0 ]

11 0表示Permissive,即给出警告,但不会阻止操作,相当于disabled.

12 1表示Enforcing,即表示SELinux为开启状态.

13 setenforce 0 #临时将SELinux调为Permissive状态.

14 getenforce #查看SELinux当前状态.

二.更改为阿里yum源

1 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

2 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

3 yum makecache

三.提权dm用户可以使用sudo

1 备份/etc/sudoers文件

2 cp /etc/sudoers /etc/sudoers.2018-08-20.bak

3

4 sudo提权配置说明

5 用户或组 机器=授权角色 可以执行的命令

6 user MACHINA= COMMANDS

7 dm ALL=(ALL) /usr/sbin/useradd,/usr/sbin/userdel

8

9 useradd dm

10 echo 123456|passwd --stdin dm

11 echo “dm ALL=(ALL) NOPASSWD: ALL” >>/etc/sudoers #结尾的ALL表示dm可拥有完全的系统管理权限,NOPASSSWD表示提权执行命令时不提示密码;

12 grep dm /etc/sudoers

13 visudo -c &>/dev/null

四.优化ssh远程登录配置

1 备份/etc/ssh/sshd_conf

2 cp /etc/ssh/sshd_config /etc/ssh/sshd_config.2018-08-20.bak

3 不允许基于GSSAPI的用户认证

4 sed -i ‘s/^GSSAPIAuthentication yes$/GSSAPIAuthentication no/’ /etc/ssh/sshd_config

5 不允许sshd对远程主机名进行反向解析

6 sed -i ‘s/#UseDNS yes/UseDNS no/’ /etc/ssh/sshd_config

7 禁止root用户登录

8 sed -i ‘s%#PermitRootLogin yes%PermitRootLogin no%’ /etc/ssh/sshd_config

9 不允许空密码登录

10 sed -i ‘s%#PermitEmptyPasswords no%PermitEmptyPasswords no%’ /etc/ssh/sshd_config

11 systemctl restart sshd

五.设置中文字符集

1 localectl set-locale LANG=zh_CN.UTF-8

2 localectl status

六.设置时间同步

1 检查是否安装ntpdate

2 rpm -qa|grep ntpdate

3 ntpdate-4.2.6p5-28.el7.centos.x86_64

4

5 如果没有安装,则使用yum安装

6 yum install -y ntpdate

7

8 添加计划任务,每5分钟同步一次时间;

9 echo ‘#time sync by dm at 2018-8-20’ >>/var/spool/cron/root

10 echo ‘*/5 * * * * /usr/sbin/ntpdate -u ntp.api.bz >/dev/null 2>$1’ >>/var/spool/cron/root

11 crontab -l

七.历史记录数及登录超时环境变量设置

1 设置闲置超时时间为300s

2 echo ‘export TMOUT=300’ >>/etc/profile

3

4 设置历史记录文件的命令数量为100

5 echo ‘export HISTFILESIZE=100’ >>/etc/profile

6

7 设置命令行的历史记录数量

8 echo ‘export HISTSIZE=100’ >>/etc/profile

9

10 格式化输出历史记录(以年月日分时秒的格式输出)

11 echo ‘export HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S"’ >>/etc/profile

12

13 source /etc/profile

14 tail -4 /etc/profile

八.调整linux描述符

1 文件描述符是由无符号整数表示的句柄,进程使用它来标识打开的文件.文件描述符与包括相关信息(如文件的打开模式,文件的位置类型,文件的初始类型等)的文件对象相关联,这些信息被称作文件的上下文.文件描述符的有效范围是0到OPEN_MAX.

2 对于内核而言,所有打开的文件都是通过文件的描述符引用的.当打开一个现有文件或创建一个新文件时,内核向进程返回一个文件描述符,当读或写一个文件时,使用open或create返回的文件描述符标识该文件,并将其作为参数传递给read或write.

4 查看系统文件描述符设置的情况可以使用下面的命令,文件描述符大小默认是1024.

5 ulimit -n

6 对于高并发的业务Linux服务器来说,这个默认的设置值是不够的,需要调整.

8 调整方法一:

9 调整系统文件描述符为65535

10 echo ‘* - nofile 65535’ >>/etc/security/limits.conf

11 tail -l /etc/security/limits.conf

13 调整方法二:

14 直接把ulimit -SHn 65535命令加入/etc/rc.d/rc.local,用以设置每次开机启动时配置生效,命令如下:

15 echo " ulimit -HSn 65535" >>/etc/rc.d/rc.local

16 echo " ulimit -s 65535" >>/etc/rc.d/rc.local

九.定时清理邮件服务临时目录垃圾文件

1 centos7默认是安装了Postfix邮件服务的,因此邮件临时存放地点的路径为/var/spool/postfix/maildrop,为了防止目录被垃圾文件填满,导致系统额inode数量不够用,需要定期清理.

2 定时清理的方法为:将清理命令写成脚本,然后做成定时任务,每日凌晨0点执行一次.

#创建存放脚本的目录

3 [ -d /server/scripts/shell ] && echo “directory already exists.” || mkdir /server/scripts/shell -p

#编写脚本文件

4 echo ‘find /var/spool/postfix/maildrop/ -type f|xargs rm -f’ >/server/scripts/shell/del_mail_file.sh

#查看

5 cat /server/scripts/shell/del_mail_file.sh

#加入计划任务

6 echo “00 00 * * * /bin/bash /server/scripts/shell/del_mail_file.sh >/dev/null &1” >>/var/spool/cron/root

7 crontab -l

十.锁定关键系统文件,防止被提权篡改

1 要锁定关键系统文件,必须对账号密码我那件及启动文件加锁,防止被篡改,加锁命令如下:

2 chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab

3 lsattr /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab

4

5 上锁后,所有用户都不能对文件进行修改删除.如果需要修改,可以执行下面的命令解锁后,再进行修改.

6 chattr -i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab

7 lsattr /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab

8

9 如果想要更加安全,可以把chattr改名转移,防止被黑客利用.

10 mv /usr/bin/chattr /usr/bin/dm1

客户在删除宝塔网站根目录时,使用rm -rf 命令时会提示无法删除目录下的某一个文件,就是因为这个文件被锁导致的,可以使用chattr -i命令解除文件锁之后再删除就可以了。

十一.ssh限制ip登录

方法一:

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

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

AllowUsers root@192.168.1.1

允许 IP 192.168.1.1 登录root 通过帐户登录系统。

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

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

DenyUsers root@192.168.1.10 #Linux系统账户

拒绝 IP 192.168.1.10 登录root 通过帐户登录系统。

方法二:

#允许192.168.200.0段的IP登录

echo “sshd:192.168.200.0/24:allow” >>/etc/hosts.allow

#禁止所有的其他IP段的IP登录

echo “sshd:all:deny” >>/etc/hosts.deny

hosts.allow 和hosts.deny 两个文件同时设置规则的时候,hosts.allow 文件中的规则优先级高,按照此方法设置后服务器只允许 192.168.200.0/24这个段的 IP 地址的 ssh 登录,其它的 IP 都会拒绝。

方法三:

允许192.168.100.10登录ssh

firewall-cmd --permanent --add-rich-rule ‘rule family=ipv4 source address=192.168.100.10 service name=ssh accept’

拒绝192.168.200.0/24登录ssh

firewall-cmd --permanent --add-rich-rule ‘rule family=ipv4 source address=192.168.200.0/24 service name=ssh reject’

firewall-cmd --reload

十二.为grub菜单加密

1 为grub菜单加密的目的是防止他人修改grub进行内核等启动设置,以及用单用户模式启动进行破解root密码等操作,实际上此步骤可以在安装系统的过程中设定.

2 安装系统后的具体设定步骤如下:

设置密码:

5 grub2-setpassword

6

7 查看设置的密码:

8 cat /boot/grub2/user.cfg

#在/etc/grub.d/01_users文件中可以看到grub用户名为root,然后通过grub2-setpassword来设置grub的密码,密码设置成功后会生成/boot/grub2/user.cfg文件,可以通过/boot/grub2/user.cfg文件查看设置的密码,查看到的密码为加密的密码。

十三.优化开机自启服务

十四.内核优化

Linux服务器内核参数优化,主要是指在Linux系统中针对业务服务应用而进行的系统内核参数调整,优化并无一定的标准.下面是生产环境下Linux常见的内核优化:

cat >>/etc/sysctl.conf<

#kernel_flag

#关闭ipv6

net.ipv6.conf.all.disable_ipv6 = 1

net.ipv6.conf.default.disable_ipv6 = 1

避免放大攻击

net.ipv4.icmp_echo_ignore_broadcasts = 1

开启恶意icmp错误消息保护

net.ipv4.icmp_ignore_bogus_error_responses = 1

#关闭路由转发

#net.ipv4.ip_forward = 0

#net.ipv4.conf.all.send_redirects = 0

#net.ipv4.conf.default.send_redirects = 0

#开启反向路径过滤

net.ipv4.conf.all.rp_filter = 1

net.ipv4.conf.default.rp_filter = 1

#处理无源路由的包

net.ipv4.conf.all.accept_source_route = 0

net.ipv4.conf.default.accept_source_route = 0

#关闭sysrq功能

kernel.sysrq = 0

#core文件名中添加pid作为扩展名

kernel.core_uses_pid = 1

开启SYN洪水攻击保护

net.ipv4.tcp_syncookies = 1

#修改消息队列长度

kernel.msgmnb = 65536

kernel.msgmax = 65536

#设置最大内存共享段大小bytes

kernel.shmmax = 68719476736

kernel.shmall = 4294967296

#timewait的数量,默认180000

net.ipv4.tcp_max_tw_buckets = 6000

net.ipv4.tcp_sack = 1

net.ipv4.tcp_window_scaling = 1

net.ipv4.tcp_rmem = 4096 87380 4194304

net.ipv4.tcp_wmem = 4096 16384 4194304

net.core.wmem_default = 8388608

net.core.rmem_default = 8388608

net.core.rmem_max = 16777216

net.core.wmem_max = 16777216

#每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目

net.core.netdev_max_backlog = 262144

#限制仅仅是为了防止简单的DoS 攻击

net.ipv4.tcp_max_orphans = 3276800

#未收到客户端确认信息的连接请求的最大值

net.ipv4.tcp_max_syn_backlog = 262144

net.ipv4.tcp_timestamps = 0

#内核放弃建立连接之前发送SYNACK 包的数量

net.ipv4.tcp_synack_retries = 1

#内核放弃建立连接之前发送SYN 包的数量

net.ipv4.tcp_syn_retries = 1

#启用timewait 快速回收

net.ipv4.tcp_tw_recycle = 1

#开启重用。允许将TIME-WAIT sockets 重新用于新的TCP 连接

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_mem = 94500000 915000000 927000000

net.ipv4.tcp_fin_timeout = 1

#当keepalive 起用的时候,TCP 发送keepalive 消息的频度。缺省是2 小时

net.ipv4.tcp_keepalive_time = 30

#允许系统打开的端口范围

net.ipv4.ip_local_port_range = 1024 65000

#修改防火墙表大小,默认65536

#net.netfilter.nf_conntrack_max=655350

#net.netfilter.nf_conntrack_tcp_timeout_established=1200

确保无人能修改路由表

#net.ipv4.conf.all.accept_redirects = 0

#net.ipv4.conf.default.accept_redirects = 0

#net.ipv4.conf.all.secure_redirects = 0

#net.ipv4.conf.default.secure_redirects = 0

EOF

/sbin/sysctl -p

十四.更新系统到最新

1 #更新补丁并升级系统版本

2 yum update -y

3

4 #只更新安全补丁,不升级系统版本

5 yum --security check-update #检查是否有安全补丁

6 yum update --security #更新安全补丁

至此就完成了百度抓取的测试流程,如有不当之处,还望各位简友及大神们见谅并请告知不当之处,毕竟本人能力有限哈。嘿嘿,需要香港服务器的,详情可联系鼎峰新滙运维技术支持——小配(Q2880501305)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,529评论 5 475
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,015评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,409评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,385评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,387评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,466评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,880评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,528评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,727评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,528评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,602评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,302评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,873评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,890评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,132评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,777评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,310评论 2 342

推荐阅读更多精彩内容