我一直在研究,但无法找到以下等价物的明确答案:
apt install nftables
nft add rule inet filter input ip protocol esp counter accept
在iptables中?
是像下面这样简单还是有更多?
sudo iptables -A INPUT -p 50 -j ACCEPT
sudo iptables -A INPUT -p 51 -j ACCEPT
谢谢
对于 IPv4,我有一条规则阻止 VPN 访问本地地址,如下所示:
:PRIVATE_ADDRS_FILTER - [0:0]
-A PRIVATE_ADDRS_FILTER -d 10.0.0.0/8 -j DROP
-A PRIVATE_ADDRS_FILTER -d 172.16.0.0/12 -j DROP
-A PRIVATE_ADDRS_FILTER -d 192.168.0.0/16 -j DROP
-A FORWARD -j PRIVATE_ADDRS_FILTER
这是我为 IPv6 做的吗?(基于此来源)
:PRIVATE_ADDRS_FILTER - [0:0]
-A PRIVATE_ADDRS_FILTER -d fc00::/7 -j DROP
-A PRIVATE_ADDRS_FILTER -d fc00::/8 -j DROP
-A PRIVATE_ADDRS_FILTER -d fd00::/8 -j DROP
-A FORWARD -j PRIVATE_ADDRS_FILTER
直到几周前,我才能够在全新的 Debian Buster 安装上安装 mysql server 8。
sudo apt update
export DEBIAN_FRONTEND=noninteractive
sudo apt full-upgrade -y
sudo apt autoremove -y
sudo apt install gnupg -y
wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.17-1_all.deb
sudo -E dpkg -i mysql-apt-config_0.8.17-1_all.deb
sudo apt update
sudo -E apt install -y mysql-server
但是某些东西似乎已经发生了变化,Debian Buster 10.9
或者mysql-apt-config_0.8.17-1_all.deb
导致了下面的错误。
错误:
update-alternatives: using /var/lib/mecab/dic/ipadic-utf8 to provide /var/lib/mecab/dic/debian (mecab-dictionary) in auto mode
Setting up mysql-community-client (8.0.24-1debian10) ...
Setting up mysql-client (8.0.24-1debian10) ...
Setting up mysql-community-server (8.0.24-1debian10) ...
update-alternatives: using /etc/mysql/mysql.cnf to provide /etc/mysql/my.cnf (my.cnf) in auto mode
dpkg: error processing package mysql-community-server (--configure):
installed mysql-community-server package post-installation script subprocess returned error exit status 1
dpkg: dependency problems prevent configuration of mysql-server:
mysql-server depends on mysql-community-server (= 8.0.24-1debian10); however:
Package mysql-community-server is not configured yet.
dpkg: error processing package mysql-server (--configure):
dependency problems - leaving unconfigured
Processing triggers for man-db (2.8.5-2) ...
Processing triggers for libc-bin (2.28-10) ...
Errors were encountered while processing:
mysql-community-server
mysql-server
E: Sub-process /usr/bin/dpkg returned an error code (1)
我完全被卡住了,因为我不明白错误消息。因为配置应该在安装后发生,如下所示:
sudo systemctl start mysql.service
sudo systemctl enable mysql.service
SECURE_MYSQL=$(expect -c "
set timeout 10
spawn sudo mysql_secure_installation
expect \"Would you like to setup VALIDATE PASSWORD plugin?\"
send \"n\r\"
expect \"New password:\"
send \"$DB_ROOT_PASSWORD\r\"
expect \"Re-enter new password:\"
send \"$DB_ROOT_PASSWORD\r\"
expect \"Remove anonymous users?\"
send \"y\r\"
expect \"Disallow root login remotely?\"
send \"y\r\"
expect \"Remove test database and access to it?\"
send \"y\r\"
expect \"Reload privilege tables now?\"
send \"y\r\"
expect eof
")
echo "$SECURE_MYSQL"
请问我错过了什么?
更新:
根据评论,这是我调查的结果:
sudo bash -x /var/lib/dpkg/info/mysql-community-server.postinst
+ . /usr/share/debconf/confmodule
++ '[' '!' '' ']'
++ PERL_DL_NONLAZY=1
++ export PERL_DL_NONLAZY
++ '[' '' ']'
++ exec /usr/share/debconf/frontend /var/lib/dpkg/info/mysql-community-server.postinst
Use of uninitialized value $action in string eq at /usr/share/debconf/frontend line 27.
vim /usr/share/debconf/前端
#!/usr/bin/perl -w
# This file was preprocessed, do not edit!
use strict;
use Debconf::Db;
use Debconf::Template;
use Debconf::AutoSelect qw(:all);
use Debconf::Log qw(:all);
Debconf::Db->load;
debug developer => "frontend started";
my $frontend=make_frontend();
shift @ARGV if $ARGV[0] eq '--';
my $package;
my $no_title=0;
if ($ENV{DEBCONF_PACKAGE}) {
$package=$ENV{DEBCONF_PACKAGE};
}
elsif ($ARGV[0]=~m!^.*/(.*?)\.(?:postinst|postrm|prerm)$!) {
$package=$1;
my $action=$ARGV[1];
$no_title=1 if $action eq 'triggered';
}
我不想使用重写但返回。
server {
listen 443 ssl;
listen [::]:443 ipv6only=on;
server_name xyz;
root /home/admin/www/html;
index index.html;
location = /blog/our-journey {
return 301 /blog/our-journey/
} // <- unexpected "}"
}
为什么这会失败并显示错误消息:
unexpected "}"
如上所示?谢谢
我正在尝试禁用 DNS 名称解析,因为我有许多其他服务器连接到中央数据库。DNS解析很慢,显然可以像这样禁用:
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
log-error = /var/log/mysql/error.log
port=3412
max_connections=500
skip-name-resolve
但是我仍然可以通过 localhost 连接到它,这对我来说没有意义。
mysql -h localhost -u root -p -P 3412
我在这里做了一些研究:
如果您选择使用 skip-name-resolve,请确保您的 MYSQL 连接权限设置为允许 IP,而不是主机。
在大多数系统上,对于本地 MySQL 服务器,您需要对 ipv4 使用 host=127.0.0.1,对 ipv6 网络使用 host=::1,而不是经典的“host=localhost”。
如果 DNS 解析被禁用,为什么我仍然可以通过 localhost 连接?
我有一个安装了数据库的中央服务器和多个调用该中央数据库的分布式服务器。出于安全原因,我希望中央服务器只能由那些已知服务器访问。
所以我在这里想要实现的是允许服务器 192.168.1.5 和 192.168.2.6 访问端口 5432。
iptables -A INPUT -s 192.168.1.5,192.168.2.6 -d ??.??.??.?? -p tcp --dport 5432 -j ACCEPT
这个对吗?
我不明白的是指定目的地的选项。INPUT 上的目标始终是服务器本身,不是吗?为什么它是可配置的?我必须定义它还是将其省略,它会自动指向同一个服务器?
我想知道哪些日志优先于另一个。
查看此处定义的 rsyslog,它定义了每日轮换并将它们保留 30 天。
vim /etc/logrotate.d/rsyslog
/var/log/syslog
{
rotate 30
daily
missingok
notifempty
delaycompress
compress
postrotate
/usr/lib/rsyslog/rsyslog-rotate
endscript
}
然后我们有主配置,每周轮换一次,一次保持 4 周。
vim /etc/logrotate.conf
# rotate log files weekly
weekly
# use the syslog group by default, since this is the owning group
# of /var/log/syslog.
su root syslog
# keep 4 weeks worth of backlogs
rotate 4
# create new (empty) log files after rotating old ones
create
# uncomment this if you want your log files compressed
#compress
# packages drop log rotation information into this directory
include /etc/logrotate.d
哪个优先于另一个?
我在 Ubuntu 16.04 上安装了来自 ppa 的最新 NGINX。
nginx版本:nginx/1.12.1
据我了解,它应该支持流和UDP负载平衡。
但我收到此错误消息:
nginx: [emerg] "stream" directive is not allowed here in /etc/nginx/conf.d/load-balancer.conf:3
这是我的配置/etc/nginx/conf.d/load-balancer.conf
stream {
upstream backend {
least_conn;
server 172.31.9.51 fail_timeout=10s;
server 172.31.20.140 fail_timeout=10s;
}
server {
listen 500 udp;
listen 4500 udp;
proxy_pass backend;
proxy_timeout 1s;
proxy_responses 1;
error_log logs/dns.log;
}
}
我创建了一个脚本以在 Ubuntu 实例重新启动时运行。
crontab -e
然后将其添加到脚本中:
@reboot /home/ubuntu/startup.sh
这是脚本的样子:
#!/bin/bash
tmux new-session -d -s my_server
tmux send-keys -t my_server:0 ". /home/ubuntu/venv/bin/activate" C-m
tmux send-keys -t my_server:0 "cd ~/canonicaliser_api" C-m
tmux send-keys -t my_server:0 "git checkout new-schema" C-m
tmux send-keys -t my_server:0 "git pull" C-m
tmux send-keys -t my_server:0 "cd ~/canonicaliser_api/canonicaliser/workers" C-m
tmux send-keys -t my_server:0 "python person_worker.py" C-m
重新启动后,我会tmux attach
查看结果。
$ . /home/ubuntu/venv/bin/activate
cd ~/canonicaliser_api
(venv)$ (venv)$ git checkout new-schema
git pull
cd ~/canonicaliser_api/canonicaliser/workers
python person_worker.py
Already on 'new-schema'
Your branch is up-to-date with 'origin/new-schema'.
...
7 files changed, 157 insertions(+), 20 deletions(-)
(venv)$ (venv)$ Traceback (most recent call last):
File "person_worker.py", line 4, in <module>
from app import create_app, log
ImportError: No module named app
(venv)$
奇怪的是,virtualenv 似乎已激活,但似乎并没有起作用。环境似乎也很奇怪。如果我手动运行脚本(而不是重新启动)并执行 a tmux attach
,我看到(venv)ubuntu@ip-172-xx-xx-xxx:
的不仅仅是(venv)$
. 这可能是问题吗?
我们即将将现有系统从同一 EC2 上的本地 MySQL 实例迁移到适当的远程 Amazon-RDS。
不幸的是,缺少一个名为Median
MySQL 的功能。我们现有的代码库正在利用MySQL Infusion UDF来实现计算中位数。
现在我们进退两难了,是否可以在RDS上安装这些扩展?我相信 RDS 并不像 EC2 那样,您可以通过 SSH 进入并安装一些东西。
或者有没有办法median
在 MySQL 上做到这一点而不使用扩展?
更新:2013年4月20日,仍未找到解决方案,请帮助
查看我的 nginx 配置,唯一可能是罪魁祸首的是:
server {
listen 80;
listen [::]:80 ipv6only=on default_server;
rewrite ^(.*) https://$host$1 permanent;
}
从字面上看,我需要将“www”重定向到主域。
这可以在 nginx 中完成吗?
我对这件事有点困惑,Godaddy 支持每次都告诉我不同的事情。
我已将我的 www 域转发到主域,但它不起作用。
www.domain --> domain.com Fails
然而,任何其他子域(例如 test)都可以毫无问题地转发到主域。
test.domain --> domain.com Ok
Godaddy 声称:
或者你需要设置一个映射到@的 www CNAME。在您的主机上,您可以在索引文件或 .htacess 文件中设置编码重定向https://domain.com 。
我不明白如何实现这一目标。
我已经将 PHP5 添加到 UBUNTU 12.04
sudo add-apt-repository ppa:ondrej/php5 -y
并安装了 PHP5
php5 php5-common php5-mysql php5-xmlrpc php5-cgi php5-curl php5-gd php5-cli php5-fpm php-apc php-pear php5-dev php5-imap php5-mcrypt
但是我找不到两个包
php-xml and php-mbstring
知道他们现在怎么称呼吗?
非常感谢,
我最近从 Apache2 切换到 nginx。
我已经设置了一切,当我sudo nginx -t
说一切都很好时。
但是当我这样做时nginx -t
,出现以下错误:
nginx: [alert] could not open error log file: open() "/var/log/nginx/error.log" failed (13: Permission denied)
2012/10/24 12:22:16 [warn] 23075#0: the "user" directive makes sense only if the master process runs with super-user privileges, ignored in /etc/nginx/nginx.conf:1
2012/10/24 12:22:16 [emerg] 23075#0: SSL_CTX_use_PrivateKey_file("/etc/ssl/private/myapp.key") failed (SSL: error:0200100D:system library:fopen:Permission denied error:20074002:BIO routines:FILE_CTRL:system lib error:140B0002:SSL routines:SSL_CTX_use_PrivateKey_file:system lib)
以下似乎也可以重新启动而不会出现任何错误:
sudo service nginx reload
sudo service nginx restart
sudo service php5-fpm restart
这是预期的吗?
我正在从 Apache2 切换到 nginx。
nginx 世界中这些命令的等价物是什么?
sudo a2enmod ssl
sudo a2enmod rewrite
sudo a2enmod headers
sudo a2enmod expires
sudo a2enmod php5
非常感谢,
我有一个 Godaddy (mysite.com) 的域,它指向我的 AWS EC2 框。
现在我的网站上需要一个启动板链接,这样如果用户点击它,它就会指向 launch.mysite.com
此链接还应指向同一个 AWS EC2 框,然后我会在其中通过 Apache 的 VirtualHosts 捕获传入主机并相应地重定向它。
现在最让我困惑的是如何创建 launch.mysite.com ?
我是否创建一个“转发子域”并将其转发到我的 ip?或者我是否创建一个指向同一个 ip 的 CNAME?
非常感谢,
我想设置以下内容,只要我在本地浏览器中输入 MySite.com,我就会指向 127.0.0.1:8000。
我做了一些研究,似乎使用 nginx 我可以在端口 80 上设置一个反向代理,它将流量重定向到 Django 端口 8000。
我已经使用谷歌搜索了一段时间并执行了以下步骤:
sudo vi /etc/nginx/sites-enabled/default
在那里我编辑了这样的配置文件:
server {
listen 80;
server_name MySite.com;
root /usr/share/nginx/www;
index index.html index.htm;
location / {
proxy_pass http://127.0.0.1:8000/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_max_temp_file_size 0;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
}
但这仍然行不通。请问我错过了什么?
更新
好吧,这是最新的版本,还是不行,直接去网上真正的MySite.com。
服务器 {
listen 80;
server_name MySite.com;
root /usr/share/nginx/www;
index index.html index.htm;
location / {
proxy_pass http://127.0.0.1:8000/;
proxy_redirect http://MySite.com:8000/ /;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_max_temp_file_size 0;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
我有两个指向同一个网络服务器的域(siteA.com 和 SiteB.com),我想为每个域显示不同的网页。
到目前为止我采取的步骤是:
将默认站点 (siteA) 复制到 siteB
1) sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/siteB
2)sudo vim /etc/apache2/sites-available/siteB
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/www/siteB
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/siteB>
Options Indexes FollowSymLinks MultiViews
AllowOverride FileInfo Indexes
Order allow,deny
allow from all
</Directory>
</VirtualHost *:80>
然后我在 /var/www/siteB 下创建并在其中创建了一个示例 index.html。
但是,当我加载我的域时,siteB.com
我仍然会被定向到/var/www/siteA
. 这是为什么?
我是否也必须重命名/etc/apache2/sites-available/default
为/etc/apache2/sites-available/siteA
?
更新:
多亏了下面的答案,我似乎忘记了启用该站点旁边的另一个条目:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName siteB.com
ServerAlias www.siteB.com
</VirtualHost *:80>
为了也包含所有子域,请执行以下操作:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName siteB.com
ServerAlias *.siteB.com
</VirtualHost *:80>
siteA 也是如此。
我在 Ubuntu 上,想删除存储库的记住密码。
请问我该如何实现?
谢谢,