Tidak dapat mengakses port 80 dari lokasi jarak jauh tetapi berfungsi di lokal?

14

Saya memiliki server linux pada konfigurasi dengan apache. Namun saya tidak bisa mendapatkan akses menggunakan komputer jarak jauh.

Saya dapat ssh ke server secara normal.

tabel IP saya:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

netstat -ant

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN
tcp        0      0 SERVERIP:80                 0.0.0.0:*                   LISTEN
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN
tcp        0      0 0.0.0.0:45117               0.0.0.0:*                   LISTEN
tcp        0    196 SERVERIP:22                 MyIP:3149                   ESTABLISHED
tcp        0      0 :::111                      :::*                        LISTEN
tcp        0      0 :::22                       :::*                        LISTEN
tcp        0      0 :::47193                    :::*                        LISTEN

menggunakan Curl SERVERIP:80dan curl localhost:80, keduanya mengembalikan halaman default dari apache.

Apa yang bisa menjadi masalah?

DucDigital
sumber

Jawaban:

26

Anda perlu mengaktifkan akses ke server Anda pada port 80 karena saat ini sedang diblokir oleh iptables.

sudo /sbin/iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT

Ini akan memasukkan aturan ke konfigurasi iptables Anda di awal. Setelah Anda melakukan ini dan menguji itu berfungsi maka Anda harus menyimpan konfigurasi sehingga digunakan saat layanan dimulai,

sudo /sbin/service iptables save

ini akan menulis konfigurasi saat ini ke /etc/sysconfig/iptables.

Jika Anda menggunakan CentOS 7 maka FirewallD adalah cara yang tepat untuk pergi:

firewall-cmd --zone = publik --add-port = 80 / tcp

Verifikasi dengan browser Anda bahwa ia berfungsi, dan kemudian:

firewall-cmd --zone = publik --add-port = 80 / tcp --permanent

firewall-cmd --muat ulang

Untuk membuat perubahan permanen

Iain
sumber
1

Aturan iptables Anda hanya mengizinkan koneksi masuk pada port 22. Buka port 80 juga.

Paweł Brodacki
sumber
... dan cmd adalahiptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
onik
... yang benar, tetapi tidak akan berfungsi, karena akan menambahkan aturan ini di belakang yang menolak semua koneksi masuk yang TIDAK DITERIMA sebelumnya.
Paweł Brodacki
Itu benar, saya hanya terbiasa menambahkannya ke file aturan ke posisi yang benar, lupa menyebutkan. iptables -D FORWARD -j REJECT --reject-with icmp-host-prohibited, lalu yang sebelumnya, lalu tambahkan catch-all catchrule withiptables -A FORWARD -j REJECT --reject-with icmp-host-prohibited
onik
0

Anda juga dapat menggunakan layanan http default secara langsung

firewall-cmd --permanent --zone = publik --add-service = http

Edmond Chui
sumber