tx
陆拾柒
文章
26
评论
72

Linux服务部署笔记

基础配置:

  • 修改系统名
hostnamectl set-hostname [系统名]
  • 配置完全限定域名
vim /etc/hosts
[IP地址] [完全限定域名] [系统名]
例如:192.168.100.100 appsrv.chinaskills.cn appsrv

UOS系统常用命令

UOS修改网卡IP地址:

vi /etc/network/interfaces
auto ens33
iface ens33 inet static
address 192.168.100.100
netmask 255.255.255.0
gateway 192.168.100.254
auto ens33
iface ens33 inet dhcp
systemctl restart networking

UOS挂在光驱并修改apt源:

mount /dev/sr0 /mnt/
vi /etc/apt/sources.list

在里面注释掉原有的源,并添加以下内容后保存

deb [trusted=yes] file:///mnt fou main

UOS安装并配置DHCP:

apt install isc-dhcp-server -y

修改DHCP监听

vi /etc/default/isc-dhcp-server
INTERFACESv4="ens33"

配置DHCP服务

vi /etc/dhcp/dhcpd.conf
  • 为OutsideCli客户端网络分配地址,地址池范围:81.6.63.110-81.6.63.190/24;
  • 域名解析服务器:按照实际需求配置DNS服务器地址选项;
  • 网关:按照实际需求配置网关地址选项。
option domain-name "chinaskills.cn";
option domain-name-servers 81.6.63.100;
default-lease-time 600;
max-lease-time 7200;
ddns-update-style none;
subnet 81.6.63.0 netmask 255.255.255.0 {
  range 81.6.63.110 81.6.63.190;
  option routers 81.6.63.254;
}

重启DHCP服务

systemctl restart isc-dhcp-server.service

UOS安装并配置DNS:

apt install bind9 dnsutils -y
  • 配置为DNS根域服务器;
  • 其他未知域名解析,统一解析为该本机IP;
  • 创建正向区域“chinaskills.cn”;类型为Slave;
  • 主服务器为“AppSrv”
cd /etc/bind/
vi named.conf.default-zones
zone "." {
        type master;
        file "/etc/bind/root.zone";
};

zone "chinaskills.cn" {
        type slave;
        file "/etc/bind/chinaskills.cn";
        masters  { 81.6.63.254;};
};

复制根域名配置文件

cp -a db.local root.zone
vi root.zone
;
; BIND data file for local loopback interface
;
$TTL    604800
@       IN      SOA     localhost. root.localhost. (
                              2         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      localhost.
*       IN      A       81.6.63.100

UOS部署WEB服务:

apt install nginx php php-fpm -y
  • 配置文件名为ispweb.conf,放置在/etc/nginx/conf.d/目录下;
vi /etc/nginx/conf.d/ispweb.conf
  • 网站根目录为/mut/crypt(目录不存在需创建);
  • 启用FastCGI功能,让nginx能够解析php请求;

以下内容可以在/etc/nginx/sites-enabled/default中复制

server {
        listen 80 ;
        root /mut/crypt;
        index index.php;
        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/run/php/php7.3-fpm.sock;
        }
}
vi /etc/nginx/nginx.conf

注释掉以下内容

include /etc/nginx/sites-enabled/*;

最后重启nginx服务,执行以下命令验证是否成功

curl 81.6.63.100
  • 安装 lighttpd(使用其他 web 平台,以下功能均不得分);
  • 启用 fastcgi-php 模块;
  • index.php 网页内容显示当前服务器的日期和时间(刷新页面时间自动更新)。
apt install lighttpd -y
lighttpd-enable-mod fastcgi-php
vi /mut/crypt/index.php
<?php
echo date("Y-m-d H:i:s",time());
echo "\n";
?>

UOS时间同步:

apt install ntp -y
vi /etc/ntp.conf

注释掉以下四行

pool 0.debian.pool.ntp.org iburst
pool 1.debian.pool.ntp.org iburst
pool 2.debian.pool.ntp.org iburst
pool 3.debian.pool.ntp.org iburst

再添加以下两行

server 127.127.1.0 prefer
fudge 127.127.1.0 stratum 10
systemctl restart ntp

UOS创建CRON计划任务:

使用 ntpdate 指令,每隔五分钟进行一次时间同步。

apt install ntpdate -y
vi /etc/crontab
*/5 * * * * root /usr/sbin/ntpdate 81.6.63.100
crontab /etc/crontab

CentOS系统常用命令

CentOS修改网卡IP地址:

vi /etc/sysconfig/network-scripts/ifcfg-ens33

修改或添加以下内容

BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.100.100
NETMASK=255.255.255.0
GATEWAY=192.168.100.254
systemctl restart network

CentOS安装并配置DHCP:

yum install dhcp -y
vi /etc/dhcp/dhcpd.conf
  • 为InsideCli客户端网络分配地址,地址池范围:192.168.0.110-192.168.0.190/24;
  • 域名解析服务器:按照实际需求配置DNS服务器地址选项;
  • 网关:按照实际需求配置网关地址选项;
  • 为InsideCli分配固定地址为192.168.0.190/24。
subnet 192.168.0.0 netmask 255.255.255.0 {
  range 192.168.0.110 192.168.0.190;
  option domain-name-servers 192.168.100.100;
  option domain-name "chinaskills.cn";
  option routers 192.168.0.254;
  default-lease-time 600;
  max-lease-time 7200;
}
subnet 192.168.100.0 netmask 255.255.255.0 {
}
host insidecli {
  hardware ethernet 00:0C:29:66:51:DE;
  fixed-address 192.168.0.190;
}

在其他路由器上配置DHCP中继

dhcrelay 192.168.100.100

CentOS开启路由转发:

vi /etc/sysctl.conf
net.ipv4.ip_forward=1

查看生效sysctl -p

CentOS配置SSH服务:

vi /etc/ssh/sshd_config
  • 只允许用户user01,密码ChinaSkill23登录到router。其他用户(包括root)不能登录,创建一个新用户,新用户可以从本地登录,但不能从ssh远程登录;
  • 通过ssh登录尝试登录到RouterSrv,一分钟内最多尝试登录的次数为3次,超过后禁止该客户端网络地址访问ssh服务;
Port 2023
AllowUsers user01
  • 记录用户登录的日志到/var/log/ssh.log,日志内容要包含:源地址,目标地址,协议,源端口,目标端口。
vi /etc/rsyslog.conf

在末尾添加一行

local0.* /var/log/ssh.log
systemctl restart sshd
  • 偷懒法

先在客户端输入三次错误后,再在服务端执行以下命令

iptables -I INPUT -j REJECT
  • 仅允许InsideCli客户端进行ssh访问,其余所有主机的请求都应该拒绝;
  • 在cskadmin用户环境下可以免秘钥登录,并且拥有root控制权限。
vi /etc/hosts.allow

末尾添加以下内容

sshd:192.168.0.190:allow
vi /etc/hosts.deny

同样在末尾添加以下内容

sshd:ALL

在客户端中创建cskadmin用户并切换到此用户中(省略)

ssh-keygen
ssh-copy-id root@192.168.100.100 -p 2101

CentOS安装并配置DNS服务:

yum install bind bind-utils -y
  • 为chinaskills.cn域提供域名解析;
  • 为www.chinaskills.cn、download.chinaskills.cn和mail.chinaskills.cn提供解析;
  • 启用内外网解析功能,当内网客户端请求解析的时候,解析到对应的内部服务器地址,当外部客户端请求解析的时候,请把解析结果解析到提供服务的公有地址;
  • 请将IspSrv作为上游DNS服务器,所有未知查询都由该服务器处理。
vi /etc/named.conf
listen-on port 53 { any; };
allow-query     { any; };
forwarders { 81.6.63.100; };
dnssec-enable no;
dnssec-validation no;
view lan {
        match-clients { 192.168.0.0/16; };
        zone "." IN {
                type hint;
                file "named.ca";
        };
include  "/etc/lan";
};
view wan {
        match-clients { any; };
        zone "." IN {
                type hint;
                file "named.ca";
        };
include  "/etc/wan";
};

再将以下内容注释掉

zone "." IN {
       type hint;
       file "named.ca";
};
include "/etc/named.rfc1912.zones";
vi /etc/lan
zone "chinaskills.cn" IN {
        type master;
        file "zx.lan";
        allow-update { none; };
};
zone "100.168.192.in-addr.arpa" IN {
        type master;
        file "fx.lan";
        allow-update { none; };
};
vi /etc/wan
zone "chinaskills.cn" IN {
        type master;
        file "zx.wan";
        allow-update { 81.6.63.100; };
};
cd /var/named/
cp -a named.localhost zx.lan
cp -a named.localhost zx.wan
cp -a named.loopback fx.lan
vi zx.lan

末尾添加以下内容

@       MX 10   mail.chinaskills.cn.
www     A       192.168.100.100
download        A       192.168.100.100
mail    A       192.168.100.100
vi fx.lan

末尾添加以下内容

100     PTR     www.chinaskills.cn.
100     PTR     download.chinaskills.cn.
100     PTR     mail.chinaskills.cn.
vi zx.wan

末尾添加以下内容

www     A       81.6.63.254
download        A       81.6.63.254
mail    A       81.6.63.254
vi /etc/resolv.conf

添加以下内容

nameserver 192.168.100.100

CentOS配置防火墙:

yum install iptables-services -y
  • 添加必要的网络地址转换规则,使外部客户端能够访问到内部服务器上的dns、mail、web和ftp服务;
  • INPUT、OUTPUT和FOREARD链默认拒绝(DROP)所有流量通行;
  • 配置源地址转换允许内部客户端能够访问互联网区域。
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
#修改规则默认为拒绝
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o ens35 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens35 -j MASQUERADE
iptables -t nat -A PREROUTING -p tcp -d 81.6.63.254 -m multiport --dports 53,80,443,465,993 -j DNAT --to 192.168.100.100
iptables -t nat -A PREROUTING -p udp -d 81.6.63.254 --dport 53 -j DNAT --to 192.168.100.100
iptables -t nat -A PREROUTING -p tcp -d 81.6.63.254 -m multiport --dports 20,21 -j DNAT --to 192.168.100.200
service iptables save

CentOS配置CA(证书颁发机构):

vim /etc/pki/tls/openssl.cnf
  • CA根证书路径/csk-rootca/csk-ca.pem;
  • 签发数字证书,颁发者信息:(仅包含如下信息)
  • C = CN
  • ST = China
  • L = BeiJing
  • O = skills
  • OU = Operations Departments
  • CN = CSK Global Root CA
dir             = /csk-rootca
certificate     = $dir/csk-ca.pem
mkdir /csk-rootca
cp -a /etc/pki/tls/* /csk-rootca/
cd /csk-rootca/
touch index.txt
echo 01 > serial
openssl genrsa -out private/cakey.pem
openssl req -x509 -new -key private/cakey.pem -out csk-ca.pem
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:China
Locality Name (eg, city) [Default City]:BeiJing
Organization Name (eg, company) [Default Company Ltd]:skills
Organizational Unit Name (eg, section) []:Operations Departments
Common Name (eg, your name or your server's hostname) []:CSK Global Root CA
  • 使用本机上的“CSK Global Root CA”颁发机构颁发,网站证书信息如下
  • C = CN
  • ST = China
  • L = BeiJing
  • O = skills
  • OU = Operations Departments
  • CN = *.chinaskills.cn
openssl genrsa -out _chinaskills_cn.key
openssl req -new -key _chinaskills_cn.key -out _chinaskills_cn.csr
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:China
Locality Name (eg, city) [Default City]:BeiJing
Organization Name (eg, company) [Default Company Ltd]:skills
Organizational Unit Name (eg, section) []:Operations Departments
Common Name (eg, your name or your server's hostname) []:*.chinaskills.cn

给证书签名

openssl x509 -req -in _chinaskills_cn.csr -CA /csk-rootca/csk-ca.pem -CAkey /csk-rootca/private/cakey.pem -CAcreateserial -out _chinaskills_cn.crt

CentOS配置DISK:

先添加4块磁盘

yum install mdadm -y
  • 添加大小均为10G的虚拟磁盘,配置raid-5磁盘。
  • 创建LVM命名为/dev/vg01/lv01,大小为100G,格式化为ext4,挂在到本地目录/webdata,在分区内建立测试空文件disk.txt。
mdadm -C -n 3 -l 5 -a yes -x 1 /dev/md0 /dev/sd{b,c,d,e}

创建卷组

vgcreate vg01 /dev/md0

创建逻辑卷

lvcreate -l 100%free -n lv01 vg01

ext4格式化磁盘

mkfs.ext4 /dev/mapper/vg01-lv01

添加到fstab

echo "/dev/mapper/vg01-lv01 /webdata ext4 defaults 0 0" >> /etc/fstab

加载磁盘mount -a
查看是否挂载df -TH

cd /webdata
touch disk.txt

CentOS安装并配置WEB服务:

yum install httpd mod_ssl php php-mbstring php-mysql mariadb-server -y
  • 服务以用户webuser系统用户运行;
  • 限制web服务只能使用系统500M物理内存;
  • 全站点启用TLS访问;
useradd -r webuser
vi /etc/httpd/conf/httpd.conf
User webuser
Group webuser
systemctl enable httpd
vi /etc/systemd/system/multi-user.target.wants/httpd.service

在[Service]下添加以下内容

MemoryLimit=500M
systemctl daemon-reload
systemctl restart httpd
  • 客户端访问https时应无浏览器(含终端)安全警告信息;
  • 当用户使用http访问时自动跳转到https安全连接;
  • 搭建www.chinaskills.cn站点;
  • 网页文件放在StorgeSrv服务器上;
  • 在StorageSrv上安装MriaDB,在本机上安装PHP,发布WordPress网站;
  • MariaDB数据库管理员信息:User: root/ Password: ChinaSkill23!;
yum install mariadb-server -y
mysql_secure_installation

除了以下行输n外,其他行输y

Disallow root login remotely? [Y/n] n
mysql -uroot -pChinaSkill23
create user 'root'@'%' identified by 'ChinaSkill23';
grant all on *.* to 'root'@'%';
create database wordpress;
flush privileges;
vi /etc/httpd/conf/httpd.conf
<VirtualHost *:80>
        servername www.chinaskills.cn
        redirect permanent / https://www.chinaskills.cn/
</VirtualHost>
vi /etc/httpd/conf.d/ssl.conf
DocumentRoot "/webdata/wordpress"
ServerName www.chinaskills.cn:443
SSLCertificateFile /csk-rootca/_chinaskills_cn.crt
SSLCertificateKeyFile /csk-rootca/_chinaskills_cn.key
<Directory "/webdata/wordpress">
    Require all granted
</Directory>
cd /webdata/
yum install unzip lrzsz -y
unzip wordpress-4.9.4-zh_CN.zip
chmod 777 -R /webdata/
scp /csk-rootca/csk-ca.pem 192.168.0.190:/opt

在客户端执行以下命令

cp -a /opt/csk-ca.pem /etc/pki/ca-trust/source/anchors
update-ca-trust
  • 创建网站download.chinaskills.cn站点;
  • 仅允许ldsgp用户组访问;
  • 网页文件存放在StorageSrv服务器上;
  • 在该站点的根目录下创建以下文件“test.mp3, test.mp4,
    test.pdf”,其中test.mp4文件的大小为100M,页面访问成功后能够列出目录所有文件。
  • 作安全加固,在任何页面不会出现系统和WEB服务器版本信息。
yum install mod_ldap -y
cd /webdata
touch test.{mp3,mp4,pdf}
dd if=/dev/zero of=test.mp4 bs=1024k count=100
vim /etc/httpd/conf/httpd.conf
<VirtualHost *:80>
        servername download.chinaskills.cn
        redirect 301 / https:/download.chinaskills.cn/
</VirtualHost>
<VirtualHost *:443>
        servername download.chinaskills.cn
        DocumentRoot "/webdata"
        <Directory "/webdata">
                Options Indexes
                AuthName "LDAP"
                AuthType basic
                AuthBasicProvider ldap
                AuthLDAPURL ldap://192.168.100.200/dc=chinaskills.cn,dc=cn?uid
                Require ldap-attribute gidNumber=1001
        </Directory>
</VirtualHost>
systemctl restart httpd

CentOS配置Mail服务:

yum install dovecot -y
  • 启用imaps和smtps,并创建测试用户mailuser1和mailuser2。
  • 使用mailuser1@chinaskills.cn的邮箱向mailuser2@chinaskills.cn的邮箱发送一封测试邮件,邮件标题为“just test mail from mailuser1”, 邮件内容为“hello , mailuser2”。
  • 使用mailuser2@chinaskills.cn的邮箱向mailuser1@chinaskills.cn的邮箱发送一封测试邮件,邮件标题为“just test mail from mailuser2”, 邮件内容为“hello , mailuser1”。
  • 添加广播邮箱地址all@chinaskills.cn,当该邮箱收到邮件时,所有用户都能在自己的邮箱中查看。
vi /etc/postfix/main.cf

取消注释或更改以下内容

myhostname = mail.chinaskills.cn
mydomain = chinaskills.cn
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,
mynetworks = 0.0.0.0/0, 127.0.0.0/8
home_mailbox = Maildir/

再注释掉以下内容

inet_interfaces = localhost
mydestination = $myhostname, localhost.$mydomain, localhost

最后在末尾添加以下内容

smtpd_use_tls=yes
smtpd_tls_cert_file=/csk-rootca/_chinaskills_cn.crt
smtpd_tls_key_file=/csk-rootca/_chinaskills_cn.key
vi /etc/postfix/master.cf

注释以下代码

smtp      inet  n       -       n       -       -       smtpd

再添加或取消注释以下代码

smtps      inet  n       -       n       -       -       smtpd
-o smtpd_tls_wrappermode=yes
systemctl restart postfix.service
vim /etc/dovecot/dovecot.conf

取消注释或修改以下内容

protocols = imaps
vim /etc/dovecot/conf.d/10-auth.conf

取消注释或修改以下内容

disable_plaintext_auth = no
vim /etc/dovecot/conf.d/10-ssl.conf
ssl_cert = </csk-rootca/_chinaskills_cn.crt
ssl_key = </csk-rootca/_chinaskills_cn.key
vim /etc/dovecot/conf.d/10-mail.conf

取消注释以下内容

mail_location = maildir:~/Maildir
systemctl restart dovecot.service

使用客户端进行测试

yum install thunderbird.x86_64 -y


再添加mailuser2后,互相发送邮件进行验证
在mail服务器上执行以下操作

vim /etc/aliases
all:    mailuser1,mailuser2
systemctl restart postfix.service

去客户端进行测试,看是否都能收到

mysql -uroot -pChinaSkill23
create database round;
vim /etc/httpd/conf/httpd.conf
<VirtualHost *:80>
        servername mail.chinaskills.cn
        redirect 301 / https:/mail.chinaskills.cn/
</VirtualHost>
<VirtualHost *:443>
        servername mail.chinaskills.cn
        DocumentRoot "/webdata/mail"
        <Directory "/webdata/mail">
                Require all granted
        </Directory>
</VirtualHost>
systemctl restart httpd
cd /webdata/
mkdir mail
cd mail
tar xvf roundcubemail-1.3.8-complete.tar.gz
mv roundcubemail-1.3.8 round
chmod -R 777 /webdata

在客户端访问mail.chinaskills.cn/round/installer进行安装



CentOS配置VSFTPD服务:

scp /csk-rootca/_chinaskills_cn.* 192.168.100.200:/opt
vim /etc/vsftpd/vsftpd.conf
  • 禁止使用不安全的FTP,请使用“CSK Global Root CA”证书颁发机构,颁发的证书,启用FTPS服务;
  • 用户webadmin,登录ftp服务器,根目录为/webdata/;
  • 登录后限制在自己的根目录;
  • 允许WEB管理员上传和下载文件,但是禁止上传后缀名为.doc .docx .xlsx的文件。
  • 限制用户的下载最大速度为100kb/s;最大同一IP在线人数为2人;
  • 用于通过工具或者浏览器下载的最大速度不超过 100kb/s
  • 一个IP地址同时登陆的用户进程/人数不超过2人。
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_enable=YES
rsa_cert_file=/opt/_chinaskills_cn.crt
rsa_private_key_file=/opt/_chinaskills_cn.key
local_root=/webdata
allow_writeable_chroot=YES
deny_file={*.doc,*.docx,*.xlsx}
local_max_rate=100000
max_per_ip=2

再取消注释掉以下这行

chroot_local_user=YES
lftp ftp.chinaskills.cn -u webadmin

CentOS配置SAMBA服务:

yum install samba samba-client -y
vim /etc/samba/smb.conf

在第9行添加一下内容

map to guest = bad user

再在末尾添加以下内容

[share1]
        path = /data/share1
        write list = zsuser

[public]
        path = /data/public
        public = yes
        writeable = yes
mkdir -p /data/share1
mkdir -p /data/public
systemctl restart smb

CentOS配置LDAP服务:

yum install openldap-clients openldap-servers migrationtools -y
  • 为samba服务提供账户认证;
  • 创建chinaskills.cn目录服务,并创建用户组ldsgp,将zsuser、lsusr、wuusr。
slappasswd -s ChinaSkill23

将输出来的内容复制会用到

vim /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{2\}hdb.ldif
olcSuffix: dc=chinaskills,dc=cn
olcRootDN: cn=Manager,dc=chinaskills,dc=cn
olcRootPW: {SSHA}Ky2MhY0ki12GfmIJXC59h7+oc7Guk+fl
vim /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{1\}monitor.ldif
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read by dn.base="cn=Manager,dc=chinaskills,dc=cn" read by * none
vim /etc/openldap/ldap.conf
BASE    dc=chinaskills,dc=cn
URI     ldap://192.168.100.200
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif
vim /usr/share/migrationtools/migrate_common.ph
$NAMINGCONTEXT{'passwd'}            = "ou=users";
$NAMINGCONTEXT{'group'}             = "ou=users";
$DEFAULT_MAIL_DOMAIN = "chinaskills.cn";
$DEFAULT_BASE = "dc=chinaskills,dc=cn";
$EXTENDED_SCHEMA = 1;
groupadd ldsgp
useradd -g ldsgp zsuser
useradd -g ldsgp lsusr
useradd -g ldsgp wuusr
echo 123 | passwd --stdin zsuser
echo 123 | passwd --stdin lsusr
echo 123 | passwd --stdin wuusr
pdbedit -a zsuser
pdbedit -a lsusr
pdbedit -a wuusr
tail -n 3 /etc/passwd > user
tail -n 1 /etc/group > group
/usr/share/migrationtools/migrate_base.pl > base.ldif
vim base.ldif

只保留以下内容其他内容都删除

dn: dc=chinaskills,dc=cn
dc: chinaskills
objectClass: top
objectClass: domain

dn: ou=users,dc=chinaskills,dc=cn
ou: users
objectClass: top
objectClass: organizationalUnit
/usr/share/migrationtools/migrate_passwd.pl user > user.ldif
/usr/share/migrationtools/migrate_group.pl group > group.ldif
ldapadd -x -w ChinaSkill23 -D cn=manager,dc=chinaskills,dc=cn -f base.ldif
ldapadd -x -w ChinaSkill23 -D cn=manager,dc=chinaskills,dc=cn -f user.ldif
ldapadd -x -w ChinaSkill23 -D cn=manager,dc=chinaskills,dc=cn -f group.ldif 

使用此命令查看是否添加成功

ldapsearch -x -LLL | grep "dn: "

CentOS使用ShellScript:

  • 编写添加用户的脚本,存储在/shells/userAdd.sh目录;
  • 当有新员工入职时,管理员运行脚本为其创建公司账号;
  • 自动分配客户端账号、公司邮箱、samba目录及权限、网站账号等;
  • 以userAdd lifei的方式运行脚本,lifei为举例的员工姓名。
mkdir /shells
vim /shells/userAdd.sh
#!/bin/bash
useradd $1 && echo 123 | passwd --stdin $1 &> /dev/null
echo -e "123\n123" | smbpasswd -s -a $1
tail -n 1 /etc/passwd > $1
/usr/share/migrationtools/migrate_passwd.pl $1 > $1.ldif
ldapadd -x -w ChinaSkill23 -D cn=manager,dc=chinaskills,dc=cn -f $1.ldif
chmod +x /shells/userAdd.sh
/shells/userAdd.sh lifei

CentOS配置Cockpit监测:

yum install cockpit
systemctl restart cockpit
  • 监测ispsrv服务器的状态


CentOS系统优化:

  • 系统资源限制设置:设置所有用户的硬件跟软件的最大进程数、最大文件打开数为 65535;
  • 开启IPV4恶意icmp错误消息保护;
  • 开启 SYN 洪水攻击保护;
  • 允许系统打开的端口范围为 1024-65000。
vim /etc/sysctl.conf
fs.file-max = 65535
net.ipv4.icmp_ignore_bogus_error_responses = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.ip_local_port_range = 1024 65000

可以在UOS设备上找关键字段



CentOS磁盘快照:

  • 新增15G的磁盘,并将其做成LVM卷,VG名称为snapvg,LV名称为snaplv大小为 5G,挂载至/snapdata目录下;
  • 写入文本的文件数据至/snapdata目录下,名称为cs.txt,内容为“this is test!”,
  • 对LV卷进行快照,要求创建的逻辑卷快照为只读,快照名称为 snapsrc;
  • 删除cs.txt文件,将快照挂载至/snap目录下,进行文件数据的恢复。
echo "- - -" >> /sys/class/scsi_host/host0/scan
vgcreate snapvg /dev/sdf
mkfs -t ext4 /dev/snapvg/snaplv
mkdir /snapdata
echo "/dev/mapper/snapvg-snaplv /snapdata ext4 defaults 0 0" >> /etc/fstab

挂载磁盘mount -a

vim /snapdata/cs.txt
this is test!
lvcreate -L 5G -n snapsrc -p r -s /dev/mapper/snapvg-snaplv
mkdir /snap
echo "/dev/snapvg/snapsrc /snap ext4 defualts 0 0" >> /etc/fstab

挂载磁盘mount -a

CentOS配置Web Proxy:

安装Nginx组件;
上传nginx相应安装包至某个文件夹

yum install /nginxpack/* -y
  • 配置文件名为proxy.conf,放置在/etc/nginx/conf.d/目录下;
  • 创建web.chinaskills.cn站点为www.chinaskills.cn配置代理前端,通过HTTPS的访问后端Web服务器;
  • 后端服务器日志内容需要记录真实客户端的IP地址;
  • 缓存后端Web服务器上的静态页面;
  • 创建服务监控脚本:/shells/chkWeb.sh;
  • 编写脚本监控公司的网站运行情况;
  • 脚本可以在后台持续运行;
  • 每隔3S检查一次网站的运行状态,如果发现异常尝试3次;
  • 如果确定网站无法访问,则返回用户“网站正在维护中,请您稍后再试”的页面。
vim /etc/nginx/conf.d/proxy.conf

以下内容可以去/etc/nginx/nginx.conf复制一些过来

proxy_cache_path /cache levels=2:1 keys_zone=proxy:10m;
server {
        listen       80;
        listen       [::]:80;
        server_name  web.chinaskills.cn;
        return 301 https://web.chinaskills.cn;
        }
server {
        listen       443 ssl http2;
        listen       [::]:443 ssl http2;
        server_name  web.chinaskills.cn;
        ssl_certificate "/opt/_chinaskills_cn.crt";
        ssl_certificate_key "/opt/_chinaskills_cn.key";
        ssl_session_cache shared:SSL:1m;
        ssl_session_timeout  10m;
        ssl_ciphers HIGH:!aNULL:!MD5;  #指定加密算法,禁用不安全的算法
        ssl_prefer_server_ciphers on;
        location / {
                proxy_pass https://www.chinaskills.cn;  #将所有请求转发到https://www.chinaskills.cn
                proxy_set_header HOST $host;  #保留原始请求的域名
                proxy_set_header x-real-ip $remote_addr;
                proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
                #x-real-ip 和 x-forwarded-for:传递客户端真实 IP
                proxy_cache proxy;  #使用 keys_zone=proxy 定义的缓存策略
                proxy_cache_valid 5m;  #缓存有效期为 5 分钟
        }
}

在AppSer上执行以下操作

vim /etc/httpd/conf/httpd.conf

在第196行中%h后添加%{x-real-ip}i

LogFormat "%h %{x-real-ip}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User    -Agent}i\"" combined
vim /etc/httpd/conf.d/ssl.conf

注释或添加如下内容

#TransferLog logs/ssl_access_log
CustomLog "logs/access_log" combined

检测脚本

mkdir /shells
vim /shells/chkweb.sh
#!/bin/bash
while true
do
        curl -k https://www.chinaskills.cn &> /dev/null
        sleep 3
done
chmod +x /shells/chkweb.sh
/shells/chkweb.sh &

CentOS部署数据库服务:

yum install mariadb mariadb-server -y
  • 将此服务器配置为数据库服务器,创建数据库为School,在库中创建表为Score,在表中创建2个用户,分别为(1,suser1,1999-6-1,female),(2,suser2,2000-9-1,male),口令(采用password加密)与用户名相同,表结构如下:
字段名数据类型主键
IDInt(11)
Namevarchar(20)
BirthdayDatetime
Sexchar(10)
Passwordchar(64)
  • 开启数据库的查询日志,路径为/var/log/mariadb/mariadb.log。
systemctl restart mariadb
mysql_secure_installation

除了以下行输n外,其他行输y

Disallow root login remotely? [Y/n] n
mysql -uroot -pChinaSkill23
MariaDB [(none)]> create user 'root'@'%' identified by 'ChinaSkill23!';  #创建远程访问的 root 用户
MariaDB [(none)]> grant all on *.* to 'root'@'%';  #赋予用户root对所有数据库和所有表的完整权限
MariaDB [(none)]> create database School;
MariaDB [(none)]> show databases;  #查看数据库名称
MariaDB [(none)]> use School;
MariaDB [School]> create table Score (
    -> ID Int(11) primary key,
    -> Name varchar(20),
    -> Birthday Datetime,
    -> Sex char(10),
    -> Password char(64));
MariaDB [School]> desc Score;  #查看表的结构
MariaDB [School]> insert into Score (ID,Name,Birthday,Sex,Password)values
    -> ('1','suser1','1999-6-1','female',password('suser1'));
MariaDB [School]> insert into Score (ID,Name,Birthday,Sex,Password)values
    -> ('2','suser2','2000-9-1','male',password('suser2'));
MariaDB [School]> select * from Score;  #查看表的数据
vim /etc/my.cnf

添加以下内容

[server]
general_log=1
general_log_file=/var/log/mariadb/mariadb.log
systemctl daemon-reload
systemctl restart mariadb

CentOS部署iSCSI:

yum install targetcli -y

先添加一块硬盘

  • RouterSrv为target服务器端进行设置,创建target设备,targetID为10,名称为iqn.2023-08.chinaskills.cn:test
targetcli
/> /backstores/block create test /dev/sdb
/> iscsi/
/iscsi> create iqn.2023-08.chinaskills.cn:test
/iscsi> iqn.2023-08.chinaskills.cn:test/tpg1/luns create /backstores/block/test 10

CentOS部署OpenVPN:

上传OpenVPN的安装包并解压

yum -y install ./*
unzip easy-rsa-old-master.zip
cd easy-rsa-old-master/easy-rsa/2.0
source vars
./clean-all
./build-ca  #脚本生成CA机构
./build-key-server server  #脚本生成证书
./build-dh
cp -a keys/* /etc/openvpn/
cd /etc/openvpn
openvpn --genkey --secret ta.key
cp -a /usr/share/doc/openvpn-2.4.12/sample/sample-config-files/server.conf ./
cp -a /usr/share/doc/openvpn-2.4.12/sample/sample-config-files/client.conf ./
vim server.conf
 35 proto tcp-server
 36 ;proto udp
 92 topology subnet
 93 push "topology subnet"
 94 mode server
 95 tls-server
104 ;server 10.8.0.0 255.255.255.0
105 ifconfig 172.16.0.254 255.255.255.0
106 ifconfig-pool 172.16.0.100 172.16.0.120
146 push "route 192.168.0.0 255.255.255.0"
147 push "route 192.168.100.0 255.255.255.0"
148 push "route-gateway 172.16.0.254"
215 client-to-client
216 client-cert-not-required
217 script-security 3
218 client-connect /etc/openvpn/connect.sh
219 plugin /usr/lib64/openvpn/plugins/openvpn-plugin-auth-pam.so login
262 cipher AES-256-GCM
325 explicit-exit-notify 0
vim client.conf
 36 proto tcp
 37 ;proto udp
 42 remote 172.16.0.254 1194
 89 ;cert client.crt  #注释掉
 90 ;key client.key  #注释掉
116 cipher AES-256-GCM
117 auth-user-pass
vim connect.sh
#!/bin/bash
echo "$(date '+%F %T') Successful authentication: username=\"$username\"" >> /var/log/openvpn.log
chmod +x connect.sh
scp ta.key ca.crt client.conf 81.6.63.110:/etc/openvpn/
useradd vpnuser1
passwd vpnuser1
systemctl restart openvpn@server

CentOS时间同步:

yum install chrony ntpdate -y
  • 配置为inside网络提供时间同步服务器
  • 为除本机外的所有inside网络主机提供时间同步服务
  • 在 AppSrv和StorageSrv上创建CRON 计划任务
  • 使用ntpdate命令每隔5分钟向IspSrv同步一次时间。
  • 上级服务器为ISP网络中的IspSrv(ntp)。
vim /etc/chrony.conf 
#注释3-6行
server 81.6.63.100 iburst
allow 0.0.0.0/0
local stratum 10
systemctl restart chronyd
vim /etc/crontab
*/5 * * * * root /usr/sbin/ntpdate 81.6.63.100
crontab /etc/crontab

均为个人笔记

评论区 ( 2 )


tx
  1. tx

    这么长这么复杂确实需要记载一下。

    1. tx

      哈哈哈哈,是滴