Giới thiệu về IP Tables

Chia sẻ: Hai Hoang | Ngày: | Loại File: PDF | Số trang:25

0
54
lượt xem
15
download

Giới thiệu về IP Tables

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ
Lưu

Nội dung Text: Giới thiệu về IP Tables

  1. Gi i thi u v Iptables Tài li u này ư c d ch t http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch14 _:_Linux_Firewalls_Using_iptables V n còn r t thi u sót trong tài li u này . Mong m i ngư i ng h và óng góp ý ki n tài li u này hoàn thi n hơn . M i ý ki n óng góp xin g i v trannhathuy@gmail.com . Tp H Chí Minh , 12/2006 Nhóm biên d ch : Tr n Nh t Huy Hoàng H i Nguyên Ngô Trí Hùng Nam -1 -
  2. I. GI I THI U V IPTABLES: B o m t m ng là m t v n quan tr ng hàng u i vi c l p m t website , cũng như nhi u d ch v khác trên m ng . M t trong nh ng cách b o v là s d ng firewall . bài vi t này s cho th y làm sao chuy n m t Linux server thành : • M t firewall ng th i cho mail server , web server , DNS server. • M t thi t b d n ư ng ( router ) s dùng NAT và chuy n ti p c ng ( port forwarding ) v a b o v h th ng m ng c a b n , v a cho phép m t web server công khai chia s a ch IP firewall . M t trong nh ng firewall thông d ng nh t ch y trên Linux là iptables . Ta s xem qua m t s ch c năng c a iptables : • Tích h p t t v i Linux kernel , c i thi n s tin c y và t c ch y iptables . • Quan sát k t t c các gói d li u . i u này cho phép firewall theo dõi m i m t k t n i thông qua nó , và dĩ nhiên là xem xét n i dung c a t ng lu ng d li u t ó tiên li u hành ng k ti p c a các giao th c . i u này r t quan tr ng trong vi c h tr các giao th c FTP , DNS …. • L c gói d a trên a ch MAC và các c trong TCP header. i u này giúp ngăn ch n vi c t n công b ng cách s d ng các gói d d ng (malformed packets) và ngăn ch n vi c truy c p t n i b n m t m ng khác b t ch p IP c a nó. • Ghi chép h th ng (System logging) cho phép vi c i u ch nh m c c a báo cáo • H tr vi c tính h p các chương trình Web proxy ch ng như Squid . • Ng n ch n các ki u t n công t ch i d ch v . II. S D NG IPTABLES 1. Kh i ng iptables : Câu l nh start, stop, và restart iptables . [root@bigboy tmp]# service iptables start [root@bigboy tmp]# service iptables stop [root@bigboy tmp]# service iptables restart kh i ng iptables m i khi kh i ng máy . [root@bigboy tmp]# chkconfig iptables on xem tình tr ng c a iptables [root@bigboy tmp]# service iptables status 2. X lý gói trong iptables: T t c m i gói d li u u ư c ki m tra b i iptables b ng cách dùng các b ng tu n t xây d ng s n (queues ) . Có 3 lo i b ng này g m : -2 -
  3. _ Mangle : ch u trách nhi m thay i các bits ch t lư ng d ch v trong TCP header như TOS (type of service), TTL (time to live), và MARK. _ Filter : ch u trách nhi m l c gói d li u . Nó g m có 3 quy t c nh (chain) giúp b n thi t l p các nguyên t c l c gói , g m : • Forward chain: l c gói khi i n n các server khác . • Input chain: l c gói khi i vào trong server . • Output chain: l c gói khi ra kh i server . _ NAT : g m có 2 lo i : • Pre-routing chain: thay i a ch n c a gói d li u khi c n thi t. • Post-routing chain: thay i a ch ngu n c a gói d li u khi c n thi t . B ng 1 : Các lo i queues và chain cùng ch c năng c a nó. Lo i Ch c năng Quy t c x lý gói Ch c năng c a chain queues queues (chain) Filter L c gói FORWARD L c gói d li u i n các server khác k t n i trên các NIC khác c a firewall INPUT L c gói i n firewall OUTPUT L c gói i ra kh i firewall NAT Network PREROUTING Vi c thay i a ch di n ra trư c khi Address d n ư ng. Thay i a ch ích s Translation giúp gói d li u phù h p v i b ng ch ( Biên d ch a ư ng c a firewall. S d ng ch m ng ) destination NAT or DNAT. POSTROUTING Vi c thay i a ch di n ra sau khi d n ư ng . S d ng source NAT, or SNAT. OUTPUT NAT s d ng cho các gói d li u xu t phát t firewall . Hi m khi dùng trong môi trư ng SOHO ( small office - home office) . Mangle Ch nh s a TCP PREROUTING i u ch nh các bit quy ch ch t lư ng header . POSTROUTING d ch v trư c khi d n ư ng . OUTPUT Hi m khi dùng trong môi trư ng INPUT SOHO ( small office - home office) . FORWARD cái nhìn t ng quát i v i vi c l c và x lý gói trong iptables , ta xem hình sau : -3 -
  4. Ta cùng xem qua 1 ví d mô t ư ng i c a gói d li u . -4 -
  5. u tiên, gói d li u n m ng A , ti p ó nó ư c ki m tra b i mangle table PREROUTING chain (n u c n).Ti p theo là ki m tra gói d li u b i nat table's PREROUTING chain ki m tra xem gói d li u có c n DNAT hay không? DNAT s thay i a ch ích c a gói d li u . R i gói d li u ư c d n i . N u gói d li u i vào m t m ng ư c b o v , thì nó s ư c l c b i FORWARD chain c a filter table, và n u c n gói d li u s ư c SNAT trong POSTROUTING chain thay i IP ngu n trư c khi vào m ng B. -5 -
  6. N u gói d li u ư c nh hư ng i vào trong bên trong firewall , nó s ư c ki m tra b i INPUT chain trong mangle table, và n u gói d li u qua ư c các ki m tra c a INPUT chain trong filter table, nó s vào trong các chương trình c a server bên trong firewall . Khi firewall c n g i d li u ra ngoài . Gói d li u s ư c d n và i qua s ki m tra c a OUTPUT chain trong mangle table( n u c n ), ti p ó là ki m tra trong OUTPUT chain c a nat table xem DNAT (DNAT s thay i a ch n) có c n hay không và OUTPUT chain c a filter table s ki m tra gói d li u nh m phát hi n các gói d li u không ư c phép g i i. Cu i cùng trư c khi gói d li u ư c ư ra l i Internet, SNAT and QoS s ư c ki m tra trong POSTROUTING chain . 3. Targets Targets là hành ng s di n ra khi m t gói d li u ư c ki m tra và phù h p v i m t yêu c u nào ó. Khi m t target ã ư c nh n d ng , gói d li u c n nh y ( jump ) th c hi n các x lý ti p theo . B ng sau li t kê các targets mà iptables s d ng . B ng 2 : Miêu t các target mà iptables thư ng dùng nh t . Targets Ý nghĩa Tùy ch n ACCEPT iptables ng ng x lý gói d li u ó và chuy n ti p nó vào m t ng d ng cu i ho c h i u hành x lý . DROP iptables ng ng x lý gói d li u ó và gói d li u b ch n, lo i b . LOG Thông tin c a gói s ư c --log-prefix "string" ưa vào syslog ki m tra . Iptables ti p t c x lý gói iptables s thêm vào log v i quy lu t k ti p . message m t chu i do ngư i dùng nh s n . Thông thư ng là thông báo lý do vì sao gói b b . -6 -
  7. REJECT Tương t như DROP , --reject-with qualifier nhưng nó s g i tr l i cho phía ngư i g i m t thông báo l i r ng gói ã b ch n và lo i b . Tham s qualifier s cho bi t lo i thông báo g i tr l i phía g i . Qualifier g m các lo i sau : icmp-port-unreachable (default) icmp-net-unreachable icmp-host-unreachable icmp-proto-unreachable icmp-net-prohibited icmp-host-prohibited tcp-reset echo-reply DNAT Dùng th c hi n --to-destination ipaddress Destination network address translation , a Iptables s vi t l i a ch ch ích c a gói d li u s ipaddress vào a ch ích ư c vi t l i . c a gói d li u . SNAT Dùng th c hi n Source --to-source [- network address ][:- translation , vi t l i a ch ] ngu n c a gói d li u . Miêu t IP và port s ư c vi t l i b i iptables . MASQUERADE Dùng th c hi n Source [--to-ports [- Networkaddress ]] Translation.M c nh thì a ch IP ngu n s gi ng Ghi rõ t m các port ngu n như IP ngu n c a firewall . mà port ngu n g c có th ánh x ư c. 4. Các tham s chuy n m ch quan tr ng c a Iptables: Các tham s sau s cho phép Iptables th c hi n các hành ng sao cho phù h p v i bi u x lý gói do ngư i s d ng ho ch nh s n . -7 -
  8. B ng 3 : Các tham s chuy n m ch (switching) quan tr ng c a Iptables . L nh switching quan tr ng Ý nghĩa N u b n không ch nh rõ là tables nào , -t thì filter table s ư c áp d ng. Có ba lo i table là filter, nat, mangle. Nh y n m t chu i target nào ó khi gói -j d li u phù h p quy lu t hi n t i . N i thêm m t quy luât nào ó vào cu i -A chu i ( chain ). Xóa h t t t c m i quy lu t trong b ng ã -F ch n . Phù h p v i giao th c ( protocols ) , thông -p thư ng là icmp, tcp, udp, và all . -s Phù h p IP ngu n -d Phù h p IP ích Phù h p i u ki n INPUT khi gói d li u -i i vào firewall Phù h p i u ki n OUTPUT khi gói d -o li u i ra kh i firewall . hi u rõ hơn v các l nh ta , ta cùng xem m t ví d sau : iptables -A INPUT -s 0/0 -i eth0 -d 192.168.1.1 -p TCP \ -j ACCEPT Iptables ư c c u hình cho phép “firewall” ch p nh n các gói d li u có giao ti p (protocols) là TCP , n t giao ti p card m ng eth0 , có b t kỳ a ch IP ngu n là b t kỳ i n a ch 192.168.1.1, là a ch IP c a firewall. 0/0 nghĩa là b t kỳ a ch IP nào . B ng 4 : Các i u ki n TCP và UDP thông d ng . L nh switching Miêu t i u ki n TCP port ngu n (source port ) . -p tcp --sport Có th là m t giá tr ho c m t chu i có d ng : start-port-number:end-port-number i u ki n TCP port ích ( destination port ) -p tcp --dport Có th là m t giá tr ho c m t chu i có d ng : starting-port:ending-port -8 -
  9. Dùng nh n d ng m t yêu c u k t n i -p tcp –syn TCP m i . ! --syn , nghĩa là không có yêu c n k t n i m i. i u ki n UDP port ngu n (source port ) . -p udp --sport Có th là m t giá tr ho c m t chu i có d ng : start-port-number:end-port-number i u ki n TCP port ích ( destination port ) -p udp --dport Có th là m t giá tr ho c m t chu i có d ng : starting-port:ending-port Ta cùng xem ví d sau : iptables -A FORWARD -s 0/0 -i eth0 -d 192.168.1.58 -o eth1 -p TCP \ --sport 1024:65535 --dport 80 -j ACCEPT Iptables ư c c u hình cho phép firewall ch p nh n các gói d li u có giao ti p (protocols) là TCP , n t card m ng eth0 , có b t kỳ a ch IP ngu n là b t kỳ , i n a ch 192.168.1.58 qua card m ng eth1. S port ngu n là t 1024 n 65535 và port ích là 80 (www/http). B ng 5 : i u ki n ICMP L nh Miêu t --icmp-type Thư ng dùng nh t là echo-reply và echo- request Ta cùng xem m ví d sau v ICMP . iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT Iptables ư c c u hình cho phép firewall ch p nh n g i ICMP echo-requests (pings) và g i tr các ICMP echo-replies. Ta cùng xem ví d khác như sau : iptables -A INPUT -p icmp --icmp-type echo-request -m limit \ –limit 1/s -i eth0 -j ACCEPT Iptables cho phép gi i h n giá tr l n nh t s lư ng các gói phù h p trong m t giây . B n có ch nh th i gian theo nh d ng /second, /minute, /hour, ho c /day . Ho c s d ng d ng vi t t t 3/s thay vì 3/second . Trong ví d này ICMP echo requests b gi i h n không nhi u hơn m t yêu c n trong m t giây . c i m này c a iptables giúp ta l c b t các lưu lư ng l n , ây chính là c tính c a t n công t ch i d ch v ( DOS ) và sâu Internet. iptables -A INPUT -p tcp --syn -m limit --limit 5/s -i \ -9 -
  10. eth0 -j ACCEPT B n có th m r ng kh năng gi i h n c a iptables gi m thi u kh năng b t n công b i các lo i t n công t ch i d ch v . ây là cách phòng v ch ng l i ki u t n công SYN flood b ng cách h n ch s ch p nh n các phân o n TCP có bit SYS không nhi u hơn 5 phân o n trong 1 giây. B ng 6 : Các i u ki n m r ng thông d ng L nh Ý nghĩa Nhi u port ngu n khác nhau c a TCP/UDP ư c phân cách b i d u ph y (,) -m multiport --sport . ây là li t kê c a các port ch không ph i là m t chu i các port. Nhi u port ích khác nhau c a TCP/UDP ư c phân cách b i d u ph y (,) . ây là -m multiport --dport li t kê c a các port ch không ph i là m t chu i các port. Nhi u port khác nhau c a TCP/UDP ư c phân cách b i d u ph y (,) . ây là li t kê -m multiport --ports c a các port ch không ph i là m t chu i các port. Không phân bi t port ích hay port ngu n . Các tr ng thái thông d ng nh t ư c dùng là : -m --state ESTABLISHED:Gói d li u là m t ph n c a k t n i ã ư c thi t l p b i c 2 hư ng . NEW:Gói d li u là b t uc am tk t n im i. RELATED: Gói d li u b t u m t k t n i ph . Thông thư ng ây là t i m c a các giao th c như FTP ho c l i ICMP . INVALID: Gói d li u không th nh n d ng ư c . i u này có th do vi c thi u tài nguyên h th ng ho c l i ICMP không trùng v i m t lu ng d li u ã có s n . ây là ph n m r ng ti p theo c a ví d trư c : iptables -A FORWARD -s 0/0 -i eth0 -d 192.168.1.58 -o eth1 -p TCP \ --sport 1024:65535 -m multiport --dport 80,443 -j ACCEPT iptables -A FORWARD -d 0/0 -o eth0 -s 192.168.1.58 -i eth1 -p TCP \ -m state --state ESTABLISHED -j ACCEPT Iptables ư c c u hình cho phép firewall ch p nh n các gói d li u có giao ti p (protocols) là TCP , n t card m ng eth0 , có b t kỳ a ch IP ngu n là b t kỳ , i -10 -
  11. n a ch 192.168.1.58 qua card m ng eth1. S port ngu n là t 1024 n 65535 và port ích là 80 (www/http) và 443 (https). n khi các gói d li u nh n tr l i t 192.168.1.58, thay vì m các port ngu n và ích , b n ch vi c cho phép dùng k t n i cũ ã thi t l p b ng cách dùng tham s -m state và --state ESTABLISHED. 5_ S d ng user defined chains: Chu i User Defined Chains n m trong b ng iptables. Nó giúp cho quá trình s lý gói t t hơn. Ví d : Thay vì s d ng gói ơn ư c xây d ng trong chain cho t t c giao th c, ta có th s d ng chain này quy t nh lo i giao th c cho gói và sau ó ki m soát vi c x lý user-defined, protocol-specific chain trong b ng filter table. M t khác, ta có th thay th m t chu i “long chain” v i chu i chính “stubby main chain” b i nhi u chu i “stubby chain”, b ng cách chia ng n ó t ng chi u dài c a t t c chain gói ph i thông qua. Sáu l nh sau giúp vi c c i ti n t c x lý: iptables -A INPUT -i eth0 -d 206.229.110.2 -j \ fast-input-queue iptables -A OUTPUT -o eth0 -s 206.229.110.2 -j \ fast-output-queue iptables -A fast-input-queue -p icmp -j icmp-queue-in iptables -A fast-output-queue -p icmp -j icmp-queue-out iptables -A icmp-queue-out -p icmp --icmp-type \ echo-request -m state --state NEW -j ACCEPT iptables -A icmp-queue-in -p icmp --icmp-type echo-reply\ -j ACCEPT DANH SÁCH CÁC L NH (QUEUE) Chain Description ư c xây d ng trong INPUT INPUT chain trong b ng iptables ư c xây d ng trong OUTPUT ONPUT chain trong b ng iptables Input chain tách riêng bi t h tr cho nh ng giao Fast-input-queue th c c bi t và chuy n các gói n nh ng protocol specific chains. Output chain tách riêng bi t h tr cho nh ng giao fast-output-queue th c c bi t và chuy n các gói n nh ng protocol specific chains. icmp-queue-out l nh output tách riêng cho giao th c ICMP -11 -
  12. icmp-queue-in L nh input tách riêng cho giao th c ICMP 6_ Lưu l i nh ng o n mã iptables: o n mã iptables ư c lưu t m th i file “/etc/sysconfig/iptables” nh d ng m u trong file iptables cho phép giao th c ICMP, IPSec (nh ng gói ESP và AH), thi t l p liên k t, và quay l i SSH. [root@bigboy tmp]# cat /etc/sysconfig/iptables # Generated by iptables-save v1.2.9 on Mon Nov 8 11:00:07 2004 *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [144:12748] :RH-Firewall-1-INPUT - [0:0] -A INPUT -j RH-Firewall-1-INPUT -A FORWARD -j RH-Firewall-1-INPUT -A RH-Firewall-1-INPUT -i lo -j ACCEPT -A RH-Firewall-1-INPUT -p icmp -m icmp --icmp-type 255 -j ACCEPT -A RH-Firewall-1-INPUT -p esp -j ACCEPT -A RH-Firewall-1-INPUT -p ah -j ACCEPT -A RH-Firewall-1-INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited COMMIT # Completed on Mon Nov 8 11:00:07 2004 [root@bigboy tmp]# 7_ Thi t l p nh ng Rule cho Fedora’s iptable: Trong Fedora có chương trình g i lokkit, chưong trình này có th thi t l p m t rule firewall ơn gi n, giúp tăng cư ng b o m t. Chương trình lokkit lưu nh ng rule firewall trong file m i “/etc/sysconfig/iptables”. 8_ Tìm l i o n mã b m t: o n mã iptables ư c lưu tr trong file “/etc/sysconfig/iptables”. Ta có th chình s a nh ng o n mã và t o l i nh ng thành nh ng rule m i. Ví d : xu t nh ng l nh trong iptables ã lưu tr ra file văn b n v i tên firewall- config: [root@bigboy tmp]# iptables-save > firewall-config [root@bigboy tmp]# cat firewall-config # Generated by iptables-save v1.2.9 on Mon Nov 8 11:00:07 2004 *filter -12 -
  13. :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [144:12748] :RH-Firewall-1-INPUT - [0:0] -A INPUT -j RH-Firewall-1-INPUT -A FORWARD -j RH-Firewall-1-INPUT -A RH-Firewall-1-INPUT -i lo -j ACCEPT -A RH-Firewall-1-INPUT -p icmp -m icmp --icmp-type 255 -j ACCEPT -A RH-Firewall-1-INPUT -p esp -j ACCEPT -A RH-Firewall-1-INPUT -p ah -j ACCEPT -A RH-Firewall-1-INPUT -m state --state RELATED,ESTABLISHED \ -j ACCEPT -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 22 \ -j ACCEPT -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited COMMIT # Completed on Mon Nov 8 11:00:07 2004 [root@bigboy tmp]# Sau khi ch nh s a file firewall-config, ta có th t i nó l i trong rule firewall v i l nh: [root@bigboy tmp]# iptables-restore < firewall-config Ta có th lưu t m th i: [root@bigboy tmp]# service iptables save 9_ Nh ng modun Kernel c n thi t : Modun Kernel c n thi t ho t ng m t vài chương trình c a ng d ng iptables M t s modun: iptables_nat module, ip_conntrack_ftp module, + iptables_nat module c n cho m t s lo i NAT. + ip_conntrack_ftp module c n cho vi c thêm vào giao th c FTP. + ip_conntrack module gi tr ng thái liên k t v i giao th c TCP. + ip_nat_ftp module c n ư c t i cho nh ng máy ch FTP sau m t firewall NAT *CHÚ Ý: file /etc/sysconfig/iptables không c p nh t nh ng mô dun t i v , vì v y chúng ta ph i thêm vào nh ng tr ng thái ó vào file /etc/rc.local và ch y nó t i cu i m i l n boot l i. Nh ng m u o n mã trong ph n này bao g m nh ng tr ng thái ư c lưu trong file /etc/rc.local: # File: /etc/rc.local # Module to track the state of connections modprobe ip_conntrack # Load the iptables active FTP module, requires ip_conntrack modprobe # ip_conntrack_ftp # Load iptables NAT module when required modprobe iptable_nat # Module required for active an FTP server using NAT modprobe ip_nat_ftp 10_Nh ng o n mã iptables m u: 10.1_ Cơ b n v ho t ng c a h th ng b o v : -13 -
  14. H i u Hành Linux có cơ ch b o v là các thông s kernel h th ng trong file h th ng /proc qua file /etc/sysctl.conf. Dùng file /etc/systl.conf cho các thông s kernel h tr . ây là m t c u hình m u: # File: /etc/sysctl.conf #-------------------------------------------------------- # Disable routing triangulation. Respond to queries out # the same interface, not another. Helps to maintain state # Also protects against IP spoofing #-------------------------------------------------------- net/ipv4/conf/all/rp_filter = 1 #--------------------------------------------------------- - # Enable logging of packets with malformed IP addresses #--------------------------------------------------------- - net/ipv4/conf/all/log_martians = 1 # Disable redirects #--------------------------------------------------------- - net/ipv4/conf/all/send_redirects = 0 #--------------------------------------------------------- - # Disable source routed packets #--------------------------------------------------------- - net/ipv4/conf/all/accept_source_route = 0 #--------------------------------------------------------- - # Disable acceptance of ICMP redirects #--------------------------------------------------------- - net/ipv4/conf/all/accept_redirects = 0 #--------------------------------------------------------- - # Turn on protection from Denial of Service (DOS) attacks #--------------------------------------------------------- - net/ipv4/tcp_syncookies = 1 #--------------------------------------------------------- - # Disable responding to ping broadcasts #--------------------------------------------------------- - net/ipv4/icmp_echo_ignore_broadcasts = 1 #--------------------------------------------------------- - # Enable IP routing. Required if your firewall is # protecting # network, NAT included -14 -
  15. #--------------------------------------------------------- - net/ipv4/ip_forward = 1 10.2_ Ưu i m c a s kh i t o iptables: Ta có th thêm vào nhi u cái ng d ng kh i t o cho o n mã, bao g m vi c ki m tra ư ng truy n internet t nh ng a ch riêng RFC1918. Nhi u hơn nh ng kh i t o ph c t pbao g m ki m tra l i b i s t n công s d ng c TCP không có giá tr . o n mã cũng s d ng nhi u “user-defined chain” t o o n mã ng n hơn và nhanh hơn như nh ng chain có th b truy c p l p l i. i u này lo i b vi c c n thi t l p l i nh ng tr ng thái tương t . o n mã firewall hoàn t t : #=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=# # # Define networks: NOTE!! You may want to put these # "EXTERNAL" # definitions at the top of your script. # #=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=# EXTERNAL_INT="eth0" # External Internet interface EXTERNAL_IP="97.158.253.25" # Internet Interface IP address #--------------------------------------------------------- - # Initialize our user-defined chains #--------------------------------------------------------- - iptables -N valid-src iptables -N valid-dst #--------------------------------------------------------- - # Verify valid source and destination addresses for all packets #--------------------------------------------------------- - iptables -A INPUT -i $EXTERNAL_INT -j valid-src iptables -A FORWARD -i $EXTERNAL_INT -j valid-src iptables -A OUTPUT -o $EXTERNAL_INT -j valid-dst iptables -A FORWARD -o $EXTERNAL_INT -j valid-dst #=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=# # # Source and Destination Address Sanity Checks # Drop packets from networks covered in RFC 1918 # (private nets) # Drop packets from external interface IP # #=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=# -15 -
  16. iptables -A valid-src -s $10.0.0.0/8 -j DROP iptables -A valid-src -s $172.16.0.0/12 -j DROP iptables -A valid-src -s $192.168.0.0/16 -j DROP iptables -A valid-src -s $224.0.0.0/4 -j DROP iptables -A valid-src -s $240.0.0.0/5 -j DROP iptables -A valid-src -s $127.0.0.0/8 -j DROP iptables -A valid-src -s 0.0.0.0/8 -j DROP iptables -A valid-src -d 255.255.255.255 -j DROP iptables -A valid-src -s 169.254.0.0/16 -j DROP iptables -A valid-src -s $EXTERNAL_IP -j DROP iptables -A valid-dst -d $224.0.0.0/4 -j DROP 10.3_ S cho phép máy ch DNS truy c p n Firewall: Firewall không th t o yêu c u DNS queries n Internet b i vì Internet ư c yêu c u cho hàm cơ b n c a firewall, nhưng b i vì Fedora Linux’s yum RPM s giúp gi máy ch c p nh t v i tr ng thái b o v m i nh t. Nh ng tr ng thái theo sau s c p nh t không ch cho firewall ho t ng như nhưng DNS client nhưng cũng cho nh ng firewall làm vi c trong m t b m ho c có vai trò như DNS server. #------------------------------------------------------------------------------------------------------- - # Allow outbound DNS queries from the FW and the replies too # # - Interface eth0 is the internet interface # # Zone transfers use TCP and not UDP. Most home networks # / websites using a single DNS server won't require TCP # statements #------------------------------------------------------------------------------------------------------- - iptables -A OUTPUT -p udp -o eth0 --dport 53 –sport \ 1024:65535 -j ACCEPT iptables -A INPUT -p udp -i eth0 --sport 53 –dport \ 1024:65535 -j ACCEPT 10.4 Cho phép WWW và SSH truy c p vào firewall: o n mã ng n này là cho m t firewall và g p ôi như m t web server ư c qu n lý b i ngư i qu n tr h th ng web server “web server system adminitrator” qua nh ng l p v b o m t (SSH_secure shell). Nh ng gói quay l i ã ư c d nh trư c cho port 80 (WWW) và 22 (SSH) ư c phép. Vì v y t o nh ng bư c u tiên thi t l p liên k t.. Ngư c l i, nh ng port trên (80 và 22) s không ư c thi t l p ch b om t t i ngõ ra cho nh ng gói ch ư c chuy n i không quay v cho t t c liên k t thi t l p ư c phép. -16 -
  17. #--------------------------------------------------------- -# Allow previously established connections # - Interface eth0 is the internet interface #--------------------------------------------------------- - iptables -A OUTPUT -o eth0 -m state --state \ ESTABLISHED,RELATED -j ACCEPT #--------------------------------------------------------- - # Allow port 80 (www) and 22 (SSH) connections to the # firewall #--------------------------------------------------------- - iptables -A INPUT -p tcp -i eth0 --dport 22 –sport \ 1024:65535 -m state --state NEW -j ACCEPT iptables -A INPUT -p tcp -i eth0 --dport 80 --sport \ 1024:65535 -m state --state NEW -j ACCEPT 10.5_Cho phép Firewall truy c p internet: o n mã iptables này có th cho phép m t user tren firewall s d ng Web browser n giao ti p Internet. ư ng truy n giao th c HTTP s d ng TCP port 80, HTTPs (HTTP secure) port 443 #--------------------------------------------------------- - # Allow port 80 (www) and 443 (https) connections from the # firewall #--------------------------------------------------------- - iptables -A OUTPUT -j ACCEPT -m state –state \ NEW,ESTABLISHED,RELATED -o eth0 -p tcp -m \ multiport --dport 80,443 -m multiport --sport \ 1024:65535 #--------------------------------------------------------- - # Allow previously established connections # - Interface eth0 is the internet interface #--------------------------------------------------------- - iptables -A INPUT -j ACCEPT -m state --state \ ESTABLISHED,RELATED -i eth0 -p tcp N u mu n t t c ư ng truy n t firewall ư c ch p nh n, sau ó xoá: -m multiport --dport 80,443 -m multiport --sport \ 1024:65535 10.6_ Cho phép m ng nhà truy c p vào firewall: -17 -
  18. Ví d : eth1 ư c liên k t v i m ng nhà dùng a ch IP t m ng 192.168.1.0. T t c ư ng truy n này và firewall ư c gi s là liên k t ư c: Nh ng rule ư c c n cho liên k t giao ti p n Internet cho phép ch nh ng c ng c trưng, nh ng lo i liên k t và có th i u ch nh nh ng server có truy c p n firewall và m ng nhà. #--------------------------------------------------------- -# Allow all bidirectional traffic from your firewall to #the # protected network # - Interface eth1 is the private network interface #--------------------------------------------------------- - iptables -A INPUT -j ACCEPT -p all -s 192.168.1.0/24 -i eth1 iptables -A OUTPUT -j ACCEPT -p all -d 192.168.1.0/24 -o eth1 10.7_ M t n (Masquerade_many to one NAT): ư ng truy n t t t c thi t b trên m t ho c nhi u m ng ư c b o v s xu t hi n như là nó b t u t a ch IP ơn trên v trí Internet c a firewall. a ch IP m t n (masquerade) luôn luôn m c nh n a ch IP c a giao ti p chính c a firewall. Ưu i m c a a ch IP m t n (masquerade) là ta không ph i ch rõ a ch IP NAT. i u này t o cho vi c c u hình b ng iptables NAT v i giao th c DHCP. Ta có th c u hình nhi u n m t NAT cho m t tên IP b ng cách s d ng POSTROUTING và không dùng tr ng thái MASQUERADE. Vi c che y (Masquerading) ph thu c vào H i u Hành Linux ư c c u hình c p nh t nh tuy n gi a internet và giao ti p m ng riêng c a firewall. i u này ư c th c h ên b i IP enabling b ng cách cho file /proc/sys/net/ipv4/ip_forward giá tr 1 như là i v i giá tr m c nh 0 M t masquerading ư c thi t l p s d ng POSTROUTING chain c a b ng nat table, ta s ph i nh d ng iptables cho phép nhi u gói i qua gi a 2 b m t. làm ư c i u này, s d ng FORWARD chain c a filter table. Nhi u hơn, nhi u gói liên quan nh ng liên k t NEW và ESTABLISHED s ư c cho phép outbound n Internet, nhưng ch nh ng gói liên quan n liên k t ESTABLISHES s ư c phép inbound. i u này s giúp b o v m ng nhà t b t c m t ngư i nào c g ng k t n i v i m ng nhà t Internet. #--------------------------------------------------------- - # Load the NAT module # Note: It is best to use the /etc/rc.local example in # this # chapter. This value will not be retained in the # /etc/sysconfig/iptables file. Included only as a # reminder. #--------------------------------------------------------- - -18 -
  19. modprobe iptable_nat #--------------------------------------------------------- - # Enable routing by modifying the ip_forward /proc # filesystem # file # # Note: It is best to use the /etc/sysctl.conf example in # this # chapter. This value will not be retained in the # /etc/sysconfig/iptables file. Included only as a # reminder. #--------------------------------------------------------- - echo 1 > /proc/sys/net/ipv4/ip_forward #--------------------------------------------------------- - # Allow masquerading # - Interface eth0 is the internet interface # - Interface eth1 is the private network interface #--------------------------------------------------------- - iptables -A POSTROUTING -t nat -o eth0 -s 192.168.1.0/24 \ -d 0/0 -j MASQUERADE #--------------------------------------------------------- - # Prior to masquerading, the packets are routed via the # filter # table's FORWARD chain. # Allowed outbound: New, established and related # connections # Allowed inbound : Established and related connections #--------------------------------------------------------- - iptables -A FORWARD -t filter -o eth0 -m state –state \ NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -t filter -i eth0 -m state --state \ ESTABLISHED,RELATED -j ACCEPT 10.8. Port forwarding theo lo i NAT (giao th c DHCP DSL): M t s trư ng h p, nhi u home user có th nh n a ch IP công c ng DHCP ơn t nh ng nhà cung c p d ch v ISP. N u m t Linux firewall cũng là giao ti p v i Internet và ta mu n d n m t trang Web trên m t trong nh ng home server ư c b o v -19 -
  20. NAT, sau ó ta ph i s d ng port forwarding. ây vi c k t h p a ch IP ơn c a firewall, a ch IP c a server, và port ngu n/ ích c a ư ng truy n có th ư c s d ng b sung ư ng truy n. Port forwarding ư c i u ch nh b i PREROUTING chain c a b ng nat table. Gi ng như Masquerading, modun iptables_nat ph i ư c t i và nh tuy n ph i ư c hi n th cho port forwarding làm vi c. nh tuy n cũng ph i ư c phép trong b ng iptables v i FORWARD chain, i u này bao g m t t c liên k t NEW inbound t Internet làm phù h p port forwarding và t t c gói liên k t v i k t n i ESTABLISHED trong nh ng s i u khi n: #--------------------------------------------------------- - # Load the NAT module # Note: It is best to use the /etc/rc.local example in # this # chapter. This value will not be retained in the # /etc/sysconfig/iptables file. Included only as a # reminder. #--------------------------------------------------------- - modprobe iptable_nat #--------------------------------------------------------- - # Get the IP address of the Internet interface eth0 (linux # only) # # You'll have to use a different expression to get the IP # address # for other operating systems which have a different ifconfig # output # or enter the IP address manually in the PREROUTING # Statement # # This is best when your firewall gets its IP address using # DHCP. # The external IP address could just be hard coded ("typed # in # normally") #--------------------------------------------------------- - external_int="eth0" external_ip=""ifconfig $external_int | grep 'inet addr' |\ awk '{print $2}' | sed -e 's/. *://'"" -20 -
Đồng bộ tài khoản