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
.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