web-dev-qa-db-ja.com

PING icmp open socket:vserverでの操作は許可されていません

複数の仮想マシンがあるvserver環境を実行しています。単一のVMには次の問題があります:

$ ping 8.8.8.8
ping: icmp open socket: Operation not permitted

$ ls -l $(which ping)
-rwsr-xr-x 1 root root 30736 2007-01-31 00:10 /bin/ping

$ whoami
root

$ mount
/dev/hdv1 on / type ufs (defaults)
none on /proc type proc (0)
none on /tmp type tmpfs (size=16m,mode=1777)
none on /dev/pts type devpts (gid=5,mode=620)

$ uname -a
Linux v-web1 2.6.27.55-vs2.3.0.36.9 #1 SMP Tue Apr 28 11:35:00 CEST 2015 i686 GNU/Linux

ホストマシンだけでなく、他のすべてのVM hostetそこでも、Pingは正常に機能します。

誰か私を助けてくれるアイデアはありますか?

14
rexkogitans

解決策は、ホストマシンでrawソケットを許可するようにLinuxシステム機能を設定することです。

これはvサーバー固有の問題であるため、解決策は/etc/vservers/VMNAME/bcapabilitiesという名前の単一行のファイルを作成することです。

NET_RAW

vMを再起動します。

1
rexkogitans

TL; DRバージョン:再インストールiputils-ping

使用が提案されている場所をオンラインで見ました

chmod u+s $( which ping );

ただし、これにより、ユーザーはプリロードとフラッドを変更できます。これにより、ユーザーはローカルマシン、別のマシン、またはネットワークのいずれかでサービス不能を引き起こす可能性があります。

私は試しました @ nabil-bourenaneが示唆したこと 、再インストールiputils-pingこれで問題が解決し、SUIDビットが設定されていません。

username@server:~$ ls -l $( which ping );
-rwxr-xr-x 1 root root 44104 Nov  8  2014 /bin/ping

SUIDビットが設定されている場合は次のようになります

username@server:~$ ls -l $( which ping );
-rwsr-xr-x 1 root root 44104 Nov  8  2014 /bin/ping
12
Linx

コメントできません。最小限のインストールで稼働中のシステムのアーカイブを抽出した後、この問題が発生しました。

上記の答えはすべて機能します。しかし、@ Nabil Bourenaneと@Linxによって提案されたものは、セキュリティのために好まれます。 @rexkogitansのコメントに答えるために、ここではiputils-ping.postinst(/ var/lib/dpkg/info/...)から引用しています。

if command -v setcap > /dev/null; then
    if setcap cap_net_raw+ep /bin/ping; then
        chmod u-s /bin/ping
    else
        echo "Setcap failed on /bin/ping, falling back to setuid" >&2
        chmod u+s /bin/ping
    fi
else
    echo "Setcap is not installed, falling back to setuid" >&2
    chmod u+s /bin/ping
fi

基本的には、iputils-pingを設定するときに、最初にsetcapを試し、それが失敗した場合はchmod u + sを使用することを述べています。これが、iputils-pingの再インストールが機能する理由です。

2
rlf