การกำหนดค่า OpenVPN เพื่อใช้ Firewalld แทน iptables บน Centos 7


14

ฉันจำเป็นต้องกำหนดค่า OpenVPN บน Centos 7 firewalldใช้

ฉันใช้ iptables กับ Centos 6.5 และต้องเพิ่มบรรทัดต่อไปนี้เท่านั้น/etc/sysconfig/iptables:

-A POSTROUTING -s "10.0.0.0/24" -o "wlan0" -j MASQUERADE 
-A FORWARD -p tcp -s 10.0.0.0/24 -d 0.0.0.0/0 -j ACCEPT 
run the command: echo 1 > /proc/sys/net/ipv4/ip_forward 
open port 443.

คำตอบ:


31

ใช้firewall-cmdคำสั่ง

สมมติว่าคุณเปิดไฟร์วอลล์ถึง OpenVPN ในโซนเริ่มต้นให้ทำตามคำสั่งต่อไปนี้ หากคุณใช้งานบนโซนที่ไม่ใช่ค่าเริ่มต้นให้เพิ่ม--zone=<zone>ไปยังคำสั่ง

หมายเหตุ: หากคุณใช้publicโซนเริ่มต้นสำหรับอะแดปเตอร์เครือข่ายภายนอกที่หันหน้าไปทางอินเทอร์เฟซแบบวนรอบของคุณอาจถูกปลอมแปลง (ขึ้นอยู่กับรุ่นที่firewalldคุณใช้) ซึ่งอาจทำให้เกิดปัญหาหากคุณใช้บริการ (เช่น mySQL) ในท้องถิ่น

ก่อนรายการสิ่งที่เปิดอยู่ในปัจจุบัน:

# firewall-cmd --list-services
http https ssh

ถัดไปเพิ่มopenvpnบริการ:

# firewall-cmd --add-service openvpn
success

ตรวจสอบอย่างรวดเร็ว:

# firewall-cmd --list-services
http https openvpn ssh

ด้านบนจะอนุญาตให้openvpnทำงานซึ่งคุณสามารถทดสอบได้ อย่างไรก็ตามจะไม่สามารถรีสตาร์ตได้นาน หากต้องการทำให้ถาวรให้เพิ่ม--permanentตัวเลือก:

# firewall-cmd --permanent --add-service openvpn`
success

โปรดทราบว่าคำสั่งสุดท้ายนี้ไม่ได้เปิดพอร์ตจนกว่าจะรีสตาร์ทครั้งถัดไปดังนั้นคุณต้องใช้ทั้งสองคำสั่ง

ในที่สุดเพิ่มหน้ากาก:

# firewall-cmd --add-masquerade
success

และทำให้ถาวรหลังจากรีสตาร์ท:

# firewall-cmd --permanent --add-masquerade
success

ยืนยัน:

# firewall-cmd --query-masquerade
yes

โปรดทราบว่าหากการเชื่อมต่อ OpenVPN ที่เข้ามาของคุณอยู่ในโซนที่แตกต่างกับการเชื่อมต่ออินเทอร์เน็ตของคุณการปลอมแปลงควรอยู่หลังและคุณจะต้องใช้--zone=<zone>ตัวเลือกที่มี--add-masqueradeคำสั่ง


คุณจะบอกความหมายของบริการ openvpn ใน firewalld ได้อย่างไร? ตัวอย่างเช่นคุณจะตรวจสอบว่ามันอนุญาตให้ openvpn ผ่าน TCP 443 ได้อย่างไร
Christopher

@Christopher - /lib/firewalld/services/ไฟล์บริการจะอยู่ใน ในกรณีของคุณมันจะopenvpn.xmlอยู่ในไดเรกทอรีนั้น บริการที่ผู้ใช้กำหนดเข้า/etc/firewalld/servicesมา หมายเหตุว่าพอร์ตเริ่มต้นสำหรับ OpenVPN UDP/1194คือ
garethTheRed

1
ขอบคุณ ฉันมีปัญหาและคิดว่าอาจเป็นไฟร์วอลล์ สิ่งเดียวที่ฉันทำแตกต่างจากคำแนะนำข้างต้นคือใช้ "https" แทน "openvpn" เป็นชื่อบริการที่จะเพิ่ม ปรากฎว่าไม่ใช่ไฟร์วอลล์ที่มีปัญหา ฉันเป็นคนโง่และลืมกำหนดค่าไคลเอนต์ของฉันอย่างถูกต้องให้ใช้ "tun" แทน "tap" คำแนะนำข้างต้นทำงานได้อย่างสมบูรณ์
Christopher

1
ฉันสังเกตเห็นปัญหากับการเพิ่มมาสเคอเรดในทั้งโซน สิ่งนี้พยายามที่จะ NAT การเชื่อมต่อของฉันไปยังอินเทอร์เฟซย้อนกลับเมื่อฉันเรียกใช้บริการอื่น ๆ บน localhost ฉันต้องการ จำกัด การหลอกลวงให้เหลือแค่ 10.8.0.0/16 คุณมีความคิดอย่างไรที่จะทำเช่นนั้น?
Christopher

1
ข้อผิดพลาดนี้อาจเป็นสาเหตุ โดยทั่วไปถ้าโซนเริ่มต้นของคุณคือpublicโซนมันจะทำการปลอมแปลงอินเทอร์เฟซย้อนกลับ ปรากฎว่าก่อนหน้านี้ฉันได้ตั้งค่าโซนเริ่มต้นของฉันเป็นexternalดังนั้นจึงไม่เคยประสบปัญหาที่คุณเห็น ลองย้ายเซอร์วิสและอะแด็ปเตอร์ไปยังโซนอื่นเพื่อดูว่ามีประโยชน์หรือไม่ แจ้งให้เราทราบ :-)
garethTheRed
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.