服务器搭建基础
1.网络基础
网络是通过网线(硬件上)将各节点连接在一起,并通过网络协议(软件上)可相互通信的一个整体
- ping:测试两台节点的连通性
- traceroute:两节点间经过的路由分析
- netstat:查看本机的网络连接状态
- host/nslookup:检测主机名与IP的对应
1.1应用层协议
- FTP:文件传输协议
- SMTP:简单邮件传输协议
- SNMP:简单网络管理协议
1.2传输层协议
- TCP协议:面向连接(三次握手)
- UDP协议:非面向连接
1.3网络层协议
路由具有至少两个网口,分别连接不同网段的节点,用于传输跨网段数据
路由表产生的类型(网络接口产生和手动配置):route add -net [IP] netmask [子网掩码] dev ethN
一个网卡绑定多个IP:ifconfig eth0:0 10.1.20.111/24 & ifconfig eth0:1 10.1.21.111/24
- ARP协议:获取IP所对应的MAC,记录在ARP表[内存]中(20分钟后失效)
- RARP协议:获取MAC所对应的IP
- ICMP协议:Internet Control Message Protocol,用于确保网络的连接状态与连接的正确性,通过IP数据包传送
- ping命令
- traceroute命令
1.4接口层协议
- 广域网使用的设备
- ADSL调制解调器(电话线)
使用PPPoE(Point to Point Protocol over Ethernet)协议将PPP仿真在以太网卡上
- ADSL调制解调器(电话线)
- 局域网使用的设备
- 以太网卡(网线)
(集线器/交换机)使用CSMA/CD协议,介质监听+多点传输/冲突检测
- 以太网卡(网线)
主机安全防御措施
2.限制端口、网络升级、SELinux
网络数据包进入主机的流程
- 经过防火墙分析(对病毒不敏感)
- 第一层:数据包过滤式NetFilter防火墙(iptables)
iptables的默认table有3个,分别是Filter、NAT及Mangle,常用的为Filter(本机)与NAT(后端主机) - 第二层:通过软件管理的TCP Wrappers防火墙
通过配置文件/etc/hosts.allow和/etc/hosts.deny设置
- 第一层:数据包过滤式NetFilter防火墙(iptables)
- 服务的基本功能
根据配置文件限定某些IP不能使用该服务获取主机资源 - SELinux对网络服务的详细权限控制
限定某服务(进程主体)对文件(目标资源)的操作权限 - 使用主机的文件系统资源
2.1限制连接端口
- port
- 服务器启动的监听端口对应的服务是固定的
- 客户端启动程序时,随机启动一个大于1024以上的端口
- 一台服务器可以同时提供多种服务
- 通信协议可以启用在非正规的port
- 端口查看:netstat nmap
服务跟port对应的文件/etc/services
- netstat:在本机上以自己的程序监测自己的port
- nmap:可检测非本机上的其他网络主机
2.2 SELinux管理原则(/etc/selinux/config)
- SELinux工作模式
程序主体–>SELinux策略–>安全性环境对比–>目标资源 - SELinux启动、关闭、查看
vi /etc/selinux/config
setenforce 0/1
getenforce - SELinux Type的修改
chcon
restorecon
semanage - SELinux策略内的规则布尔值修订
sesearch
setsebool - SELinux日志文件记录所需的服务
auditd
setroubleshoot
局域网服务器搭建
3.网络参数管理者:DHCP服务器
工作原理
- 用途:为客户端计算机提供网络参数
- 工作方式:客户端广播数据包发送搜索DHCP服务器的数据包;服务器提供网络相关租约给客户端
相关配置
- 软件:dhcp
- 启动脚本:/etc/init.d/dhcpd
- 租约文件:/var/lib/dhcp/dhcpd.leases
- 配置文件:/etc/dhcp/dhcpd.conf
#/etc/dhcp/dhcpd.conf
// 环境设定
ddns-update-style none; //不要更新DDNS的设置
ignore client-updates; //忽略客户端的DNS更新功能
default-lease-time 259200; //默认租约为3天
max-lease-time 518400; //最大租约为6天
option routers 10.1.12.1 //默认路由
option domain-name "kylin.com" //域名
option domain-name-servers 8.8.8.8; //DNS的IP设置,会修改/etc/resolv.conf
// 分配动态IP
subnet 10.1.12.0 netmask 255.255.255.0 {
range 10.1.12.110 10.1.12.119; //分配IP的地址范围
}
// 分配固定IP
host win7 {
hardware enternet 08:00:27:11:EB:C2; //客户端网卡MAC地址
fixed-address 10.1.12.110; //分配固定的IP地址
}
4.文件服务器——NFS服务器
工作原理
- NFS:网络文件系统,通过网络让不同操作系统可以共享文件,远程服务器的共享目录就像客户端的一个磁盘分区
- RPC:NFS服务器启动时会随机选取数个port,并向RPC注册
客户端访问NFS文件流程
- 客户端RPC向服务器的RPC(port 111)发出NFS的查询请求
- 服务器找到对应的已注册的NFS daemon端口后通知客户端
- 客户端收到正确的port后,与NFS daemon连接
相关配置
- 软件:rpcbind、nfs-utils
- 共享资源日志文件:/var/lib/nfs/*tab
- 配置文件 :/etc/exports
# 共享目录 第一台主机(权限) 第二台主机 第三台主机
/tmp 10.1.12.111/24(ro) localhost(rw) *
NFS管理命令(exportfs,showmount)
- 服务器端:exportfs -arv(挂载),exportfs -auv(卸载)
- 客服端:showmount -e hostname|IP
5.账号管理:NIS服务器
工作原理
- 用途:一台主机控制多台主机的账户信息
- 工作流程
- NIS master服务器:将文件转换成数据库
- NIS slave服务器:以master服务器的数据库作为本身的数据库来源
- NIS客户端:想master/slave服务器请求登录用户身份验证
相关配置
- 软件
- yp-tools:提供NIS查询命令
- ypbind:提供NIS客户端设置
- ypserv:提供NIS服务器端设置
- rpcbind:RPC软件
- 配置文件
dns: no //不用DNS功能
files: 30 //默认有30个数据库读入内存
xfr_check_port: yes //与Master/Slave有关
#主机名/IP : NIS域名 : 可用数据库名 : 安全限制
127.0.0.0/255.255.255.0 : * : * : none
10.1.12.110/255.255.255.0 : * : * : none
6.时间服务器:NTP服务器
工作原理
- 用途:同步所有NIT客户端主机的时间
- 工作流程
- NTP客户端向NTP服务器发送校对时间信息
- NTP服务器发送当前的标准时间给NTP客户端
- NTP客户端根据NTP服务器发来的消息调整时间
相关配置
- 软件
- ntp:NTP服务器主要软件
- tzdata:提供各时区对应的显示格式
- 配置文件 /etc/ntp.conf
7.文件服务器——SAMBA服务器
工作原理(NetBIOS属于局域网协议)
- 用途:沟通windows与unix like这两个不同操作系统平台
- 利用软件直接编辑WWW主机上面的网页数据
- 做成可直接连接的文件服务器
- 打印机服务器
- 工作流程
- 取得SAMBA服务器的NetBIOS Name定位主机的位置(nmbd)
- 利用SAMBA服务器给予的权限访问可用资源(smbd)
相关配置
- 软件
- samba:提供SMB服务器所需的各项服务程序(smbd和nmbd)
- samba-client:提供linux作为samba客户端时所需的工具命令
- samba-common:提供SAMBA的朱配置文件(smb.conf)、语法检验命令(testpam)等
- 配置文件:/etc/samba/smb.conf
8.局域网控制者:Proxy服务器
工作原理
- 用途
- 作为WWW的网页数据获取代理机
- 作为内部局域网的应用层防火墙
- 节省单点对外的网络代换,降低网络负载
- 工作流程
1. client端向server端发送一个需求数据包
2. server端接收之后,开始进行数据比对
3. server发现缓存没有client所需的数据,向因特网发送请求获取数据
4. 将数据回送给client
相关配置
- 软件
squid - 配置文件
/etc/squid/squid.conf
9.网络驱动器设备:ISCSI服务器
工作原理
- 用途:提供网络磁盘容量
- NAS提供网络文件系统
- SAN提供网络磁盘
- 工作流程
- iSCSI target:提供存储设备的服务器
- iSCSI initiator:使用服务器磁盘的客户端
相关配置
- 软件(scsi-target-utils只支持IP,scst支持IP和FC)
- scsi-target-utils:服务器软件,将linux系统仿真成iSCSI target的功能
- iscsi-initiator-utils:客户端软件,挂载来自target的磁盘到客户端上
- 配置文件
- /etc/tgt/targets.conf:服务器上目标器配置文件
- /etc/iscsi/iscsid.conf:客户端上启动器配置文件
因特网服务器搭建
10.主机名控制者:DNS服务器
工作原理
- 用途:将主机名转换成IP地址
- 工作流程
相关配置
- 软件:
- named
- 配置文件
- /etc/named.conf
11.WWW服务器
工作原理
- 用途:通过HTTP(超文本传输协议)给客户端(浏览器)提供网页数据
- 工作流程(LAMP模式)
- 客户端(浏览器)通过网址向服务器提出请求
- 服务器回复客户端所需的数据(主要是多媒体文件)
相关配置
- 软件
- httpd:提供Apache主程序
- mysql:MySQL客户端程序
- mysql-server:MySQL服务器程序
- php:PHP主程序(包含给Apache使用的模块)
- php-devel:PHP发展工具,这个与PHP外挂的加速软件有关
- php-mysql:提供给PHP程序读取MySQL数据库的模块
- 配置文件
- /etc/httpd/conf/httpd.conf
- /etc/my.cnf
- /etc/httpd/conf.d/php.conf
12.文件服务器——FTP服务器
工作原理
- 用途:用来进行文件传输,尤其是大文件传输
- 工作流程
- 主动式连接模式
- 建立命令通道连接(TCP三次握手,port21)
- 通知FTP服务器使用Active且告知连接端口号
- FTP服务器主动向客户端连接(TCP三次握手,port20)
- 被动式连接模式
- 用户与服务器建立命令通道(TCP三次握手,port21)
- 客户端发出PASV的连接请求
- FTP服务器启动数据端口,并通知客户端连接
- 客户端随机取用大于1024的端口进行连接
- 主动式连接模式
相关配置
- 软件
- vsftpd
- 配置文件
- /etc/vsftpd/vsftpd.conf
13.邮件服务器:Postfix
工作原理
- 用途:收发(MTA)、存放(Mailbox)邮件
- 工作流程
- 取得某台MTA的权限(注册邮箱)
- 用户在MUA上编写邮件后通过SMTP(port25)发送至MTA
- 如果该封邮件的目标是本地端MTA自己的账号,通过MDA送到Mailbox去
- 如果该封邮件的目标为其他MTA,则开始中继转发的流程
- 对方MTA服务器接收邮件,存放在Mailbox
- MUA通过POP3或IMAP协议连接到MRA的port110,输入账号密码取得正确的授权
- MRA确认用户密码没有问题,前往该用户的Mailbox(/var/spool/mail/username)取得用户的邮件并发送到用户的MUA软件上
- 当所有邮件传送完毕后,用户的Mailbox内的数据将会被删除
相关配置
- 软件
- MTA服务器:postfix
- MRA服务器:dovecot
- 配置文件
- postfix配置文件:/etc/postfix/main.cf
- dovecot配置文件:/etc/dovecot/dovecot.conf