저는 로컬 네트워크용 eth0과 인터넷용 eth1(동적 IP가 있는 케이블 모뎀)이 있는 홈 서버(슬랙웨어 13 포함)를 가지고 있습니다.
iptables에 대해 더 많이 배우고 싶지만 아직 진행 중이고 몇 가지 규칙을 완료해야 하지만, 서버가 손상되는 것을 원하지 않기 때문에 그렇게 하는 방법을 배울 때까지는 그렇게 할 수 없습니다. 이 단계.
현재 내 규칙과 모든 것을 사용할 수 있는 VM이 있습니다. 누군가가 iptables가 다음을 수행하도록 방화벽 규칙을 래핑할 수 있다면 정말 감사하겠습니다.
- eth0에 있는 dhcp 서버의 모든 사용자가 인터넷과 서버에 대한 전체 액세스 권한을 갖도록 허용합니다. 즉, eth0에는 네트워크와 서버 내에서 어떠한 제한도 없어야 합니다.
- 모든 사용자가 서버를 생성할 수 있도록 허용합니다. 예를 들어 워크래프트와 같은 게임을 플레이하고 게임을 생성하는 경우 방화벽은 이러한 연결 협상을 허용해야 합니다.
- 서버 또는 네트워크 사용자가 시작하지 않는 한 인터넷에서 서버로의 모든 요청을 차단합니다.
답변1
그렇다면 기본적으로 Linux 상자는 방화벽 역할을 합니까?
먼저 IP 전달을 활성화합니다.
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/conf/all/forwarding
그런 다음 몇 가지 전달 규칙을 추가합니다.
iptables -A FORWARD -i eth0 -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
FORWARD 체인을 보호하세요.
iptables -P FORWARD DROP
NAT 규칙을 만듭니다.
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
마지막으로 기본 경로가 있는지 확인하는 것을 잊지 마세요.
ip route show | grep default
다음과 비슷한 내용이 표시됩니다.
default via <IP_of_eth1's_gateway> dev eth1
그렇지 않은 경우 하나를 추가하십시오.
ip route add default vie <IP_of_eth1's_gateway> dev eth1
(일반적으로 DHCP 클라이언트는 자동으로 하나를 추가합니다)
답변2
서버를 허용하려면 포트 전달 규칙을 수동으로 추가하거나 uPnP 데몬을 사용할 수 있습니다(응용 프로그램이 uPnP를 지원하는 경우 - 많은 응용 프로그램이 지원합니다...) [linux-igd][1]
.
NAT-PMP는 유사하며 일부 다른 응용 프로그램에서도 사용됩니다. Linux에 대한 한 가지 구현은여기.