Запретить iptables блокировать исходящий доступ

Apache на Centos6 позволяет получить доступ от удаленных клиентов. Однако сервер не разрешает исходящий доступ (например, ping google.com , ssh и т. Д.), Если я не отключу iptables.

Почему iptables блокирует исходящий доступ и как я могу предотвратить это?

 [Michael@vps2 ~]$ ping google.com ^C [Michael@vps2 ~]$ ping localhost PING localhost.localdomain (127.0.0.1) 56(84) bytes of data. 64 bytes from localhost.localdomain (127.0.0.1): icmp_seq=1 ttl=64 time=0.019 ms ^C --- localhost.localdomain ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 789ms rtt min/avg/max/mdev = 0.019/0.019/0.019/0.000 ms [Michael@vps2 ~]$ sudo /etc/init.d/iptables status Table: mangle Chain PREROUTING (policy ACCEPT) num target prot opt source destination Chain INPUT (policy ACCEPT) num target prot opt source destination Chain FORWARD (policy ACCEPT) num target prot opt source destination Chain OUTPUT (policy ACCEPT) num target prot opt source destination Chain POSTROUTING (policy ACCEPT) num target prot opt source destination Table: filter Chain INPUT (policy DROP) num target prot opt source destination 1 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 2 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 3 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:1443 5 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:10000 6 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 7 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:1337 8 DROP all -- 0.0.0.0/0 0.0.0.0/0 Chain FORWARD (policy DROP) num target prot opt source destination Chain OUTPUT (policy ACCEPT) num target prot opt source destination [Michael@vps2 ~]$ sudo iptables -L -v Chain INPUT (policy DROP 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 380 41335 ACCEPT tcp -- any any anywhere anywhere tcp dpt:ssh 0 0 ACCEPT tcp -- any any anywhere anywhere tcp dpt:http 0 0 ACCEPT tcp -- any any anywhere anywhere tcp dpt:https 0 0 ACCEPT tcp -- any any anywhere anywhere tcp dpt:ies-lm 0 0 ACCEPT tcp -- any any anywhere anywhere tcp dpt:ndmp 2 168 ACCEPT all -- lo any anywhere anywhere 0 0 ACCEPT tcp -- any any anywhere anywhere tcp dpt:menandmice-dns 23 1208 DROP all -- any any anywhere anywhere Chain FORWARD (policy DROP 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 352 packets, 55019 bytes) pkts bytes target prot opt in out source destination [Michael@vps2 ~]$ sudo /etc/init.d/iptables stop iptables: Setting chains to policy ACCEPT: mangle filter [ OK ] iptables: Flushing firewall rules: [ OK ] iptables: Unloading modules: [ OK ] [Michael@vps2 ~]$ ping google.com PING google.com (172.217.4.110) 56(84) bytes of data. 64 bytes from ord36s04-in-f110.1e100.net (172.217.4.110): icmp_seq=1 ttl=55 time=1.08 ms 64 bytes from ord36s04-in-f110.1e100.net (172.217.4.110): icmp_seq=2 ttl=55 time=1.00 ms ^C --- google.com ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1209ms rtt min/avg/max/mdev = 1.002/1.045/1.088/0.043 ms [Michael@vps2 ~]$ 

Во-первых, вам нужно включить Связанные и устаревшие пакеты. Поместите его поверх списка правил.

 # iptables -I INPUT 1 -m state --state ESTABLISHED,RELATED -j ACCEPT 

кроме того, ICMP – это другой протокол, чем TCP и UDP, вы должны явно разрешить его. Я обычно разрешаю ICMP полностью, так как блокирование может иногда создавать проблемы с такими вещами, как фрагментация.

 # iptables -I INPUT 2 -p icmp -j ACCEPT 

еще одна вещь: вместо добавления правила «drop all» вы можете изменить политику цепочки:

 # iptables -P INPUT DROP