ubuntu22.04 Desktop SVN FTP服务器安装

操作系统
使用的是Uubntu22.04 Desktop的版本,系统安装后,默认开启了53端口和631端口

关闭udp 5353、53791端口(avahi-daemon服务)

sudo systemctl stop avahi-daemon.socket avahi-daemon.service
sudo systemctl disable avahi-daemon.socket avahi-daemon.service

关闭tcp 631端口(cups服务)

通过命令sudo systemctl list-dependencies cupssudo netstat -anulpt找到对应的服务

sudo systemctl stop cups.service cups.path cups.socket cups-browsed.service
sudo systemctl disable cups.service cups.path cups.socket cups-browsed.service

关闭tcp 53端口(systemd-resolved服务)

修改配置文件`/etc/systemd/resolved.conf

DNS=114.114.114.114
DNSStubListener=no

其中DNS设置最好与网络配置中的DNS一致

安装防火墙

sudo apt install ufw
sudo ufw allow 21/tcp # ftp
sudo ufw allow 22/tcp # ssh
sudo ufw allow 3690/tcp # svn
sudo ufw allow 10070:10099/tcp # ftp
sudo ufw allow 8069/tcp # odoo
sudo ufw show added # 查看已经增加的规则
sudo ufw enable
sudo ufw default deny incoming

修改配置文件/etc/default/ufw,其中IPv6=no,禁止自动添加ipv6的规则,sudo ufw reload

安装ssh服务

sudo apt install openssh-server
ssh会监听22、6010端口
修改配置文件/etc/ssh/sshd_config:

只监听ipv4:ListenAddress 0.0.0.0
关闭X11 forwarding(6010端口):X11Forwarding no

安装配置svn

sudo apt install subversion
sudo mkdir -p ~/svn/repository
svnadmin create ~/svn/repository

修改~/svn/repository/conf下的配置文件svnserve.conf,

anon-access = none
auth-access = write
password-db = passwd
authz-db = authz

修改配置文件passwd增加用户和密码
修改配置文件authz配置用户的访问权限
运行指令svnserve -d -r ~/svn/repository,然后使用终端测试svn --username xxx ls svn://192.168.0.1/进行测试

配置开机启动,在/etc/systemd/system中创建文件svn.service

[Unit]
Description=Subversion protocol daemon
After=syslog.target network.target

[Service]
Type=forking
#EnvironmentFile=/etc/conf.d/svnserve
#ExecStart=/usr/bin/svnserve --daemon $SVNSERVE_ARGS
ExecStart=/usr/bin/svnserve -d -r ~/svn/repository
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure

[Install]
WantedBy=multi-user.target

sudo systemctl enable svn,然后重启测试

在阿里云上开通oss存储,获得后面命令行中的参数(替换xxx的位置)
编写备份脚本svn-backup.sh

#!/bin/bash
dump_file=/home/username/svn/backup/$(date '+%Y%m%d%H%M%S').dump
svn_root=/home/username/svn/repository
svnadmin dump ${svn_root} > ${dump_file}
ossutil -e oss-cn-beijing.aliyuncs.com -i xxx -k xxx cp -f ${dump_file} oss://xxx

配置脚本定时执行(每天早上1点)
sudo crontab -e

0 1 * * * /home/username/svn/svn-backup.sh

安装配置FTP

sudo apt install vsftpd db-util
sudo mkdir /ftp

修改配置文件/etc/vsftpd.conf

listen=YES # 打开IPv4的监听
listen_ipv6=NO # 关闭IPv6的监听
anonymous_enable=YES
local_enable=NO # 禁止本地账户登陆
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
# 其他参数不动,增加下面参数
anon_root=/ftp
anon_other_write_enable=YES # 允许匿名用户删除目录
anon_umask=022 # 上传的文件默认有读的权限
pasv_enable=YES # 打开被动模式
pasv_min_port=10070
pasv_max_port=10099
port_enable=YES # 打开主动模式
# use_localtime=YES # 注销这个配置,否则显示的文件修改时间不对
sudo ufw allow 10070:10099/tcp # 防火墙打开被动模式端口
sudo systemctl restart vsftpd

重要:/ftp本身不可以有写权限,但是在/ftp中创建的目录可以赋予权限777

安装Port-Knocking

apt install -y knockd
修改配置文件/etc/knockd.conf

[options]
      logfile = /var/log/knockd.log
      interface = enp0s31f6

[SSH]
      sequence    = 7000,8000,9000
      seq_timeout = 5
      start_command = ufw allow from %IP% to any port 22
      tcpflags    = syn
      cmd_timeout   = 5
      stop_command  = ufw delete allow from %IP% to any port 22

你可能感兴趣的:(服务器,svn,linux)