鸟哥的linux私房菜服务器篇01(阅读笔记)
1.1 前言:Linux有啥功能
1.1.1 只想用Linux架设服务器需要啥能力?
1. 开发跨平台的数值模式
2. 办公室桌面计算机
3. 强大的网络功能:WWW,Mail,FTP,DNS,DHCP,NAT,Router等
4.android
5.嵌入式开发
1.1.2 架设服务器难不难?【8】
1.2 基本架设服务器流程
1.2.1网络服务器成功联机的分析步骤及需要掌握的知识点
1. 网络:了解网络基础
1. 基本的网络基本知识:包括以太网络硬件与协议、TCP/IP、网络联机所需参数等;
2. 各网络服务所对应的通讯协议原理、以及各通讯协议所需对应的软件
2. 服务器本身:了解架架网络服务器之目的以配合主机的安装规则
3. 服务器本身:了解操作系统的基本操作如建立账号,修改权限,Quota,LVM
4. 内部防火墙设定:管理系统的可分享资源
5. 服务器软件设定:学习设定技巧与开机是否自动执行
6. 细部权限设定:包括SELinux与档案权限
1.2.2 一个常见服务器设定案例分析
注意:案例的网络环境、对外网络、额外服务、服务器管理方式、防火请、账号管理、后端分析等设定需求【12】
1.2.2-1 了解网络基础
1.硬件规划:集线器或交换机、不同等级的网络线材RJ-45、IP分享器或者linux服务器、数据机
2.联机规划【13 硬件网络联机示意图】
3.网络基础:TCP/IP,Network IP,bROADCAST ip,gETWWAY ip,DNS IP
1.2.2-2 服务器本身的安装规划与架站目的的搭配
架设测试主机的默认配置
内存:1G
磁盘划分:15G左右
/ ----2G
/boot ----200M
/usr ----4G
/var ---2G
/tmp ----1G
/home ----5G
swap ----1G
软件挑选:basic server
系统安全:启动防火墙和SElinux(Enforce)
网络参数:DHCP(架设有IP分享器自动分配IP)
1.2.2-3 服务器本身的基本操作系统操作:建立账号,修改权限,Quota,LVM
1. 大量建置账号案例
# mkdir bin
# cd /root/bin
# vim useradd.sh ----【SHEEL 5】
# sh useradd.sh
# id vbirduser1 ----看看账号有没有正确建立起来
2. 设置这几个人的共享目录
# mkdir /home/vbirdgroup
# chgrp vbirdgroup /home/vbirdgroup ----设置目录的所属群组
# chmod 2770 /home/vbirdgroup ----设置SGID,使群组中每个人都可以在共享目录中修改对方的数据(设置SGID后进程对资源的权限将参照进程本身的所有者而不是其执行者的权限)
# ll -d /home/vbirdgroup/ ----用户组的可执行位是s
3. Quota设置
第一步:启动文件系统对quota的支持
# vim /etc/fstab ----设置/home所在的分区挂载时具备quota的支持
UUID=... /home ext4 default,usrquota,grpquota 1 2
# umount; mount -a
# mount | grep home ----查看是否已经具备了quota的支持
第二步:制作quota数据文件,并启动quota支持
# quotacheck -avug ----制作quota的数据文件,并启动quota支持
# quota -avug ----启动quota支持
第三步:制作quota数据给用户
# edquota -u vbirduser1 ----给第一个用户设置quota规则
Disk quotas for user vbirduser1 (uid 500):
Filessystem blocks soft hard inodes soft hard
/dev/mapper/server-myhome 20 1800000 2000000 5 0 0 ----单位是kb
# requota -au ----查看状态
4. 文件系统的放大(比如/home不够了)
第一步:看看VG的量够不够用
# vgdisplay ----假设不够用了
第二步:开始制作出所需要的partition,作为PV
# fdisk /dev/sda
Command (m for help):p ----观察一下已有的分区,注意看最后一个分区的EndDevice Boot Start End Blocks Id System.../dev/sda8 1812 1939 1024000 83 Linux ----最后一个磁柱Command (m for help):n ----新建分区First cylinder (1173-3264,default 1173):1940 ----End+1Last cylinder...(1940-3264,default 3264):+2GCommand (m for help):tpartition number (1-9):9Hex code (ty[e L to list codes):8eCommand (m for help):p ----查看是否得到新的分区Command (m for help):w ----写入
# partprobe ----更新磁盘分区表
第三步:将/dev/sda9家兔PV,并将该PV加入server这个VG
# pvcreate /dev/sda9
# vgextend server /dev/sda9 ----扩展原来的vg,即server
# vgdisplay ----看看这个VG吸纳在的状态
第四步:准备加入/home,开始前,还是先观察一下才增加LV的容量较好
# lvdisplay ----查看/dev/server/myhome这个lv的状态
# lvresize -L 6.88G /dev/server/myhome ----扩大到6.88G
第五步:扩大文件系统
# resizesfs /dev/server/myhome
# df -h ----看看文件系统是否已经扩大了
1.2.2-4 服务器内部的资源管理与防火墙规划
例题一:在run level 3下设定禁止开机自动启动自动网络挂在功能(autofs)
# LANG=C chkconfig --list | grep '3:on' ----查看在run level 3下启动的服务
# chkconfig autofs off ----设定开机不启动它
# /etc/init.d/autofs stop ----关闭autofs
例题二:了解监听TCP/IP封包的服务,并关闭不想要的服务
注意:通过netstat看到的program项目是实际软件执行文件的名字,与/etc/init.d/底下的服务名可能不一样
# netstat -tulnp ----查看监听TCP/IP封包的服务的状况。
# /etc/init.d/avahi-daemon stop ----关掉这个服务,如果不清楚服务的名字,可以通过【tab】补全或者去/etc/init.d/底下grep出来
# chkconfig avahi-daemon off ----设定开机不要启动
例题三:利用yum进行系统更新
注意:如果系统更新了核心,那么务必重新启动
# yum -y update ----第一次会进行非常久
# vim /etc/crontab ----加入任务排程
15 2 * * * root /usr/bin/yum -y update ----每天2:15进行更新
1.2.2-5 服务器软件设定:学习设定技巧与开机是否自动执行
1. 软件安装与查询
# rpm -qa | grep -i samba ----查看是否安装了samba,假设没有安装
# yum search samba ----先查一下有没有相关的软件
# yum install samba ----找到之后安装
# rpm -qc samba samba-common ----找出和这两个软件有关的服务
2. 配置文件的修改
3. samba服务器主要设定与相关设定
# vim /etc/samba/smb.conf ---- 修改配置文件
security=share ----安全模式
[test] ----添加共享目录
comment=test studio
path=/home/test
valid users=sambaman
broweable=yes
public=yes
writable=yes
printable=no
create mask=0765
guest ok=no
# useradd sambaman ----为网芳(网上邻居)添加实体用户
# smbpasswd sambaman ----建立可以使用网上邻居的账号
# testparm ----测试所有数据是否正确
4.服务的启动与观察
# rpm -ql samba | grep '/etc' ----查询一下启动的方式
# /etc/init.d/smb start ----启动服务
# /etc/init.d/num start
# chkconfig smb on ----设定开机启动
# chkconfig nmb on
# netstat -tlup | grep '[sn]mb'
5.客户端的联机测试
6.错误客服与观察登录档 (/var/log/messages, /var/log/samba)
1.2.2-6 细部权限与SELinux
例题:单一用户、群组的权限设定ACL
1. 想要让student可以进入 /home/vbirdgroup进行查询,但不可写入。同事vbirduser5在/home/vbirdgroup内不具备任何权限
注意: 如果是新建的分区或者文件系统需要在/etc/fstab中额外加上acl的参数控制
# useradd student ----建立这个新的用户
# passwd studemt
# setfacl -m u:student:rx /home/vbirdgroup ----给student对/home/vbirdgroup具有rx权限
# setfacl -m u:vbirduser5: /home/vbirdgroup ----使vbirduser5在/home/vbirdgroup不具备任何权限
# getfacl /home/vbirdgroup ----看看这个文件夹的acl设置怎么样了
# ll -d /home/vbirdgroup ----能看出acl设置的痕迹
2. 需要做些SElinux设置放置管理员心不在焉地开放了某些权限
1.2.3 系统安全与备份处理
1.2.3.1 系统安全建议
1. 修改/etc/login.defs档案里面的规则,让用户每半年修改一次密码,切密码长度8个字符以上
2.利用/etc/security/limits.conf来规范每个使用者的相关权限
3.利用pam模块来额外地进行密码的验证工作
4. netfilter建立自己的防火墙规则,例如ssh规则仅开放某个据越往或某些特定的IP
1.2.3.2 备份
注意:比较重要的目录有/etc,/home,/root,/var/spool/mail等
# mkdir /root/bin;
# vim /root/bin/backup.sh ----【SHEEL 6】
# vim /etc/crontab
45 2 * * * root sh /root/bin/backup.sh ----每天2:45进行备份
1.3 自我评估是否已经具有架设服务器的能力
1.4 本章习题【35】
注意:这里的问题很有代表性,很实用,系统遇到问题记得来这了看看简单的解决方式,也许会有用帮助。