关于Ubuntu DHCP server 的一些问题-涉及IPTABLE转发和UFW
-
- 帖子: 104
- 注册时间: 2011-07-20 11:33
关于Ubuntu DHCP server 的一些问题-涉及IPTABLE转发和UFW
我的ubuntu 是14.04 桌面版,用putty连接的远程进行管理的
安装dhcp server 使用的是 sudo apt-get install dhcp3-server
但是提示,没有这个文件,要我安装的 isc-dhcp-server,安装以后,也有dhcpd.conf了
看了conf的文件模板,好像不能满足我想要的应用,
我的服务器有双网卡,eth0为172段,eth1为192段,我有一个无线AP,DHCP功能仅仅想给这个无线AP使用,也就是说,所有能连接到这个AP的用户才能能使用DHCP的功能,获得192段的地址。
eth1的地址为192.168.10.100/24
如何限制,非AP的连接的用户不能使用这个DHCP server。
安装dhcp server 使用的是 sudo apt-get install dhcp3-server
但是提示,没有这个文件,要我安装的 isc-dhcp-server,安装以后,也有dhcpd.conf了
看了conf的文件模板,好像不能满足我想要的应用,
我的服务器有双网卡,eth0为172段,eth1为192段,我有一个无线AP,DHCP功能仅仅想给这个无线AP使用,也就是说,所有能连接到这个AP的用户才能能使用DHCP的功能,获得192段的地址。
eth1的地址为192.168.10.100/24
如何限制,非AP的连接的用户不能使用这个DHCP server。
上次由 micro_cy 在 2015-03-04 13:53,总共编辑 1 次。
-
- 论坛版主
- 帖子: 18279
- 注册时间: 2009-08-04 16:33
Re: 关于Ubuntu DHCP server 的一些问题
參閱要我安装的 isc-dhcp-server,安装以后,也有dhcpd.conf了
看了conf的文件模板,好像不能满足我想要的应用,
https://help.ubuntu.com/14.04/serverguide/dhcp.html
https://help.ubuntu.com/community/dhcp3-server
http://manpages.ubuntu.com/manpages/tru ... onf.5.html
http://www.isc.org/downloads/dhcp/
使用 wpa2如何限制,非AP的连接的用户不能使用这个DHCP server。
https://help.ubuntu.com/community/WifiDocs/WPAHowTo
使用 wpasupplicant 搜尋
-
- 帖子: 104
- 注册时间: 2011-07-20 11:33
Re: 关于Ubuntu DHCP server 的一些问题
感谢您的回复,这几篇帖子我已经浏览了,关于wpasupplicant的文章,我确实没怎么看懂,难度很大,而且都是E问,理解起来不是很透彻,我想我考虑的功能应该根据此篇文章能够实现,只是如下部分应该怎么理解:poloshiao 写了:參閱要我安装的 isc-dhcp-server,安装以后,也有dhcpd.conf了
看了conf的文件模板,好像不能满足我想要的应用,
https://help.ubuntu.com/14.04/serverguide/dhcp.html
https://help.ubuntu.com/community/dhcp3-server
http://manpages.ubuntu.com/manpages/tru ... onf.5.html
http://www.isc.org/downloads/dhcp/使用 wpa2如何限制,非AP的连接的用户不能使用这个DHCP server。
https://help.ubuntu.com/community/WifiDocs/WPAHowTo
使用 wpasupplicant 搜尋
=============================================================================================
Note to Kubuntu users: No editing of files needed. Just make sure wpasupplicant is installed and start knetworkmanager from the Internet menu.
Edit /etc/wpa_supplicant.conf to include your network. The info to include can be generated with wpa_passphrase (i) (although this is optional, it saves the supplicant having to generate the preshared key (PSK) each time it is started):
IconsPage/example.png
dennis@mirage:~$ wpa_passphrase NetworkEssid
# reading passphrase from stdin
TextPassphrase
network={
ssid="NetworkEssid"
#psk="TextPassphrase"
psk=945609a382413e64d57daef00eb5fab3ae228716e1e440981c004bc61dccc98c
}
(i) Requiring wpa_passphrase to prompt for the passphrase, rather than providing it as a command line argument, prevents the phrase from being stored insecurely in your shell's history.
Then add the following to the end of /etc/wpa_supplicant.conf:
network={
ssid="NetworkEssid"
scan_ssid=1 # only needed if your access point uses a hidden ssid
proto=WPA
key_mgmt=WPA-PSK
psk=945609a382413e64d57daef00eb5fab3ae228716e1e440981c004bc61dccc98c
}
(i) You may have to specify proto=WPA and key_mgmt=WPA-PSK, but wpa_supplicant can usually autodetect them correctly.
===============================================================================================
Integration with DHCP
(i) Note that the instructions below are deprecated. The changes that I made in Dapper's wpasupplicant package already take care of this case. [DanielTChen]
If you want your wireless card to aquire a new IP address using DHCP when wpa_supplicant associates with an access point, use the wpa_cli utility as documented in the wpa_supplicant README:
wpa_cli can used to run external programs whenever wpa_supplicant
connects or disconnects from a network. This can be used, e.g., to
update network configuration and/or trigget DHCP client to update IP
addresses, etc.
The wpa_cli utility can automatically execute a script whenever wpa_supplicant connects or disconnects from an access point. For this, use the -a switch like so:
wpa_cli -a<my-script>
The script will be invoked like this:
my-script $IF $CONN
Where $IF is the interface (eth0, ath0, etc), and $CONN is the event - either "CONNECTED" or "DISCONNECTED".
IconsPage/example.png
The simplest thing to do is write a script that invokes ifup or ifdown. I've put it in /sbin/wpa_action:
#! /bin/bash
IFNAME=$1
CMD=$2
if [ "$CMD" == "CONNECTED" ]; then
SSID=`wpa_cli -i$IFNAME status | grep ^ssid= | cut -f2- -d=`
logger "WiFi: Connecting `$IFNAME' to network `$SSID'"
ifup $IFNAME
elif [ "$CMD" == "DISCONNECTED" ]; then
logger "WiFi: Disconnecting `$IFNAME`"
ifdown $IFNAME
fi
Then, edit /etc/init.d/wpasupplicant to run wpa_cli appropriately. Look for these lines:
case "$1" in
start)
echo -n "Starting wpa_supplicant: "
start-stop-daemon --start --name $PNAME
--oknodo --startas $DAEMON -- -B $OPTIONS
echo "done."
;;
stop)
Insert a sleep and wpa_cli call below the start-stop-daemon call:
case "$1" in
start)
echo -n "Starting wpa_supplicant: "
start-stop-daemon --start --name $PNAME
--oknodo --startas $DAEMON -- -B $OPTIONS
sleep 1
wpa_cli -a/sbin/wpa_action -B
echo "done."
;;
stop)
If you are using DHCP exclusively to configure your wireless interface, then make sure you have this line for your wireless interface in /etc/network/interfaces:
iface eth0 inet dhcp
Where "eth0" is your wireless interface. And you'll want to make sure that your computer doesn't try to automatically start the interface up without an associated AP, so remove your wireless interface from the 'auto' line in /etc/network/interfaces:
auto lo eth0 eth1
So it becomes
auto lo eth1
Listing only those interfaces that you want to configure on startup. (Obviously, your 'auto' line will look different, depending on what network interfaces you have on your system.) Now, whenever you associate with a new wireless access point, your wireless interface will have an IP automatically configured and you'll be fully connected to the network. (YAY!)
===============================================================================================
-
- 论坛版主
- 帖子: 18279
- 注册时间: 2009-08-04 16:33
Re: 关于Ubuntu DHCP server 的一些问题
1. 先看看 wpa关于wpasupplicant的文章,我确实没怎么看懂
http://zh.wikipedia.org/wiki/WPA
http://en.wikipedia.org/wiki/Wi-Fi_Protected_Access
2. 再看看 wpa2
http://zh.wikipedia.org/wiki/WPA#WPA2
http://en.wikipedia.org/wiki/Wi-Fi_Prot ... ccess#WPA2
3. 當你打開 wifi ap 的 訊號搜尋
如果發現一些 ssid 圖示上有一個鎖頭圖示
表示該 ssid 使用的可能就是 wpa2 碼
要連入該 ssid 的 ap 就會問你要 wpa2 碼
意思是 沒有 wpa2 碼 就幾乎無法連入該 ssid
4. wpasupplicant 是 Ubuntu 套件庫 裡的套件 client support for WPA and WPA2 (IEEE 802.11i)
http://packages.ubuntu.com/search?suite ... chon=names
5. Ubuntu 最進的版本 預設由 network-manager 套件管理連網我确实没怎么看懂,难度很大
要徹底了解 network-manager 的設定
請先詳讀這兩篇
viewtopic.php?p=3124925#p3124925
https://wiki.gnome.org/Projects/Network ... emSettings
5-1. wpa 只是 network-manager 設定的一顆小棋子
意思是 上面這一篇 有助於你了解 wpa 及 wpa2 的設定
-
- 帖子: 104
- 注册时间: 2011-07-20 11:33
Re: 关于Ubuntu DHCP server 的一些问题
我想我理解的功能实现的方案是:
使用在DHCPd.conf配置,限制只有连入指定的SSID的用户,才能分配到可用的IP地址。
因为我的服务器本身是没有WLAN网卡的,通过AP的自身进行SSID的联入验证,当然可以使用WPA或者WPA2,或者WEP,目的是只要有用户能接入这个AP无线设备,通过交换机连接的服务器开启DHCP-server的功能来给这些用户分配可用的IP地址,但是在这个有线的局域网里面,DHCP-server面对所有用户都是开启的,所以,我不希望联入有线局域网的用户也能获得这个DHCP-server提供的IP地址。
所以再DHCPd.conf里面设置range的时候,如果给出range的范围,那就应该是一个全局的,让DHCPD.CONF如何判断SSID为我指定的SSID。
这个时候就需要使用wpasupplican的功能来判断,但是如果不使用这个wpasupplican的功能能否实现以上功能。
关于WPA的验证的问题,我的WPA验证都是在AP完成的,和服务器本身是没有关系的,所以,我想在服务器里面设置关于WPA验证不知道有什么作用?
使用在DHCPd.conf配置,限制只有连入指定的SSID的用户,才能分配到可用的IP地址。
因为我的服务器本身是没有WLAN网卡的,通过AP的自身进行SSID的联入验证,当然可以使用WPA或者WPA2,或者WEP,目的是只要有用户能接入这个AP无线设备,通过交换机连接的服务器开启DHCP-server的功能来给这些用户分配可用的IP地址,但是在这个有线的局域网里面,DHCP-server面对所有用户都是开启的,所以,我不希望联入有线局域网的用户也能获得这个DHCP-server提供的IP地址。
所以再DHCPd.conf里面设置range的时候,如果给出range的范围,那就应该是一个全局的,让DHCPD.CONF如何判断SSID为我指定的SSID。
这个时候就需要使用wpasupplican的功能来判断,但是如果不使用这个wpasupplican的功能能否实现以上功能。
关于WPA的验证的问题,我的WPA验证都是在AP完成的,和服务器本身是没有关系的,所以,我想在服务器里面设置关于WPA验证不知道有什么作用?
-
- 论坛版主
- 帖子: 18279
- 注册时间: 2009-08-04 16:33
Re: 关于Ubuntu DHCP server 的一些问题
1. 先把 觀念 理清楚目的是只要有用户能接入这个AP无线设备,通过交换机连接的服务器开启DHCP-server的功能来给这些用户分配可用的IP地址
1-1. wifi ap 連接 Ubuntu DHCP server 的纜線
是使用 區域網路網址 還是 企業網路網址 還是 廣域網路網址
區域網路
http://zh.wikipedia.org/wiki/%E5%B1%80% ... F%E7%BD%91
企業網路
http://zh.wikipedia.org/wiki/%E5%86%85% ... 8%E7%BD%91
廣域網路
http://zh.wikipedia.org/wiki/%E5%B9%BF% ... F%E7%BD%91
2. 如果你有登入 wifi ap 的帳號與密碼
請提供 wifi ap 品牌與型號 (不是 帳號與密碼)
3. 其實 依照你的需求 可能不需要 wifi ap 只需要 防火牆 iptables 直接操控 有線網卡的 MAC 就可以達到目的使用在DHCPd.conf配置,限制只有连入指定的SSID的用户,才能分配到可用的IP地址。
3-1. 如果是要設定 區網網址 連入 / 連出 允許或拒絕 防火牆 iptables (ubuntu 已預裝) 就遊刃有餘
https://help.ubuntu.com/community/IptablesHowTo
3-1-1. iptables 可以直接針對 網卡的 MAC 設定 允許或拒絕 連入/連出
http://serverfault.com/questions/578013 ... ac-address
http://www.cyberciti.biz/tips/iptables- ... ering.html
http://www.dd-wrt.com/wiki/index.php/Ip ... AC_address
3-2. 如果只是要設定 區網網址 連入 允許或拒絕 防火牆 iptables 的前端程式 ufw (ubuntu 已預裝) 就駕輕就熟 gufw 是 ufw 的圖形前端 需要額外安裝
https://help.ubuntu.com/community/UFW
3-3. 進一步參閱 本論壇 以前網友的文章
search.php?keywords=iptables+mac&terms= ... C%E5%B0%8B
4. 如果有需要防止 MAC 受到偽造的問題 再另外貼文討論
-
- 帖子: 104
- 注册时间: 2011-07-20 11:33
Re: 关于Ubuntu DHCP server 的一些问题
我看了关于UFW的写法,命令比较简单,不过按照我的要求的话,方案似乎有多种选择,不过我还是希望能使用最简单的办法解决我的问题:3-1. 如果是要設定 區網網址 連入 / 連出 允許或拒絕 防火牆 iptables (ubuntu 已預裝) 就遊刃有餘
https://help.ubuntu.com/community/IptablesHowTo
3-1-1. iptables 可以直接針對 網卡的 MAC 設定 允許或拒絕 連入/連出
http://serverfault.com/questions/578013 ... ac-address
http://www.cyberciti.biz/tips/iptables- ... ering.html
http://www.dd-wrt.com/wiki/index.php/Ip ... AC_address
3-2. 如果只是要設定 區網網址 連入 允許或拒絕 防火牆 iptables 的前端程式 ufw (ubuntu 已預裝) 就駕輕就熟 gufw 是 ufw 的圖形前端 需要額外安裝
https://help.ubuntu.com/community/UFW
服务器的外网网卡ETH0,IP地址172.16.6.229,内网IP地址192.168.10.100,然后AP在这个网段内,管理地址为192.168.10.1,假设用户连接到AP后,通过DHCP-SERVER获得合法的IP地址,当然我可以绑定匹配的MAC,让其获得固定的IP,然后在UFW里面设置,这个IP地址可以访问互联网,这个命令怎么写?
例如:
sudo ufw allow from 192.168.10.50 ,但是这样写的话,是不是会拒绝其它的地址访问呢?还是说要先写一条deny192.168.10.0,然后再写这条,不过我的UFW默认的规则为:deny all。
我只想拒绝192.168.10.0的主机不能通过172.16.6.229转发出外网,访问本地服务是被允许的,而且不想把规则写的很多,毕竟通过服务器转发上网的只有AP的用户,用户量很少,而且,我也不想绑定MAC地址的方式来限制获得合法IP的所有用户。
-
- 帖子: 893
- 注册时间: 2011-02-14 17:46
Re: 关于Ubuntu DHCP server 的一些问题
我没实际操作过,但是看这里
http://askubuntu.com/questions/140126/h ... hcp-server
就是设置一句话的事情吧
http://askubuntu.com/questions/140126/h ... hcp-server
就是设置一句话的事情吧
sudo vim /etc/default/isc-dhcp-server
You should get the following:
#Defaults for dhcp initscript
#sourced by /etc/init.d/dhcp
#installed at /etc/default/isc-dhcp-server by the maintainer scripts
#
#This is a POSIX shell fragment
#
#On what interfaces should the DHCP server (dhcpd) serve DHCP requests"
#Separate multiple interfaces with spaces, e.g. “eth0 eth1".
INTERFACES="eth0"
Replace eth0 above with the name of your network interface that you want the server to lease addresses on.
-
- 论坛版主
- 帖子: 18279
- 注册时间: 2009-08-04 16:33
Re: 关于Ubuntu DHCP server 的一些问题
1. 如果你有登入 wifi ap 的帳號與密碼我有一个无线AP,DHCP功能仅仅想给这个无线AP使用
請提供 wifi ap 品牌與型號 (不是 帳號與密碼)
2. 請提供 DHCP Server 透過 eth1 連接到 wifi ap 的 LAN 或 WAN 插孔 ?
3. 非AP的连接的用户 如何連接到 DHCP server ?如何限制,非AP的连接的用户不能使用这个DHCP server。
4. 先要把你實體線路如何連接 理清楚 否則會給你錯誤的建議
-
- 帖子: 104
- 注册时间: 2011-07-20 11:33
Re: 关于Ubuntu DHCP server 的一些问题
华为HG232,本来是个宽带路由器,因为此机的DHCP不能设置网关为其它主机,所以目前关闭了此机的DHCP功能,仅仅适用此机的WIFI和交换功能。1. 如果你有登入 wifi ap 的帳號與密碼
請提供 wifi ap 品牌與型號 (不是 帳號與密碼)
LAN1或LAN42. 請提供 DHCP Server 透過 eth1 連接到 wifi ap 的 LAN 或 WAN 插孔 ?
引用:
是这样的,我的服务器的两个网卡连接在同一台交换机上,并没有VLAN(不支持),我的AP也在同一台交换机上,这个交换机还连接着其它的有线用户,任何一个设备开启DHCP-SERVER面对的都是全网用户,不论是有线的还是无线的,当然无线用户需要验证才能合法,我的目的是,如果使用无线的用户,即使知道了用户名密码,连接到网络,也不能获得合法的IP地址,或者说如果他自己手动设定一个合法的IP地址,也不能通过转发上互联网,但是要能访问这个服务器的所有资源。3. 非AP的连接的用户 如何連接到 DHCP server ?
交换机(A)-----连接-------服务器ETH0 172.16.6.229 ,可以上互联网4. 先要把你實體線路如何連接 理清楚 否則會給你錯誤的建議
交换机(A)-----连接-------服务器ETH1 192.168.10.100 ,这个是内网
交换机(A)-----连接-------AP-LAN1 192.168.10.1,这个是AP管理地址,有密码认证,关闭了DHCP,
三个设备都在同一个一层交换机上,没有VLAN,我在双网卡的SERVER上设置DHCP和UFW来控制AP的接入用户,因为AP的认证用户名密码是公开的,所有人都能进来,但是我要限制能上网的人,还有就是,不能让有线的用户获得DHCP的IP地址,如果说这个不行的话,那么就限制这个IP地址不能上网。
-
- 论坛版主
- 帖子: 18279
- 注册时间: 2009-08-04 16:33
Re: 关于Ubuntu DHCP server 的一些问题
我的服务器的两个网卡连接在同一台交换机上
1. 從 Internet 接進來的線 插在 DHCP Server ? 還是 AP ? 還是 Switch ?LAN1或LAN4
2. 有沒有 電信公司給你的 Modem ? (俗稱 龜)交换机(A)-----连接-------服务器ETH0 172.16.6.229 ,可以上互联网
如果有 請提供 品牌/型號
-
- 帖子: 104
- 注册时间: 2011-07-20 11:33
Re: 关于Ubuntu DHCP server 的一些问题
都不是,172.16.6.229这个地址是通过公司大网的VLAN出去的,网关是172.16.6.254,上面的设备我管不了,所以对于我来讲,我的网关就是172.16.6.229,这是一个可以上互联网的固定IP地址1. 從 Internet 接進來的線 插在 DHCP Server ? 還是 AP ? 還是 Switch ?
2. 有沒有 電信公司給你的 Modem ? (俗稱 龜)
我不需要使用MODEM。
-
- 帖子: 893
- 注册时间: 2011-02-14 17:46
Re: 关于Ubuntu DHCP server 的一些问题
modem在大陆这边俗称 猫poloshiao 写了:我的服务器的两个网卡连接在同一台交换机上1. 從 Internet 接進來的線 插在 DHCP Server ? 還是 AP ? 還是 Switch ?LAN1或LAN42. 有沒有 電信公司給你的 Modem ? (俗稱 龜)交换机(A)-----连接-------服务器ETH0 172.16.6.229 ,可以上互联网
如果有 請提供 品牌/型號
-
- 帖子: 893
- 注册时间: 2011-02-14 17:46
Re: 关于Ubuntu DHCP server 的一些问题
把AP的DHCP开起来会有什么问题?
-
- 帖子: 104
- 注册时间: 2011-07-20 11:33
Re: 关于Ubuntu DHCP server 的一些问题
我这个AP的型号是华为HG232,其中的DHCP功能是不能指定用户端所获得的网关地址,本地管理地址如果设置成192.168.1.1,那么客户端获得的网关地址就是这个地址,如果设置成192.168.10.1,那么客户端获得的地址就是192.168.10.1,没有那么多的修改选项,只能指定范围,这个是阉割版的DHCP功能。所以我不能开启这个DHCP功能,因为这个原因是它不能满足指定网关的功能,所以想用服务器实现,那么现在就更要关闭这个AP的DHCP了,因为两个DHCP-server会在一个LAN里面打架,冲突,所以我必须关掉。rosynirvana 写了:把AP的DHCP开起来会有什么问题?