Mở cổng 80 trong CentOS 6.5


14

Tôi đang cố mở Cổng 80 trong CentOS 6.5, trên máy ảo của mình, vì vậy tôi có thể truy cập apache từ trình duyệt trên máy tính để bàn của mình.

nhập mô tả hình ảnh ở đây

Nếu bạn nhìn vào ảnh chụp màn hình ở trên .... Tôi đã thêm dòng trước mũi tên màu xanh, như được viết trên http://www.cyberciti.biz/faq/linux-iptables-firewall-open-port- 80 / Bây giờ tôi nhận được trang kiểm tra apache khi nhập địa chỉ IP trong trình duyệt của mình, nhưng khi khởi động lại iptables, tôi nhận được "FAILED" khi CentOS cố gắng áp dụng quy tắc mới.

Có ai biết một giải pháp cho điều này? Hay tôi cần bỏ qua thất bại?

Câu trả lời:


28

Thay vì nhập các quy tắc theo cách thủ công, bạn có thể sử dụng iptablesđể thêm các quy tắc vào các chuỗi thích hợp và sau đó lưu chúng. Điều này sẽ cho phép bạn gỡ lỗi các quy tắc trực tiếp, xác nhận chúng là chính xác, thay vì phải thêm chúng vào tệp như bạn đang làm.

Để mở cổng 80 tôi làm điều này:

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

Lệnh cuối cùng sẽ lưu các quy tắc được thêm vào. Đây là quy tắc tôi sẽ sử dụng để mở cổng cho lưu lượng truy cập web.

Tại sao quy tắc của bạn gây ra vấn đề

Nếu bạn nhận thấy quy tắc bạn đang cố sử dụng:

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

Có một chuỗi gọi là "RH-Firewall-1-INPUT". Nếu bạn không có chuỗi này hoặc liên kết từ INPUTchuỗi đến chuỗi này, thì quy tắc này sẽ không bao giờ có thể truy cập được. Quy tắc này có thể giống như thế này:

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

Hoặc INPUTchuỗi của bạn nên liên kết với chuỗi này RH-Firewall-1-INPUTvới quy tắc như thế này:

$ 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
....

LƯU Ý: Bạn có thể thấy những chuỗi bạn có với lệnh này:

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

Ngoài ra, các trạng thái có thể cần phải được sửa đổi để các kết nối hiện có cũng được cho phép.

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

Ngoài ra khi bạn sử dụng công -Atắc, bạn sẽ thêm quy tắc vào chuỗi INPUT. Nếu có các quy tắc khác trước khi nó bị chặn và / hoặc can thiệp vào việc tiếp cận quy tắc này, nó sẽ không bao giờ được thực thi. Vì vậy, bạn có thể muốn di chuyển nó lên đầu bằng cách chèn thay vì nối thêm, như thế này:

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

Sử dụng GUI

Tường lửa có thể là những con thú phức tạp. Vì vậy, bạn có thể muốn thử TUI thay thế (TUI là GUI dành cho thiết bị đầu cuối).

$ sudo system-config-firewall-tui

Sau đó, bạn có thể đi qua các màn hình khác nhau để thiết lập iptablesquy tắc.

            ss # 1

            ss # 2

Người giới thiệu


Quy tắc cuối cùng đã xóa tất cả các quy tắc trước đó trong tệp iptables của tôi và chỉ thêm một quy tắc ở trên (sudo iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT). Bây giờ tôi cũng không thể truy cập trang apache từ trình duyệt của mình nữa.
Erik van de Ven

1
@ErikVandeVen - xin lỗi tôi đã không làm cho nó rõ ràng hơn. Các quy tắc khác mà bạn cần phải được thêm vào theo cách tương tự và được lưu (tại thời điểm lấy mẫu) hoặc bạn có thể truy cập tệp /etc/sysconfig/iptablesvà thêm chúng. Các mục gốc của bạn nên có trong tập tin này /etc/sysconfig/iptables.save.
slm

Cảm ơn, tôi đã có thể khôi phục iptables bằng cách sao chép iptables.save. Nhưng tôi vẫn không thể thêm quy tắc mà không gặp lỗi và có thể mở trang kiểm tra apache trong trình duyệt của mình cùng một lúc. Tôi sẽ xem hướng dẫn mà riclags đã đăng, đầu tiên :)
Erik van de Ven

1
Man, tôi hoàn toàn không hiểu tại sao câu trả lời này lại nhận được bất kỳ một lượt thích nào. Trả lời chi tiết tuyệt vời. Hãy xem xét một trong những lời cảm ơn của tôi.
Samiron

1
GUI tường lửa đó là một thần gửi, chưa từng thấy điều đó trước đây!
Matt Fletcher

0

Gần đây tôi đã cài đặt CentOS 6.5 như một máy ảo vì lý do tương tự, để sử dụng như một máy chủ web ảo. Dù sao, tôi đã làm theo hướng dẫn rất chi tiết này từ wiki CentOS . Sau đó, theo câu trả lời của @slm, tôi đã thêm cổng 80 vào đó và lưu lại bằng cách sử dụng sudo /etc/init.d/iptables save.

iptables -L -v có đầu ra này:

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

0

Nếu muốn chỉnh sửa cài đặt tường lửa của bạn nhưng bạn không quen thuộc iptables, tôi khuyên bạn nên sử dụng system-config-firewall-tuicông cụ này nếu bạn chưa sử dụng máy chủ X, sử dụng system-config-firewallcông cụ GUI cho nó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.