声明:本博客是为了巩固自己以前所学Linux服务器知识而整理的,这次我把很多模板配置文件都记录下来,可能以后工作会用得到。也希望能够对大家有所帮助。我只记录了常见的几个服务器,后期可能会有所添加。
本篇博客实验环境都是在centos7上完成的,有一定的参考价值。
CONTENTS
1 VNC安装与配置
(1)服务端安装VNC packages:
yum install tigervnc-server -y
(2)修改配置信息,在/etc/systemd/system/下建立文件夹vncserver@:1.service 把example config 文件从/lib/systemd/system/vncserver@.service复制到里面
cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
然后打开这个配置文件/etc/systemd/system/vncservExer@:1.service替换掉默认用户名
vim /etc/systemd/system/vncserver@:1.service
找到这一行
ExecStart=/usr/bin/vncserver_wrapper <USER> %i
这里我直接用root 用户登录(不同的用户替换不同的用户名),所以我替换成:
ExecStart=/usr/bin/vncserver_wrapper <root> %i
(3)重加载 systemd
systemctl daemon-reload
(4)为VNC设密码vnc
vncpasswd
(5)配置防火墙。由于我这边的Centos 7 是用iptables,规则如下:
iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 5900:5903 -j ACCEPT
service iptables save
如果是用Centos 7 是firewalld防火墙,如下配置
firewall-cmd --permanent --add-service vnc-server
systemctl restart firewalld.service
(6)设默认启动并开启VNC
systemctl enable vncserver@:1.service
systemctl start vncserver@:1.service
(7)这样基本上服务器端就设好了,客户端要去下一个VNC Viewer 的软件测试连接(比如我用Centos7作为客户端)。
yum install tigervnc.x86_64 -y
顺利登入:
2 proxy代理服务器
直接模拟一个实验环境,实验拓扑如下:
(1)按照实验拓扑搭建基本的环境。实现内外网互通。(可以先暂时关闭防火墙,在网关上开启路由转发。)
#编辑文件开启路由转发
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
#加载一下
sysctl -p
(2)网关上安装squid并配置
#安装squid
yum install squid -y
vim /etc/squid/squid.conf
#允许源10.1.1.0/24使用代理,并添加主机名
acl localnet src 10.1.1.0/24
visible_hostname Centos7-host1
#启动代理服务并初始化缓存,目录
systemctl start squid
squid -z
(3)在192.168.47.100上安装httpd服务,并做个简单的测试页 。顺便安装一个wireshark,后面抓包分析使用。
yum install httpd -y
echo hello world > /var/www/html/index.html
systemctl start httpd
yum install wireshark-gnome wireshark -y
现在在内网访问外网web,并做抓包,如下图(源ip是10.1.1.100.):
(4)下面在客户端配置代理。打开火狐浏览器
(5)这个时候再访问外网web并做抓包。如下图可知客户端访问web是从网关代理过来的
(6)这说明没配置防火墙之前代理服务器是正常工作的。最后我们打开防火墙,配置防火墙。配置好之后保存规则并重新访问web。(我就不在做测试了)
#网关上防火墙配置
iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 3128 -j ACCEPT
iptables -I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -I FORWARD -d 192.168.47.0/24 -i ens33 -o ens37 -p tcp -m tcp --dport 80 -j ACCEPT
iptables -I FORWARD -s 192.168.47.0/24 -m state --state RELATED,ESTABLISHED -j ACCEPT
service iptables save
#外网防火墙配置
iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
iptables -I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
service iptables save
3 DHCP服务器
(1)网络拓扑如下:
(2)先按照网络拓扑搭建基础环境。往后在dhcp服务器配置。
yum install dhcp -y
#编辑配置文件
vim /etc/dhcp/dhcpd.conf
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.example
# see dhcpd.conf(5) man page
subnet 10.1.1.0 netmask 255.255.255.0 {
#动态分配池
range 10.1.1.100 10.1.1.200;
option domain-name-servers 10.1.1.1;
#DNS还没有配置,可以先随便放一个
option domain-name "test.cn";
option routers 10.1.1.1;
option broadcast-address 10.1.1.255;
default-lease-time 600;
max-lease-time 7200;
#绑定bossMac
host boss{
hardware ethernet 00:0C:29:67:9E:10;
fixed-address 10.1.1.10;
}
}
#配置好文件启动dhcp
systemctl start dhcpd
(3)client端设置动态获取ip地址。重启网络,查看ip。
BOSS:
普通员工:
4 DNS服务器
4.1 DNS的基本配置
配置一台DNS服务器,有自己的域名,配置正解和反解文件。客户端指向该DNS可以完成正常解析。
(1)安装DNS服务器。
yum install bind -y
(2)配置主配置文件。/etc/named.conf (配置完之后记得用 命令 named-checkconf 检查文件配置格式)
// named.conf
options {
listen-on port 53 { 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";
recursing-file "/var/named/data/named.recursing";
secroots-file "/var/named/data/named.secroots";
allow-query { any; };
recursion yes;
allow-transfer {none;};
};
zone "." IN {
type hint;
file "named.ca";
};
zone "gawain.com" IN {
type master;
file "named.gawain.com";
};
zone "47.168.192.in-addr.arpa" IN {
type master;
file "named.192.168.47";
};
(3)配置正解反解文件,与主文件对应的目录文件名一致。(注意com.后面这个点,不要丢失。它对应一个完整的主机名)
正解文件:
$TTL 3H
@ IN SOA master.gawain.com. admin.mail.gawain.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS master.gawain.com. ;DNS server
master.gawain.com. IN A 192.168.47.254
@ IN MX 10 mail.gawain.com. ;mail server
mail.gawain.com. IN A 192.168.47.254
ftp.gawain.com. IN CNAME master.gawain.com.
www.gawain.com. IN CNAME master.gawain.com.
client.gawain.com. IN A 192.168.47.10
反解文件:
$TTL 3H
@ IN SOA master.gawain.com. admin.mail.gawain.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS master.gawain.com. ;DNS server
254 IN PTR master.gawain.com.
254 IN PTR mail.gawain.com.
10 IN PTR client.gawain.com.
(4)重启DNS服务器并配置防火墙(我用的是iptables)
systemctl restart named
iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 53 -j ACCEPT
iptables -I INPUT -p udp -m state --state NEW -m udp --dport 53 -j ACCEPT
service iptables save
(5)客户端配置/etc/resolv.conf之后开始做测试
nameserver 192.168.47.254
4.2 主从DNS
模拟一个实验环境,一个虚拟机作为master,一台作为slave。然后用win7客户端指向slave,看是否能解析master的域名和ip。
4.2.1 master端配置
(1)安装dns,配置主配置文件。
// named.conf
options {
listen-on port 53 { 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";
recursing-file "/var/named/data/named.recursing";
secroots-file "/var/named/data/named.secroots";
allow-query { any; };
recursion yes;
allow-transfer {none;};
};
zone "." IN {
type hint;
file "named.ca";
};
zone "gawain.com" IN {
type master;
file "named.gawain.com";
allow-transfer { 192.168.47.100; }; //salve ip
};
zone "47.168.192.in-addr.arpa" IN {
type master;
file "named.192.168.47";
allow-transfer { 192.168.47.100; }; //salve ip
};
(2)配置正解反解文件。
正解文件:
$TTL 3H
@ IN SOA master.gawain.com. admin.mail.gawain.com. (
20071010 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS master.gawain.com. ;DNS server
@ IN NS slave.gawain.com. ;DNS slave
master.gawain.com. IN A 192.168.47.254
slave.gawain.com. IN A 192.168.47.100
@ IN MX 10 mail.gawain.com. ;mail server
mail.gawain.com. IN A 192.168.47.254
ftp.gawain.com. IN CNAME master.gawain.com.
www.gawain.com. IN CNAME master.gawain.com.
client.gawain.com. IN A 192.168.47.10
反向文件:
$TTL 3H
@ IN SOA master.gawain.com. admin.mail.gawain.com. (
20071010 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS master.gawain.com. ;DNS server
@ IN NS slave.gawain.com. ;DNS slave
254 IN PTR master.gawain.com.
254 IN PTR mail.gawain.com.
100 IN PTR salve.gawain.com.
10 IN PTR client.gawain.com.
(3)配置防火墙并重启DNS
systemctl restart named
iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 53 -j ACCEPT
iptables -I INPUT -p udp -m state --state NEW -m udp --dport 53 -j ACCEPT
service iptables save
4.2.2 slave端配置
(1)slave端就需要配置主配置文件即可。先安装DNS再配置。
// named.conf
options {
listen-on port 53 { 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";
recursing-file "/var/named/data/named.recursing";
secroots-file "/var/named/data/named.secroots";
allow-query { any; };
recursion yes;
allow-transfer {none;};
};
zone "." IN {
type hint;
file "named.ca";
};
zone "gawain.com" IN {
type slave;
file "slaves/named.gawain.com";
masters { 192.168.47.254; } ; //master ip
};
zone "47.168.192.in-addr.arpa" IN {
type slave;
file "slaves/named.192.168.47";
masters { 192.168.47.254; } ; //master ip
};
(2)核查/var/named/slaves权限是否属于named用户。建议关闭selinux
(3)配置防火墙并启动DNS。
systemctl restart named
iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 53 -j ACCEPT
iptables -I INPUT -p udp -m state --state NEW -m udp --dport 53 -j ACCEPT
service iptables save
4.2.3 win客户端测试
(1)配置ip并指向slave。
(2)解析master域名及ip
5 HTTP服务器
可以直接在前面DNS主从服务器的基础上做,可以直接在主DNS上做,也可单独找个服务器作为web。我是单独用一个虚拟机作为web的,实验拓扑参考如下:
5.1 基于域名的http配置
(1)安装httpd服务,并配置主文件,添加如下内容(/etc/httpd/conf/httpd.conf )
yum install httpd -y
<VirtualHost *:80>
ServerName blog.gawain.com
DocumentRoot /var/www/html/blog
</VirtualHost>
<VirtualHost *:80>
ServerName trip.gawain.com
DocumentRoot /var/www/html/trip
</VirtualHost>
<VirtualHost *:80>
ServerName ocean.gawain.com
DocumentRoot /var/www/html/ocean
</VirtualHost>
(2)上传网站到/var/www/html目录下,并修改权限
#website是我网上找的静态网站模板,做个测试。当然也可以写一个简单的测试页
cp websites/* /var/www/html -R
cd /var/www/html/
chown apache:apache . -R
(3)DNS服务器添加web服务器解析。修改后重启DNS。
#正解添加
www.gawain.com. IN A 192.168.47.2
blog.gawain.com. IN CNAME www.gawain.com.
trip.gawain.com. IN CNAME www.gawain.com.
ocean.gawain.com. IN CNAME www.gawain.com.
#反解文件添加
2 IN PTR www.gawain.com.
(4)web服务器配置防火墙。这边是firewalld。配置最后启动httpd服务
firewall-cmd --add-service=http --permanent
firewall-cmd --reload
systemctl start httpd
(5)win7客户机做测试
5.2 基于端口的http配置
一个一般是开发人员用来测试用,也了解下。
(1)配置文件添加如下内容。
Listen 8000
Listen 8001
NameVirtualHost *:8000
<VirtualHost *:8000>
ServerName www.gawain.com:8000
DocumentRoot /var/www/html/8000
DirectoryIndex index.html
</VirtualHost>
NameVirtualHost *:8001
<VirtualHost *:8001>
ServerName www.gawain.com:8001
DocumentRoot /var/www/html/8001
DirectoryIndex index.html
</VirtualHost>
(2)在/var/www/html下放8000和8001文件夹。里面放个测试页。我直接把网站模板copy过来了。(建议先关掉selinux)
cp trip ./8000 -R
cp blog/ ./8001 -R
chown apache:apache ./ -R
setenforce 0
systemctl restart httpd
(3)我们就在本地测试好了。
6 FTP服务器
FTP服务器搭建很简单,如果你没有什么需求的,只要下载后直接启动就可以。默认支持匿名用户访问,匿名用户默认只能下载文件。而系统用户默认也可直接登陆,默认可以下载和上传文件。
FTP默认文件在/var/ftp。
6.1 ftp简单搭建
(1)我们现在/var/ftp下创建sharefile文件夹。无需配置直接启动。匿名登录。
yum install vsftpd -y
mkdir /var/ftp/sharefile
echo hello ftp > /var/ftp/sharefile/hello.txt
systemctl start vsftpd
setenforce 0
systemctl stop firewalld
浏览器匿名登录:
(2)关闭匿名访问。用系统用户登录,用户不允许登录shell.
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
#创建不允许登录系统的用户
useradd stu1 -s /sbin/nologin
echo 123 | passwd --stdin stu1
#在用户目录下创建文件测试
echo 123 > /home/stu1/test.txt
#重启vsftpd
systemctl restart vsftpd
登录ftp:
6.2 使用ftp共享yum源
(1)服务器端先挂载光盘,copy光盘里的rpm包到ftp的默认文件夹里。利用createrepo自建yum仓库。
mount /dev/cdrom /media/cdrom/
cp /media/cdrom/Packages/* /var/ftp/centos7
cd /var/ftp
chmod 777 centos7 -R
ll centos7/
createrepo centos7
(2)安装vsftp服务,直接启动就好了。要允许匿名访问。
(3)客户端配置yum源。指向ftp服务器。
vim /etc/yum.repos.d/yumpackage.repo
[yumpackage]
name=yumpackage
baseurl=ftp://192.168.119.177/centos7
gpgcheck=0
#清除缓存,查看可用仓库
yum clean all
yum repolist
配置好之后就可以下载啦!(比如我安装一个ftp服务,它是从自建的ftp yum源下载的)
整理完毕,给自己点个赞,嘿嘿!!