首先把这节课所讲的大概引锁一下,然后下面详细列举。

1.填加普通用户,通过sudo管理。

2.更改默认的SSH服务端口及禁止root用户远程连接。

3.定时自动更新服务器时间

4.关闭防火墙(iptables)

5.调整文件描述符的数量

6.linux内核参数优化/etc/sysctl.conf,   sysctl -p生效

7.更改字符集,支持中文,但建议还是用英文字符集,不然会有乱码问题,特殊情况除外。

8.锁定关键系统文件
9.清空/etc/issue,去除系统及内核版本登录前的屏幕显示,防止黑客了解系统版本。

10.在使用普通用户出现命令找不到的情况可以更改$PTAH环境变量

11.查看网络参数以及端口

12.检查磁盘

以上,是L007本堂课的内容。

1.增加普通用户,通过sudo管理

useradd [name]    //增加普通用户

 [root@lianxi ~]# useradd blog
[root@lianxi ~]# passwd blog
Changing password for user blog.
New password:
BAD PASSWORD: it is too simplistic/systematic
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.

visudo      //管理sudo

 [root@lianxi ~]# visudo
## Sudoers allows particular users to run various commands as
## the root user, without needing the root password.
##
## Examples are provided at the bottom of the file for collections
## of related commands, which can then be delegated out to particular
## users or groups.
##
## This file must be edited with the 'visudo' command. ## Host Aliases
## Groups of machines. You may prefer to use hostnames (perhaps using
## wildcards for entire domains) or IP addresses instead.
"/etc/sudoers.tmp" 119L, 4040C

进入visudo文件后,根据下面的这个格式写入文件可以管理普通用户权限

 命令:visudo
配置文件
user MACHINE= COMMANDS
root ALL=(ALL) ALL
oldboy ALL=(ALL) /usr/sbin/useradd
用户 机器=(授权哪个角色的权利) /usr/sbin/useradd
%用户组 机器=(授权哪个角色的权利) /usr/sbin/useradd
多个命令用逗号分隔

然后用sudo -l来查看当前用户都开通了什么权限

 [root@lianxi ~]# sudo -l
Matching Defaults entries for root on this host:
requiretty, !visiblepw, always_set_home, env_reset,
env_keep="COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR
LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG
LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION
LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME
LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL
LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY",
secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin User root may run the following commands on this host:
(ALL) ALL

  之所以要这么做事因为远程连接状态下,尽量不要使用root,权限大,当然安全隐患也就多,所以尽量以普通用户登录,如果需要使用root,可以在普通用户下输入su - 或者su - root。

2.更改默认的SSH服务端口及禁止root用户远程连接。

  ssh的默认端口为22,因为是默认,所以是十分不安全的,所以我们要更换一个端口和禁止root用户来提升系统的安全性。

 [root@lianxi ~]# vi /etc/ssh/sshd_config           //ssh配置文件
# $OpenBSD: sshd_config,v 1.80 // :: djm Exp $ # This is the sshd server system-wide configuration file. See
# sshd_config() for more information. # This sshd was compiled with PATH=/usr/local/bin:/bin:/usr/bin # The strategy used for options in the default sshd_config shipped wit
h
# OpenSSH is to specify options with their default value where
# possible, but leave them commented. Uncommented options change a
# default value.
"/etc/ssh/sshd_config" 146L, 4044C

在ssh配置文件中,填加如下:

 ####SSHpeizhi####
Port
PermitRootLogin no
PermitEmptyPasswords no
UseDNS no
GSSAPIAuthentication no
####SSHpeizhi####
翻译:
###################
端口:
使用root账户登录               no
使用空密码            no
用DNS认证            no
是否在用户退出登录后自动销毁用户凭证缓存。默认值是”yes”。仅用于SSH-。 no
##################

3.定时自动更新服务器时间

ntpdate    时间服务器命令

 [root@lianxi ~]# which ntpdate                //查询ntpdate路径
/usr/sbin/ntpdate
[root@lianxi ~]# /usr/sbin/ntpdate time.nist.gov //同步时间
Mar :: ntpdate[]: adjust time server 216.229.0.179 offset 0.102953 sec
[root@lianxi ~]# echo '*/5 * * * * /usr/sbin/stpdate time.nist.gov >/dev/null 2>&1' >>/var/spool/cron/root //循环更新时间
[root@lianxi ~]# crontab -l //查询循环
*/ * * * * /usr/sbin/nptdate time.nist.gov >/dev/null >&

4.关闭防火墙(iptables

 [root@lianxi ~]# /etc/init.d/iptables stop    //外网时需要打开防火墙

5.调整文件描述符的数量

  文件描述符是一个简单的整数,用以标明每一个被进程所打开的文件和socket。第一个打开的文件是0,第二个是1,依此类推。Linux 操作系统通常给每个进程能打开的文件数量强加一个限制。更甚的是,Linux 通常有一个系统级的限制。当用完所有的文件描述符后,它不能接收用户新的连接。也就是说,用完文件描述符导致拒绝服务。所以我们要加大文件描述符。

 [root@lianxi ~]# ulimit -n            //查询文件描述符的数量

 [root@lianxi ~]# ulimit -HSn       //修改最大文件描述符为65535
65535是最大范围,不能大于65535,调大也是为了黑客虚假空排。

  大部分命令行的修改都是重启后复原的,ulimit -HSn [数量] 也一样,所以下面我们来永久改动。

 [root@lianxi ~]# echo '*       -    nofile   65535' >>/etc/security/limits.conf                                          //写入文件
[root@lianxi ~]# cat /etc/security/limits.conf //查询
#* soft core
#* hard rss
#@student hard nproc
#@faculty soft nproc
#@faculty hard nproc
#ftp hard nproc
#@student - maxlogins # End of file
* - nofile

6.linux内核参数优化/etc/sysctl.conf,   sysctl -p生效

  内核参数文件在vi /etc/sysctl.conf

 [root@lianxi ~]# vi /etc/sysctl.conf
# Kernel sysctl configuration file for Red Hat Linux
#
# For binary values, is disabled, is enabled. See sysctl() and
# sysctl.conf() for more details. # Controls IP packet forwarding
net.ipv4.ip_forward = # Controls source route verification
net.ipv4.conf.default.rp_filter = # Do not accept source routing
"/etc/sysctl.conf" 61L, 1898C

  把下列参数复制到文件中。

net.ipv4.tcp_fin_timeout =
net.ipv4.tcp_tw_reuse =
net.ipv4.tcp_tw_recycle =
net.ipv4.tcp_syncookies =
net.ipv4.tcp_keepalive_time =
net.ipv4.ip_local_port_range =
net.ipv4.tcp_max_syn_backlog =
net.ipv4.tcp_max_tw_buckets =
net.ipv4.route.gc_timeout =
net.ipv4.tcp_syn_retries =
net.ipv4.tcp_synack_retries =
net.core.somaxconn =
net.core.netdev_max_backlog =
net.ipv4.tcp_max_orphans =

  如果有防火墙,请把一下复制进去

net.nf_conntrack_max =
net.netfilter.nf_conntrack_max =
net.netfilter.nf_conntrack_tcp_timeout_established =
net.netfilter.nf_conntrack_tcp_timeout_time_wait =
net.netfilter.nf_conntrack_tcp_timeout_close_wait =
net.netfilter.nf_conntrack_tcp_timeout_fin_wait =

  如下为重新开始sysctl服务。如果防火墙关闭状态可能报错,偶尔也不会报错。

 [root@lianxi ~]# sysctl -p
net.ipv4.ip_forward =
net.ipv4.conf.default.rp_filter =
net.ipv4.conf.default.accept_source_route =
kernel.sysrq =
kernel.core_uses_pid =
net.ipv4.tcp_syncookies =
error: "net.bridge.bridge-nf-call-ip6tables" is an unknown key
error: "net.bridge.bridge-nf-call-iptables" is an unknown key
error: "net.bridge.bridge-nf-call-arptables" is an unknown key
kernel.msgmnb =
kernel.msgmax =
kernel.shmmax =
kernel.shmall =
net.ipv4.tcp_fin_timeout =
net.ipv4.tcp_tw_reuse =
net.ipv4.tcp_tw_recycle =
net.ipv4.tcp_syncookies =
net.ipv4.tcp_keepalive_time =
net.ipv4.ip_local_port_range =
net.ipv4.tcp_max_syn_backlog =
net.ipv4.tcp_max_tw_buckets =
net.ipv4.route.gc_timeout =
net.ipv4.tcp_syn_retries =
net.ipv4.tcp_synack_retries =
net.core.somaxconn =
net.core.netdev_max_backlog =
net.ipv4.tcp_max_orphans =
error: "net.nf_conntrack_max" is an unknown key
error: "net.netfilter.nf_conntrack_max" is an unknown key
error: "net.netfilter.nf_conntrack_tcp_timeout_established" is an unknown key
error: "net.netfilter.nf_conntrack_tcp_timeout_time_wait" is an unknown key
error: "net.netfilter.nf_conntrack_tcp_timeout_close_wait" is an unknown key
error: "net.netfilter.nf_conntrack_tcp_timeout_fin_wait" is an unknown key
[root@lianxi ~]#

7.更改字符集,支持中文,但建议还是用英文字符集,不然会有乱码问题,特殊情况除外。

查看计算机内的字符集

 [root@lianxi ~]# cat /etc/sysconfig/i18n
LANG="en_US.UTF-8"
SYSFONT="latarcyrheb-sun16"

加入中文字符集

 [root@lianxi ~]# echo 'LANG="zh_CN,GB18030"' >> /etc/sysconfig/i18n

再用VI给之前的那个字符集用#注释掉。

设置好后需要执行文件才可以更新字符集

 [root@lianxi ~]# $LANG

8.锁定关键系统文件

chattr +i    锁定

chattr -i    解锁

 [root@lianxi ~]#chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab
锁定 用户文件 用户密码文件 用户主文件 主密码文件 开机启动文件

  上锁以后这些功能就不能正常使用了,所以再使用时需要解锁

[root@lianxi ~]#chattr -i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab

  之所以上锁就是因为防止黑客破坏系统,但是你会上锁,黑客更会解锁,所以可以在上锁后删除chattr命令,等下次需要时再上传,或者更名

 [root@moban ~]# which chattr
/usr/bin/chattr
[root@moban ~]# mv /usr/bin/chattr /usr/bin/oldboy //oldboy为自己起的一个名字
[root@moban ~]# chattr -i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab //再次使用解除命令
-bash: /usr/bin/chattr:没有那个文件或目录                                //系统提示无此命令,成功,不过此时把chattr变换城oldboy会成功。你猜猜是为什么呢?是不是很巧妙?

 lsattr      查看某某命令是否已经加锁

 [root@lianxi ~]# lsattr /etc/passwd
----i--------e- /etc/passwd //i为加锁

9.清空/etc/issue,去除系统及内核版本登录前的屏幕显示,防止黑客了解系统版本。

  系统内核信息存储在issue下,使用如下命令清空

 [root@moban ~]# cat /etc/issue
CentOS release 6.5 (Final)
Kernel \r on an \m
[root@moban ~]# > /etc/issue //清空版本

这么做主要是迷惑黑客,不让其知道版本,也就不知道版本的漏洞了。

10.在使用普通用户出现命令找不到的情况可以更改$PTAH环境变量

  在使用普通用户时,可能输入一些命令却找不到,那么这时就需要输入跟命令或者是填加环境变量。

1)根命令

使用which找到命令的跟,如需使用mv,那么先which mv,查出mv的根路径/bin/mv。

2)查看$PATH,如果没有/bin的路径,可以手动加进去

[root@moban ~]# $PATH        //查看环境变量
-bash: /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/usr/sbin:/usr/bin:/root/bin: No such file or directory
[root@moban ~]# PATH=/bin:$PATH //加入环境变量/oldboy/
[root@moban ~]# $PATH
-bash: /oldboy/:/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin: No such file or directory //看到了加进去的

但是这种情况,重启服务器后会消失(大多数都是,在命令行修改都属于临时生效,只有放在文件里才会永久更改。)

 [root@moban ~]# echo 'PATH="/bin:$PATH"' >> /etc/profile     //加入到变量文件中
[root@moban ~]# source /etc/profile //source使其生效

PATH 环境变量大写,所有包含在环境变量里面的路径,都可以直接敲出来执行。
全局生效/etc/profile。 普通用户生效~/.bash_profile或者~/.bashrc

11.查看网络参数以及端口

netstat        查看网络状态 参数:lntup或an

lsof -i :port(端口)  查看端口

 [root@lianxi ~]# netstat -lntup
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0.0.0.0: 0.0.0.0:* LISTEN /sshd
tcp ::: :::* LISTEN /sshd

[root@lianxi ~]# lsof -i :
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd root 3u IPv4 0t0 TCP *: (LISTEN)
sshd root 4u IPv6 0t0 TCP *: (LISTEN)
sshd root 3r IPv4 0t0 TCP bogon:->bogon: (ESTABLISHED)
sshd lichaoran 3u IPv4 0t0 TCP bogon:->bogon: (ESTABLISHED)
[root@lianxi ~]#

12.检查磁盘

df -h    查看物理空间

 [root@lianxi ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 .9G .6G .9G % /
tmpfs 932M 932M % /dev/shm
/dev/sda1 194M 29M 155M % /boot

df -hi    查看物理空间以外的

 [root@lianxi ~]# df -hi
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda3 579K 55K 525K % /
tmpfs 233K 233K % /dev/shm
/dev/sda1 50K 50K % /boot

L007- linux系统优化进阶课堂小节的更多相关文章

  1. 007 Linux系统优化进阶

    一.更改 ssh 服务远程登录的配置 windows:默认远程端口和管理员用户 管理员:administrator port :3389 Linux:远程连接默认端口和超级用户 管理员:root   ...

  2. Linux系统优化及基础命令

    1.Linux系统优化及基础命令 2. vim编辑器 vim 操作命令 在命令模式下操作 pageup 往上翻页(重要指数****)pagedown 往下翻页(重要指数****)H 移动到屏幕首行gg ...

  3. linux系统优化基础

    linux系统优化基础 tags: linux 优化 kingle---### 1, 查看centos版本:cat etc/redhat-release 看看centos架构信息:uname -m 查 ...

  4. Linux 系统优化-workstation实践

    Linux 系统优化 关闭SELinux [root@workstation ~]# sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/seli ...

  5. linux编程进阶书推荐APUE,UNP

    编程进阶这里强烈推荐<unix环境高级编程>(简称APUE)和<unix网络编程>(简称UNP),这两本书可是经典中的经典啊,作 者是大名鼎鼎的 W.Richard Steve ...

  6. linux命令进阶

    Though unconsciously,peple are indeed moving towards their destination.Slow as the progress seen fro ...

  7. Linux入门进阶第四天(下)——程序管理(补充内容)

    1.PID 触发任何一个事件时,系统都会将他定义成为一个程序,并且给予这个程序一个 ID ,称为 PID,同时依据启发这个程序的使用者与相关属性关系,给予这个 PID 一组有效的权限设置. 同一个程序 ...

  8. linux段位进阶

    1.青铜: 1.Linux基础知识.基本命令(起源.组成.常用命令如cp.ls.file.mkdir等常见操作命令) 2.Linux用户及权限基础 3.Linux系统进程管理进阶 4.linux高效文 ...

  9. Linux学习进阶路线图

    摘自:http://blog.csdn.net/zdwzzu2006/article/details/4334791 Linux 基础 Linux 基础 Linux安装专题教程 Linux中文环境 L ...

随机推荐

  1. note01-计算机网络

    1.基础概述 三网: 电信网络.有线电视网络.计算机网络(连通&共享) 终端->z本地ISP->x地区IXP->y主干ISP 通信方式: C/S .P2P(即是client也 ...

  2. POJ-2976 Dropping tests---二分最大化平均值

    题目链接: https://cn.vjudge.net/problem/POJ-2976 题目大意: 给定n个二元组(a,b),扔掉k个二元组,使得剩下的a元素之和与b元素之和的比率最大 解题思路: ...

  3. 从数据流角度管窥 Moya 的实现(一):构建请求

    相信大家都封装过网络层. 虽然系统提供的网络库以及一些著名的第三方网络库(AFNetworking, Alamofire)已经能满足各种 HTTP/HTTPS的网络请求,但直接在代码里用起来,终归是比 ...

  4. 牛客练习赛20(ABC)

    A. 礼物 题意: 我从买奥利奥的事情中想出了一个算法题:假设某个店铺有N种不同类型的1元奥利奥和M种不同类型的2元奥利奥,而且余量无限,我的钱有k元,我想把k元都用来买奥利奥,且可以买同类型的奥利奥 ...

  5. NTU Long-Term Positioning Dataset

    NTU Long-Term Positioning Dataset 地址:http://www.clarenceliang.com/dataset/ 場景:NTU 博理館外廣場 描述:超過一個月連續拍 ...

  6. 【luogu P2341 [HAOI2006]受欢迎的牛】 题解

    题解报告:https://www.luogu.org/problemnew/show/P2341 我们把图中的强连通分量缩点,然后只有出度为0的牛是受欢迎的,这样如果出度为0的牛只有一个,说明受所有牛 ...

  7. 【Linux-CentOS】在无互联网-内网环境的Windows7主机上安装CentOS双系统,从安装到放弃

    2018.12.3 日更新:本文仅作为无互联网环境下安装的参考.更推荐在互联网环境下安装软件和使用系统,毕竟会自动安装依赖包,比较方便. 因个人办公电脑装的盗版Win7总是蓝屏,影响工作,加之看到 W ...

  8. laravel5项目安装debugbar

    链接:https://github.com/barryvdh/laravel-debugbar 1.项目目录运行 composer require barryvdh/laravel-debugbar ...

  9. Flask—02-Flask会话控制与模板引擎

    会话控制原理 说明:概念百度说明的很详细,请自行百度 cookie 说明: 由于HTTP协议无状态无连接的特点,导致一个用户在同一网站做连续操作时,需要不断的提供身份信息:为了解决这个问题,我们可以通 ...

  10. Angularjs基础(六)

    AngularJS HTML DOM AngularJS为HTML DOM 元素的属性提供了绑定应用数据的指令. ng-disabled指令 ng-disabled指令直接绑定应用数据到HTML的di ...