¿Cómo hago para que algunos puertos TCP sean accesibles solo internamente?

¿Cómo hago para que algunos puertos TCP sean accesibles solo internamente?

Estoy ejecutando cuatro instancias de la aplicación Tornado en los puertos 9000 - 9003. Utilizo Nginx como equilibrador de carga en la parte frontal. Sin embargo, el usuario también puede acceder a estos puertos; por ejemplo, también se puede acceder a mysite:9000.

Entonces, ¿cómo desactivo el acceso externo y lo hago accesible solo para nginx?

Aquí está mi /etc/nginx/nginx.confcontenido:

user nginx;
worker_processes 5;

error_log /var/log/nginx/error.log;

pid /var/run/nginx.pid;

events {
    worker_connections 1024;
    use epoll; 
}

http{

    proxy_next_upstream error;

    upstream tornadoes { 
        server 127.0.0.1:9000;
        server 127.0.0.1:9001;
        server 127.0.0.1:9002;
        server 127.0.0.1:9003;
    }

    include /etc/nginx/mime.types;
    default_type application/octet-stream;  

    access_log /var/log/nginx/access.log;

    keepalive_timeout 65;
    proxy_read_timeout 200;
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    gzip on;
    gzip_min_length 1000;
    gzip_proxied any;
    gzip_types text/plain text/html text/css text/xml application/x-javascript application/xml application/atom+xml text/javascript;


    server { 
        listen 80;
        server_name example.in www.example.in;

        location /static/ {
            root /home/magneto/torapp; 
            if ($query_string) {
                expires max; 
            }
        }
        location / {
            proxy_pass_header Server; 
            proxy_set_header Host $http_host; 
            proxy_redirect off;
            proxy_set_header X-Real-IP $remote_addr; 
            proxy_set_header X-Scheme $scheme; 
            proxy_pass http://tornadoes;
        } 
    }
}

Respuesta1

Esto es algo que no puedes cumplir. Si decide comunicarse a través de TCP entre nginx y su aplicación, localhost siempre podrá acceder a los puertos; esta es la forma en que nginx lo está haciendo.

Puede reconfigurarlo para usar sockets, pero esto debe hacerse comenzando por su aplicación para la que nginx es el proxy inverso.

información relacionada