AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-32759

Xeoncross's questions

Martin Hope
Xeoncross
Asked: 2015-01-18 18:39:53 +0800 CST

在 IPTables 而不是 Nginx 或 HAProxy 中限制新连接的速率?

  • 0

我想使用某种形式的速率限制1)新的TCP连接和2)通过现有连接到HTTP(S)的请求。我可能会使用 nginx 或 HAProxy 处理 #2(因为我有更多关于用户历史的信息)。

但是,我想用 IPtables 防止 DoS(不是 DDos),并为 HAProxy 或 Nginx 节省一些处理新 TCP 连接的负载。似乎 IPTables 最适合这项工作。

# Allow unlimited 80 traffic from our own network (duplicate this line for other local subnets)
# 192.168.16.0 - 192.168.16.255
-A INPUT -p tcp --dport 80 -s 192.168.1.0/24 -j ACCEPT

# Simple, single-IP DoS protection 
# Per-minute: Allow up to 200 new connections (packets) from an IP before rate-limiting to 50 packets is applied
# This could need to be an ISP, company, or college where 200 clients all connected from a single IP gateway
# in 1 minute and started using your service. After that first minute 50 more can join every minute.
-A INPUT -p tcp --dport 80 -m state --state NEW -m limit --limit 50/minute --limit-burst 200 -j ACCEPT
-A INPUT -p tcp --dport 443 -m state --state NEW -m limit --limit 50/minute --limit-burst 200 -j ACCEPT

这是一个好主意,还是我应该只在 nginx 或 HAproxy 级别进行两种类型的速率限制(新的/已建立的)?

(注意:我无权访问旨在处理此问题的实际硬件防火墙)

nginx
  • 1 个回答
  • 2205 Views
Martin Hope
Xeoncross
Asked: 2015-01-01 08:34:26 +0800 CST

如何将所有日志文件条目通过管道传输到 linux 上的数据库?

  • 0

我正在考虑构建一个应用程序来读取我的不同服务器日志文件,将解析的数据保存到数据库中,然后从日志文件中删除该行。

这是我的程序员方面试图想出更好的方法将所有日志文件放入可用/可搜索的应用程序控制台中看起来有些不对劲。

市场上似乎已经有昂贵的解决方案,但我无法证明 500 至 2000 美元/月的高昂价格是合理的。

无论如何,我的问题是如何从主动写入的日志文件中删除行而不引起问题?一些日志文件是旋转的(如 nginx),而另一些则不是。我想最安全的方法是复制文件,然后echo '' > file.log删除它。不过,我可能会错过 300 毫秒的写入。

另一个问题是我是否甚至想删除日志。我想不删除日志意味着我必须打开文件,跳到最后,然后向后工作,直到我到达最后一个已知条目。

将日志数据通过管道传输到外部应用程序/数据库的好方法是什么?

ubuntu
  • 2 个回答
  • 1127 Views
Martin Hope
Xeoncross
Asked: 2014-12-13 12:23:45 +0800 CST

无法从另一台服务器连接到 MySQL

  • 2

我在同一个子网上有两台服务器。

  • 192.168.100.1 (mysql)
  • 192.168.100.2 (php)

MySQL 似乎在它的盒子上运行良好,但我似乎无法连接到它。这些都是 ubuntu 盒子,iptables 和 ufw 没有运行。以下命令均来自 MySQL 机器本身。这些都不适用于.100.2(php)框中。

我的.cnf

#bind-address           = 127.0.0.1
bind-address = 192.168.100.1

netstat 说这是真的:

[email protected] /etc/mysql $ netstat -plutn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      8583/sshd       
tcp        0      0 192.168.100.1:3306      0.0.0.0:*               LISTEN      30654/mysqld    
tcp        0      0 0.0.0.0:2828            0.0.0.0:*               LISTEN      29946/monit     
tcp        0      0 0.0.0.0:1167            0.0.0.0:*               LISTEN      23175/cdp       
tcp6       0      0 :::22                   :::*                    LISTEN      8583/sshd  

telnet 说不错

[email protected] /etc/mysql $ telnet 192.168.100.1 3306
Trying 192.168.100.1...
Connected to 192.168.100.1.
Escape character is '^]'.
[
5.5.40-0ubuntu0.12.04.1&KM~Se$!u??L\hw=gp{<Uvrmysql_native_password

!#08S01Got packets out of orderConnection closed by foreign host.

mysql客户端说很好:

[email protected] /etc/mysql $ mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.

当我尝试连接时.100.2,在连接超时之前我什么也得不到:

[email protected] /etc/php5/fpm $ mysql -uroot -p -h 192.168.100.1 --connect-timeout 4
Enter password: 
ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.100.1' (4)

我可以ping .100.1从.100.2包装盒中获得亚毫秒响应时间。

这是 MySQL 授权设置:

mysql> SELECT user,host from mysql.user;
+------------------+--------------+
| user             | host         |
+------------------+--------------+
| root             | 127.0.0.1    |
| root             | 192.168.1.%  |
| root             | 192.168.100.%|
| root             | 192.168.200.%|
| root             | ::1          |
| debian-sys-maint | localhost    |
| example          | localhost    |
| o3backup         | localhost    |
| root             | localhost    |
| root             | voice-mysql  |
+------------------+--------------+
10 rows in set (0.00 sec)

我为所有地方添加了新的赠款,但问题仍然存在。

mysql> show grants for 'root'@'%';
+--------------------------------------------------------------------------------------------------------------+
| Grants for root@%                                                                                            |
+--------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY PASSWORD '...' |
+--------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

更新

原来系统被我不知道的系统文件更改以某种方式锁定。显然,它阻止了某些非标准的网络操作。老实说,给我这个盒子的人忘记了这一切,这真的令人沮丧。老实说,我不知道他们对它做了什么,甚至他们也不记得了。尽管如此,这里列出的答案是针对普通人的最彻底的故障排除指南。应该是这些问题之一。

ubuntu
  • 2 个回答
  • 7018 Views
Martin Hope
Xeoncross
Asked: 2014-06-06 10:39:54 +0800 CST

检查 apt-get 的 grep 的结果并在 bash 条件下使用

  • 0

我正在尝试测试有关 Debian 上特定软件包版本的信息。但是,我对 APT 结果的 grep 似乎没有做任何事情。我不确定如何编写 bash 命令:

if [[ $(apt-get -s install golang | grep "E: Unable to locate") ]]; then        
    echo "problem"
    exit;
fi

if apt-get -s install golang | grep "E: Unable to locate" > /dev/null; then     
    echo "problem"
    exit;
fi

OUTPUT=`apt-get -s install golang | grep --quiet "E: Unable to locate"`
if [ -n "$OUTPUT" ]; then
    echo "problem"
    exit;
fi
linux
  • 1 个回答
  • 573 Views
Martin Hope
Xeoncross
Asked: 2012-12-12 13:09:07 +0800 CST

基于主机名的动态 nginx 域根路径?

  • 13

我正在尝试使用基本的 master/catch-all vhost 配置设置我的开发 nginx/PHP 服务器,以便我可以根据需要创建无限的___.framework.loc域。

server {
        listen 80;
        index index.html index.htm index.php;

        # Test 1
        server_name ~^(.+)\.frameworks\.loc$;
        set $file_path $1;
        root    /var/www/frameworks/$file_path/public;

        include /etc/nginx/php.conf;
}

但是,nginx 对此设置响应 404 错误。我知道 nginx 和 PHP 正在工作并获得许可,因为localhost我使用的配置工作正常。

server {
        listen 80 default;
        server_name localhost;
        root /var/www/localhost;
        index index.html index.htm index.php;

        include /etc/nginx/php.conf;
}

我应该检查什么来发现问题?这是他们正在加载的 php.conf 的副本。

location / {
        try_files $uri $uri/ /index.php$is_args$args;
}

location ~ \.php$ {

        try_files $uri =404;

        include fastcgi_params;
        fastcgi_index index.php;

        # Keep these parameters for compatibility with old PHP scripts using them.
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

        # Some default config
        fastcgi_connect_timeout        20;
        fastcgi_send_timeout          180;
        fastcgi_read_timeout          180;
        fastcgi_buffer_size          128k;
        fastcgi_buffers            4 256k;
        fastcgi_busy_buffers_size    256k;
        fastcgi_temp_file_write_size 256k;
        fastcgi_intercept_errors    on;
        fastcgi_ignore_client_abort off;
        fastcgi_pass 127.0.0.1:9000;

}
php
  • 5 个回答
  • 26509 Views
Martin Hope
Xeoncross
Asked: 2012-11-28 08:42:38 +0800 CST

许多 ISP 阻止端口 25,我该如何选择替代端口?

  • 5

我正在构建一个应用程序,它将作为不同网络上的组合 MUA/MTA。但是,许多网络的 ISP 会阻止 SMTP 的端口 25。因此,我还想打开一个辅助端口,以便在端口 25 关闭时某些安装可以通过该端口进行通信。

如何选择第二个端口?我知道有些人使用端口 26或端口 2525。选择不会干扰现有软件的端口的正确方法是什么?

smtp
  • 6 个回答
  • 11643 Views
Martin Hope
Xeoncross
Asked: 2012-06-17 07:31:20 +0800 CST

你如何转义 heredoc 中的字符?

  • 34

我正在使用 bash 脚本试图阻止它尝试替换我的 heredoc 中的变量。如何将 heredoc 设置为 A) 转义变量名而不是解析它们或 B) 返回整个字符串不变?

cat > /etc/nginx/sites-available/default_php <<END
server {
    listen 80 default;
    server_name _;
    root /var/www/$host; <--- $host is a problem child
}
END

照原样,当我完成将它注入到文件中时,我只剩下这个:

server {
    listen 80 default;
    server_name _;
    root /var/www/;
}
linux bash heredoc
  • 2 个回答
  • 28003 Views
Martin Hope
Xeoncross
Asked: 2010-03-25 19:58:59 +0800 CST

linux网络服务器上的正确umask?

  • 0

大多数 VPS 都有一个由 1 个以上的用户组成的团队,他们除了配置系统并在网站和/或数据库上工作之外什么都不做。我假设所有团队成员都是像“开发人员”这样的团队,因此他们都可以根据需要处理 Web 根目录中的文件。

考虑到这一点,将umask 007是一个比默认设置更好的设置022?毕竟,不应该有任何“其他/世界”用户,因为这台机器的主要目的是为网页提供服务。所有开发人员都可以访问,并且没有任何“客人”登录...

linux vps umask
  • 2 个回答
  • 807 Views
Martin Hope
Xeoncross
Asked: 2010-03-22 17:21:39 +0800 CST

如何为 WWW 文件夹设置 linux 权限?

  • 73

更新摘要

/var/www 目录归其所有,root:root这意味着没有人可以使用它,而且它完全没用。由于我们都想要一个实际工作的 Web 服务器(并且没有人应该以“root”身份登录),所以我们需要解决这个问题。

只有两个实体需要访问。

  1. PHP/Perl/Ruby/Python都需要访问文件夹和文件,因为它们创建了许多文件夹和文件(即/uploads/)。这些脚本语言应该在 nginx 或 apache 下运行(或者甚至是一些其他的东西,比如 PHP 的 FastCGI)。

  2. 开发商

他们如何获得访问权?我知道以前有人在某个地方做过这件事。然而,有数十亿个网站,您会认为会有更多关于这个主题的信息。


我知道 777 是所有者/组/其他的完全读/写/执行权限。因此,这似乎不需要正确,因为它为随机用户提供了完全权限。

需要使用哪些权限,/var/www以便:

  1. 源代码控制,如 git 或 svn
  2. 像“网站”这样的组中的用户(甚至添加到“www-data”)
  3. 像 apache 或 lighthttpd 这样的服务器
  4. 和 PHP/Perl/Ruby

都可以在那里读取、创建和运行文件(和目录)吗?

如果我是正确的,Ruby 和 PHP 脚本不会直接“执行”——而是传递给解释器。所以不需要对/var/www...中的文件执行权限?因此,似乎正确的许可chmod -R 1660是

  1. 这四个实体可共享的所有文件
  2. 所有文件都错误地不可执行
  3. 完全阻止目录中的其他所有人
  4. 将所有未来文件的权限模式设置为“粘性”

这个对吗?

更新 1:我刚刚意识到文件和目录可能需要不同的权限 - 我在谈论上面的文件,所以我不确定目录权限需要是什么。

更新 2:文件夹结构发生了/var/www巨大变化,因为上述四个实体之一总是添加(有时删除)文件夹和子文件夹很多层级。他们还创建和删除其他 3 个实体可能需要读/写访问权限的文件。因此,权限需要对文件和目录都做上面的四件事。由于它们都不应该需要执行权限(请参阅上面有关 ruby​​/php 的问题),我认为rw-rw-r--权限将是所需要的并且完全安全,因为这四个实体由受信任的人员(请参阅#2)和所有其他用户运行系统只有读取权限。

更新 3:这适用于个人开发机器和私人公司服务器。没有像共享主机这样的随机“网络客户”。

更新 4: slicehost 的 这篇文章似乎最能解释为 www 文件夹设置权限所需的内容。但是,我不确定使用 PHP 或 svn/git 运行的用户或组 apache/nginx 以及如何更改它们。

更新 5:我(我认为)终于找到了一种让这一切正常工作的方法(答案如下)。但是,我不知道这是否是正确且安全的方法。因此,我开始了赏金。拥有保护和​​管理 www 目录的最佳方法的人获胜。

linux permissions chmod
  • 7 个回答
  • 142445 Views
Martin Hope
Xeoncross
Asked: 2010-03-22 10:08:27 +0800 CST

为什么有些 linux 用户没有主目录?

  • 2

在linux中我只看到一个/home/[[me]]目录。但是,我知道至少还有 20 多个其他用户(root、www-data 等)。

为什么有些用户没有用户目录 - 是否可以在没有主目录的情况下创建新用户?

linux user-management
  • 1 个回答
  • 545 Views
Martin Hope
Xeoncross
Asked: 2010-03-22 10:05:00 +0800 CST

一个组的所有用户都可以编辑彼此的文件(Linux)

  • 1

我希望组 www-data 中的任何人都具有对/var/www. 例如,如果 'a' 和 'b' 在组 www-data 中并且 'a' 在其中创建一个文件/var/www- 那么 'b' 将能够编辑它。

问题是我创建了 PHP 和 Apache 无法编辑的文件 - 他们创建了我无法在没有 sudo 的情况下编辑的文件。PHP 和我自己都在 www-data 组中。

我将 umask 设置/etc/profile从更改umask 022为umask 002。这是处理此问题的安全且适当的方法吗?

更新:即使更改 /etc/profile 并重新启动计算机 PHP 仍然创建具有权限的文件-rw-r--r--。

linux php umask
  • 1 个回答
  • 273 Views
Martin Hope
Xeoncross
Asked: 2010-03-06 13:19:31 +0800 CST

放松 Linux - 只有我!(文件系统权限)

  • 3

关于Linux,我最喜欢的事情之一也是最烦人的——文件系统权限。在生产机器和 Web 服务器中,我喜欢一切都如此安全和锁定 - 但在开发机器上,它真的让我慢下来。我将在我每周发现的众多例子中举一个例子。

像大多数人一样,我双启动 Ubuntu 和 Windows,因此我可以继续使用 Adob​​e CS4 套件。当我还在使用 Windows 时,我经常设计网页主题和其他东西。稍后我将启动 Ubuntu 以获取主题并为它们编写后端 PHP。安装 Windows C: 驱动器分区后,我可以复制模板文件,以便开始编辑它们。

但是,由于 Linux希望保护我,我发现在处理完文件后,我最终得到了一组完全锁定的文件,即使我没有读写权限。因此,在仔细考虑了 HTML 文件给我带来的巨大风险之后 - 我对它们进行了 chmod,以便我和 apache 可以开始使用它们。

现在给出,chmod 过程并不难 - 但是在你每天 chmod 足够多的文件之后,你会厌倦这样做。我不断地从我的用户、git repos、php 或其他随机进程中创建、获取、编辑和删除文件。毕竟这是一台个人发展机器。一切都每天都在变化。

所以我的问题是,我怎样才能让 linux 放松对我的 HTML/JS/PHP/TXT/SQL/etc 所做的事情。文件,以便我可以更快地工作而无需不断停止 chmod 事情?

我小指保证我不会用 HTML 文件侵入我的帐户。;)

linux filesystems
  • 4 个回答
  • 584 Views
Martin Hope
Xeoncross
Asked: 2010-02-27 18:40:43 +0800 CST

需要一个有用的/托管的 VPS 来帮助从共享主机过渡

  • 3

我正在寻找可以帮助我脱离共享托管环境的 VPS。

我的主要操作系统是 Ubuntu,尽管我对 linux 世界还是新手。我一天中的大部分时间都在使用 git over SSH 工作流程来编写 PHP 应用程序。

我希望 PHP、SSH、git、MySQL/PostgreSQL 和 Apache 运行良好。有一天,在我弄清楚服务器管理之后,我会转到http://nginx.org/或其他东西。

我不太了解 1) linux 防火墙,2) 邮件服务器,或 3) 正确的每日软件包/lib 更新流程。我需要一个可以帮助解决这些问题的主机,这样我就不会遇到安全漏洞。(我监控 apache 访问日志,所以我想我可以从那里获取它。)

我想知道是否有低于 50 美元/m 的 VPS 可以帮助我学习(或为我做)这三个我需要运行服务器的主要事情。我不能离开我的共享主机(复数表示我的需要!),直到我确信我的网站将是安全的,尽管我无能。

再次澄清一下,我需要我能得到的最有帮助、支持、引导我、检查我、当我需要你的 VPS 时就在那儿。当有人转身时,学习不是问题。;)

security vps shared-hosting
  • 3 个回答
  • 232 Views
Martin Hope
Xeoncross
Asked: 2010-02-22 11:43:04 +0800 CST

通过 SSH 将 localhost 流量端口转发到生产机器数据库

  • 1

在 Windows 上,我曾经使用 Bitvise Tunnler 通过 SSH 连接将我的 PC localhost:33306 上的所有流量转发到我的服务器 - 然后从那里到 mysqlserver:3306 服务器数据库。

PC:33306 -> server:3306 -> databaseserver:3306

现在我使用的是 linux,我发现随时随地使用 SSH 很容易:

ssh [email protected]

但是,我不确定如何使用 ssh 选项复制此端口转发。如果只是从一台计算机到另一台计算机,我想我可以做这样的事情......

ssh -L 33306:localhost:3306 [email protected]

更新

我尝试使用以下 SSH 进行连接,并且连接似乎有效。

ssh -L 33306:localhost:3306 [email protected]

但是 phpMyAdmin 在尝试连接到其他服务器时会抛出此错误

#1045 - Access denied for user '[[user]]'@'localhost' (using password: YES)

然后我尝试了

ssh -L 33306:db.server.com:3306 [email protected]

和 phpMyAdmin 抛出了这个错误

#1045 - Access denied for user '[[user]]'@'localhost' (using password: YES)

运行netstat -an | 更多节目

tcp6       0      0 ::1:33306               :::*                    LISTEN   

同样,流程应该如下所示:

mypc -> server -> otherdbserveronprivatelan
mysql ssh port-forwarding
  • 3 个回答
  • 2337 Views
Martin Hope
Xeoncross
Asked: 2010-02-22 11:19:59 +0800 CST

如何在 linux 上为 apache/PHP、git 和我自己启用完整的 www 访问权限?

  • 1

/var/www 文件夹归root root(用户、组)所有。这意味着www-data(apache/php 组)没有访问权限。这导致了写入错误,因为不允许 PHP 创建文件。

我通过 CHMOD 0777 解决了整个 /var/www 文件夹,因为它只是一个私人开发机器。但是,这仍然会导致问题,因为 CHMOD 仅适用于运行时存在的文件 - 而不是之后创建的文件。因此,如果我要创建一个新文件,那么 PHP 将无法 rwx 它。

现在我正在使用 git 来引入更多文件,我很难让 apache/php、git 和我自己的用户都能够很好地处理彼此的文件。

如何为我们三个人启用完全访问权限?

apache-2.2 git
  • 3 个回答
  • 904 Views
Martin Hope
Xeoncross
Asked: 2009-07-23 08:29:06 +0800 CST

一台服务器上的多个用户从 github 存储库工作?

  • 1

我们有 4 个用户试图从一个私人 github 存储库工作。每个用户都有一个 github 帐户。我们有一个带有四个“沙盒目录”的开发服务器,这些用户将在其中工作并推/拉到 github 上的私有仓库。现在,我对这整个事情还很陌生,我想弄清楚我们的 SSH 密钥设置需要什么。

虽然我们需要一个部署密钥 - 但它只链接到服务器上的一个用户帐户,所以如果我错了,请纠正我 - 但我们的 DEV 服务器上的所有四个用户都不能使用相同的部署密钥。

然后我认为每个用户都可以在我们的 DEV 服务器上为那里的帐户设置一个 SSH 密钥 - 但我认为 github 只允许每个服务器/PC 一个密钥 - 我是对的吗?也许我们可以为 git 设置一个用户?

git
  • 1 个回答
  • 1545 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve