笔记所以内容很多,建议选择性看看
对应服务 sshd
注意:配置文件 配制文件修改需要重启或重载sshd服务才能生效
systemctl sshd reload # 重载 sshd 配置文件
systemctl sshd restart # 重启 sshd 服务
man ssh_config 可以查看对应说明文档,一般无需更改
/etc/ssh/ssh_config OpenSSH SSH client configuration files
~/.ssh/known_hosts 记录了登录过的IP和指纹
~/.ssh/config 针对用户的SSH配置
~/.ssh/authorized_keys 记录公钥,用于允许记录公钥的服务器通过指定用户免密登录
man sshd_config 可以查看对应说明文档
/etc/ssh/sshd_config OpenSSH SSH daemon configuration file
主要配置:
Port 22 可以自定义sshd服务端口
ListenAddress 0.0.0.0 定义sshd监听
PermitRootLogin no 是否允许root登录,默认允许
Banner /etc/motd 登录后的提示信息
UseDNS no 禁用DNS解析,ssh连接会快很多
UsePAM yes 加载PAM模块用于用户认证
ssh remote_user@ip -p port # 登录远程的用户,仅IP是用当前用户,不带端口默认22
ssh -t -o "StrictHostKeyChecking=no" # 加这俩参数,可以跳过指纹确认,可用于免密登录
-o 可以带选项
"StrictHostKeyChecking=no" 跳过指纹确认,自动加入
-t 强制使用tty会话
scp 也可以用上述参数
man ssh 查看更多
注意:
FTP服务器主动向客户端发起连接请求,因为服务器可以主动连接到客户端,从而减少了延迟
流程:
命令端口:21 用于发送命令和控制文件传输
数据端口:20 数据连接端口
FTP 服务器等待客户端发起连接请求( FTP 的默认工作模式)
流程:
命令端口:21 用于发送命令和控制文件传输
数据端口:由服务器动态分配,通常在 49152-65535 范围内
vsftpd( very secure ftp daemon,非常安全的 FTP 守护进程)
vsftpd
认证模式
匿名开放模式 不认证 不安全
本地用户模式 通过本地账户认证 不太安全
虚拟用户模式 FTP服务器创建用户数据库,提供用户认证
ftp Linux 系统中以命令行界面的方式来管理 FTP 传输服务的客户端工具
lftp 功能更多的客户端
/etc/vsftpd/vsftpd.conf 主配置文件
/etc/vsftpd/user_list FTP特定的本地用户列表,能否登录取决于userlist_deny=NO/YES
/etc/vsftpd/ftpusers 不允许登录FTP的用户列表
/etc/vsftpd/xxx.db 应该是虚拟用户的账号文件
/etc/vsftpd/xxx_dir 这里可能有虚拟用户权限设置,以用户名命名的文件,里面是权限
iptables -F
service iptables save
mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf_bak
grep -v "#" /etc/vsftpd/vsftpd.conf_bak > /etc/vsftpd/vsftpd.conf
listen=[YES|NO] 是否以独立运行的方式监听服务
listen_address=IP 地址 设置要监听的 IP 地址
listen_port=21 设置 FTP 服务的监听端口
download_enable= [YES|NO] 是否允许下载文件
userlist_enable=[YES|NO] 设置用户列表为“允许”还是“禁止”操作
userlist_deny=[YES|NO]
max_clients=0 最大客户端连接数, 0 为不限制
max_per_ip=0 同一 IP 地址的最大连接数, 0 为不限制
anonymous_enable=[YES|NO] 是否允许匿名用户访问
anon_upload_enable=[YES|NO] 是否允许匿名用户上传文件
anon_umask=022 匿名用户上传文件的 umask 值
anon_root=/var/ftp 匿名用户的 FTP 根目录
anon_mkdir_write_enable=[YES|NO] 是否允许匿名用户创建目录
anon_other_write_enable=[YES|NO] 是否开放匿名用户的其他写入权限(包括重命名、删除等操作权限)
anon_max_rate=0 匿名用户的最大传输速率(字节/秒), 0 为不限制
local_enable=[YES|NO] 是否允许本地用户登录 FTP
local_umask=022 本地用户上传文件的 umask 值
local_root=/var/ftp 本地用户的 FTP 根目录
chroot_local_user=[YES|NO] 是否将用户权限禁锢在 FTP 目录,以确保安全
local_max_rate=0 本地用户最大传输速率(字节/秒), 0 为不限制
匿名模式 2.3.5后,增加安全检查,会有报错,暂未解决
vim /etc/vsftpd/vsftpd.conf 添加如下配置
anonymous_enable=YES
anon_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
allow_writeable_chroot=YES
重启vsftpd 服务
将FTP设置的根目录拥有者设置成ftp用户或者vsftpd
用户名:anonymous 密码:空
本地用户模式 实测成功
vim /etc/vsftpd/vsftpd.conf 进行如下配置
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
重启vsftpd 服务
本地用户登录进入自己的家目录
注意:
本地用户的逻辑是,需要改用户可以登录,要先进行登录认证才进行是否有权限访问的认证
winscp 默认超时时长15s,如有需要可以增加时长
虚拟用户模式 测试成功
1、创建用于进行 FTP 认证的用户数据库文件(奇数行为账户名,偶数行为密码)
vi /etc/vsftpd/vuser.list
zhangsan
redhat
lisi
redhat
2、加密明文用户数据库
cd /etc/vsftpd
db_load -T -t hash -f vuser.list vuser.db
file vuser.db 查看文件类型
书里:vuser.db: Berkeley DB (Hash, version 9, native byte-order)
实测:vuser.db: , created: Thu Jan 1 00:34:08 1970
chmod 600 vuser.db
rm -f vuser.list
3、创建 vsftpd 服务程序用于存储文件的根目录以及虚拟用户映射的系统本地用户
useradd -d /var/ftproot -s /sbin/nologin virtual
ls -ld /var/ftproot/
chmod -Rf 755 /var/ftproot/
4、建立用于支持虚拟用户的 PAM 文件
4.1 新建一个用于虚拟用户认证的 PAM 文件 vsftpd.vu
vim /etc/pam.d/vsftpd.vu
auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser
其中 PAM 文件内的“db=”参数为使用 db_load 命令生成的账户密码
数据库文件的路径,但不用写数据库文件的后缀
5、设置pam_service_name 参数,定义PAM认证文件
vim /etc/vsftpd/vsftpd.conf 编辑如下内容
anonymous_enable=NO
local_enable=YES
guest_enable=YES
guest_username=virtual
allow_writeable_chroot=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd.vu
userlist_enable=YES
解释:
默认就带有参数 pam_service_name=vsftpd,会使用/etc/pam.d/vsftpd
进行认证,现在需要修改成上面新建的认证文件
guest_username=virtual 指定了虚拟用户登录进来时使用的用户
6、为虚拟用户设置不同的权限
6.1 创建文件,写入权限
mkdir /etc/vsftpd/vusers_dir/
cd /etc/vsftpd/vusers_dir/
touch lisi
vim zhangsan
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
不建同名文件,就是默认的权限,就是没权限
6.2 修改配置文件
vim /etc/vsftpd/vsftpd.conf 编辑如下内容
user_config_dir=/etc/vsftpd/vusers_dir
6.3 重启vsftpd
7、测试可用性
ftp ftpip
输入用户名密码
8、使用
ftp>user username 切换用户,好像虚拟用户切换不支持,不过好像成功了一次
ftp>exit 退出
9、报错
可能服务器重启服务了
421 Service not available, remote server has closed connection
ls没看到文件
很大可能是当前目录没有文件,尝试建一个试试
nfs-utils (一般会默认安装,如果没安装,无法挂载NFS)
有多个版本,每个版本的同步方式,数据一致性以及性能都有所区别
nfs-server
iptables -F
service iptables save
mkdir /nfsfile
chmod -Rf 777 /nfsfile
echo "welcome to nfs" > /nfsfile/readme
vi /etc/exports
ro 只读
rw 读写
root_squash 当 NFS 客户端以 root 管理员访问时,映射为 NFS 服务器的匿名用户
no_root_squash 当 NFS 客户端以 root 管理员访问时, 映射为 NFS 服务器的 root 管理员
all_squash 无论 NFS 客户端使用什么账户访问,均映射为 NFS 服务器的匿名用户
sync 同时将数据写入到内存与硬盘中,保证不丢失数据
async 优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据
文件内容 请注意, NFS 客户端地址与权限之间没有空格
/nfsfile 192.168.x.x(rw,sync,root_squash)
共享目录 允许访问的主机IP(配置项1,配置项2...)
exportfs -v 查看当前的配置
exportfs -r 重新导入配置
systemctl restart rpcbind
systemctl enable rpcbind
systemctl start nfs-server
systemctl enable nfs-server
注意:
1、showmount 查看NFS远程共享信息
showmount -e 192.168.x.x
参数:
-e 显示 NFS 服务器的共享列表
-a 显示本机挂载的文件资源的情况
2、挂载NFS
yum install -y mount.nfs nfs-utils
mkdir /nfsfile
mount -t nfs 192.168.x.x:/nfsfile /nfsfile
3、如果需要长期挂载
方式一 编辑/etc/fstab
192.168.x.x:/nfsfile /nfsfile nfs defaults 0 0
方式二 编辑/etc/rc.local
mount -t nfs 192.168.x.x:/nfsfile /nfsfile
umount.nfs 挂载点
或
umount 挂载点
1)umount.nfs: /nfsfile: device is busy 是由于该目录在使用或者工作目录在这个目录下
处理办法:可以使用lsof 或 fuser 排查正在使用的文件的相关进程,退出挂载目录,并清理仍在访问NFS的进程后,再进行卸载即可
2)如果服务端的NFS异常,客户端会出现df 命令卡住的情况,可以mount命令查看挂载情况
处理办法:先解决服务端问题,然后卸载后重新挂载即可
本地mail相关文件
/etc/aliases 邮件用户别名文件,修改后执行newaliases更新,可以代收别名邮件
/etc/mail.rc 本地邮件配置文件
/var/spool/mail/username 邮件存储文件
mail命令
echo "mail content" |mail -s "mail title" mail_address/user
不常用
Apache服务:httpd
Apache软件:httpd
配置文件
服务目录 /etc/httpd
主配置文件 /etc/httpd/conf/httpd.conf
网站数据目录 /var/www/html
访问日志 /var/log/httpd/access_log
错误日志 /var/log/httpd/error_log
配置文件参数:
cat /etc/httpd/conf/httpd.conf
ServerRoot 服务目录
ServerAdmin 管理员邮箱
User 运行服务的用户
Group 运行服务的用户组
ServerName 网站服务器的域名
DocumentRoot 网站数据目录
Directory 网站数据目录的权限
Listen 监听的 IP 地址与端口号
DirectoryIndex 默认的索引页页面
ErrorLog 错误日志文件
CustomLog 访问日志文件
Timeout 网页超时时间,默认为 300 秒
dhcp
dhcpd
/etc/dhcp/dhcpd.conf
vim /etc/dhcp/dhcpd.conf
ddns-update-style none; 设置 DNS 服务不自动进行动态更新
ignore client-updates; 忽略客户端更新 DNS 记录
subnet 192.168.10.0 netmask 255.255.255.0 { 作用域为 192.168.10.0/24 网段
range 192.168.10.50 192.168.10.150; IP 地址池为 192.168.10.50-150(约 100 个 IP 地址)
option subnet-mask 255.255.255.0; 定义客户端默认的子网掩码
option routers 192.168.10.1; 定义客户端的网关地址
option domain-name "aaa.com"; 定义默认的搜索域
option domain-name-servers 192.168.10.1; 定义客户端的 DNS 地址
default-lease-time 21600; 定义默认租约时间(单位:秒)
max-lease-time 43200; 定义最大预约时间(单位:秒)
host aaa { 需要绑定MAC地址的主机名,此段可以忽略
hardware ethernet 00:0c:29:27:c6:12; 网卡MAC地址
fixed-address 192.168.10.88; 绑定的IP
}
}
systemclt enable dhcpd
systemctl start dhcpd
网卡配置dhcp模式,就会自己在局域网中寻找可用DHCP服务器,无需客户端额外配置
使用系统日志文件:/var/log/messages,会包含分配的地址和获取IP的MAC地址等信息
修改立即生效
/etc/resolv.conf
/etc/hosts
bind-chroot
named
主配置文件( /etc/named.conf )定义 bind 服务程序的运行
区域配置文件( /etc/named.rfc1912.zones )保存域名和 IP 地址对应关系的所在位置
数据配置文件目录( /var/named )保存域名和 IP 地址真实对应关系的数据配置文件
1、编辑主配置文件
将11行和17行地址改为any,为所有IP提供服务,允许所有IP请求本DNS
listen-on port 53 { any; };
allow-query { any; };
2、编辑区域配置文件
vim /etc/named.rfc1912.zones
zone "aaa.com" IN {
type master;
file "aaa.com.zone";
allow-update {none;};
};
named-checkconf 检查配置文件语法和参数
3、编辑数据配置文件
cd /var/named/
ls -al named.localhost
cp -a named.localhost aaa.com.zone
vim aaa.com.zone
$TTL 1D #生存周期为 1 天
@ IN SOA aaa.com. root.aaa.com. (
DNS区域地址 管理员邮箱
0 ; serial #更新序列号
1D ; refresh #更新时间
1H ; retry #更新时间
1W ; expire #失效时间
3H ) ; minimum #无效解析记录的缓存时间
NS ns.aaa.com. #域名服务器记录
A 192.168.10.10 #地址记录( ns.aaa.com.)
AAAA ::1
named-checkzone 检查数据配置文件语法和参数
systemctl restart named
4、验证结果
修改/etc/resolv.conf 添加新建DNS地址
nslookup aaa.com 测试正向解析
1、配置区域配置文件
vim /etc/named.rfc1912.zones
zone "aaa.com" IN {
type master;
file "aaa.com.zone";
allow-update {none;};
};
zone "10.168.192.in-addr.arpa" IN {
type master;
file "192.168.10.arpa";
};
named-checkconf 检查配置文件语法和参数
2、配置数据配置文件
cp -a named.loopback 192.168.10.arpa
vim 192.168.10.arpa
$TTL 1D
@ IN SOA aaa.com. root.aaa.com. (
0;serial
1D;refresh
1H;retry
1W;expire
3H );minimum
NS ns.aaa.com.
ns A 192.168.10.10
10 PTR ns.aaa.com. #PTR 为指针记录,仅用于反向解析
10 PTR mail.aaa.com.
10 PTR www.aaa.com.
20 PTR bbs.aaa.com.
named-checkzone 检查数据配置文件语法和参数
systemctl restart named
3、检查测试
nslookup IP 测试反向解析