LAN으로의 트래픽은 차단하지만 인터넷으로의 트래픽은 허용 (iptables) destination 1

내 홈 네트워크에서 교육 목적으로 약 12여 년 동안 사용될 CentOS 서버를 설정하고 있습니다. 예를 들어 Linux 쉘을 사용하고 웹 사이트를 호스팅하는 방법 등을 배우십시오. 라우터에 포트 22와 포트 80이 있으므로 인터넷을 통해 SSH를 통해 로그인 할 수 있습니다.

이 사용자를 완전히 신뢰할 수 없으므로 현재 서버를 통해 가능한 한 많은 서버를 잠그려고합니다 (권한 확인, 급류 차단 등). 서버를 통해 네트워크의 나머지 컴퓨터를 조사하는 사람들을 원하지 않기 때문에 인터넷에 대한 트래픽을 허용하면서 로컬 LAN의 컴퓨터에 대한 트래픽을 차단하고 싶습니다.

iptables에 익숙하지는 않지만 몇 가지 iptables 규칙을 설정하려고 시도했습니다. 먼저 트래픽을 192.168.1.1 (라우터) 및 192.168.1.2 (서버를 구성하는 데 사용하는 컴퓨터)로 트래픽을 허용 한 다음 차단합니다. 192.168.1.0/24로 트래픽을 보내고 해당 트래픽을 기록합니다. 나머지 트래픽은 허용되어야합니다. 그러나 문제는 서버가 인터넷에 연결할 수 없다는 것입니다.

내 현재 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

허용 된 IP 핑 (192.168.1.1 및 192.168.1.2)은 작동하지만 (좋은) Google에 핑 (ping)해도 좋지 않습니다.

[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

물론 사람들에게 네트워크의 서버에 대한 액세스 권한을 부여하는 것과 관련하여 어느 정도의 신뢰가 있다는 것을 알고 있지만 가능한 한 많이 강화하고 싶습니다. 누구든지 내가 할 수있는 다른 일에 대해 의견을 말할 수 있다면 그 점에 대해서도 감사하겠습니다.

미리 감사드립니다!



답변

OK 나는 문제를 스스로 알아 냈으므로 참조를 위해 내 자신의 질문에 대답 할 것입니다. 문제는 모든 트래픽이 LOGGING 체인을 통과하고 있었고 LOGGING 체인의 두 번째 규칙이 모든 트래픽을 삭제한다는 것입니다. LOGGING 체인에서 규칙 2를 제거하고 모든 것이 작동했습니다.


답변

비슷한 과제를 겪고 있습니다. LAN에서 분리하려는 여러 가지 취약점이있는 IOT 장치가 있지만 분리하고 싶지 않은 다른 장치와 스위치를 통해 연결되어 있습니다. 별도의 체인을 만들고 입력 체인의 시작 부분에 IOT 장치의 소스 또는 IOT 장치의 대상이있는 모든 항목에 대한 참조를 입력 한 다음 소스가 LAN 및 대상은 IoT 다음 DROP이거나 소스가 IoT이고 대상이 LAN 인 경우 DROP이지만 패킷을 삭제하지 못하고 장치를 ping하고 액세스 할 수는 없습니다. 심지어 다른 규칙의 시작 부분에 규칙을 추가하여 차이가 있었지만 운이 없는지 확인했습니다. 어떤 아이디어?

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


답변