環境ubuntu 16.04
	 
	做為防火牆的主機需有兩張網卡
	用ifconfig指令可以看到網卡名稱
	現今ubuntu系統會以BIOS中網卡的名稱作為預設名稱
	改法:
	編輯/etc/default/grub
	#GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
	GRUB_CMDLINE_LINUX_DEFAULT="quiet splash net.ifnames=0 biosdevname=0"
	再執行
	update-grub
	reboot
	eth0:192.168.1.11對外
	eth1:192.168.0.3對內 不設通訊閘
	clear.sh
	 
#!/bin/sh IPTABLES="/sbin/iptables" /sbin/modprobe ip_conntrack /sbin/modprobe ip_conntrack_ftp /sbin/modprobe iptable_nat /sbin/modprobe ip_nat_ftp ###-----------------------------------------------------### # 打開 forward ###-----------------------------------------------------### #echo "Enable ip_forward ......" #echo echo "1" > /proc/sys/net/ipv4/ip_forward ###-----------------------------------------------------### # 清除先前的設定 ###-----------------------------------------------------### echo "Flush fiter table ......" echo # Flush filter $IPTABLES -F $IPTABLES -X echo "Flush mangle table ......" echo # Flush mangle $IPTABLES -F -t mangle $IPTABLES -t mangle -X echo "Flush nat table ......" echo # Flush nat $IPTABLES -F -t nat $IPTABLES -t nat -X ###-----------------------------------------------------### # 設定 filter table 的預設政策 ###-----------------------------------------------------### $IPTABLES -P INPUT ACCEPT $IPTABLES -P OUTPUT ACCEPT $IPTABLES -P FORWARD ACCEPT
	分享
	iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j MASQUERADE
	 
	DHCP
	apt install isc-dhcp-server
	編輯/etc/default下的isc-dhcp-server
	INTERFACES="eth1"
/etc/dhcp/dhcpd.conf
subnet 192.168.0.0 netmask 255.255.255.0 {
  range 192.168.0.201 192.168.0.250;
  option domain-name-servers 168.95.1.1;
#  option domain-name "internal.example.org";
#  option subnet-mask 255.255.255.224;
  option routers 192.168.0.3;
  option broadcast-address 192.168.0.255;
  default-lease-time 600;
  max-lease-time 7200;
}
#subnet 192.168.1.0 netmask 255.255.255.0 {
#}
service isc-dhcp-server restart 重啟dhcpd
service isc-dhcp-server status 可以看到目前dhcpd的狀態
● isc-dhcp-server.service - ISC DHCP IPv4 server
   Loaded: loaded (/lib/systemd/system/isc-dhcp-server.service; enabled; vendor preset
   Active: active (running) since 日 2019-12-15 03:57:46 CST; 1h 26min ago
     Docs: man:dhcpd(8)
 Main PID: 1739 (dhcpd)
   CGroup: /system.slice/isc-dhcp-server.service
           └─1739 dhcpd -user dhcpd -group dhcpd -f -4 -pf /run/dhcp-server/dhcpd.pid -cf /etc/dhcp/dhcpd.conf eth1
12月 15 05:02:02 sa-5750G dhcpd[1739]: DHCPREQUEST for 192.168.0.201 from 94:de:80:xx:
12月 15 05:02:02 sa-5750G dhcpd[1739]: DHCPACK on 192.168.0.201 to 94:de:80:xx:xx:xx (
12月 15 05:07:02 sa-5750G dhcpd[1739]: DHCPREQUEST for 192.168.0.201 from 94:de:80:xx:
12月 15 05:07:02 sa-5750G dhcpd[1739]: DHCPACK on 192.168.0.201 to 94:de:80:xx:xx:xx (
12月 15 05:12:02 sa-5750G dhcpd[1739]: DHCPREQUEST for 192.168.0.201 from 94:de:80:xx:
12月 15 05:12:02 sa-5750G dhcpd[1739]: DHCPACK on 192.168.0.201 to 94:de:80:e9:5e:df (
12月 15 05:17:03 sa-5750G dhcpd[1739]: DHCPREQUEST for 192.168.0.201 from 94:de:80:xx:
12月 15 05:17:03 sa-5750G dhcpd[1739]: DHCPACK on 192.168.0.201 to 94:de:80:xx:xx:xx (
12月 15 05:22:03 sa-5750G dhcpd[1739]: DHCPREQUEST for 192.168.0.201 from 94:de:80:xx:
12月 15 05:22:03 sa-5750G dhcpd[1739]: DHCPACK on 192.168.0.201 to 94:de:80:xx:xx:xx (
配發的ip會記錄在/var/lib/dhcp/dhcpd.leases
	
	iptables實作
	iptables規則列撰原則
	特例一
	特例二
	特例三
	…….
	預設規則
只允許可以上scratch.mit.edu
iptables -A FORWARD -o eth0 -p tcp -d scratch.mit.edu --dport 80 -j ACCEPT iptables -A FORWARD -o eth0 -p tcp -d scratch.mit.edu --dport 443 -j ACCEPT iptables -A FORWARD -o eth0 -p tcp --dport 80 -j DROP iptables -A FORWARD -o eth0 -p tcp --dport 443 -j DROP
	結果scratch.mit.edu是個龐大的網站有很多IP
	連到首頁還可以,往下的連結會有問題
	安裝iptraf檢視連線的IP
	apt install iptraf
	另一套檢視連線軟體
	apt install tcptrack
	tcptrack -i eth1
#!/bin/sh iptables -A FORWARD -o eth0 -p tcp -d scratch.mit.edu --dport 80 -j ACCEPT iptables -A FORWARD -o eth0 -p tcp -d scratch.mit.edu --dport 443 -j ACCEPT iptables -A FORWARD -o eth0 -p tcp -d 151.101.230.133 --dport 80 -j ACCEPT iptables -A FORWARD -o eth0 -p tcp -d 151.101.230.133 --dport 443 -j ACCEPT #以下的IP也要開放才會正常(應該是google的IP) iptables -A FORWARD -o eth0 -p tcp -d 172.217.0.0/16 --dport 443 -j ACCEPT iptables -A FORWARD -o eth0 -p tcp --dport 80 -j DROP iptables -A FORWARD -o eth0 -p tcp --dport 443 -j DROP
