操作系统
使用的是Uubntu22.04 Desktop的版本,系统安装后,默认开启了53端口和631端口
sudo systemctl stop avahi-daemon.socket avahi-daemon.service
sudo systemctl disable avahi-daemon.socket avahi-daemon.service
通过命令sudo systemctl list-dependencies cups
和sudo 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
修改配置文件`/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
sudo apt install openssh-server
ssh会监听22、6010端口
修改配置文件/etc/ssh/sshd_config:
只监听ipv4:ListenAddress 0.0.0.0
关闭X11 forwarding(6010端口):X11Forwarding no
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
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
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