Buka port 80 di CentOS 6.5

14

Saya mencoba membuka Port 80 di CentOS 6.5 saya, di mesin virtual saya, sehingga saya dapat mengakses apache dari browser desktop saya.

masukkan deskripsi gambar di sini

Jika Anda melihat screenshot di atas .... Saya telah menambahkan baris sebelum panah biru, seperti yang tertulis di http://www.cyberciti.biz/faq/linux-iptables-firewall-open-port- 80 / Sekarang saya mendapatkan halaman tes apache ketika memasukkan alamat IP di browser saya, tetapi masih ketika me-restart iptables, saya mendapatkan "GAGAL" ketika CentOS mencoba menerapkan aturan baru.

Adakah yang tahu solusi untuk ini? Atau apakah saya perlu mengabaikan kegagalan?

Erik van de Ven
sumber

Jawaban:

28

Daripada memasukkan aturan secara manual yang bisa Anda gunakan iptablesuntuk menambahkan aturan ke rantai yang sesuai dan kemudian menyimpannya. Ini akan memungkinkan Anda untuk men-debug aturan secara langsung, mengkonfirmasikannya sudah benar, daripada harus menambahkannya ke file seperti yang tampaknya Anda lakukan.

Untuk membuka port 80 saya melakukan ini:

$ sudo iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
$ sudo /etc/init.d/iptables save

Perintah terakhir akan menyimpan aturan yang ditambahkan. Ini adalah aturan yang akan saya gunakan untuk membuka port untuk lalu lintas web.

Mengapa aturan Anda menyebabkan masalah

Jika Anda perhatikan aturan yang Anda coba gunakan:

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

Memiliki rantai yang disebut "RH-Firewall-1-INPUT". Jika Anda tidak memiliki rantai ini, atau tautan dari INPUTrantai ke rantai ini, maka aturan ini tidak akan pernah bisa dijangkau. Aturan ini mungkin bisa seperti ini:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

Atau INPUTrantai Anda harus terhubung ke rantai ini RH-Firewall-1-INPUTdengan aturan seperti ini:

$ sudo iptables --list
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination
1    RH-Firewall-1-INPUT  all  --  0.0.0.0/0            0.0.0.0/0
....

CATATAN: Anda dapat melihat rantai apa yang Anda miliki dengan perintah ini:

$ sudo iptables -L| grep Chain
Chain INPUT (policy ACCEPT)
Chain FORWARD (policy ACCEPT)
Chain OUTPUT (policy ACCEPT)
...

Negara-negara bagian mungkin perlu dimodifikasi agar koneksi yang ada juga diizinkan.

-A INPUT -m state --state NEW,ESTABLISHED -m tcp -p tcp --dport 80 -j ACCEPT

Juga saat Anda menggunakan -Asakelar, Anda menambahkan aturan ke rangkaian INPUT. Jika ada aturan lain sebelum itu yang memblokir dan / atau mengganggu pencapaian aturan ini, itu tidak akan pernah dieksekusi. Jadi, Anda mungkin ingin memindahkannya ke atas dengan memasukkan daripada menambahkan, seperti ini:

-I INPUT -m state --state NEW,ESTABLISHED -m tcp -p tcp --dport 80 -j ACCEPT

Menggunakan GUI

Firewall bisa menjadi binatang yang rumit. Jadi, Anda mungkin ingin mencoba TUI sebagai gantinya (TUI adalah GUI untuk terminal).

$ sudo system-config-firewall-tui

Anda kemudian dapat pergi melalui berbagai layar pengaturan iptablesaturan.

            ss # 1

            ss # 2

Referensi

slm
sumber
Aturan terakhir menghapus semua aturan sebelumnya dalam file iptables saya dan menambahkan hanya yang di atas (sudo iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT). Sekarang saya tidak dapat mengakses halaman apache dari browser saya lagi.
Erik van de Ven
1
@ErikVandeVen - maaf saya tidak membuatnya lebih jelas. Aturan lain yang Anda miliki perlu ditambahkan dengan cara yang sama dan disimpan (pada saat yang sama), atau Anda dapat pergi ke file /etc/sysconfig/iptablesdan menambahkannya. Entri asli Anda harus di file ini /etc/sysconfig/iptables.save,.
slm
Terima kasih, saya dapat mengembalikan iptables dengan menyalin iptables.save. Tetapi saya masih tidak dapat menambahkan aturan tanpa mengalami kegagalan dan dapat membuka halaman pengujian apache di browser saya, pada saat yang sama. Saya akan melihat tutorial yang telah diposting riclags, pertama :)
Erik van de Ven
1
Sobat, saya benar-benar tidak mengerti mengapa jawaban ini menerima satu pun seperti belum. Balasan terperinci yang luar biasa. Anggap satu saya seperti seribu terima kasih.
Samiron
1
Firewall GUI itu adalah pengiriman dewa, belum pernah melihat itu sebelumnya!
Matt Fletcher
0

Saya baru-baru ini menginstal CentOS 6.5 sebagai mesin virtual untuk alasan yang sama, untuk digunakan sebagai server web virtual. Ngomong-ngomong, saya mengikuti cara-cara yang sangat rinci dari CentOS wiki . Kemudian, sesuai jawaban @slm, saya menambahkan port 80 ke sana dan disimpan menggunakan sudo /etc/init.d/iptables save.

iptables -L -v memiliki output ini:

Chain INPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  lo     any     anywhere             anywhere            
  214 17168 ACCEPT     all  --  any    any     anywhere             anywhere            state RELATED,ESTABLISHED 
    1    44 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:ssh 
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:http 

Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 169 packets, 15164 bytes)
 pkts bytes target     prot opt in     out     source               destination
baktin
sumber
0

Jika ingin mengedit pengaturan firewall Anda tetapi Anda tidak terbiasa iptables, saya sarankan Anda untuk menggunakan system-config-firewall-tuialat ini jika Anda tidak memiliki server X, gunakan system-config-firewall, yang merupakan alat GUI untuk itu.

ludiegu
sumber