服务器架设

来源:互联网 发布:白俄罗斯军力知乎 编辑:程序博客网 时间:2024/05/08 21:08
2017.03.20
.ssh目录下的known。。。文件
表示信任主机
修改sshd配置文件
/etc/ssh/sshd
    查找port信息
/port


开启服务后,设置防火墙(永久生效)
重启后设置安全上下文




2017.03.22
NFS服务器:
NFS网络文件系统(基于网络)


配置NFS:
    只有NFS改了配置文件之后重启服务是:export


格式:共享位置  服务器地址范围(网段内所有访问/*)
权限:
    rw:read-write,可读写;
    ro:read-only,只读;
    no_root_squash:
NFS客户端连接服务端时如果使用的是root的话,
那么对服务端分享的目录来说,也拥有root权限。
    root_squash:
NFS客户端连接服务端时如果使用的是root的话,
那么对服务端分享的目录来说,拥有匿名用户权限,
通常他将使用nobody或nfsnobody身份;




防火墙设置:
服务器端:service=nfs、mountd、rpc-bind
客户端:挂载


步骤:
1.查看IP地址,测试网络的可达性
2.yum search nfs(nfs-utils.x86_64)(rhel 7 默认安装nfs)
3.修改配置文件(/etc/exports)
目录  地址范围(权限)
eg:
/tmp/nfs 192.168.1.2/24(ro,no_root_squash) #共享文件夹
/mnt/rehl *(rw) #共享服务器光驱


4.exportfs -r   (重启服务)
5.开启服务:
  systemctl enable nfs-server
  systemctl start nfs-server
  检查:systemctl status nfs-server (“active(exited)”)


6.firewall-cmd --add-service=nfs --permanent
  firewall-cmd --reload(服务器端)


7.mount -t nfs 地址:共享的目录 挂载点
共享目录需要在/mnt下创建相应的挂载点
例如:/tmp/nfs需在/mnt下创建/mnt/nfs
eg:
mount -t nfs 192.168.1.2:/tmp/nfs /mnt/nfs
 
(若只有一条地址范围不限的,则可以不用挂载)
 
8.测试(文件的权限不同,想更改权限还可以设置 acl)
本机测试:
showmount -e 本机IP地址(或127.0.0.1)
 
永久挂载NFS
客户端(/etc/fstab):
  地址:共享的目录  挂载点  nfs defaults 0 0




2017.03.29
/etc/hosts:域名到IP地址的映射关系
DNS分层:根域、顶级域、二级域(申请域)及主机名称


迭代 :向上一级服务器询问


DNS资源记录类型
PTR(指针):反向查找(IP查找域名)


创建区域:(/var/named)
正向:域名查找IP
反向:IP查找域名


根域:/var/named.ca


配置DNS:
1.安装bind、bind-utils(客户端)
DNS的服务叫name,即名称服务
2.配置文件(/etc/named.conf)
修改监听IP地址,默认为127.0.0.1(即自己)
  {监听地址; IP地址范围; any; };
allow-query:允许查询,默认为localhost
如下:
options {
        listen-on port 53 { 127.0.0.1; any; };
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        allow-query     { localhost; any; };


3.配置区域文件(/etc/named.rfc)
正向区域及反向区域
zone "exam.com" IN {
        type master;
        file "exam.zx";
};


zone "1.168.192.in-addr.arpa" IN {
        type master;
        file "192.168.1.fx";
};


4.测试配置文件
named-checkconf  /etc/named.conf
named-checkconf  /etc/named.rfc


5.开启防火墙和selinux(53端口)
port=53/tcp、port=53/udp、service=dns
ls -Z /etc/named.conf
semanage fcontext -a -t named_conf_t /etc/named.conf
restorecon -RFvv /etc/named.conf


6.正向区域文件(/var/named/.zx)
$TTL 1D
@       IN SOA  @ exam.com. (
                                        20170412        ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        A       127.0.0.1
        AAAA    ::1
@       IN      NS      61.139.2.69
www     IN      A       192.168.1.10
ftp     IN      CNAME   www


7.反向区域文件
$TTL 1D
@       IN SOA  @ exam.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        A       127.0.0.1
        AAAA    ::1
        PTR     localhost.
@       IN      NS      61.139.2.69
10       IN      PTR     www.exam.com.


8.检查
named-checkzone "exam.com" /var/named/exam.zx
named-checkzone "1.168.192.in-addr.arpa" 192.168.1.fx


9.将正向文件和反向文件的权限更改为755(默认是640)
[root@REHL named]# chmod 755 exam.zx 
[root@REHL named]# chmod 644 192.168.1.fx 


10.启动
systemctl start named.service启动服务
systemctl enable named.service 开机启用
systemctl status named.service 检查状态




11.验证
nslookup
dig www.exam.com


[root@REHL named]# nslookup www.exam.com
Server: 192.168.1.10
Address: 192.168.1.10#53


Name: www.exam.com
Address: 192.168.1.10




[root@REHL named]# nslookup 192.168.1.10
Server: 192.168.1.10
Address: 192.168.1.10#53


10.1.168.192.in-addr.arpa name = www.exam.com.






仅缓存
1.安装bind-chroot
2.修改/etc/named.conf
添加 allow-query-cache { localhost; any; };
3.重启服务
4.为/etc/named.conf创建软连接


2017.04.17
DHCP服务器


内部网络方式联网


对DHCP服务器配置静态IP地址,客户端DHCP动态获取IP地址


配置DHCP:
服务器端:
 1.安装DHCP
  yum -y install dhcp


 2.配置文件:/etc/dhcp/dhcpd.conf
  拷贝/usr/share/doc/dhcp-4.2.5/dhcpd.conf.example
到/etc/dhcp


 3.修改配置文件/etc/dhcp/dhcpd.conf
 #option definitions common to all supported networks...
 option domain-name "sc.com";
 option domain-name-servers 192.168.100.5
 
 default-lease-time 600;
 max-lease-time 7200;


 # A slightly different configuration for an internal subnet.
 subnet 192.168.100.0 netmask 255.255.255.0 {
   range 192.168.100.6 192.168.100.56;
   option domain-name-servers 192.168.100.5;
   option domain-name "www.sc.com";
   option routers 192.168.100.5;
   option broadcast-address 192.168.100.255;
   default-lease-time 600;
   max-lease-time 7200;
 }


 4.启动DHCP服务
systemctl start dhcpd
systemctl enable dhcpd
systemctl status dhcpd


客户端:
将地址获取方式更改为自动获取即可
 nmcli connection modify eno16777736 ipv4.method auto
 systemctl restart network

 vi /etc/sysconfig/network-script/ifcfg-eno*
 将“BOOTPROTO”设置为“BOOTPROTO=dhcp”
 保存退出
 systemctl restart network


2017.04.26
Apache-挂载网站
1.安装httpd
2.启动服务(start、enable)
3.建立web站点
主目录:/var/www/html


虚拟主机:一个服务器挂多个站点


通过不同 的URL定向到不同的站点
标示站点的要素:端口号(默认80)、IP地址、域名


三种方法
基于端口、基于IP、基于域名(虚拟主机头)


使用别名技术,实现同一IP对应多个站点(DNS)
配置网站主目录
建立默认主页




2017.04.26
Apache-挂载网站
1.安装httpd
2.启动服务(start、enable)
3.防火墙设置(允许http服务通过)
4.建立web站点
默认主目录:/var/www/html
echo "test start ..." > /var/www/html/index.html
5.本机测试
curl (-I) http://127.0.0.1 
或者curl (-I) http://本机IP地址
显示结果:
test start ...




练习:
安装,挂载网站,创建一个网页(基于IP)
1.安装httpd
2.cd /var/www/html
echo "test" > index.html
3.防火墙设置
service=http(允许http服务通过)
4.开启服务
start
enable
status(active)
5.用浏览器测试
firefox ip地址


配置文件
/etc/http/httpd.conf


基于不同域名
1.修改/etc/named.rfc
正向、反向
2.到/var/named修改区域文件
zx:添加别名主机
fx:多少主机,多少PTR。
3.检查配置文件
named-checkconf  /etc/named.conf
named-checkconf  /etc/named.rfc
named-checkzone "exam.com" /var/named/exam.zx
named-checkzone "1.168.192.in-addr.arpa" 192.168.1.fx
4.检查防火墙
5.测试DNS服务是否正常
6.虚拟主机配置文件:/etc/httpd
conf 配置文件
conf.d 第三方配置文件


新建虚拟主机配置文件(*.conf)
<VirtualHost *:80>
    ServerName www.exam.com    (主机名)
    DocumentRoot "/srv/www/web" (主目录)
</VirtualHost>


<Directory "/srv/www/web">
    Require all granted   权限
</Directory>


到主目录,新建网页(*.html)


7.SElinux设置
ls -Z(查看权限) 
ls -Z /var/www
semanage fcontext -a -t httpd_sys_content_t “/srv(/.*)?”
restorecon -vvRF /srv/


8.防火墙设置




2017.05.08
基于端口
1.检查DNS服务器
2.创建新的主目录和index静态网页文件
主目录:www_10000
index.html:there is www_10000 .
3.新建相应的配置文件
Listen 10000
<VirtualHost *:10000>
    ServerName www.exam.com:10000
    DocumentRoot "/srv/www/10000"
</VirtualHost>


<Directory "/srv/www/10000">
    Require all granted
</Directory>
4.设置semanager ,添加端口
semanage port -a -t http_port_t -p tcp 10000


semanage port -l | grep http


5.防火墙,开启相应的端口
firewall-cmd --add-port=10000/tcp --per
firewall-cmd --reload




Apache报错
AH00557: httpd: apr_sockaddr_info_get() failed for REHL
解决: vim /etc/httpd/conf/httpd.conf
内容如下:    
#ServerName www.example.com:80
        ServerName localhost:80
修改后状态:Starting The Apache HTTP Server...





2017.05.15
Apache虚拟目录
1.测试DNS服务是否正常
2.创建相应的虚拟目录:/srv/www/web/123
3.虚拟目录配置文件:/etc/httpd


新建虚拟目录配置文件(*.conf)(同虚拟主机类似)
<VirtualHost *:80>
    ServerName www.exam.com/123    (主机名)
    DocumentRoot "/srv/www/web/123" (主目录)
</VirtualHost>


<Directory "/srv/www/web/123">
    Require all granted   权限
</Directory>


到虚拟目录,新建网页(*.html)


4.SElinux设置
ls -Z(查看权限) 
ls -Z /var/www
semanage fcontext -a -t httpd_sys_content_t “/srv(/.*)?”
restorecon -vvRF /srv/


5.防火墙设置


访问控制
在Directory目录,
1.先允许后拒绝,默认拒绝所有未被提及的所有客户端地址
order allow,deny
2.先拒绝后允许,默认允许所有未被提及的所有客户端地址
order deny,allow


练习:
拒绝192.168.1.0


<Directory /srv/www/www/123>
        Order Deny,Allow
        Deny from all
        Allow from 123.com
</Directory>








yum锁定及解决解决如下
使用yum安装计划任务功能,结果提示:


[root@syl ~]# yum install kernel*
Loaded plugins: fastestmirror, langpacks
Existing lock /var/run/yum.pid: another copy is running as pid 3694.


可能是系统自动升级正在运行,yum在锁定状态中。
已经有一个yum进程在运行了,使用kill干掉它:


# ps aux | grep yum
root       3694 29.0  4.8 1034644 136488 ?      SN   18:16   0:48 /usr/bin/python /usr/share/PackageKit/helpers/yum/yumBackend.py refresh-cache yes
root       3993 17.0  0.3  34264 11116 ?        RN   18:18   0:00 /usr/bin/applydeltarpm -a x86_64 /var/cache/yum/x86_64/7/updates/packages/pulseaudio-6.0-8.el7_6.0-9.el7_3.x86_64.drpm /var/cache/yum/x86_64/7/updates/packages/pulseaudio-6.0-9.el7_3.x86_64.rpm
root       3997  0.0  0.0 112648   952 pts/0    R+   18:18   0:00 grep --color=auto yu


# kill -s 9 3694


如果kill对付不了它,那怎么办呢?


可以通过强制关掉yum进程:
#rm -f /var/run/yum.pid
然后就可以使用yum了。




2017.05.22
ftp面向Windows用户
公司内部使用
使用防火墙设置ftp权限






用户类型
匿名用户:anymous或ftp  默认匿名用户只能下载
本地用户:账号和密码储存在系统内部,passwd和shadow 自行创建
   远程登录时,只允许使用协议访问ftp,而不能登录系统访问
虚拟用户(隔离用户):每个用户登录系统时,只能在自己的主目录进行操作,独立账号




服务端:vsftpd
1.安装vsftpd
2.开启防火墙
firewall-cmd --add-service=ftp --permanent 
firewall-cmd --reload
3.开启ftp服务
systemctl start vsftpd
systemctl enable vsftpd


客户端:ftp
[root@REHL ~]# ftp
ftp> open 192.168.1.10
Connected to 192.168.1.10 (192.168.1.10).
220 (vsFTPd 3.0.2)
Name (192.168.1.10:root): ftp      
   #在对ftp服务没有进行任何设置时,只有匿名用户可以访问
331 Please specify the password.
Password:
   #密码为空
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> dir
  #使用dos命令
227 Entering Passive Mode (192,168,1,10,185,161).
150 Here comes the directory listing.
drwxr-xr-x    2 0        0               6 Mar 07  2014 pub
226 Directory send OK.
ftp> 




dos 命令
dir/ls  查看
put 上传
get 下载  下载的内容在进入ftp时的目录
  eg:[root@REHL vsftpd]#   
  当前在vsftpd目录下,则ftp下载的文件应该也在vsftpd下
bye 退出




/etc/vsftpd/vsftpd.conf 主配置文件
/etc/vsftpd/ftpusers  黑名单
/etc/vsftpd/user_list 白名单


/var/ftp、/var/ftp/pub 默认主目录


配置文件:
local_enable=YES   本地用户(系统里的)可以登录
local_umask=022    默认本地用户上传权限(文件默认权限666,目录默认权限777)
0 本地用户传输不受限制




建立白名单
100 #chroot_local_user=NO #只能在自己的主目录进行操作
101 #chroot_list_enable=YES #开启白名单
103 #chroot_list_file=/etc/vsftpd/chroot_list #白名单的主目录


在/etc/vsftpd/chroot_list里写入用户名




listen=NO    是否把vsftp放到防护进程里
默认ftp使用21,20端口




匿名用户ftp搭建:
系统以最小权限对文件或目录进行操作


1.创建共享文件/tmp/share
[root@REHL vsftpd]# mkdir /tmp/share
2.设置selinux 
[root@REHL vsftpd]# ls -Z /var/ftp
drwxr-xr-x. root root system_u:object_r:public_content_t:s0 pub
[root@REHL vsftpd]# semanage fcontext -a -t public_content_t /tmp/share
[root@REHL vsftpd]# restorecon -RFvv /tmp/share
restorecon reset /tmp/share context unconfined_u:object_r:user_tmp_t:s0->system_u:object_r:public_content_t:s0
3.修改配置文件
vim  /etc/vsftpd/vsftpd.conf
anonymous_enable=YES #12行:允许匿名用户访问
anon_root=/tmp/share #添加到13行:设置匿名用户登录后的根目录
4.测试
[root@REHL vsftpd]# ftp
ftp> open 192.168.1.10
Connected to 192.168.1.10 (192.168.1.10).
220 (vsFTPd 3.0.2)
Name (192.168.1.10:root): ftp
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> dir
227 Entering Passive Mode (192,168,1,10,204,132).
150 Here comes the directory listing.
-rw-r--r--    1 0        0              19 May 22 03:29 1
226 Directory send OK.
ftp> get 1
local: 1 remote: 1
227 Entering Passive Mode (192,168,1,10,69,0).
150 Opening BINARY mode data connection for 1 (19 bytes).
226 Transfer complete.
19 bytes received in 3.8e-05 secs (500.00 Kbytes/sec)
ftp> 




本地用户ftp:
selinux的布尔值
getsebool  -a | grep  ftp       #查看与ftp有关的所有SElinux的布尔值
setsebool  -P  ftpd_full_access  on #开放ftp访问,-P表示永久生效


1.创建本地用户,用于操作ftp
[root@REHL ~]# useradd -s /sbin/nologin test
[root@REHL ~]# passwd test
Changing password for user test.
New password: 
BAD PASSWORD: The password is shorter than 6 characters
Retype new password: 
passwd: all authentication tokens updated successfully.
2.设置本地用户的主目录
[root@REHL ~]# cd /srv/www/web
[root@REHL web]# cd ..
[root@REHL www]# ls
music  news  web  www_10000
[root@REHL www]# ls -l
total 0
drwxr-xr-x. 2 root root 23 May  3 18:30 music
drwxr-xr-x. 2 root root 23 May  3 18:30 news
drwxr-xr-x. 3 root root 33 May 15 11:02 web
drwxr-xr-x. 2 root root 23 May 15 10:28 www_10000
[root@REHL www]# chown -R test web/
[root@REHL www]# ls -l
total 0
drwxr-xr-x. 2 root root 23 May  3 18:30 music
drwxr-xr-x. 2 root root 23 May  3 18:30 news
drwxr-xr-x. 3 test root 33 May 15 11:02 web
drwxr-xr-x. 2 root root 23 May 15 10:28 www_10000
3.本地用户配置文件设置:/etc/vsftpd/vsftpd.conf
local_enable=YES #16行:允许本地用户登录
local_root=/srv/www/web #添加至17行:设置本地用户登录后的根目录
write_enable=YES #19行:允许写入
local_umask=022 #23行:设定新上传文件(夹)的权限掩码
connect_from_port_20=YES #添加至43
#chroot_local_user= NO #100行:是否将所有用户限制在登录根目录内
#chroot_list_enable=YES #101行:开启锁定用户的chroot功能
#chroot_list_file=/etc/vsftpd/chroot_list #103行:设置锁定用户的列表文件


4.添加本地用户:/etc/vsftpd/chroot_list
root@REHL vsftpd]# cd /etc/vsftpd
[root@REHL vsftpd]# ls
1  ftpusers  user_list  vsftpd.conf  vsftpd_conf_migrate.sh
[root@REHL vsftpd]# vim chroot_list
[root@REHL vsftpd]# cat chroot_list 
test
[root@REHL vsftpd]# 


5.重启ftp服务
systemctl restart vsftpd


6.测试
[root@REHL vsftpd]# ftp
ftp> open 192.168.1.10
Connected to 192.168.1.10 (192.168.1.10).
220 (vsFTPd 3.0.2)
Name (192.168.1.10:root): test
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (192,168,1,10,29,8).
150 Here comes the directory listing.
drwxr-xr-x    2 1001     0              23 May 15 03:06 123
-rwxr-xr-x    1 1001     0              15 May 03 10:37 index.html
226 Directory send OK.
ftp> exit
221 Goodbye.




2017.05.27
Samba服务器:实现Windows和Linux之间的文件共享


服务器:
1.安装samba.x86_64 + samba-client.x86_64(服务器装客户端做测试用)
2.开启smb 和 nmb服务(systemctl)
systemctl enable smb nmb
ln -s '/usr/lib/systemd/system/smb.service' '/etc/systemd/system/multi-user.target.wants/smb.service'
ln -s '/usr/lib/systemd/system/nmb.service' '/etc/systemd/system/multi-user.target.wants/nmb.service'
systemctl start smb nmb
3.配置文件:
主:/etc/samba/smb.conf
lmhosts:存放


/var/lib/


全局设置节:
workgroup=MYGROUP(默认)


自定义节:
comment=备注信息 #共享节名字,不是共享的主目录
path=绝对路径 #指的是共享目录的绝对路径)
write_list=用户名或组名清单 #以空格或逗号隔开,组名前带@,用户名则不需带@)


例:
1.创建共享目录 
[root@REHL ~]# mkdir /tmp/smb
[root@REHL ~]# touch /tmp/smb/f1


2.设置共享目录的权限 chmod 
[root@REHL ~]# ls -ld /tmp/smb/f1
-rw-r--r--. 1 root root 0 May 31 16:19 /tmp/smb/f1
[root@REHL ~]# chmod 1777 /tmp/smb/f1
[root@REHL ~]# ls -ld /tmp/smb/f1
-rwxrwxrwt. 1 root root 0 May 31 16:19 /tmp/smb/f1


3.修改配置文件
[root@REHL ~]# vim /etc/samba/smb.conf


设置全局变量:
[global]
        workgroup = MYGROUP
        server string = Samba Server Version %v    #进入Samba的提示(标语)


安全设置:
        security = user
        passdb backend = tdbsam
        map to guest = Bad User   #允许匿名登录


自定义共享
#============================ Share Definitions ==============================


[homes]
        comment = Home Directories
        browseable = no
        writable = yes
;       valid users = %S
;       valid users = MYDOMAIN\%S


[printers]
        comment = All Printers
        path = /var/spool/samba
        browseable = no
        guest ok = no
        writable = no
        printable = yes


共享字节模板:
[doc] #共享目录在客户端显示的名字
        comment = Public Stuff
        path = /tmp/smb
        browseable = yes
        guest ok = yes
        writable = yes
        printable = no


4.重启服务
[root@REHL ~]# systemctl restart smb nmb


5.开启防火墙
[root@REHL ~]# firewall-cmd --add-service=samba --permanent
success
[root@REHL ~]# firewall-cmd --reload
success
[root@REHL ~]# firewall-cmd --list-all
public (default, active)
  interfaces: eno16777736
  sources: 
  services: dhcpv6-client dns ftp http samba ssh
  ports: 53/tcp 53/udp 80/tcp 10000/tcp 80/udp
  masquerade: no
  forward-ports: 
  icmp-blocks: 
  rich rules: 

[root@REHL ~]# 
6.设置SELinux
安全上下文:samba _share_t




[root@REHL samba]# smbclient //192.168.1.10/doc
Enter REHL's password: 
protocol negotiation failed: NT_STATUS_IO_TIMEOUT


解决:
vim /etc/hosts
添加需要解析的IP地址和主机名
eg:192.168.1.10 REHL




客户端:
1.samba-client.x86_64 + 永久挂载cifs






2017.05.31
多用户
1.创建共享文件(节点)
[root@rehl ~]# mkdir /ss
2.编辑配置文件:/etc/samba/smb.conf
[root@rehl ~]# vim /etc/samba/smb.conf 
[test]
        comment = Public Stuff
        path = /ss
write list = @share #加上@表示用户组,不加表示用户


3.添加用户组和用户
[root@rehl ~]# groupadd share
[root@rehl ~]# useradd -G share -s /sbin/nologin natasha
4.为用户设置samba密码,此密码为登录Samba的密码,可以不与登录系统的密码一致
[root@rehl ~]# smbpasswd -a natasha
New SMB password:
Retype new SMB password:
Added user natasha.
5.修改共享文件的权限及主目录
[root@rehl ~]# chown .share /ss
[root@rehl ~]# chmod 775 /ss






客户端配置自动挂载
1.安装cifs* samba-cli*
2.编辑密码文件 
vim /tmp/mima.txt
username=natasha
password=1qaz,
3.编辑/etc/fstab (可参考man mount.cifs)
//192.168.1.10/组名 挂载点 


//192.168.1.10/test     /ss cifs        defaults,credentials=/tmp/mima.txt,sec=ntlmssp,multiuser        0       0
4.挂载用户
[root@rehl ~]# mount -a


测试:
[root@rehl ~]# smbclient //192.168.1.10/test -U natasha
Enter natasha's password: 
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]
smb: \> exit