내 홈 네트워크에서 교육 목적으로 약 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
물론 사람들에게 네트워크의 서버에 대한 액세스 권한을 부여하는 것과 관련하여 어느 정도의 신뢰가 있다는 것을 알고 있지만 가능한 한 많이 강화하고 싶습니다. 누구든지 내가 할 수있는 다른 일에 대해 의견을 말할 수 있다면 그 점에 대해서도 감사하겠습니다.
미리 감사드립니다!