Linux运维学习笔记之四:安装后的基本调优及安全设置(系统基础优化)

论坛 期权论坛 编程之家     
选择匿名的用户   2021-5-17 06:34   11   0

一、更改远程连接用户和端口

ls -l /etc/ssh/sshd_config

cp /etc/ssh/sshd_config /etc/ssh/sshd_configbak

vi /etc/ssh/sshd_config

:set nu #vi的功能,显示行号

Port28888 #13行

PermitRootLoginno #42行,禁止root用户ssh远程登录

PermitEmptyPasswordsno #65行,禁止空密码登录

GSSAPIAuthenticationno #为防止GSSAPI导致SSH连接变慢

UseDNSno #122行,禁止使用DNS

vimdiff /etc/ssh/sshd_config/etc/ssh/sshd_configbak #对比修改的文件

/etc/init.d/sshd reload(或restart) #重新加载或重启ssh

二、简单优化Linux

1、关闭SELINUX

(1)查看配置文件

cat/etc/selinux/config

SELINUX=enforcing

enforcing:激活

permissive:打印警告,但没激活

disabled:关闭

(2)修改配置文件

vi/etc/selinux/config

SELINUX=disabled

或者

sed-i s#SELINUX=enforcing#SELINUX=disabled#g /etc/selinux/config

(3)检查修改后的配置文件

grep"disable" /etc/selinux/config

SELINUX=disabled

(4)生效(重启后才能生效)

查看配置文件当前状态

getenforce

Enforcing(原文件生效状态)

setenforce0 : 将 SELINUX改为permissive状态,相当于SeLinux不生效。

getenforce

permissive

重启:不重启则SELINUX处于警告状态,SELINUX不起作用,重启则处于失效状态。(生产系统不允许随便重启)

2、将系统启动级别调成文本模式
(1)查看系统启动级别

cat/etc/inittab

runlevel

(2)修改

vi/etc/inittab

d:3:initdefault:

或者

sed-i s#d:5:initdefault:#d:3:initdefault:#g /etc/inittab

(3)切换启动级别

init3 : 切换文本命令行模式

init5 : 切换到x11模式

init0 : 关机

init6 : 重启

3、精简开机系统启动服务
(1)只启动需要的服务

目前只需启动crond(计划任务)、network、ssh、rsyslog(系统日志)等4个服务

(2)查看随机启动服务

chkconfig --list

chkconfig --list | grep "3:on"

chkconfig --level 35 service_name on:在级别3和5上随机启动指定服务

ntsysv(等同于setup)

setup-system service

(3)脚本一键完成处理: onlythirdrunlevel.sh

LANG=en

for servername in `chkconfig --list | grep"3:on" | awk '{print $1}' | grep -vE"crond|network|ssh|rsyslog"`;do chkconfig $servername off;done

4、 关闭iptables防火墙
(1)临时关闭:/etc/init.d/iptables stop

service iptables stop

(2)永久关闭:chkconfig iptables off

chkconfig ip6tables off(redhat6上 iptables关闭后 ip6tables会起来,所以一并关掉。)

(3)查看防火墙关闭状态

serviceiptables status

5、修改主机名
(1)首先临时修改主机名

hostname myLinux

(2)修改/etc/sysconfig/network中的hostname

vi /etc/sysconfig/network

cat /etc/sysconfig/network

NETWORKING=yes

HOSTNAME= myLinux

(3)修改/etc/hosts文件

vi /etc/hosts

cat /etc/hosts

127.0.0.1 localhostlocalhost.localdomain localhost4 localhost4.localdomain4

::1 localhostlocalhost.localdomain localhost6 localhost6.localdomain6

192.168.1.18 myLinux

6、修改RedHat的yum源

RHEL的YUM源需要注册用户才能更新使用,由于CentOS和RHEL基本没有区别,并且CentOS已经被REHL收购。所以将RHEL的YUM源替换为CentOS即可。

(1)清除原有RHEL的YUM及相关软件包。

rpm -qa | grep yum | xargs rpm -e --nodeps

rpm -qa |grep python-urlgrabber|xargs rpm -e --nodeps

(2)下载centos6的相关软件包。

wgethttp://mirrors.163.com/centos/6/os/i386/Packages/yum-3.2.29-81.el6.centos.noarch.rpm

wgethttp://mirrors.163.com/centos/6/os/i386/Packages/yum-plugin-fastestmirror-1.1.30-40.el6.noarch.rpm

wgethttp://mirrors.163.com/centos/6/os/i386/Packages/yum-metadata-parser-1.1.2-16.el6.i686.rpm

wget http://mirrors.163.com/centos/6/os/i386/Packages/python-iniparse-0.3.1-2.1.el6.noarch.rpm

wgethttp://mirrors.163.com/centos/6/os/i386/Packages/python-urlgrabber-3.9.1-11.el6.noarch.rpm

(3)安装yum 软件包

rpm -ivh python-iniparse-0.3.1-2.1.el6.noarch.rpm

rpm -ivh python-urlgrabber-3.9.1-11.el6.noarch.rpm

rpm -ivh yum-metadata-parser-1.1.2-16.el6.i686.rpm

#下面两个一起安装先后顺序不要乱(中间50%正常)

rpm -ivhyum-3.2.29-81.el6.centos.noarch.rpmyum-plugin-fastestmirror-1.1.30-40.el6.noarch.rpm

如果按照遇到问题:发现错误,python-urlgrabber版本必须大于等于3.9.1-10

# rpm -ivh yum-3.2.29-73.el6.centos.noarch.rpmyum-plugin-fastestmirror-1.1.30-37.el6.noarch.rpm

warning: yum-3.2.29-73.el6.centos.noarch.rpm: Header V3 RSA/SHA1Signature, key ID c105b9de: NOKEY

error: Failed dependencies:

python-urlgrabber >=3.9.1-10 is needed by yum-3.2.29-73.el6.centos.noarch

查看系统的python信息

# rpm -qa|grep python

发现python-urlgrabber-3.9.1-9.el6.noarch 版本低于3.9.1-10

卸载:python-urlgrabber-3.9.1-9.el6.noarch

rpm -epython-urlgrabber-3.9.1-9.el6.noarch

安装:rpm -ivh python-urlgrabber-3.9.1-11.el6.noarch.rpm

(4)更改yum源 #我们使用网易的CentOS镜像源

a、清空yum仓库

cd /etc/yum.repos.d/

rm -rf *

b、设置源

wget http://mirrors.163.com/.help/CentOS6-base-163.repo

vi CentOS6-base-163.repo

编辑文件,把文件里面所有的$releasever全部替换为你得版本号,即6.4 最后保存!或者直接把下面的内存拷贝到CentOS6-base-163.repo文件中即可(已经修改好)

vim替换命令

:%s/$releasever/6/g

退出保存

c、清理yum缓存

#yum clean all

b、将服务器软件包信息缓存至本地,提高搜索安装效率

#yum makecache

二、用户角色切换

1、su- root:切换到root用户
2、sudo:让普通用户可以拥有指定的root权限功能,需root用户提前授权

sudo su - : 切换到root

sudo -l : 查看当前用户拥有的所有sudo权限

visudo : 进入sudo配置信息,相当于vi/etc/sudoers,但不建议用此方法,visudo检查语法,vi /etc/sudoers不检查语法

格式:

用户 机器 命令

user MACHINE= COMMAND1,COMMAND2.....

%groupname MACHINE= COMMAND1,COMMAND2..... # 组名前必须加%

91gg : vi编辑器功能,快速定位到91行

yy : vi编辑器功能,拷贝当前行

p : vi编辑器功能,粘贴

修改:

root ALL=(ALL) ALL

oldboy ALL=(ALL) /usr/sbin/useradd

su - oldboy

sudo useradd kkk : 提示需oldboy密码,输入后执行完成

修改

oldboy ALL=(ALL) NOPASSWD: ALL :表示oldboy有所有权限,并不提示输入oldboy密码

sudo su - :此时可切换到root用户

三、环境变量

PATH :环境变量大写

全局生效 :/etc/profile

普通用户生效:~/.bash_profile或~/.bashrc

四、中文字符集

1、配置文件 : /etc/sysconfig/i18n
2、cat/etc/sysconfig/i18n

LANG="en_US.UTF-8"

SYSFONT="latarcyrheb-sun16"

echoLANG="zh_CN.GB18030" : 临时调整字符集

echo LANG="zh_CN.UTF-8" : 也可以

3、locate:查看本地字符集

五、时间同步ntp

1、配置文件 : /var/spool/cron/root
2、whichntpdate

/usr/sbin/ntpdate

/usr/sbin/ntpdate10.108.68.100

3、定时同步

echo'#time sync by myLinux93.85 at 2017-01-05' >> /var/spool/cron/root

echo'*/60 * * * * /usr/sbin/ntpdate 10.108.68.100 > /dev/null 2>&1'>> /var/spool/cron/root #60分钟同步一次时间

六、加大服务器文件描述符

1、配置文件:/etc/security/limits.conf
2、查看当前文件描述符

ulimit-n

3、加大文件描述符

临时加大 :

ulimit HSn 65535

永久加大:

echo '* - nofile 65535' >>/etc/security/limits.conf

或用vi/etc/security/limits.conf

七、调整内核参数

1、配置文件:/etc/sysctl.conf
2、调优

#连接的超时,默认为60秒,对应系统文件:/proc/sys/net/ipv4/tcp_fin_timout

net.ipv4.tcp_fin_timeout=2

#连接重用,默认为0,表示关闭,对应系统文件:/proc/sys/net/ipv4/tcp_tw_reuse

net.ipv4.tcp_tw_reuse = 1

#连接回收,默认为0,表示关闭,对应系统文件:/proc/sys/net/ipv4/tcp_tw_recycle

net.ipv4.tcp_tw_recycle=1

#开启SYN cookies功能,当SYN等待队列溢出时启用cookies来处理,默认为1,表示开启,可以不添加。

#对应系统文件:/proc/sys/net/ipv4/tcp_syncookies

net.ipv4.tcp_syncookies = 1

#TCP连接保持的时间,默认为7200秒(2小时),现改为600秒(10分钟)。

#对应系统文件:/proc/sys/net/ipv4/tcp_keepalive_time

net.ipv4.tcp_keepalive_time = 600

#设定系统打开的端口范围。即用于向外连接的端口范围,默认为32768 61000。

#对应系统文件:/proc/sys/net/ipv4/ip_local_port_range

net.ipv4.ip_local_port_range = 4000 65000

#SYN队列的长度,表示可经容纳等待连接的网络连接数,默认为1024。

#对应系统文件:/proc/sys/net/ipv4/tcp_max_syn_backlog

net.ipv4.tcp_max_syn_backlog = 16384

net.ipv4.tcp_max_tw_buckets= 36000

net.ipv4.route.gc_timeout= 100

net.ipv4.tcp_syn_retries= 1

net.ipv4.tcp_synack_retries= 1

net.core.somaxconn= 16384

net.core.netdev_max_backlog= 16384

net.ipv4.tcp_max_orphans= 16384

######---iptables---########

net.nf_conntrack_max= 25000000

net.netfilter.nf_conntrack_max= 25000000

net.netfilter.nf_conntrack_tcp_timeout_established= 180

net.netfilter.nf_conntrack_tcp_timeout_time_wait= 120

net.netfilter.nf_conntrack_tcp_timeout_close_wait= 60

net.netfilter.nf_conntrack_tcp_timeout_fin_wait= 120

3、重新生效

sysctl-p

4、其它可配置项

#Controls IP packet forwarding 控制IP包转发

net.ipv4.ip_forward = 0 #0禁止,1允许

#控制ping命令。0表示可以ping能,1表示不能ping通

net.ipv4.icmp_echo_ignore_all = 0

八、定时清理clientmqueue目录下的垃圾文件,防止占满磁盘空间

1、邮件服务的邮件临时存放地点:/var/spool/clientmqueue/sendmail

CentOS5.8默认有sendmail,而CentOS6.4默认没有。有时候该目录下有许多小文件,将磁盘空间或文件inode的占满(每个文件对应一个inode,如果inode没有了,就算有空间也不能写文件了,df -i查看)

2、清理方法
(1)手动清理:

find /var/spool/clientmqueue/sendmail/ -type f | xargs rm -f

检查:ll /var/spool/clientmqueue | wc -l

(2)定时清理:

echo"/var/spool/clientmqueue/sendmail/ -type f|xargs rm -f">

/server/scripts/del_sys_file.sh

echo "00 00 * * * /bin/sh /server/scripts/del_sys_file.sh>/del/null2>&1" >>

/var/spool/cron/root

检查:cat /server/scripts/del_sys_file.sh

crontab -l

九、隐藏或修改登陆的提示信息(系统、版本号)

1、说明:系统漏洞一般与系统版本号有关系统。
2、查看系统登录时的提示信息

cat/etc/issue

3、清空提示文件内容

echo> /etc/issue 或 > /etc/issue 或 cat /dev/null > /etc/issue

十、锁定系统关键文件

1、关键文件

/etc/passwd:用户文件

/etc/shadow:用户密码文件

/etc/group:用户组文件

/etc/gshadow:用户组密码文件

/etc/inittab:开机启动文件

2、锁定

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

3、解锁

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

4、将chattr命令删除或改名

whichchattr

/usr/bin/chattr

mv/usr/bin/chattr /usr/bin/oldboy

5、查看文件是否加锁

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

----i--------e-/etc/passwd # i表示加锁

----i--------e-/etc/shadow

----i--------e-/etc/group

----i--------e-/etc/gshadow

----i--------e-/etc/inittab

十一、小结

1、不用root,添加普通用户,用sudo授权管理
2、更改默认的远程连接ssh服务端口及禁止root用户远程连接
3、定时自动更新服务器时间
4、配置yum更新源,从国内更新源下载rpm包
5、关闭selinux及iptables(如联互联网则要打开,高并发除外)
6、加大服务器文件描述符
7、定时清理clientmqueue目录下的垃圾文件
8、精简开机自启动服务(crond,sshd,network,rsyslog(CentOS5.8是syslog))
9、调整内核参数
10、更改字符集,以支持中文。但建议还是使用英文字符集,防止乱码
11、锁定系统关键文件
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP