Linux 常见服务配置
?笔记所以内容很多,建议选择性看看
SSH
Secure Shell? 用于与服务器建立安全的连接
对应服务? 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 查看更多
?注意:
- UseDNS 配置成yes,ssh会在连接时使用反向地址解析,无法解析时会导致连接很慢,10s?
- 如果有编辑/etc/hosts.deny 或者 /etc/hosts.allow ssh连接也会变慢
FTP
File Transfer Protocol 文件传输协议
FTP工作模式?
主动模式
FTP服务器主动向客户端发起连接请求,因为服务器可以主动连接到客户端,从而减少了延迟
流程:
- FTP 客户端先建立与服务端21的连接
- 客户端发送PORT 命令告诉服务器客户端的 IP 地址和端口号
- 服务器收到 PORT 命令后,服务端就会打开一个数据连接到客户端的 IP 地址和端口号
- 客户端随后发送 STOR 命令告知服务端需要的文件
- 服务器收到 STOR 命令后,它就会开始向客户端发送数据
- 客户端收到数据后,它就会将其写入本地文件
- 一旦客户端完成接收数据,它就会关闭与服务器的连接
命令端口:21?用于发送命令和控制文件传输
数据端口:20 数据连接端口
被动模式
FTP 服务器等待客户端发起连接请求( FTP 的默认工作模式)
流程:
- FTP 客户端先请求服务端21口,建立连接
- 客户端发送 PASV 命令告诉服务器让它打开一个数据连接
- 服务器收到 PASV 命令后会向客户端发送数据连接信息,通常包括服务器的 IP 地址和端口号
- 客户端打开一个数据连接到服务器的 IP 地址和端口号
- 客户端随后发送 STOR 命令告诉服务器它要上传一个文件
- 服务器收到 STOR 命令后,它就会开始向客户端发送数据
- 客户端收到数据后,它就会将其写入本地文件
- 一旦客户端完成接收数据,它就会关闭与服务器的连接
命令端口: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 这里可能有虚拟用户权限设置,以用户名命名的文件,里面是权限
服务器端配置
1、清理防火墙
iptables -F
service iptables save
2、编辑配置文件
mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf_bak
grep -v "#" /etc/vsftpd/vsftpd.conf_bak > /etc/vsftpd/vsftpd.conf
3、常用参数
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 为不限制
?4、配置模式
匿名模式 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?
Network File System 网络文件系统,一般用于文件共享,Windows的共享是CIFS,如需挂载到Windows 需要搭建samba服务
软件
nfs-utils (一般会默认安装,如果没安装,无法挂载NFS)
有多个版本,每个版本的同步方式,数据一致性以及性能都有所区别
服务
nfs-server
服务端搭建步骤
1、清除防火墙策略 (一般没有)
iptables -F
service iptables save
2、建立共享目录
mkdir /nfsfile
chmod -Rf 777 /nfsfile
echo "welcome to nfs" > /nfsfile/readme
3、编辑配置文件
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 重新导入配置
4、启动并启用NFS服务程序
systemctl restart rpcbind
systemctl enable rpcbind
systemctl start nfs-server
systemctl enable nfs-server
注意:
- 在使用 NFS 服务进行文件共享之前,需要RPC( Remote Procedure Call,远程过程调用)服务将 NFS 服务器的 IP 地址和端口号等信息发送给客户端
- NFS在创建文件时,网络包会附带UID到NFS服务器上面,所以建议所有客户端的UID尽量保持一致,避免出现创建文件后,不同客户端属主不同的情况
客户端配置步骤
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命令查看挂载情况
处理办法:先解决服务端问题,然后卸载后重新挂载即可
邮件服务,目前工作中邮件都是Windows Server 的邮件托管,没在用这个自带的
本地mail相关文件
????????/etc/aliases 邮件用户别名文件,修改后执行newaliases更新,可以代收别名邮件
????????/etc/mail.rc 本地邮件配置文件
????????/var/spool/mail/username ?邮件存储文件
mail命令
????????echo "mail content" |mail -s "mail title" mail_address/user
HTTP
Hypertext Transfer Protocol 超文本传输协议,不常用
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
Dynamic Host Configuration Protocol,动态主机配置协议 用于管理和分配IP信息,以前学校实训搭建的Windows的DHCP
软件
dhcp?
服务
dhcpd
服务器端配置文件
/etc/dhcp/dhcpd.conf
服务端配置案例
1、配置文件
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
}
}
2、启动服务
systemclt enable dhcpd
systemctl start dhcpd
3、测试
网卡配置dhcp模式,就会自己在局域网中寻找可用DHCP服务器,无需客户端额外配置
4、日志文件
使用系统日志文件:/var/log/messages,会包含分配的地址和获取IP的MAC地址等信息
DNS
Domain Name System ,用于管理域名和IP的映射关系
客户端配置文件
修改立即生效
/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 测试反向解析
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!