基础配置:
- 修改系统名
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
去客户端进行测试,看是否都能收到
- 使用https://mail.chinaskills.cn网站测试邮件发送与接收
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加密)与用户名相同,表结构如下:
字段名 | 数据类型 | 主键 |
---|---|---|
ID | Int(11) | 是 |
Name | varchar(20) | 否 |
Birthday | Datetime | 否 |
Sex | char(10) | 否 |
Password | char(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 )
这么长这么复杂确实需要记载一下。
哈哈哈哈,是滴