一、更改远程连接用户和端口
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、锁定系统关键文件 |