
저는 Linux와 iptables
. 2개의 네트워크 인터페이스( eth0
및 ) 가 있는 PC에 Ubuntu Server 배포판(12.04)이 있습니다 eth1
. 또한 2개의 노트북이 있는데 하나는 에 연결되어 eth0
있고 다른 하나는 에 연결되어 있습니다 eth1
.
laptop1 ipconfig: 172.16.221.120 - 255.255.252.0 laptop2 ipconfig: 192.168.222.250 - 255.255.255.0
laptop1에서 laptop2를 성공적으로 핑하고 싶습니다.
INPUT
만들고 규칙을 만들어야 합니까 OUTPUT
? 아니면 FORWARD
규칙도 있나요?
나는 이것을 시도했지만 성공하지 못했습니다.
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
답변1
tcpdump
핑이 얼마나 멀리 왔는지 확인하려면 다음을 사용할 수 있습니다 .
tcpdump -i eth0 -n icmp
tcpdump -i eth1 -n icmp
게다가 서버에서 핑을 허용하는 것만으로는 충분하지 않습니다. 랩톱은 서버(라우팅)를 통해 다른 랩톱에 연결할 수 있도록 구성되어야 합니다.
아마도 방화벽에는 응답 패킷을 허용하는 규칙이 있을 것입니다. 그렇지 않다면 당신도 필요합니다
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
어쨌든 두 노트북이 다른 노트북을 핑하도록 허용하고 싶기 때문에 이는 의미가 있습니다. 하지만 이를 핑과 퐁으로 제한할 수도 있습니다.
iptables -A FORWARD -i eth1 -o eth0 -p icmp --icmp-type echo-request -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -p icmp --icmp-type echo-reply -j ACCEPT
마지막 문제는 랩톱 자체입니다. 그 중 적어도 하나에 자체 방화벽이 있는 경우 핑을 차단할 수 있습니다(일반적으로 또는 인터페이스 네트워크 외부의 소스 주소로 인해).
답변2
기본적으로 netfilter 체인은 ACCEPT
기본 정책으로 비어 있으므로 규칙이 필요하지 않습니다. 이미 규칙을 추가한 경우 핑 통과를 허용하려면 체인에 규칙을 추가해야 합니다 FORWARD
.
또한 서버를 라우터로 설정하고 각 랩톱에 서버가 기본 경로로 있는지 확인해야 합니다(또는 최소한 다른 랩톱의 서브넷에 대한 경로가 있는지).
/proc/sys/net/ipv4/ip_forward
라우팅(IP 전달)을 활성화하려면 로 설정해야 합니다 1
. Ubuntu에는 /etc/sysctl.conf
항목을 자동으로 설정할 수 있는 위치 가 있어야 합니다 /proc/sys
.
# Uncomment the next line to enable packet forwarding for IPv4
#net.ipv4.ip_forward=1
이를 변경하는 경우 변경 사항을 커널에 로드해야 합니다.
sudo sysctl -p /etc/sysctl.conf
변경 사항은 다음 부팅 시 자동으로 로드되므로 변경 후 이 명령을 수동으로 한 번만 실행하면 됩니다 /etc/sysctl.conf
.