Bir uygulamanın İnternet erişimini engellemem gerekiyor. Ben araştırdım ve bu tarifi buldum:
- "İnternetsiz" grubu oluşturun.
-Bu satır ile netblock.sh betiğini yaz:
sg no-internet "$1"
- Bu kuralı iptables'a ekle:
iptables -I OUTPUT 1 -m owner --gid-owner no-internet ! -d 192.168.1.0/24 -j DROP
-Run uygulaması:
$ netblock.sh /path/to/binary
Dış dünyaya erişimi engellemek, ancak yerel ağa erişim vermek istediğimi unutmayın.
Çalıştığına dair raporlar gördüm, ama benim için işe yaramadı.
Ping ile test etmek:
$ ping www.google.com
PING www.google.com (216.58.222.100) 56(84) bytes of data.
64 bytes from rio01s16-in-f100.1e100.net (216.58.222.100): icmp_seq=1 ttl=54 time=43.5 ms
64 bytes from rio01s16-in-f100.1e100.net (216.58.222.100): icmp_seq=2 ttl=54 time=42.3 ms
^C
$ netblock.sh "ping www.google.com"
ping: www.google.com: Temporary failure in name resolution
İşe yarıyor. Ancak...
$ ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.324 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.379 ms
^C
$ netblock.sh "ping 192.168.1.1"
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
ping: sendmsg: Operation not permitted
ping: sendmsg: Operation not permitted
^C
Yerel ağ da engelleniyor ve bunu istemiyorum. Neyi yanlış yapıyorum?
iptables
herhangi bir güvenlik duvarı kuralının karışıp karışmadığını kontrol ettiniz mi?