Como faço para que algumas portas TCP sejam acessíveis apenas internamente?

Como faço para que algumas portas TCP sejam acessíveis apenas internamente?

Estou executando quatro instâncias do aplicativo Tornado nas portas 9000 - 9003. Eu uso o Nginx como balanceador de carga na frente. No entanto, o usuário também pode acessar essas portas, por exemplo, mysite:9000 também está acessível.

então, como desativo o acesso externo e o torno acessível apenas ao nginx?

Aqui está meu /etc/nginx/nginx.confconteúdo:

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;
        } 
    }
}

Responder1

Isso é algo que você não pode cumprir. Se você decidir se comunicar via TCP entre o nginx e seu aplicativo, o localhost sempre poderá acessar as portas - é assim que o nginx está fazendo isso.

Você pode reconfiá-lo para usar soquetes, mas isso precisa ser feito começando pelo seu aplicativo para o qual nginx é o proxy reverso.

informação relacionada