使用远程 FTP/SSH 和 GIT 访问逐步配置用于 LAMP 的 Ubuntu 服务器

使用远程 FTP/SSH 和 GIT 访问逐步配置用于 LAMP 的 Ubuntu 服务器

这是我第一次将 Unix 服务器配置为基于 LAMP 的网站的远程服务器。它还需要提供 SFTP 和 GIT 支持。我阅读了很多指南,并记下了我所做的所有步骤。

它现在正在运行。我想问您我的工作流程中是否存在任何安全问题,或者我该如何提高系统的安全性。

开始吧:

我的服务器上有一个用户“ root”和一个用户“ dev”。dev应该能够使用 sftp 登录服务器,将文件上传和下载到/var/www/html文件夹。他的主文件夹是/var/www/,并且被 chrooted 限制在该文件夹中(我希望!)。他没有写入权限,/var/www/但只能访问/html文件夹。

这是我做的:

############ LAMP

useradd --home-dir /var/www -g www-data dev 

chown -R dev:www-data /var/www/html && chmod 755 /var/www/html

apt-get install apache2

apt-get install mysql-server php5-mysql

mysql_install_db

mysql_secure_installation

apt-get install php5 libapache2-mod-php5 php5-mcrypt

apt-get install phpmyadmin apache2-utils

nano /etc/apache2/apache2.conf
(add Include /etc/phpmyadmin/apache.conf
 change AllowOverride to All on /var/www/html/)

a2enmod rewrite

apt-get install php5-gd php5-curl php5-xmlrpc php5-pspell

service apache2 restart

nano /etc/phpmyadmin/apache.conf
(add AllowOverride All inside <Directory /usr/share/phpmyadmin>)

nano /usr/share/phpmyadmin/.htaccess
(add AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/apache2/.phpmyadmin.htpasswd
Require valid-user)

htpasswd -c /etc/apache2/.phpmyadmin.htpasswd dev

service apache2 restart

############ PHP EMAILS

apt-get install ssmtp
nano /etc/ssmtp/ssmtp.conf
(delete all and replace with (gmail example):
mailhub=smtp.gmail.com:587
UseSTARTTLS=YES
AuthUser=<YOUR-EMAIL>@gmail.com
AuthPass=<YOUR-PASSWORD>
FromLineOverride=YES)

############ FTP WITH SSH

apt-get install vsftpd

apt-get install openssh-server

openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

nano /etc/vsftpd.conf
(local_enable=YES
write_enable=YES
local_umask=022
chroot_local_user=YES
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
require_ssl_reuse=NO
ssl_ciphers=HIGH)

nano /etc/ssh/sshd_config
(Match group www-data <-- with this I can a broken pipe error on ssh connection
    ChrootDirectory /var/www
    X11Forwarding no
    AllowTcpForwarding no
    ForceCommand internal-sftp
    PasswordAuthentication yes)

etc/init.d/vsftp restart


############ GIT

apt-get install git

git config --global user.name "Name"

git config --global user.email [email protected]

mkdir /var/www/.shh && chown dev:dev /var/www/.ssh/ && chmod 700 /var/www/.ssh

su dev && ssh-keygen -t rsa -b 4096 -C "[email protected]"
(path: /var/www/.ssh/)

cd /var/www/git-repo-sever

git init --bare

这安全吗?这是一个好方法吗?

答案1

我认为您根本不需要 vsftpd 服务器。OpenSSH 服务器允许您使用 sftp 上传文件。您将 vsftpd 配置为启用 ssl 的 ftp 服务器 (ftps)。阅读更多

您还可以使用以下简单步骤来提高服务器的安全性:

  • 将 ssh 服务器移动到另一个端口例如Port 422
  • 设置PasswordAuthentication no仅使用 ssh 密钥;
  • 设置防火墙(例如脑脊液

相关内容