Bloquear o tráfego para a LAN, mas permitir tráfego para a Internet (iptables)

2

Na minha rede doméstica, estou configurando um servidor CentOS que será usado por cerca de uma dúzia ou mais para fins educacionais - por exemplo, Aprenda a usar os sites shell e host do Linux, entre outras coisas. Eu tenho a porta 22 e a porta 80 no meu roteador para que elas possam fazer login via SSH pela Internet.

Como não posso confiar totalmente nesses usuários, no momento estou tentando bloquear o servidor o máximo possível (verificando permissões, bloqueando torrents etc.) Como não quero que as pessoas testem o restante dos computadores da minha rede embora o servidor, eu gostaria de bloquear o tráfego para computadores na LAN local, permitindo ainda o tráfego para a Internet.

Eu não estou super familiarizado com o iptables, mas eu tentei configurar algumas regras do iptables - primeiro ele permite o tráfego para 192.168.1.1 (roteador) e 192.168.1.2 (computador que eu estou usando para configurar o servidor), e bloqueia o tráfego para 192.168.1.0/24 e registra esse tráfego. O restante do tráfego deve ser permitido. No entanto, o problema é que o servidor não pode fazer conexões com a Internet.

Aqui está minha configuração atual do iptables:

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination
1    ACCEPT     all  --  0.0.0.0/0            192.168.1.2
2    ACCEPT     all  --  0.0.0.0/0            192.168.1.1
3    LOGGING    all  --  0.0.0.0/0            0.0.0.0/0
4    DROP       all  --  0.0.0.0/0            192.168.1.0/24
5    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0

Chain LOGGING (1 references)
num  target     prot opt source               destination
1    LOG        all  --  0.0.0.0/0            0.0.0.0/0           limit: avg 10/min burst 5 LOG flags 0 level 7 prefix 'DROP: '
2    DROP       all  --  0.0.0.0/0            0.0.0.0/0

Ping nos IPs permitidos (192.168.1.1 e 192.168.1.2) funciona (bom), mas o ping no Google não (ruim):

[root@server ~]# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
ping: sendmsg: Operation not permitted
ping: sendmsg: Operation not permitted
^C
--- 8.8.8.8 ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 1950ms

[root@server ~]# ping 192.168.1.2
PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data.
64 bytes from 192.168.1.2: icmp_seq=1 ttl=128 time=0.294 ms
64 bytes from 192.168.1.2: icmp_seq=2 ttl=128 time=0.270 ms

É claro que entendo que há um certo nível de confiança envolvido na concessão de acesso de pessoas a um servidor na minha rede, mas ainda quero endurecê-lo o máximo que puder. Se alguém puder comentar sobre outras coisas que eu posso fazer, eu agradeceria também.

Obrigado antecipadamente!

    
por tlng5 22.11.2014 / 00:46

2 respostas

2

OK, eu mesmo descobri o problema, então responderei minha própria pergunta como referência. A questão era que todo o tráfego estava passando pela cadeia LOGGING, e a segunda regra da cadeia LOGGING abandona todo o tráfego. Acabei de remover a regra 2 da cadeia LOGGING e tudo funcionou.

    
por 22.11.2014 / 01:44
0

Estou com um desafio semelhante, tenho um dispositivo IOT com várias vulnerabilidades que quero separar na minha LAN, mas está conectado por meio de um switch com outros dispositivos que NÃO quero ser separado. Eu tentei criar uma cadeia separada e colocar uma referência a ela no início da cadeia INPUT para qualquer coisa com uma fonte do dispositivo IOT ou destino do dispositivo IOT e, em seguida, na nova cadeia, se a origem for LAN e o destino é IoT, em seguida, DROP ou se a fonte for IoT e o Destino for LAN, em seguida, DROP, mas não consigo fazer isso, os pacotes ainda podem pingar e acessar o dispositivo. até tentei adicionar minhas regras ao início de várias outras cadeias para ver se isso fazia diferença, mas sem sorte - alguma idéia?

b1tphr34k@RT-AC87U-C598:/tmp/home/root# iptables --list
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
TIVOFILTER  all  --  192.168.10.8         anywhere
TIVOFILTER  all  --  anywhere             192.168.10.8
logdrop    icmp --  anywhere             anywhere             icmp echo-request
logaccept  all  --  anywhere             anywhere             state RELATED,ESTABLISHED
logdrop    all  --  anywhere             anywhere             state INVALID
PTCSRVWAN  all  --  anywhere             anywhere
PTCSRVLAN  all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere             state NEW
ACCEPT     all  --  anywhere             anywhere             state NEW
logaccept  udp  --  anywhere             anywhere             udp spt:bootps dpt:bootpc
INPUT_ICMP  icmp --  anywhere             anywhere
logdrop    all  --  anywhere             anywhere

Chain FORWARD (policy DROP)
target     prot opt source               destination
DROP       all  --  192.168.10.8         192.168.10.0/24
DROP       all  --  192.168.10.0/24      192.168.10.8
logaccept  all  --  anywhere             anywhere             state RELATED,ESTABLISHED
logdrop    all  --  anywhere             anywhere
logdrop    all  --  anywhere             anywhere             state INVALID
logaccept  all  --  anywhere             anywhere
SECURITY   all  --  anywhere             anywhere
NSFW       all  --  anywhere             anywhere
logaccept  all  --  anywhere             anywhere             ctstate DNAT
logaccept  all  --  anywhere             anywhere

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
DROP       all  --  192.168.10.0/24      192.168.10.8
DROP       all  --  192.168.10.8         192.168.10.0/24

Chain ACCESS_RESTRICTION (0 references)
target     prot opt source               destination

Chain FUPNP (0 references)
target     prot opt source               destination
ACCEPT     udp  --  anywhere             192.168.10.5         udp dpt:54927
ACCEPT     tcp  --  anywhere             192.168.10.7         tcp dpt:32400

Chain INPUT_ICMP (1 references)
target     prot opt source               destination
RETURN     icmp --  anywhere             anywhere             icmp echo-request
RETURN     icmp --  anywhere             anywhere             icmp timestamp-request
logaccept  icmp --  anywhere             anywhere

Chain NSFW (1 references)
target     prot opt source               destination
logdrop    udp  --  anywhere             anywhere             udp spt:https
logdrop    udp  --  anywhere             anywhere             udp dpt:https
logdrop    udp  --  anywhere             anywhere             udp spt:www
logdrop    udp  --  anywhere             anywhere             udp dpt:www
logdrop    icmp --  anywhere             anywhere             icmp timestamp-request
logdrop    icmp --  anywhere             anywhere             icmp timestamp-reply
RETURN     all  --  anywhere             anywhere

Chain PControls (0 references)
target     prot opt source               destination
logaccept  all  --  anywhere             anywhere

Chain PTCSRVLAN (1 references)
target     prot opt source               destination

Chain PTCSRVWAN (1 references)
target     prot opt source               destination

Chain SECURITY (1 references)
target     prot opt source               destination
RETURN     tcp  --  anywhere             anywhere             tcpflags: FIN,SYN,RST,ACK/SYN limit: avg 1/sec burst 5
logdrop    tcp  --  anywhere             anywhere             tcpflags: FIN,SYN,RST,ACK/SYN
RETURN     tcp  --  anywhere             anywhere             tcpflags: FIN,SYN,RST,ACK/RST limit: avg 1/sec burst 5
logdrop    tcp  --  anywhere             anywhere             tcpflags: FIN,SYN,RST,ACK/RST
RETURN     icmp --  anywhere             anywhere             icmp echo-request limit: avg 1/sec burst 5
logdrop    icmp --  anywhere             anywhere             icmp echo-request
RETURN     all  --  anywhere             anywhere

Chain TIVOFILTER (2 references)
target     prot opt source               destination
DROP       all  --  192.168.10.0/24      192.168.10.8
DROP       all  --  192.168.10.8         192.168.10.0/24

Chain logaccept (8 references)
target     prot opt source               destination
LOG        all  --  anywhere             anywhere             state NEW LOG level warning tcp-sequence tcp-options ip-options prefix "ACCEPT "
ACCEPT     all  --  anywhere             anywhere

Chain logdrop (14 references)
target     prot opt source               destination
LOG        all  --  anywhere             anywhere             state NEW LOG level warning tcp-sequence tcp-options ip-options prefix "DROP "
DROP       all  --  anywhere             anywhere
    
por 08.12.2017 / 02:56