Хүн л хийсэн юм чинь ядаж ойлгож болохоор л юм байж таараа.
Гагцхүү бэрхшээлийг давсан хүн л хөгждөг.

Сануулга

Миний бие энэхүү гарын авлагыг бичиж байгаа нь Юникс төст үйлдлийн систем болон түүний серверүүдийн талаар төгс сайн мэддэг гэсэн үг огт биш юм. Гагцхүү миний чадан ядан ойлгож мэдсэн зүйлс хэн нэгний сурч мэдэх их үйлсэд өчүүхэн ч атугай нэмэр болох боловуу гэсэн санааг агуулсан болно. Энэхүү гарын авлаганд алдаа мадагтай зүйл байвал мэргэн уншигч та залруулан өгч туслана уу.

2007-11-10

Firewall

Ноорог
Тухай:
Линукс үйлдлийн системийн firewall буюу галтханны үүргийг ихэнх тохиолдолд iptables гэдэг программ гүйцэтгэдэг.
iptables нь өөр руу нь орж байгаа, өөрөөс нь гарч байгаа, өөрөөр нь дамжин өнгөрч байгаа пакетуудтай хэрхэн ажиллах талаархи дүрмүүдийн цогцийг агуулсан хүснэгтүүд(table)-ээс бүрдэх ба тэдгээр хүснэгтүүд нь дүрмүүдийн цогц буюу дарааллуудаас бүрдэнэ. Дараалал нь дүрмүүдийг ажуулна. iptables нь filter, nat, mangle гэсэн 3 хүснэгтэй. Энд mangle хүснэгтийн талаар өгүүлэхгүй.
filter хүснэгт нь пакетад шүүлт хийх үүрэгтэй бөгөөд INPUT, OUTPUT, FORWARD гэсэн 3 дарааллаас бүрдэнэ. INPUT дараалал нь тухайн линукс систем руу орж ирж байгаа пакетанд, OUTPUT дараалал нь тухайн линукс системээс гарч байгаа пакетанд, FORWARD дараалал нь тухайн линукс системээр дамжин өнгөрч байгаа пакетуудад шүүлт хийх үүрэгтэй.
nat хүснэгт нь пакетийн хаяганд хөрвүүлэлт хийх үүрэгтэй бөөгөөд PREROUTING, POSTROUTING, OUTPUT гэсэн 3 дарааллаас бүрдэнэ. PREROUTING дараалал нь чиглүүлэлт хийхээс өмнө destination хаягийг солих, POSTROUTING дараалал нь чиглүүлэлт хийгдсэний дараа source хаягийг солих, OUTPUT дараалал нь өөрөөсөө гарч байгаа патанд хаягийн хөрвүүлэлт хийх үүрэгтэй.
Дараах зурагт пакетийн урсгалд iptables галтханны chain-үүдийн үйчлэх дарааллыг харуулав.



Суулгах:
iptables-ийг бараг ихэнх тохиолдолд анхнаасаа таны үйлдлийн системтэй хамт суусан байдаг. Иймээс үүнийг нэмж суулгах шаардлагагүй. Гэхдээ шаардлагатай тохиолдолд
# yum install iptables
коммандаар суулгаж болно.

Тохиргооны файл:
iptables-ийн тохиргооны файлыг /etc/sysconfig/iptables гэж ойлгож болох боловч ихэнх тохиололд үүнийг засварлахыг зөвлөмж болгодоггүй. Харин үүний оронд iptables гэсэн комманд ашигланыг зөвлөдөг.
iptables комманд:
iptables коммандыг бичлэгийг ерөнхийдөө
iptables command [option ... option] jump
гэсэн хэлбэртэй байдаг.
command
-A - chain-ий сүүлд дүрмийг нэмнэ.
Жишээлбэл: INPUT chain-ий дүрмүүдийн төгсгөлд бүх пакетийг хориглох дүрмийг нэмэхийн тулд дараах коммандыг бичнэ
iptables -A INPUT -j DROP

-I - chain-ийн өгөгдсөн байрлалт дүрмийг нэмнэ.
Жишээлбэл: INPUT chain-ий дүрмүүдийн 5-р мөрөнд бүх пакетийг хориглох дүрмийг нэмэхийн тулд дараах коммандыг бичнэ
iptables -I INPUT 5 -j DROP
хэрэв дүрмийн нэмэх байрлалыг тусгайдан зааж өгөөгүй бол chain дэх дүрмүүдийн эхэнд нэмднэ
-D - chain-ээс өгөгдсөн дүрмйг хасна.
Жишээлбэл: INPUT chain-ээс бүх пакетийг хориглох дүрмийг устгахын тулд дараах коммандыг бичнэ
iptables -D INPUT -j DROP
-F -өгөдсөн chain дэх бүр дүрмийг устгана
Жишээлбэл: filter table-ийн INPUT chain дэх дүрмүүдийг устгахын тулд дараах коммандыг бичнэ.
iptables -F INPUT
-L - өгөгдсөн chain дэх дүрмүүдийг харуулна
Жишээлбэл: filter table-ийн INPUT chain дэх дүрмүүдийг харахын тулд дараах коммандыг бичнэ
iptables -L INPUT
-P - default дүрмийг тодорхойлно
Жишээлбэл: filter table-ийн INPUT chain-ий default дүрмийг холигдох гэж тодорхойлохын тулд дараах коммандыг бичнэ
iptables -P INPUT DROP

option
-t - table-ийг тодорхойлно
-j - үйлдлийг тодорхойлно
-p - протоколыг тодорхойлно
--sport - тухайн протоколын source портыг тодорхойлно
--dport - тухайн протоколын destination портыг тодорхойлно
-s - source хаягийг тодорхойлно
-d - destination хаягийг тодорхойлно
-i - пакет орж ирэх интерфэйсийг тодорхойлно
-o - пакет гарах интерфэйсийг тодорхойлно

Жишээ:
iptables -A INPUT -p tcp --dport 80 -i eth0 -j ACCEPT
eth0 интерфэйсээр орж ирсэн уг компьютер руу чиглэсэн вэб хандалтуудыг зөвшөөрнө.

iptables -I OUTPUT -p tcp --sport 5000 -o eth0 -j DROP
тухайн компьютераас 5000 гэсэн эх портноос tcp протоколоор хандаж буй хандалтыг хориглоно.

iptables -t nat -A POSTROUTING -s 10.1.1.0/24 -o eth0 -j MASQUERADE
тухайн компьютераар дамжин өнгөрч буй 10.1.1.0 255.255.255.0 сүлжээс ирсэн пакежуудын эх хаягийг eth0 интерфэйсийнхээ хаягаар сольно

Зөвлөмж:
Fedora, CentOS үйлдлийн системүүд анхны тохиргоогоороо filter хүснэгтийн INPUT зориулсан дүрмүүдийг агуулж байдаг ба уг дүрмүүдийг хэвээр хадгалаж байхыг зөвлөж байна.

0 Comments: