วันจันทร์ที่ 13 ธันวาคม พ.ศ. 2553

Linux, Secure Shell : ระบุเวลาในการใช้งาน SSH

ในกรณีที่ต้องการระบุเวลาในการใช้งาน SSH เช่น ต้องการอนุญาตให้ user1 สามารถ Login ผ่าน SSH ได้เฉพาะวันที่จันทร์ - ศุกร์ เวลา 08.00 - 15.00 เท่านั้น ส่วนวันและเวลานอกนั้นไม่อนุญาตให้ Login ได้ เป็นต้น ซึ่งในกรณีนี้จะใช้ความสามารถของ PAM เข้ามาช่วย

ระบบที่ใช้ทดสอบ
OS : Ubuntu Linux 10.04.1 x64 LTS

โจทย์ที่ต้องการ
อนุญาตให้ user1 สามารถ login ผ่าน SSH ได้ตามเวลาที่กำหนด คือ วันจันทร์ - ศุกร์ เวลา 08.30 - 15.00 เท่านั้น

เริ่มด้วยแก้ไขไฟล์ /etc/pam.d/sshd โดยเพิ่ม

account required pam_time.so

จากนั้นแก้ไขไฟล์ /etc/security/time.conf โดยเพิ่ม

sshd;*;user1;MoTuWdThFr0830-1755

จากนั้นทำการ restart SSH

root@Linux:~# /etc/init.d/ssh restart

จากนั้นทำการทดสอบใช้งาน จะพบว่า user1 ไม่สามารถ login ได้ ส่วน user อื่นยังสามารถใช้งานได้ตามปกติ

ตัวอย่าง Log ที่เกิดขึ้นจากการ login ของ user1 นอกเวลาที่กำหนดไว้

Dec 13 18:06:34 Linux sshd[3471]: Failed password for user1 from 172.17.12.51 port 62763 ssh2

ข้อสังเกตุ
หาก user1 ได้ทำการ login ในเวลาที่กำหนด แต่ยังคง Session ไว้จนเกินเวลาที่กำหนด ระบบจะไม่ตัด Session นั้นทิ้ง

วันพุธที่ 1 ธันวาคม พ.ศ. 2553

Shell Script : expect - programmed dialogue with interactive programs

ตัวอย่างการใช้งาน expect เพื่อใช้ในการ ssh หรือ telnet แบบอัตโนมัติไปยังอุปกรณ์ที่ต้องการ และสั่งให้อุปกรณ์นั้นทำงานตามคำสั่งที่กำหนดไว้ล่วงหน้า เสมือนว่าเราเป็นพิมพ์คำสั่งเอง (ประมาณว่าทำ bot)

ระบบที่ใช้ทดสอบ
Telnet Client : Ubuntu Linux โดยเครื่องนี้จะเป็น Bot และทำการ remote ไปยังเครื่องเป้าหมาย และพิมพ์คำสั่งต่าง ตามที่ได้กำหนดไว้ก่อนแล้ว
Telnet Server : Cisco Catalyst 3560 โดยเครื่องนี้จะถูก bot ทำการ remote เข้ามาเก็บข้อมูลที่ต้องการ

ตัวอย่างโจทย์ : สมมุติว่า ต้องการเก็บข้อมูล Mac address ที่อยู่บน Interface FastEthernet 0/1 ของ Switch เป้าหมายทุกๆ 1 ชั่วโมง และเป็นแบบอัตโนมัติ

วิธีการแบบ Manual : ทำการ Telnet ไปยัง Switch ที่ต้องการ แล้วใช้คำสั่ง show mac-address-table interface fastEthernet 0/1 แล้วเก็บ Output ที่ได้ โดยวิธีการนี้ ผู้ได้รับมอบหมายต้อง Telnet เองทุกๆ 1 ชั่วโมง ดังตัวอย่าง

komkit@Linux:~$ telnet 192.168.0.1
Trying 192.168.0.1...
Connected to 192.168.0.1.
Escape character is '^]'.
User Access Verification

Username: komkit
Password:
Switch> show mac-address-table interface fastEthernet 0/1
Mac Address Table
-------------------------------------------

Vlan Mac Address Type Ports
---- ----------- -------- -----
1 001a.a026.466b DYNAMIC Fa0/1
1 001a.a026.466d DYNAMIC Fa0/1
Total Mac Addresses for this criterion: 2

Switch> exit
Connection closed by foreign host.
komkit@Linux:~$

จากวิธีการข้างต้น ผู้ดูแลระบบต้องทำการ telnet เข้าไปเองทุกๆ 1 ชั่วโมง เพื่อให้ได้ข้อมูลที่ต้องการ


วิธีการแบบอัตโนมัติ โดยใช้ expect บน Linux
แนวคิดคือ ทำเหมือนว่าเป็นคน Telnet เอง แต่ว่าจะให้ระบบ (bot) เป็นคนพิมพ์ให้
เริ่มด้วย ติดตั้ง expect

root@Linux:~# apt-get install expect

จากนั้นทำการสร้าง Script เพื่อให้ทำงานแทนเรา ดังตัวอย่าง

root@Linux:~# vi bot_telnet

#!/usr/bin/expect --
spawn telnet 192.168.0.1
expect "Username: "
send "komkit\r"
expect "pssword: "
send "TelnetPassword\r"
expect "Switch>"
send "show clock \r"
expect "Switch>"
send \r
expect "Switch>"
send "show mac-address-table interface fastEthernet 0/1 \r"
expect "Switch>"
send \r
expect "Switch>"
send exit\r
expect closed
exit 0

โดยค่าที่สนใจมีดังนี้

spawn คือ เริ่มทำงาน
expect คือ Prompt ที่สนใจ
send คือ เมื่อเจอ prompt ตาม expect ข้างต้นแล้ว ให้ส่ง Message หรือ Command เข้าไป (เหมือนว่าเรากำลังพิมพ์)
\r คือ กด Enter

ทำการ Save ไฟล์ แล้วทำการทดสอบดังนี้

root@Linux:~# expect bot_telnet
spawn telnet 192.168.0.1
Trying 192.168.0.1...
Connected to 192.168.0.1.
Escape character is '^]'.
User Access Verification

Username: komkit
Password:
Switch>show clock
12:23:09.058 GMT+7 Thu Dec 2 2010
Switch>
Switch>show mac-address-table interface fastEthernet 0/1
Mac Address Table
-------------------------------------------

Vlan Mac Address Type Ports
---- ----------- -------- -----
1 001a.a026.466b DYNAMIC Fa0/1
1 001a.a026.466d DYNAMIC Fa0/1
Total Mac Addresses for this criterion: 2
Switch>
Switch>exit
Connection closed by foreign host.
root@Linux:~#

จาก Output ดังกล่าวจะเห็นว่า เราได้ข้อมูลตามต้องการ ต่อไปก็นำ Script ดังกล่าวให้ทำงานโดย cron แล้วเก็บ Output ลงไฟล์ เช่น

1 * * * * root expect bot_telnet >> /home/komkit/Switch_MAC.log

เมื่อ Admin ต้องการดูข้อมูล ก็เข้าไปดู File ดังกล่าวได้ตลอดเวลา


วันอาทิตย์ที่ 7 พฤศจิกายน พ.ศ. 2553

Linux, FreeBSD : การเทียบเวลาผ่าน ntpdate

ตัวอย่างการใช้งานคำสั่ง ntpdate เพื่อทำการเทียบเวลากับ NTP Server

ระบบที่ทดสอบ

Ubuntu 9.10 x64

NTP Server ที่ใช้ในการทดสอบ time1.nimt.or.th และ time2.nimt.or.th

- ทำการเทียบเวลาไปที่ time1.nimt.or.th โดยใช้ ntpdate

root@Linux:~# ntpdate time1.nimt.or.th
8 Nov 01:34:50 ntpdate[8825]: adjust time server 203.185.69.60 offset -0.000742 sec

- การส่ง message ของการเทียบเวลาให้เก็บเป็น Syslog (Divert logging output)

root@Linux:~# ntpdate -s time1.nimt.or.th
root@Linux:~# tail -n 1 /var/log/syslog
Nov 8 01:43:37 Linux ntpdate[10979]: adjust time server 203.185.69.60 offset -0.004108 sec

- ทำการเทียบเวลาไปที่ time1.nimt.or.th และ time2.nimt.or.th โดยให้ ntpdate เลือกเทียบอัตโนมัติ ซึ่งในกรณีนี้ ถ้า NTP Server เครื่องใดมีปัญหา ระบบจะทำการเทียบเวลากับเครื่องที่ยังทำงานอยู่ ส่วนในกรณีที่ทั้งสองเครื่องทำงานอยู่ ระบบจะเลือกเครื่องที่มี stratum ดีกว่า และ Delay ต่ำกว่า ตามลำดับ

root@Linux:~# ntpdate time1.nimt.or.th time2.nimt.or.th
8 Nov 01:36:08 ntpdate[9354]: adjust time server 203.185.69.60 offset -0.000014 sec

- การตรวจสอบ NTP stratum และ Delay ของเครื่อง NTP server ที่สนใจ

root@Linux:~# ntpdate -q time1.nimt.or.th
server 203.185.69.60, stratum 1, offset -0.001715, delay 0.02739
8 Nov 01:38:02 ntpdate[9743]: adjust time server 203.185.69.60 offset -0.001715 sec

วันอังคารที่ 12 ตุลาคม พ.ศ. 2553

Windows, Network : Set static arp บน Windows7 เพื่อป้องกัน ARP Spoofing

ปกติการ Set static ARP โดยใช้ command

arp -s IP_address MAC_address

เมื่อเครื่อง reboot ค่าที่กำหนดไว้ก็จะหายไปด้วย ซึ่งวิธีการแก้ไขก็อาจโดยการสร้างเป็น .bat เพื่อให้ทำงานทุกครั้งที่เปิดเครื่อง แต่ในกรณีนี้จะใช้วิธี netsh โดยสามารถทำได้ดังนี้

ระบบทดสอบ
OS: Microsoft Windows 7 Professional x64

วิธีการเพิ่ม Static ARP

netsh interface ipv4 add neighbors "Local Area Connection" "192.168.100.1" "00-1e-5a-a5-2b-c7"

โดย
Local Area Connection คือ Network Interface ที่ใช้ในการเชื่อมต่อ
192.168.100.1 คือ IP address ที่สนใจ
00-1e-5a-a5-2b-c7 คือ Mac address ของ IP address ที่สนใจ

วิธีการลบ Static ARP ของจาก ARP table

netsh interface ipv4 delete neighbors "Local Area Connection" "192.168.100.1" "00-1e-5a-a5-2b-c7"


วิธีการแสดงรายการ ARP table

arp -a

หรือ

netsh interface ipv4 show neighbors

หรือ

netsh interface ipv4 show neighbors "Local Area Connection"

ทดสอบโดยการ reboot พบว่า ARP ยังคงอยู่ในระบบ

วันจันทร์ที่ 20 กันยายน พ.ศ. 2553

SNMP : ตัวอย่างการเรียกดูข้อมูลของเครื่องเป้าหมายผ่าน Protocol SNMP

ในกรณีที่เราเปิดการใช้งาน SNMP ไว้ แต่ไม่มีการป้องกันการเข้าถึงนั้น อาจทำเป็นช่องโหว่ทำให้ผู้บุกรุกเข้ามาหาข้อมูลเพื่อบุกรุกเครื่องเราได้ (FootPrinting) ดังตัวอย่าง

กำหนดให้

Target OS : Microsoft Windows 7
HostName = MSW-server
snmp-community string = MyServer

Hacker OS : Ubuntu 9.10
HostName = hacker-server


hacker-server$ snmwalk -v 2c -c MyServer MSW-server system

SNMPv2-MIB::sysDescr.0 = STRING: Hardware: x86 Family 15 Model 72 Stepping 2 AT/AT COMPATIBLE - Software: Windows Version 6.1 (Build 7600 Multiprocessor Free)
SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.311.1.1.3.1.1
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (1013543) 2:48:55.43
SNMPv2-MIB::sysContact.0 = STRING: admin@MSW-server
SNMPv2-MIB::sysName.0 = STRING: Windows-Server
SNMPv2-MIB::sysLocation.0 = STRING: Secure, IDC
SNMPv2-MIB::sysServices.0 = INTEGER: 79

จากตัวอย่างข้างต้นจะเห็นว่า สามารถเรียกดูข้อมูลของ OS ได้ จากนั้นลองทดสอบเรียกดูว่าเครื่องเป้าหมายติดตั้งโปรแกรมอะไรบ้าง

hacker-server$ snmpwalk -v 2c -c MyServer MSW-server SWInstalledName
HOST-RESOURCES-MIB::hrSWInstalledName.1 = STRING: "Vuze"
HOST-RESOURCES-MIB::hrSWInstalledName.2 = STRING: "Adobe AIR"
HOST-RESOURCES-MIB::hrSWInstalledName.3 = STRING: "Adobe Flash Player 10 ActiveX"
HOST-RESOURCES-MIB::hrSWInstalledName.4 = STRING: "Adobe Flash Player 10 Plugin"
HOST-RESOURCES-MIB::hrSWInstalledName.5 = STRING: "aMSN 0.98.3"
HOST-RESOURCES-MIB::hrSWInstalledName.6 = STRING: "avast! Free Antivirus"
HOST-RESOURCES-MIB::hrSWInstalledName.7 = STRING: "BitComet 0.70"
HOST-RESOURCES-MIB::hrSWInstalledName.8 = STRING: "Cisco Packet Tracer 5.3"
HOST-RESOURCES-MIB::hrSWInstalledName.9 = STRING: "Foxit Reader"
HOST-RESOURCES-MIB::hrSWInstalledName.10 = STRING: "GNS3 0.7.2"
HOST-RESOURCES-MIB::hrSWInstalledName.11 = STRING: "K-Lite Mega Codec Pack 5.9.0"
HOST-RESOURCES-MIB::hrSWInstalledName.12 = STRING: "Microsoft .NET Framework 4 Client Profile"
HOST-RESOURCES-MIB::hrSWInstalledName.13 = STRING: "Microsoft Visual J# 2.0 Redistributable Package - SE"

จากผลลัพธ์จะเห็นว่า สามารถแสดงรายชื่อ Software ที่อยู่บนเครื่องเป้าหมายได้
ดังนั้นในการใช้งาน SNMP ควรมีการป้องกันระบบให้ดี

FreeBSD, MRTG : การติดตั้ง MRTG เพื่อดูปริมาณการใช้งาน Network Traffic

ระบบที่ใช้

OS : FreeBSD 8.1 amd64

เริ่มด้วยการติดตั้ง snmpd ก่อน

server# cd /usr/ports/net-mgmt/net-snmp
server# make install
server# rehash

สร้างไฟล์ Configuration ของ SNMP

server# mkdir /etc/snmp
server# echo "rocommunity myServer" > /etc/snmp/snmpd.conf

เพิ่มบรรทัดต่อไปนี้เข้าไปใน /etc/rc.conf

snmpd_enable="YES"
snmpd_conffile="/etc/snmp/snmpd.conf"

สั่ง start SNMP โดย

server# /usr/local/etc/rc.d/snmpd start

ทดสอบการใช้งาน SNMP โดย

server# snmpwalk -v 2c -c myServer 127.0.0.1

ถ้าได้ output ที่ไม่ใช่ Error ออกมาก็เป็นอันใช้ได้

ต่อไปติดตั้ง MRTG

server# cd /usr/ports/net-mgmt/mrtg
server# make install
server# rehash

จากนั้นทำการสร้าง MRTG Configuration file ดังนี้

server# cfgmaker --global 'WorkDir: /www/mrtg' \
--global 'Options[_]: growright,bits' \
--output /usr/local/etc/mrtg/127.0.0.1.cfg \
myServer@127.0.0.1

หลังจากได้ Configuration file แล้ว ก็ทำการสั่งให้ MRTG ไปเก็บค่า snmp ตามที่ต้องการ ดังนี้

server# mrtg /usr/local/etc/mrtg/127.0.0.1.cfg

ทั้งนี้ เนื่องจากเป็นการใช้งานครั้งแรก อาจมี error อยู่ ซึ่งอาจต้องสั่งซ้ำๆ 2-3 ครั้ง เพื่อให้ error หมดไป ซึ่งเมื่อ error หมดไปแล้ว จะได้ output ไปอยู่ที่ /www/mrtg ตามที่ได้กำหนดไว้ในขั้นสร้างไฟล์ Configuration ซึ่งจะเรียกดู output ผ่าน web browser ตามปกติ

จากนั้นกำหนดให้ MRTG ทำงานทุกๆ 5 นาที โดยไปกำหนดที่ /etc/crontab ดังนี้

*/5 * * * * root /usr/local/bin/mrtg /usr/local/etc/mrtg/127.0.0.1.cfg

วันพฤหัสบดีที่ 2 กันยายน พ.ศ. 2553

Linux, Network : เปลี่ยนชื่อ Network Interface

ในกรณีที่ใช้ Linux มาทำเป็น Firewall นั้น บางทีจะอยากจะเปลี่ยนชื่อของ Network Interface ให้ตรงกับ Zone ในใช้งาน เพื่อให้ง่ายในการจดจำ ในกรณีที่มีหลาย Interface เช่น จากเดิม eth0 ก็ไปเป็น wan เป็นต้น

ระบบที่ทดสอบ

OS : Ubuntu Linux 10.04.1 LTS

กำหนดให้
eth0 --> wan
eth1 --> lan
eth2 --> wireless
eth3 --> dmz

ระบบเดิม
root@server:~# ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:14:22:15:eb:ed
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Base address:0xccc0 Memory:df8e0000-df900000

eth1 Link encap:Ethernet HWaddr 00:14:22:15:eb:ee
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Base address:0xbcc0 Memory:df6e0000-df700000

eth2 Link encap:Ethernet HWaddr 00:01:02:58:ed:ca
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupt:37 Base address:0xc00

eth3 Link encap:Ethernet HWaddr 00:04:76:21:ac:96
inet addr:172.17.12.55 Bcast:172.17.12.255 Mask:255.255.255.0
inet6 addr: fe80::204:76ff:fe21:ac96/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:359 errors:0 dropped:0 overruns:1 frame:0
TX packets:173 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:33463 (32.6 KB) TX bytes:22815 (22.2 KB)
Interrupt:39 Base address:0xec00

ขั้นตอนการเปลี่ยน
ให้แก้ไขที่ไฟล์ /etc/udev/rules.d/70-persistent-net.rules โดยก่อนการแก้ไข ควร backup ไฟล์นี้ไว้ก่อน

root@server:/etc/udev/rules.d# cp 70-persistent-net.rules 70-persistent-net.rules.backup

จากนั้นมาดูเนื้อหาในไฟล์นี้ก่อนว่ามีอะไรน่าสนใจบ้าง

root@server:/etc/udev/rules.d# cat 70-persistent-net.rules

# This file was automatically generated by the /lib/udev/write_net_rules
# program run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single line.

# PCI device 0x8086:0x1076 (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:14:22:15:eb:ed", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# PCI device 0x8086:0x1076 (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:14:22:15:eb:ee", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

# PCI device 0x10b7:0x9200 (3c59x)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:01:02:58:ed:ca", ATTR{type}=="1", KERNEL=="eth*", NAME="eth2"

# PCI device 0x10b7:0x9200 (3c59x)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:04:76:21:ac:96", ATTR{type}=="1", KERNEL=="eth*", NAME="eth3"


จาก output จะเห็นว่า จะมีการ map หมายเลขของ MAC address เช่น ATTR{address}=="00:04:76:21:ac:96" ---> NAME="eth3"
ซึ่งเราจะมาทำการแก้ตรงนี้แหละ

root@server:/etc/udev/rules.d# vi 70-persistent-net.rules

# This file was automatically generated by the /lib/udev/write_net_rules
# program run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single line.

# PCI device 0x8086:0x1076 (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:14:22:15:eb:ed", ATTR{type}=="1", KERNEL=="eth*", NAME="wan" <--- แก้เป็น wan จากเดิม eth0

# PCI device 0x8086:0x1076 (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:14:22:15:eb:ee", ATTR{type}=="1", KERNEL=="eth*", NAME="lan" <--- แก้เป็น lan จากเดิม eth1

# PCI device 0x10b7:0x9200 (3c59x)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:01:02:58:ed:ca", ATTR{type}=="1", KERNEL=="eth*", NAME="wireless" <--- แก้เป็น wireless จากเดิม eth2

# PCI device 0x10b7:0x9200 (3c59x)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:04:76:21:ac:96", ATTR{type}=="1", KERNEL=="eth*", NAME="dmz" <--- แก้เป็น dmz จากเดิม eth3

จากนั้นให้ทำการแก้ไข network configuration เพื่อให้รู้จักชื่อ Interface ใหม่

root@server# vi /etc/network/interfaces

auto lo
iface lo inet loopback

# The primary network interface
auto dmz <--- แก้เป็น dmz จากเดิม eth3
iface dmz inet static <--- แก้เป็น dmz จากเดิม eth3
address 172.17.12.55
netmask 255.255.255.0
gateway 172.17.12.1


เมื่อตรวจสอบเรียบร้อยแล้ว ก็ reboot เครื่อง
และเมื่อเครื่อง boot เสร็จแล้ว ก็ทำการตรวจสอบผลงานซะหน่อย

root@server:/# ifconfig -a
dmz Link encap:Ethernet HWaddr 00:04:76:21:ac:96
inet addr:172.17.12.55 Bcast:172.17.12.255 Mask:255.255.255.0
inet6 addr: fe80::204:76ff:fe21:ac96/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3135 errors:0 dropped:0 overruns:1 frame:0
TX packets:1038 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:317387 (309.9 KB) TX bytes:171021 (167.0 KB)
Interrupt:39 Base address:0xcc00

lan Link encap:Ethernet HWaddr 00:14:22:15:eb:ee
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Base address:0xbcc0 Memory:df6e0000-df700000

wan Link encap:Ethernet HWaddr 00:14:22:15:eb:ed
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Base address:0xccc0 Memory:df8e0000-df900000

wireless Link encap:Ethernet HWaddr 00:01:02:58:ed:ca
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupt:37 Base address:0xec00

root@server:/# ethtool dmz

Settings for dmz:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Advertised auto-negotiation: Yes
Speed: 100Mb/s
Duplex: Full
Port: MII
PHYAD: 24
Transceiver: internal
Auto-negotiation: on
Current message level: 0x00000001 (1)
Link detected: yes

ทดสอบด้วย iptables

root@server:/# iptables -A INPUT -i dmz -j ACCEPT
root@server:/# iptables -A INPUT -i lan -j ACCEPT
root@server:/#
root@server:/# iptables -nvL INPUT
Chain INPUT (policy ACCEPT 796 packets, 64226 bytes)
pkts bytes target prot opt in out source destination
57 4308 ACCEPT all -- dmz * 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT all -- lan * 0.0.0.0/0 0.0.0.0/0


แต่เมื่อทดสอบด้วย
mii-tool กลับไม่รู้จักซะงั้น (ไม่เป็นไร พอรับได้)
root@server:/# mii-tool
no MII interfaces found


หมายเหตุ การเปลี่ยนชื่อ interface นั้นอาจทำให้ Application บางตัวที่สนใจแต่ชื่อ eth มีปัญหาได้ ดังนั้นควรตรวจสอบให้ดีก่อนใช้งานในระบบจริง (แต่เท่าที่ผมทดสอบในระบบของผม ไม่พบปัญหา)