月度归档:2017年12月

iptables 禁止国外IP访问

某业务需求,禁止国外IP访问,也能在发生攻击时阻挡部分流量

由于IP地址太多, 直接用iptables 一条一条的去匹配会影响性能,故使用ipset 结合 iptables使用

yum install ipset
ipset create china hash:net hashsize 10000 maxelem 1000000
#ipset add china 1.2.3.0/24
#ipset list china

把国内的IP段添加进去

wget http://www.ipdeny.com/ipblocks/data/countries/cn.zone
for i in `cat cn.zone`
do
echo "ipset add china $i" >>ipset_result.sh
done

执行

chmod +x ipset_result.sh
./ipset_result.sh
# ipset list china  #检验

最后的iptables规则:(封禁了UDP和TCP)

-A INPUT -s 10.202.72.116/32 -p udp -m udp --sport 53 -j ACCEPT
-A INPUT -s 10.202.72.118/32 -p udp -m udp --sport 53 -j ACCEPT
-A INPUT -s 114.114.114.114/32 -p udp -m udp --sport 53 -j ACCEPT
-A INPUT -p udp -j DROP
-A INPUT -s 127.0.0.1/32 -p tcp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j DROP
-A INPUT -m set --match-set china src -j ACCEPT 
-A INPUT -j DROP

ubuntu 16.04 无线网卡+AP

ubuntu 16.04   RTL8188EUS  无线网卡 安装  加 AP 模式

1.安装USB驱动
首先 插入USB无线网卡

lsusb
Bus 001 Device 011: ID 0bda:8179 Realtek Semiconductor Corp. RTL8188EUS 802.11n Wireless Network Adapter  (ID 0bda:8179 )
# usb id  可在这里查询  http://www.linux-usb.org/usb.ids

cd /opt && git clone https://github.com/lwfinger/rtl8188eu.git

首先安装必要的编译器和linux头文件
sudo apt-get install build-essential linux-headers-$(uname -r)

编译、安装驱动
make all
make install

ls ./

8188eu.ko #驱动文件

modprobe 8188eu  #加载驱动

ifconfig -a

wlx3c46d8c7efa5  #新添加的网卡
echo 8188eu >> /etc/modules  #好像即使不加入开机启动列表,网卡在重启后也能正常工作

2. 创建AP

apt-get install isc-dhcp-server  #dhcpd 服务器
apt-get remove hostapd # apt-get 安装的不支持 rtl871xdrv  驱动
git clone https://github.com/christianeisendle/hostapd_rtl871xdr   #git回来修改好的hostapd源码
cd hostapd_rtl871xdrv/hostapd
make
make install

由于rtl8188eu网卡驱动文件夹中已经自带了control_ap  就不另下(git clone https://github.com/oblique/create_ap.git)

#$DHCPD -cf ~/dhcpd.conf $NET_AP (control_ap中注释掉这一句 因为dhcpd启动有点问题)
./control_ap start wlx3c46d8c7efa5 enp4s0   #创建AP, 这时用手机就会搜索到新创建的AP,但是此时连上去还不能分配到IP

#https://www.92ez.com/?action=show&id=23389 

3.设置DHCPD服务
/etc/init.d/apparmor stop
vim /etc/apparmor.d/usr.sbin.dhcpd
/home/yy/dhcpd.conf rwl
/var/lib/dhcpd/db/dhcpd.leases rwl

#这里注意一定要添加,不然启动dhcp时会报 permission denied 权限错误 就算设置为777一样的报错
/usr/sbin/dhcpd -cf /home/yy/dhcpd.conf wlx3c46d8c7efa5  -user root -group root -lf /var/lib/dhcp/db/dhcpd.leases

然后没有报错的话,就可以用手机进行验证了

#https://help.ubuntu.com/community/isc-dhcp-server

#另也可以直接关闭apparmor就没那么多的麻烦事了, 这东西了,这东西跟selinux差不多

/etc/init.d/apparmor stop

/etc/init.d/apparmor teardown

update-rc.d -f apparmor remove

reboot

apt-get remove apparmor

#另python-nfqueue 抓包时

iptables在此种环境下应该设置为FORWARD表,不要设置为INPUT OUTPUT表

iptables -I FORWARD -j NFQUEUE --queue-num 2
iptables -I FORWARD -i wlx3c46d8c7efa5 -j NFQUEUE --queue-num 2