今天接着上次学习系统优化,我们先说一个原则:最小化原则。
- 安装系统最小化
- 开启程序服务最小化原则
- 操作最小化原则
- 登录最小化原则 #平时没有需求的话不用root登录,用普通用户登录
- 权限最小化
- 配置参数合理,不要最大化
- 更改ssh服务远程登陆的配置
linux:远程连接默认端口和超级用户
管理员 user:root 普通用户很多 远程默认port:22
命令
ls -l /etc/ssh/sshd_config
cd /etc/ssh
cp sshd_config sshd_config.ori
vi sshd_config
修改文件:
Port 22改为52113 #ssh连接默认端口,需要改
PermitRootLogin yes改为no #禁止root远程登陆
UseDNS yes改为no不使用DNS
PermitEmptyPasswords no #禁止空密码登陆
service sshd restart 重启使生效
[注意]:在重启后,当前的crt仍然可以连接服务器,直到退出重新登录为止。
- 将lw普通账号加入到sudo管理
> 命令详解
visudo 或者 vi /etc/sudoers
user MACHINE= COMMANDS
root ALL=(ALL) ALL
lw ALL=(ALL) /usr/sbin/useradd,/user/sbin/userdel
用户 机器=(授权哪个角色的权利) /usr/sbin/useradd
%用户组 机器=(授权哪个角色的权利) /usr/sbin/useradd
> 命令
sudo -l #显示当前用户拥有的权限
> 使用示例
visudo命令
使用该命令打开配置文件
1、(vi)命令 98gg 定位到100行
[现在定位到:Allow root to run any commands anywhere
root ALL=(ALL) ALL
]
2、添加当前用户到sudo管理
[Allow root to run any commands anywhere
用户账号 登录的主机=(可以变换的身份) 可以执行的命令
root ALL=(ALL) ALL
lw ALL=(ALL) /usr/sbin/useradd #给lw赋权添加用户权限
lv ALL=(ALL) NOPASSWD:ALL #给lw赋权添加用户权限
]
- 修改中文显示
字符集就是一套文字符号及其编码。
通过快捷的命令方式在/etc/sysconfig/i18n中添加如下内容:
命令 cat /etc/sysconfig/i18n
结果 LANG="en_US.UTF-8"
命令 cp /etc/sysconfig/i18n /etc/sysconfig/i18n.ori
命令 echo 'LANG="ZH_CN.GB18030"'>/etc/sysconfig/i18n
- 服务器时间同步
> 命令
which ntpdate #查看ntpdate命令的位置
/usr/sbin/ntpdate time.nist.gov #临时更新时间
echo '#time sync by lw at 2017-12-23' >> /var/spool/cron/root #追加注释
echo '*/5 * * * * /usr/sbin/ntpdate time.nist.gov > /dev/null 2>&1' >> /var/spool/cron/root
#追加定时任务,[每5分钟执行一次定时任务]
crontab -l #查看定时任务
- 系统内核参数优化
本优化适合apache、nginx、squid等多种web应用。
命令 vi /etc/sysctl.conf
[编辑配置文件]
net.ipv4.tcp_fin_timeout = 2
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_keepalive_time = 600
net.ipv4.ip_local_port_range = 4000 65000
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
# 以上参数是对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
# 如果开启防火墙的话,以上是对防火墙的优化
命令 sysctl -p #使以上修改生效
- 隐藏系统版本
命令 > /etc/issue
cat /dev/null > /etc/issue
- 锁定关键文件
锁定命令 chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/initab
解锁命令 chattr -i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/initab
[命令总结]
netstat***** #查看网络状态 lntup 或 an
[--tcp|-t] [--udp|-u] [--listening|-l] [--all|-a] [--numeric|-n] [--program|-p]
lsof -i:[port] #查看端口
df -h #h参数是实际的物理空间
结果 文件系统 总空间 已使用 可用空间 使用比例 挂载点
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 9.2G 1.6G 7.1G 19% /
tmpfs 937M 0 937M 0% /dev/shm
/dev/sda1 194M 34M 151M 19% /boot
df -i #i参数指的是inode
chattr #改变文件属性
lsattr #查看文件属性
[符号总结]
PATH 环境变量大写,所有包含在环境变量里面的路径,都可以直接敲出来执行。
全局生效/etc/profile。普通用户生效~/.bash_profile或者~/.bashrc