安装 Ubuntu Server 后要做的重要事情

Ora*_*Tux 18 server

我刚刚在 VPS 上安装了 Ubuntu Server。

要配置服务器,我正在阅读 Ubuntu 服务器指南。但是 Ubuntu 服务器指南并没有告诉我一切。

例如,Ubuntu 服务器指南没有告诉我如何保护 SSH,在我看来,这是在安装服务器后要做的一件重要的事情。

我知道我必须保护 SSH 访问,但我可能会忘记要配置的东西。因为我不知道我不知道什么。

是否有完整的指南告诉我在安装 Ubuntu 服务器后我必须做哪些重要的事情?如果没有,谁能告诉我这些事情?

One*_*ero 22

安全共享内存

/dev/shm 可用于攻击正在运行的服务,例如 httpd。修改 /etc/fstab 使其更安全。

打开终端窗口并输入以下内容:

sudo vi /etc/fstab
Run Code Online (Sandbox Code Playgroud)

添加以下行并保存。您需要重新启动此设置才能生效:

tmpfs     /dev/shm     tmpfs     defaults,noexec,nosuid     0     0
Run Code Online (Sandbox Code Playgroud)

使用 sysctl 设置强化网络

/etc/sysctl.conf 文件包含所有 sysctl 设置。防止传入数据包的源路由并记录格式错误的 IP 在终端窗口中输入以下内容

sudo vi /etc/sysctl.conf
Run Code Online (Sandbox Code Playgroud)

编辑/etc/sysctl.conf文件并取消注释或添加以下行:

# IP Spoofing protection
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1

# Ignore ICMP broadcast requests
net.ipv4.icmp_echo_ignore_broadcasts = 1

# Disable source packet routing
net.ipv4.conf.all.accept_source_route = 0
net.ipv6.conf.all.accept_source_route = 0 
net.ipv4.conf.default.accept_source_route = 0
net.ipv6.conf.default.accept_source_route = 0

# Ignore send redirects
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0

# Block SYN attacks
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 2048
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 5

# Log Martians
net.ipv4.conf.all.log_martians = 1
net.ipv4.icmp_ignore_bogus_error_responses = 1

# Ignore ICMP redirects
net.ipv4.conf.all.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0 
net.ipv6.conf.default.accept_redirects = 0

# Ignore Directed pings
net.ipv4.icmp_echo_ignore_all = 1
Run Code Online (Sandbox Code Playgroud)

要使用最新更改重新加载 sysctl,请输入:

sudo sysctl -p
Run Code Online (Sandbox Code Playgroud)

防止 IP 欺骗

打开终端并输入以下内容:

sudo vi /etc/host.conf
Run Code Online (Sandbox Code Playgroud)

添加或编辑以下几行:

order bind,hosts
nospoof on
Run Code Online (Sandbox Code Playgroud)

强化 PHP 以确保安全

编辑 php.ini 文件:

sudo vi /etc/php5/apache2/php.ini
Run Code Online (Sandbox Code Playgroud)

添加或编辑以下几行:

disable_functions = exec,system,shell_exec,passthru
register_globals = Off
expose_php = Off
magic_quotes_gpc = On
Run Code Online (Sandbox Code Playgroud)

Web 应用程序防火墙 - ModSecurity

http://www.thefanclub.co.za/how-to/how-install-apache2-modsecurity-and-modevasive-ubuntu-1204-lts-server

防止 DDOS(拒绝服务)攻击 - ModEvasive

http://www.thefanclub.co.za/how-to/how-install-apache2-modsecurity-and-modevasive-ubuntu-1204-lts-server

扫描日志并禁止可疑主机 - DenyHosts 和 Fail2Ban

@DenyHosts

DenyHosts 是一个 python 程序,它通过向 /etc/hosts.deny 添加条目来自动阻止 SSH 攻击。DenyHosts 还将通知 Linux 管理员有关违规主机、受攻击用户和可疑登录的信息。

打开终端并输入以下内容:

sudo apt-get install denyhosts
Run Code Online (Sandbox Code Playgroud)

安装后编辑配置文件/etc/denyhosts.conf 并根据需要更改电子邮件和其他设置。

要编辑管理员电子邮件设置,请打开终端窗口并输入:

sudo vi /etc/denyhosts.conf
Run Code Online (Sandbox Code Playgroud)

根据需要在您的服务器上更改以下值:

ADMIN_EMAIL = root@localhost
SMTP_HOST = localhost
SMTP_PORT = 25
#SMTP_USERNAME=foo
#SMTP_PASSWORD=bar
SMTP_FROM = DenyHosts nobody@localhost
#SYSLOG_REPORT=YES 
Run Code Online (Sandbox Code Playgroud)

@Fail2Ban

Fail2ban 比 DenyHosts 更先进,因为它将日志监控扩展到其他服务,包括 SSH、Apache、Courier、FTP 等。

Fail2ban 会扫描日志文件并禁止显示恶意迹象的 IP——密码失败次数过多、寻找漏洞利用等。

通常,Fail2Ban 然后用于更新防火墙规则以在指定的时间内拒绝 IP 地址,尽管也可以配置任意其他操作。开箱即用的Fail2Ban 带有用于各种服务(apache、courier、ftp、ssh 等)的过滤器。

打开终端并输入以下内容:

sudo apt-get install fail2ban
Run Code Online (Sandbox Code Playgroud)

安装后编辑配置文件/etc/fail2ban/jail.local 并根据需要创建过滤规则。

要编辑设置,请打开终端窗口并输入:

sudo vi /etc/fail2ban/jail.conf
Run Code Online (Sandbox Code Playgroud)

通过将enabled = false更改* enabled = true *激活您希望 fail2ban 监控的所有服务

例如,如果您想启用 SSH 监控和禁止 jail,请找到下面的行并将 enabled 从false更改为 true。就是这样。

[ssh]

enabled  = true
port     = ssh
filter   = sshd
logpath  = /var/log/auth.log
maxretry = 3
Run Code Online (Sandbox Code Playgroud)

如果您想在主机被禁止的情况下接收来自 Fail2Ban 的电子邮件,请将以下行更改为您的电子邮件地址。

destemail = root@localhost
Run Code Online (Sandbox Code Playgroud)

并将以下行更改为:

action = %(action_)s
Run Code Online (Sandbox Code Playgroud)

到:

action = %(action_mwl)s
Run Code Online (Sandbox Code Playgroud)

您还可以为希望 fail2ban 监视但默认情况下未提供的各种服务创建规则过滤器

sudo vi /etc/fail2ban/jail.local
Run Code Online (Sandbox Code Playgroud)

可以在HowtoForge上找到有关如何配置 fail2ban 和创建各种过滤器的良好说明-单击此处查看示例

完成 Fail2Ban 的配置后,使用以下命令重新启动服务:

sudo /etc/init.d/fail2ban restart
Run Code Online (Sandbox Code Playgroud)

您还可以查看状态。

sudo fail2ban-client status
Run Code Online (Sandbox Code Playgroud)

检查 rootkit - RKHunter 和 CHKRootKit。

无论RKHunterchkrootkit的基本上做同样的事情-检查你的系统的rootkit。两者都用没有坏处。

打开终端并输入以下内容:

sudo apt-get install rkhunter chkrootkit
Run Code Online (Sandbox Code Playgroud)

要运行 chkrootkit,请打开终端窗口并输入:

sudo chkrootkit
Run Code Online (Sandbox Code Playgroud)

更新和运行 RKHunter。打开终端并输入以下内容

sudo rkhunter --update
sudo rkhunter --propupd
sudo rkhunter --check
Run Code Online (Sandbox Code Playgroud)

扫描开放端口 - Nmap

Nmap(“网络映射器”)是一个免费的开源实用程序,用于网络发现和安全审计。

打开终端并输入以下内容:

sudo apt-get install nmap
Run Code Online (Sandbox Code Playgroud)

使用以下命令扫描系统的开放端口:

nmap -v -sT localhost
Run Code Online (Sandbox Code Playgroud)

SYN 扫描如下:

sudo nmap -v -sS localhost
Run Code Online (Sandbox Code Playgroud)

分析系统日志文件 - LogWatch

Logwatch 是一个可定制的日志分析系统。Logwatch 解析您系统的日志并创建一个报告分析您指定的区域。Logwatch 易于使用,并且可以在大多数系统上直接使用。

打开终端并输入以下内容:

sudo apt-get install logwatch libdate-manip-perl
Run Code Online (Sandbox Code Playgroud)

要查看 logwatch 输出使用 less :

sudo logwatch | less
Run Code Online (Sandbox Code Playgroud)

要将过去 7 天的 logwatch 报告通过电子邮件发送到电子邮件地址,请输入以下内容并将 mail@domain.com 替换为所需的电子邮件。:

sudo logwatch --mailto mail@domain.com --output mail --format html --range 'between -7 days and today' 
Run Code Online (Sandbox Code Playgroud)

审核您的系统安全性 - Tiger。

Tiger 是一种安全工具,可用作安全审计和入侵检测系统。

打开终端并输入以下内容:

sudo apt-get install tiger
Run Code Online (Sandbox Code Playgroud)

要运行老虎输入:

sudo tiger
Run Code Online (Sandbox Code Playgroud)

所有 Tiger 输出都可以在 /var/log/tiger 中找到

要查看 Tiger 安全报告,请打开终端并输入以下内容:

sudo less /var/log/tiger/security.report.*
Run Code Online (Sandbox Code Playgroud)

更多帮助