SUSE LINUX Enterprise & openSUSE Community
ธันวาคม 19, 2018, 06:17:17 AM *
ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน
ส่งอีเมล์ยืนยันการใช้งาน?

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น
ข่าว:
 
   หน้าแรก   ช่วยเหลือ ค้นหา เข้าสู่ระบบ สมัครสมาชิก  

[Why we need your support] SUSE and openSUSE are trademarks of Attachmate Group, Inc. - WE ARE NOT IN ANY WAY ASSOCIATED WITH SUSE AND ATTACHMATE GROUP. SUSEThailand.com is a SUSE Linux user and community found in Thailand but not limited to other country suse linux user to join in. Currently active contents (How to's, Scripts, Tips, Tricks, Tutorials, Linux Command Line, and Troubleshooting) this suse linux how to's and expert support are SUSE Linux.
หน้า: [1]   ลงล่าง
  พิมพ์  
ผู้เขียน
หัวข้อ: iptables โดยไม่ผ่าน SuSEfirewall2 มีทางไหมครับ  (อ่าน 3886 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
train
Advanced Beginner : เริ่มต้นที่เริ่มเก่งแล้ว
**

Karma: +0/-0
ออฟไลน์ ออฟไลน์

กระทู้: 103


« เมื่อ: สิงหาคม 25, 2011, 09:50:55 PM »


ถ้าใช้ SuSEfirewall2 ในการทำ Masqurade นั้นได้ครับ
แต่ถ้าเขียน rule เองไม่ได้นะครับ เช่น ผมสร้างไฟล์  /etc/firewall.iptables
โค๊ด:

#!/bin/sh
#
# Firewall script for ChilliSpot
# A Wireless LAN Access Point Controller
#
# Uses $EXTIF (eth0) as the external interface (Internet or intranet) and
# $INTIF (eth1) as the internal interface (access points).
#
#
# SUMMARY
# * All connections originating from chilli are allowed.
# * Only ssh is allowed in on external interface.
# * Nothing is allowed in on internal interface.
# * Forwarding is allowed to and from the external interface, but disallowed
#   to and from the internal interface.
# * NAT is enabled on the external interface.

IPTABLES="/usr/sbin/iptables"
EXTIF="eth0"
INTIF="eth1"

#Flush all rules
$IPTABLES -F
$IPTABLES -F -t nat
$IPTABLES -F -t mangle

#Set default behaviour
$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -P OUTPUT ACCEPT

#Allow related and established on all interfaces (input)
$IPTABLES -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

#Allow releated, established and ssh on $EXTIF. Reject everything else.
$IPTABLES -A INPUT -i $EXTIF -p tcp -m tcp --dport 22 --syn -j ACCEPT
$IPTABLES -A INPUT -i $EXTIF -p tcp -m tcp --dport 80 --syn -j ACCEPT
$IPTABLES -A INPUT -i $EXTIF -p tcp -m tcp --dport 53 --syn -j ACCEPT
### Port  10000 for  Webmin
#$IPTABLES -A INPUT -i $EXTIF -p tcp -m tcp --dport 10000 --syn -j ACCEPT
### Port  3306 For MySQL Client for EXTIF
#$IPTABLES -A INPUT -i $EXTIF -p tcp -m tcp --dport 3306 --syn -j ACCEPT
$IPTABLES -A INPUT -i $EXTIF -j REJECT

#Allow related and established from $INTIF. Drop everything else.
$IPTABLES -A INPUT -i $INTIF -j DROP
$IPTABLES -A INPUT -i $INTIF -p tcp -m tcp --dport 22 --syn -j ACCEPT
$IPTABLES -A INPUT -i tun0 -p tcp -m tcp --dport 22 --syn -j ACCEPT
###  Port  10000 for  Webmin
$IPTABLES -A INPUT -i tun0 -p tcp -m tcp --dport 10000 --syn -j ACCEPT
###  Port  3306 For MySQL Client for INTIF,tun0
$IPTABLES -A INPUT -i $INTIF -p tcp -m tcp --dport 3306 --syn -j ACCEPT
$IPTABLES -A INPUT -i tun0 -p tcp -m tcp --dport 3306 --syn -j ACCEPT

### Allow  Samba port
$IPTABLES -A INPUT -i tun0 -p tcp -m tcp --dport 137 --syn -j ACCEPT
$IPTABLES -A INPUT -i tun0 -p tcp -m tcp --dport 138 --syn -j ACCEPT
$IPTABLES -A INPUT -i tun0 -p tcp -m tcp --dport 135 --syn -j ACCEPT
$IPTABLES -A INPUT -i tun0 -p tcp -m tcp --dport 445 --syn -j ACCEPT
### Lets try to get samba working:  SMB / NMB
$IPTABLES -A OUTPUT -p udp --dport netbios-ns -d 0/0 -s 0/0 -j ACCEPT
$IPTABLES -A OUTPUT -p udp --dport netbios-dgm -d 0/0 -s 0/0 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --dport netbios-ssn -d 0/0 -s 0/0 -j ACCEPT
$IPTABLES -A INPUT -p udp --sport netbios-ns -s 0/0 -d 0/0 -j ACCEPT
$IPTABLES -A INPUT -p udp --sport netbios-dgm -s 0/0 -d 0/0 -j ACCEPT
$IPTABLES -A INPUT -p tcp --sport netbios-ssn -s 0/0 -d 0/0 -j ACCEPT

#Allow http and https on other interfaces (input).
#This is only needed if authentication server is on same server as chilli
$IPTABLES -A INPUT -p tcp -m tcp --dport 80 --syn -j ACCEPT
$IPTABLES -A INPUT -p tcp -m tcp --dport 443 --syn -j ACCEPT

#Allow 3990 on other interfaces (input).
$IPTABLES -A INPUT -p tcp -m tcp --dport 3990 --syn -j ACCEPT
$IPTABLES -A INPUT -p tcp -m tcp --dport 53 --syn -j ACCEPT

#Allow ICMP echo on other interfaces (input).
$IPTABLES -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
$IPTABLES -A INPUT -i tun0 -p icmp --icmp-type echo-request -j ACCEPT
$IPTABLES -A INPUT -i $EXTIF -p icmp --icmp-type echo-request -j DROP
#$IPTABLES -I INPUT -p tcp --dport 22 -i $EXTIF -m state --state NEW -m recent --set
#$IPTABLES -I INPUT -p tcp --dport 22 -i $EXTIF -m state --state NEW -m recent --update --seconds 600 --hitcount 2 -j DROP

##Allow transparent proxy (wiboon 1/2)
$IPTABLES -A INPUT -p tcp -m tcp --dport 3128 --syn -j ACCEPT

#Allow everything on loopback interface.
$IPTABLES -A INPUT -i lo -j ACCEPT

##Allow transparent proxy (wiboon 2/2)
$IPTABLES -t nat -A PREROUTING -i tun0 -p tcp -m tcp --dport 3128 --syn -j DROP
$IPTABLES -t nat -A PREROUTING -i tun0 -p tcp -m tcp -d 10.1.0.0/16 --dport 80 -j RETURN
$IPTABLES -t nat -A PREROUTING -i tun0 -p tcp -m tcp -d 172.16.0.0/12 --dport 80 -j RETURN
$IPTABLES -t nat -A PREROUTING -i tun0 -p tcp -m tcp -d 10.0.0.0/8 --dport 80 -j RETURN
$IPTABLES -t nat -A PREROUTING -i tun0 -p tcp -m tcp -d 10.1.0.0/16 --dport 80 -j RETURN
$IPTABLES -t nat -A PREROUTING -i tun0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128

# Drop everything to and from $INTIF (forward)
# This means that access points can only be managed from ChilliSpot
$IPTABLES -A FORWARD -i $INTIF -j DROP
$IPTABLES -A FORWARD -o $INTIF -j DROP

#Enable NAT on output device
$IPTABLES -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE

#sh /etc/firewall.iptables
 
แล้วไปเขียนให้รันที่ไฟล์ดังกล่าว  cat /etc/rc.d/boot.local
 
โค๊ด:
sh /etc/firewall.iptables

พอจะมีทางแก้ไหมครับ
แจ้งลบกระทู้นี้หรือติดต่อผู้ดูแล   บันทึกการเข้า
ageLOC Technology
Sontaya
Administrator
Expert : ผู้เชี่ยวชาญ
*****

Karma: +1/-0
ออฟไลน์ ออฟไลน์

กระทู้: 1931


Administrator


เว็บไซต์
« ตอบ #1 เมื่อ: สิงหาคม 26, 2011, 09:28:27 AM »


3. การใช้ custom file (Expert option)
เหมาะสำหรับผู้เชียวชาญการใช้คำสั่ง iptables โดยเฉพาะ
- แก้ไขออปชั่นที่ไฟล์ /etc/sysconfig/SuSEfirewall2
FW_CUSTOMRULES=""  # กำหนด path ไฟล์
เช่น
FW_CUSTOMRULES="/etc/sysconfig/scripts/SuSEfirewall2-custom"

ไฟล์ /etc/sysconfig/scripts/SuSEfirewall2-custom จะเป็นการเขียนคำสั่ง iptables ในฟังก์ชั่นต่างๆ ตามลำดับ

อ้างอิจจาก - http://www.susethailand.com/suseforum/index.php?topic=1254.0

แจ้งลบกระทู้นี้หรือติดต่อผู้ดูแล   บันทึกการเข้า

ageLOC Technology
train
Advanced Beginner : เริ่มต้นที่เริ่มเก่งแล้ว
**

Karma: +0/-0
ออฟไลน์ ออฟไลน์

กระทู้: 103


« ตอบ #2 เมื่อ: สิงหาคม 29, 2011, 09:47:09 AM »


รายงานครับ ใช้งานไม่ได้ ผมใช้ opensuse 11.4
แจ้งลบกระทู้นี้หรือติดต่อผู้ดูแล   บันทึกการเข้า
ageLOC Technology
Sontaya
Administrator
Expert : ผู้เชี่ยวชาญ
*****

Karma: +1/-0
ออฟไลน์ ออฟไลน์

กระทู้: 1931


Administrator


เว็บไซต์
« ตอบ #3 เมื่อ: สิงหาคม 29, 2011, 12:43:09 PM »


SuSEfirewall2 เป็นเพียงสคริปต์ ก็ stop ที่ run level ไป จากนั้นก็เขียน iptables ขึ้นมาใช้เอง แล้วกำหนด run level ใหม่

ถ้าติดแต่ MASQUERADE ยังไงก็ใช้ได้ ลองดูครับ

######################################################################
IPTABLES=$1
MYNAME=$2

$IPTABLES -F
$IPTABLES -t nat -F
$IPTABLES -X

$IPTABLES -t nat -P PREROUTING ACCEPT
$IPTABLES -t nat -P POSTROUTING ACCEPT
$IPTABLES -t nat -P OUTPUT ACCEPT

$IPTABLES -t nat -A POSTROUTING -o eth0 -j MASQUERADE

$IPTABLES -P INPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -P OUTPUT ACCEPT

if [[ $2 == flush ]]; then
exit 0
fi

######################################################################

$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT ACCEPT

# Drop invalid packets immediately
$IPTABLES -A INPUT -m state --state INVALID -j DROP
$IPTABLES -A FORWARD -m state --state INVALID -j DROP
$IPTABLES -A OUTPUT -m state --state INVALID -j DROP

# Allow trusted interfaces
$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A INPUT -i tun+ -j ACCEPT
$IPTABLES -A FORWARD -i tun+ -j ACCEPT
$IPTABLES -A FORWARD -o tun+ -j ACCEPT
######################################################################
หรือ
######################################################################

# DEFAULT POLICY
# Drop everything
   iptables -P INPUT DROP
   iptables -P OUTPUT DROP
   iptables -P FORWARD DROP

# FLUSH TABLES
   iptables -F -t nat
   iptables -F -t mangle
   iptables -F -t filter
   iptables -X

# ROUTING
echo 1 > /proc/sys/net/ipv4/ip_forward

# FORWARDING
ก็ว่าไป

# INTERNAL INTERFACE
# Allow everything อะไรก็ว่าไป

#PUBLIC INTERFACE
ก็ว่าไป

# SOURCE NAT(NAT everything)
ก็ใส่ไป

# Destination NAT
smtp, pop3, imap, http, https ว่าไป

# Blocked protocols

ว่าไปอยาก block พอรต์อะไร

# Drop them all

ปิดท้ายสวยๆ ด้วย

iptables -A INPUT -p tcp -j REJECT --reject-with tcp-reset


Simple Firewall Configuration Using NetFilter/iptables
« แก้ไขครั้งสุดท้าย: ธันวาคม 24, 2011, 02:08:33 PM โดย Sontaya » แจ้งลบกระทู้นี้หรือติดต่อผู้ดูแล   บันทึกการเข้า

ageLOC Technology
train
Advanced Beginner : เริ่มต้นที่เริ่มเก่งแล้ว
**

Karma: +0/-0
ออฟไลน์ ออฟไลน์

กระทู้: 103


« ตอบ #4 เมื่อ: สิงหาคม 31, 2011, 01:44:33 PM »


ช่วยดูให้หน่อยครับว่าผิดตรงไหน ใช้กับ Centosได้ แต่ Suse ไม่ได้
 vi SuSEfirewall2-custom

โค๊ด:

#
# Authors: Marc Heuse,
#          Volker Kuhlmann <[email protected]>
#
# /etc/sysconfig/scripts/SuSEfirewall2-custom
#
# ------------------------------------------------------------------------
#
# This is file is for SuSEfirewall2 and is an example for using
# the hooks which are supplied to load customized ipchains rules.
#
# THERE IS NO HELP FOR USING HOOKS EXCEPT THIS FILE ! SO READ CAREFULLY !
# IT IS USEFUL TO CROSS-READ /sbin/SuSEfirewall2 TO SEE HOW HOOKS WORK !
#
# ------------------------------------------------------------------------

fw_custom_after_chain_creation() {
    # these rules will be loaded after the various input_* and forward_* chains
    # are created.
    # You can use this hook to allow/deny certain IP protocols or TCP/UDP
    # ports before the SuSEfirewall2 generated rules are hit.

#example: always filter backorifice/netbus trojan connect requests and log them.
#for target in LOG DROP; do
#    for chain in input_ext input_dmz input_int forward_int forward_ext forward_dmz; do
#        iptables -A $chain -j $target -p tcp --dport 31337
#        iptables -A $chain -j $target -p udp --dport 31337
#        iptables -A $chain -j $target -p tcp --dport 12345:12346
#        iptables -A $chain -j $target -p udp --dport 12345:12346
#    done
#done

    true
}

fw_custom_before_port_handling() {
    # these rules will be loaded after the anti-spoofing and icmp handling
    # and after the input has been redirected to the input_XXX and
    # forward_XXX chains and some basic chain-specific anti-circumvention
    # rules have been set,
    # but before any IP protocol or TCP/UDP port allow/protection rules
    # will be set.
    # You can use this hook to allow/deny certain IP protocols or TCP/UDP
    # ports before the SuSEfirewall2 generated rules are hit.

    true
}

fw_custom_before_masq() { # could also be named "after_port_handling()"
    # these rules will be loaded after the IP protocol and TCP/UDP port
    # handling, but before any IP forwarding (routing), masquerading
    # will be done.
    # NOTE: reverse masquerading is before directly after
    #       fw_custom_before_port_handling !!!!
    # You can use this hook to ... hmmm ... I'm sure you'll find a use for
    # this ...

    true
}
fw_custom_before_denyall() { # could also be named "after_forwardmasq()"
    # these are the rules to be loaded after IP forwarding and masquerading
    # but before the logging and deny all section is set by SuSEfirewall2.
    # You can use this hook to prevent the logging of annoying packets.

#example: prevent logging of talk requests from anywhere
#for chain in input_ext input_dmz input_int forward_int forward_ext forward_dmz; do
#    iptables -A $chain -j DROP -p udp --dport 517:518
#done

    true
}


IPTABLES="/usr/sbin/iptables"
EXTIF="eth0"
INTIF="eth1"

#Flush all rules
$IPTABLES -F
$IPTABLES -F -t nat
$IPTABLES -F -t mangle

#Set default behaviour
$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -P OUTPUT ACCEPT

#Allow related and established on all interfaces (input)
$IPTABLES -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

#Allow releated, established and ssh on $EXTIF. Reject everything else.
$IPTABLES -A INPUT -i $EXTIF -p tcp -m tcp --dport 22 --syn -j ACCEPT
$IPTABLES -A INPUT -i $EXTIF -p tcp -m tcp --dport 80 --syn -j ACCEPT
$IPTABLES -A INPUT -i $EXTIF -p tcp -m tcp --dport 53 --syn -j ACCEPT
### Port  10000 for  Webmin
#$IPTABLES -A INPUT -i $EXTIF -p tcp -m tcp --dport 10000 --syn -j ACCEPT
### Port  3306 For MySQL Client for EXTIF
#$IPTABLES -A INPUT -i $EXTIF -p tcp -m tcp --dport 3306 --syn -j ACCEPT
$IPTABLES -A INPUT -i $EXTIF -j REJECT

#Allow related and established from $INTIF. Drop everything else.
$IPTABLES -A INPUT -i $INTIF -j DROP
$IPTABLES -A INPUT -i $INTIF -p tcp -m tcp --dport 22 --syn -j ACCEPT
$IPTABLES -A INPUT -i tun0 -p tcp -m tcp --dport 22 --syn -j ACCEPT
###  Port  10000 for  Webmin
$IPTABLES -A INPUT -i tun0 -p tcp -m tcp --dport 10000 --syn -j ACCEPT
###  Port  3306 For MySQL Client for INTIF,tun0
$IPTABLES -A INPUT -i $INTIF -p tcp -m tcp --dport 3306 --syn -j ACCEPT
$IPTABLES -A INPUT -i tun0 -p tcp -m tcp --dport 3306 --syn -j ACCEPT

### Allow  Samba port
$IPTABLES -A INPUT -i tun0 -p tcp -m tcp --dport 137 --syn -j ACCEPT
$IPTABLES -A INPUT -i tun0 -p tcp -m tcp --dport 138 --syn -j ACCEPT
$IPTABLES -A INPUT -i tun0 -p tcp -m tcp --dport 135 --syn -j ACCEPT
$IPTABLES -A INPUT -i tun0 -p tcp -m tcp --dport 445 --syn -j ACCEPT
### Lets try to get samba working:  SMB / NMB
$IPTABLES -A OUTPUT -p udp --dport netbios-ns -d 0/0 -s 0/0 -j ACCEPT
$IPTABLES -A OUTPUT -p udp --dport netbios-dgm -d 0/0 -s 0/0 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --dport netbios-ssn -d 0/0 -s 0/0 -j ACCEPT
$IPTABLES -A INPUT -p udp --sport netbios-ns -s 0/0 -d 0/0 -j ACCEPT
$IPTABLES -A INPUT -p udp --sport netbios-dgm -s 0/0 -d 0/0 -j ACCEPT
$IPTABLES -A INPUT -p tcp --sport netbios-ssn -s 0/0 -d 0/0 -j ACCEPT

#Allow http and https on other interfaces (input).
#This is only needed if authentication server is on same server as chilli
$IPTABLES -A INPUT -p tcp -m tcp --dport 80 --syn -j ACCEPT
$IPTABLES -A INPUT -p tcp -m tcp --dport 443 --syn -j ACCEPT

#Allow 3990 on other interfaces (input).
$IPTABLES -A INPUT -p tcp -m tcp --dport 3990 --syn -j ACCEPT
$IPTABLES -A INPUT -p tcp -m tcp --dport 53 --syn -j ACCEPT

#Allow ICMP echo on other interfaces (input).
$IPTABLES -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
$IPTABLES -A INPUT -i tun0 -p icmp --icmp-type echo-request -j ACCEPT
$IPTABLES -A INPUT -i $EXTIF -p icmp --icmp-type echo-request -j DROP
#$IPTABLES -I INPUT -p tcp --dport 22 -i $EXTIF -m state --state NEW -m recent --set
#$IPTABLES -I INPUT -p tcp --dport 22 -i $EXTIF -m state --state NEW -m recent --update --seconds 600 --hitcount 2 -j DROP

##Allow transparent proxy (wiboon 1/2)
#$IPTABLES -A INPUT -p tcp -m tcp --dport 3128 --syn -j ACCEPT

#Allow everything on loopback interface.
$IPTABLES -A INPUT -i lo -j ACCEPT

##Allow transparent proxy (wiboon 2/2)
#$IPTABLES -t nat -A PREROUTING -i tun0 -p tcp -m tcp --dport 3128 --syn -j DROP
#$IPTABLES -t nat -A PREROUTING -i tun0 -p tcp -m tcp -d 10.1.0.0/16 --dport 80 -j RETURN
#$IPTABLES -t nat -A PREROUTING -i tun0 -p tcp -m tcp -d 172.16.0.0/12 --dport 80 -j RETURN
#$IPTABLES -t nat -A PREROUTING -i tun0 -p tcp -m tcp -d 10.0.0.0/8 --dport 80 -j RETURN
#$IPTABLES -t nat -A PREROUTING -i tun0 -p tcp -m tcp -d 10.1.0.0/16 --dport 80 -j RETURN
#$IPTABLES -t nat -A PREROUTING -i tun0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128

# Drop everything to and from $INTIF (forward)
# This means that access points can only be managed from ChilliSpot
$IPTABLES -A FORWARD -i $INTIF -j DROP
$IPTABLES -A FORWARD -o $INTIF -j DROP

#Enable NAT on output device
$IPTABLES -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE

#sh /etc/firewall.iptables

แจ้งลบกระทู้นี้หรือติดต่อผู้ดูแล   บันทึกการเข้า
ageLOC Technology
Sontaya
Administrator
Expert : ผู้เชี่ยวชาญ
*****

Karma: +1/-0
ออฟไลน์ ออฟไลน์

กระทู้: 1931


Administrator


เว็บไซต์
« ตอบ #5 เมื่อ: ธันวาคม 24, 2011, 02:15:34 PM »


ช่วยดูให้หน่อยครับว่าผิดตรงไหน ใช้กับ Centosได้ แต่ Suse ไม่ได้
 vi SuSEfirewall2-custom

โค๊ด:

#
# Authors: Marc Heuse,
#          Volker Kuhlmann <[email protected]>
#
# /etc/sysconfig/scripts/SuSEfirewall2-custom
#
# ------------------------------------------------------------------------
#
# This is file is for SuSEfirewall2 and is an example for using
# the hooks which are supplied to load customized ipchains rules.
#
# THERE IS NO HELP FOR USING HOOKS EXCEPT THIS FILE ! SO READ CAREFULLY !
# IT IS USEFUL TO CROSS-READ /sbin/SuSEfirewall2 TO SEE HOW HOOKS WORK !
#
# ------------------------------------------------------------------------

fw_custom_after_chain_creation() {
    # these rules will be loaded after the various input_* and forward_* chains
    # are created.
    # You can use this hook to allow/deny certain IP protocols or TCP/UDP
    # ports before the SuSEfirewall2 generated rules are hit.

#example: always filter backorifice/netbus trojan connect requests and log them.
#for target in LOG DROP; do
#    for chain in input_ext input_dmz input_int forward_int forward_ext forward_dmz; do
#        iptables -A $chain -j $target -p tcp --dport 31337
#        iptables -A $chain -j $target -p udp --dport 31337
#        iptables -A $chain -j $target -p tcp --dport 12345:12346
#        iptables -A $chain -j $target -p udp --dport 12345:12346
#    done
#done

    true
}

fw_custom_before_port_handling() {
    # these rules will be loaded after the anti-spoofing and icmp handling
    # and after the input has been redirected to the input_XXX and
    # forward_XXX chains and some basic chain-specific anti-circumvention
    # rules have been set,
    # but before any IP protocol or TCP/UDP port allow/protection rules
    # will be set.
    # You can use this hook to allow/deny certain IP protocols or TCP/UDP
    # ports before the SuSEfirewall2 generated rules are hit.

    true
}

fw_custom_before_masq() { # could also be named "after_port_handling()"
    # these rules will be loaded after the IP protocol and TCP/UDP port
    # handling, but before any IP forwarding (routing), masquerading
    # will be done.
    # NOTE: reverse masquerading is before directly after
    #       fw_custom_before_port_handling !!!!
    # You can use this hook to ... hmmm ... I'm sure you'll find a use for
    # this ...

    true
}
fw_custom_before_denyall() { # could also be named "after_forwardmasq()"
    # these are the rules to be loaded after IP forwarding and masquerading
    # but before the logging and deny all section is set by SuSEfirewall2.
    # You can use this hook to prevent the logging of annoying packets.

#example: prevent logging of talk requests from anywhere
#for chain in input_ext input_dmz input_int forward_int forward_ext forward_dmz; do
#    iptables -A $chain -j DROP -p udp --dport 517:518
#done

    true
}


IPTABLES="/usr/sbin/iptables"
EXTIF="eth0"
INTIF="eth1"

#Flush all rules
$IPTABLES -F
$IPTABLES -F -t nat
$IPTABLES -F -t mangle

#Set default behaviour
$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -P OUTPUT ACCEPT

#Allow related and established on all interfaces (input)
$IPTABLES -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

#Allow releated, established and ssh on $EXTIF. Reject everything else.
$IPTABLES -A INPUT -i $EXTIF -p tcp -m tcp --dport 22 --syn -j ACCEPT
$IPTABLES -A INPUT -i $EXTIF -p tcp -m tcp --dport 80 --syn -j ACCEPT
$IPTABLES -A INPUT -i $EXTIF -p tcp -m tcp --dport 53 --syn -j ACCEPT
### Port  10000 for  Webmin
#$IPTABLES -A INPUT -i $EXTIF -p tcp -m tcp --dport 10000 --syn -j ACCEPT
### Port  3306 For MySQL Client for EXTIF
#$IPTABLES -A INPUT -i $EXTIF -p tcp -m tcp --dport 3306 --syn -j ACCEPT
$IPTABLES -A INPUT -i $EXTIF -j REJECT

#Allow related and established from $INTIF. Drop everything else.
$IPTABLES -A INPUT -i $INTIF -j DROP
$IPTABLES -A INPUT -i $INTIF -p tcp -m tcp --dport 22 --syn -j ACCEPT
$IPTABLES -A INPUT -i tun0 -p tcp -m tcp --dport 22 --syn -j ACCEPT
###  Port  10000 for  Webmin
$IPTABLES -A INPUT -i tun0 -p tcp -m tcp --dport 10000 --syn -j ACCEPT
###  Port  3306 For MySQL Client for INTIF,tun0
$IPTABLES -A INPUT -i $INTIF -p tcp -m tcp --dport 3306 --syn -j ACCEPT
$IPTABLES -A INPUT -i tun0 -p tcp -m tcp --dport 3306 --syn -j ACCEPT

### Allow  Samba port
$IPTABLES -A INPUT -i tun0 -p tcp -m tcp --dport 137 --syn -j ACCEPT
$IPTABLES -A INPUT -i tun0 -p tcp -m tcp --dport 138 --syn -j ACCEPT
$IPTABLES -A INPUT -i tun0 -p tcp -m tcp --dport 135 --syn -j ACCEPT
$IPTABLES -A INPUT -i tun0 -p tcp -m tcp --dport 445 --syn -j ACCEPT
### Lets try to get samba working:  SMB / NMB
$IPTABLES -A OUTPUT -p udp --dport netbios-ns -d 0/0 -s 0/0 -j ACCEPT
$IPTABLES -A OUTPUT -p udp --dport netbios-dgm -d 0/0 -s 0/0 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --dport netbios-ssn -d 0/0 -s 0/0 -j ACCEPT
$IPTABLES -A INPUT -p udp --sport netbios-ns -s 0/0 -d 0/0 -j ACCEPT
$IPTABLES -A INPUT -p udp --sport netbios-dgm -s 0/0 -d 0/0 -j ACCEPT
$IPTABLES -A INPUT -p tcp --sport netbios-ssn -s 0/0 -d 0/0 -j ACCEPT

#Allow http and https on other interfaces (input).
#This is only needed if authentication server is on same server as chilli
$IPTABLES -A INPUT -p tcp -m tcp --dport 80 --syn -j ACCEPT
$IPTABLES -A INPUT -p tcp -m tcp --dport 443 --syn -j ACCEPT

#Allow 3990 on other interfaces (input).
$IPTABLES -A INPUT -p tcp -m tcp --dport 3990 --syn -j ACCEPT
$IPTABLES -A INPUT -p tcp -m tcp --dport 53 --syn -j ACCEPT

#Allow ICMP echo on other interfaces (input).
$IPTABLES -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
$IPTABLES -A INPUT -i tun0 -p icmp --icmp-type echo-request -j ACCEPT
$IPTABLES -A INPUT -i $EXTIF -p icmp --icmp-type echo-request -j DROP
#$IPTABLES -I INPUT -p tcp --dport 22 -i $EXTIF -m state --state NEW -m recent --set
#$IPTABLES -I INPUT -p tcp --dport 22 -i $EXTIF -m state --state NEW -m recent --update --seconds 600 --hitcount 2 -j DROP

##Allow transparent proxy (wiboon 1/2)
#$IPTABLES -A INPUT -p tcp -m tcp --dport 3128 --syn -j ACCEPT

#Allow everything on loopback interface.
$IPTABLES -A INPUT -i lo -j ACCEPT

##Allow transparent proxy (wiboon 2/2)
#$IPTABLES -t nat -A PREROUTING -i tun0 -p tcp -m tcp --dport 3128 --syn -j DROP
#$IPTABLES -t nat -A PREROUTING -i tun0 -p tcp -m tcp -d 10.1.0.0/16 --dport 80 -j RETURN
#$IPTABLES -t nat -A PREROUTING -i tun0 -p tcp -m tcp -d 172.16.0.0/12 --dport 80 -j RETURN
#$IPTABLES -t nat -A PREROUTING -i tun0 -p tcp -m tcp -d 10.0.0.0/8 --dport 80 -j RETURN
#$IPTABLES -t nat -A PREROUTING -i tun0 -p tcp -m tcp -d 10.1.0.0/16 --dport 80 -j RETURN
#$IPTABLES -t nat -A PREROUTING -i tun0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128

# Drop everything to and from $INTIF (forward)
# This means that access points can only be managed from ChilliSpot
$IPTABLES -A FORWARD -i $INTIF -j DROP
$IPTABLES -A FORWARD -o $INTIF -j DROP

#Enable NAT on output device
$IPTABLES -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE

#sh /etc/firewall.iptables


อะไรใช้ไม่ได้หรือครับ?

iptables โดยไม่ผ่าน SuSEfirewall2 มีทางไหมครับ แก้ไขที่ network interface แล้วเพิ่มบรรทัดล่างนี้ถ้าต้องการให้ loading rules ลองดูครับ

- Save firewall rules
โค๊ด:
iptables-save > /etc/iptables.rules


- Loading rules with network up
โค๊ด:
vi /etc/sysconfig/network/ifcfg.xxx
...
pre-up iptables-restore < /etc/iptables.rules

แจ้งลบกระทู้นี้หรือติดต่อผู้ดูแล   บันทึกการเข้า

ageLOC Technology
train
Advanced Beginner : เริ่มต้นที่เริ่มเก่งแล้ว
**

Karma: +0/-0
ออฟไลน์ ออฟไลน์

กระทู้: 103


« ตอบ #6 เมื่อ: มกราคม 16, 2012, 07:06:12 PM »


ที่ใช้ไม่ได้คือ ไม่สามารถเขียน rule เองได้ครับ
โดยที่ไม่เกี่ยวกับ SuSEfirewall2
ตอนนี้คงต้องจาก suse แล้ว เพราะนำมาทำ server ใช้งานไม่ได้
ตอนนี้ทำ wifi authen ใช้ในหน่วยงาน
ถ้า admin จะศึกษาในการเขียนกฏของ iptables เพิ่มเหมือน linux ค่ายอื่นจะดีมากครับ
ตอนนี้ก็ใช้ centOS กำลังจะหัด ubuntu ก็ไม่ยาก
ยังไง ฝากเรื่อง นี้ด้วยนะครับ
ส่งเสริมการใช้ suse ในไทยหน่อยครับ คนใช้น้อยเหลือเกิน
แจ้งลบกระทู้นี้หรือติดต่อผู้ดูแล   บันทึกการเข้า
ageLOC Technology
Sontaya
Administrator
Expert : ผู้เชี่ยวชาญ
*****

Karma: +1/-0
ออฟไลน์ ออฟไลน์

กระทู้: 1931


Administrator


เว็บไซต์
« ตอบ #7 เมื่อ: มกราคม 18, 2012, 08:49:40 AM »


ส่วนมากๆ แล้วก็ไม่ค่อยมีใครรันลีนุกซ์ดิสโทรเดียว ให้บริการทุกๆ เซอร์วิสอยู่แล้วครับ ถ้ามองว่า iptables บนตัว openSUSE ไม่ถนัดก็มองตัวอื่นแทนได้ ส่วนมากระดับองค์กรก็ยังใช้ลีนุกซ์ที่เป็น Enterprise อยู่ครับ เช่น Red Hat หรือ SUSE Enterprise Server ครับ

แจ้งลบกระทู้นี้หรือติดต่อผู้ดูแล   บันทึกการเข้า

ageLOC Technology
train
Advanced Beginner : เริ่มต้นที่เริ่มเก่งแล้ว
**

Karma: +0/-0
ออฟไลน์ ออฟไลน์

กระทู้: 103


« ตอบ #8 เมื่อ: มกราคม 20, 2012, 09:19:31 AM »


ขอบคุณมากครับ ยังไง ถ้าทำอะไรที่มันสำเร็จ จะมาเล่าให้ชาว opensuse ให้และนำไปใช้กัน แต่ก่อนก็ใช้ตระกูล redhat ตอนนี้ก็พยายาม
ให้ suse ทำงานคุม simulator ที่ใช้ suse ครับ ก็พยายามใช้ให้มากจะได้รู้จักและแก้ไขปัญหาได้มากขึ้น ตอนนี้กำลังจะติดตั้ง
coova-chilli+freeradius+จัดการ user ของ ม.บรู จะออกมาให้คนใช้ Suse wfh ทดลองใช้กัน
แจ้งลบกระทู้นี้หรือติดต่อผู้ดูแล   บันทึกการเข้า
ageLOC Technology
Sontaya
Administrator
Expert : ผู้เชี่ยวชาญ
*****

Karma: +1/-0
ออฟไลน์ ออฟไลน์

กระทู้: 1931


Administrator


เว็บไซต์
« ตอบ #9 เมื่อ: มกราคม 20, 2012, 03:16:50 PM »


ขอบคุณมากครับ ยังไง ถ้าทำอะไรที่มันสำเร็จ จะมาเล่าให้ชาว opensuse ให้และนำไปใช้กัน แต่ก่อนก็ใช้ตระกูล redhat ตอนนี้ก็พยายาม
ให้ suse ทำงานคุม simulator ที่ใช้ suse ครับ ก็พยายามใช้ให้มากจะได้รู้จักและแก้ไขปัญหาได้มากขึ้น ตอนนี้กำลังจะติดตั้ง
coova-chilli+freeradius+จัดการ user ของ ม.บรู จะออกมาให้คนใช้ Suse wfh ทดลองใช้กัน


เห็นแต่เพื่อนๆ รัน coova-chilli+freeradius+จัดการ user ของ ม.บรู บน CentOS กันมี doc แต่ถ้ามี doc ที่สามารถให้ชุมชน suse ได้ลองก็คงดีเช่นกันครับ คืบหน้ายังไง update ด้วยนะครับ ขอบคุณครับ
แจ้งลบกระทู้นี้หรือติดต่อผู้ดูแล   บันทึกการเข้า

ageLOC Technology
Sontaya
Administrator
Expert : ผู้เชี่ยวชาญ
*****

Karma: +1/-0
ออฟไลน์ ออฟไลน์

กระทู้: 1931


Administrator


เว็บไซต์
« ตอบ #10 เมื่อ: มีนาคม 12, 2012, 06:10:58 PM »


อธิบายเพิ่มเติม

/etc/sysconfig/scripts/SuSEfirewall2-custom เป็นไฟล์ iptables rules  คือ เราสามารถเพิ่ม iptables rules ต่างๆ ในฟังก์ชันที่ต้องการได้เลย

/etc/sysconfig/SuSEfirewall2 (เก็บค่าคอนฟิกจากโหมด GUI (yast firewall) และสำหรับใช้ร่วมกับสคริปต์ไฟล์ /sbin/SuSEfirewall2

/sbin/SuSEfirewall2  (ทั้งหมด 2000 กว่าบรรทัด เยอะไปไหม?) ไฟล์สคริปต์นี้จะไปเรียกค่าคอนฟิกไฟร์วอลล์จาก "/etc/sysconfig/scripts/SuSEfirewall2-custom" โดยไฟล์นี้จะประกอบด้วยการกำหนดค่าฟังก์ชันต่างๆ เช่น fw_custom_before_denyall และอื่นๆ

ตัวอย่าง เช่น ระหว่างฟังก์ชั่น fw_custom_before_denyall() คุณต้องการทำไร?
ก็ต้องไปใช้คำสั่ง iptables ที่ไฟล์ "/etc/sysconfig/scripts/SuSEfirewall2-custom"

โค๊ด:
...
fw_custom_before_denyall() { # could also be named "after_forwardmasq()"
    # these are the rules to be loaded after IP forwarding and masquerading
    # but before the logging and deny all section is set by SuSEfirewall2.
    # You can use this hook to prevent the logging of annoying packets.

#example: prevent logging of talk requests from anywhere
#for chain in input_ext input_dmz input_int forward_int forward_ext forward_dmz; do
#    iptables -A $chain -j DROP -p udp --dport 517:518
#done
######### กำหนด rules ตามต้องการ ##############
    true
}

« แก้ไขครั้งสุดท้าย: มีนาคม 12, 2012, 06:13:39 PM โดย Sontaya » แจ้งลบกระทู้นี้หรือติดต่อผู้ดูแล   บันทึกการเข้า

ageLOC Technology
หน้า: [1]   ขึ้นบน
  พิมพ์  
 
กระโดดไป:  

(@)2007 SUSE Linux user community found in Thailand. This site is not an official openSUSE and SUSE website, and is not in any way affiliated with or endorsed by SUSE Linux GmbH or Novell. openSUSE and SUSE are trademarks of Novell, Inc. in the United States and other countries.
Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!
หน้านี้ถูกสร้างขึ้นภายในเวลา 0.028 วินาที กับ 19 คำสั่ง (Pretty URLs adds 0.008s, 2q)