Ping : sendmsg : 아치 GNU / 리눅스에 iptables를 설치 한 후 작업이 허용되지 않음 오류


15

어제 홈 서버 인 HP Proliant Microserver로 새 컴퓨터를 구입했습니다. 커널 버전 3.2.12로 Arch Linux를 설치했습니다.

iptables (1.4.12.2-현재 버전 AFAIK)를 설치하고 net.ipv4.ip_forward키를 1로 변경 하고 iptables 구성 파일에서 전달 (및 재부팅)을 수행 한 후 시스템은 네트워크 인터페이스를 사용할 수 없습니다. 핑 실패

Ping: sendmsg: operation not permitted

iptables를 완전히 제거하면 네트워킹은 가능하지만 로컬 네트워크와 인터넷 연결을 공유해야합니다.

eth0 -wan NIC가 마더 보드에 통합되었습니다 (Broadcom NetXtreme BCM5723).

eth1 -PCI Express 슬롯의 LAN NIC (Intel 82574L 기가비트 네트워크)

iptables없이 작동하기 때문에 (서버는 인터넷에 액세스 할 수 있으며 내부 네트워크에서 ssh로 로그인 할 수 있습니다) iptables와 관련이 있다고 가정합니다. 나는 iptables에 대한 많은 경험이 없기 때문에 이것을 참조로 사용했습니다 (물론 서로 분리되어 있습니다 ...) :

wiki.archlinux.org/index.php/Simple_stateful_firewall#Setting_up_a_NAT_gateway

revsys.com/writings/quicktips/nat.html

howtoforge.com/nat_iptables

이전 서버에서 revsys 안내서를 사용하여 nat를 설정하고 매력처럼 작동했습니다.

전에 이런 경험이 있습니까? 내가 도대체 ​​뭘 잘못하고있는 겁니까?

답변:


23

오류 메시지 :

Ping: sendmsg: operation not permitted

서버가 ICMP 패킷을 보낼 수 없음을 의미합니다. 서버가 구성된 인터페이스 중 하나 이상을 통해 트래픽을 보내도록 허용해야합니다. 다음과 같이하면됩니다 :

  1. 박스에서 나가는 모든 트래픽을 허용하도록 OUTPUT체인 정책을 설정 ACCEPT하십시오.

    sudo iptables -P OUTPUT ACCEPT
    
  2. OUTPUT체인 정책을 설정 DROP한 다음 필요한 트래픽 유형을 선택적으로 허용하십시오.

이것은 체인뿐만 아니라 모든 체인에 적용됩니다 OUTPUT. INPUTchain은 박스에서 수신 한 트래픽을 제어합니다. FORWARD체인은 상자를 통해 전달 된 트래픽을 처리합니다.


Ping은 단지 예일 뿐이며 udp 패킷이나 tcp 패킷도 보낼 수 없습니다.
estol

그럼에도 같은 생각이 적용됩니다
Khaled

당신이 말한 것을 똑같이 시도했습니다. 이전 서버에서 규칙을 가져 왔으며 이는 부분적으로 작동합니다. 모든 클라이언트는 도메인 이름을 조회 할 수 있으며 핑할 수는 있지만 웹을 찾아 볼 수는 없습니다. 프록시를 해결 방법으로 설치했습니다 (서버에 대한 연결과 마찬가지로 서버의 연결이 양호하기 때문에).이 방법으로 많은 서비스가 작동하지 않습니다 (Trillian, Skype).
estol

출력 체인 정책을 수락하도록 설정하는 명령은 무엇입니까 ??
Joseph Astrahan

4
@JosephAstrahan :sudo iptables -P OUTPUT ACCEPT
Khaled

2

나에게 데비안 9에서는 다시 설치하는 데 도움이되었습니다 ping.

apt-get install --reinstall iputils-ping 

또한 yum upgrade iputils.x86_64"물리적"운영 체제를 VM에 복제 한 후 CentOS 7 (실제로 패키지 업그레이드)에서 작업했습니다. 중요한지 확실하지 않습니다.
yahol
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.