# Tham khảo thêm code bảo mật ở https://rickfreyconsulting.com/basic-mikrotik-firewall-rev-5-0-free-version/
/ip service set telnet disabled=yes
/ip service set ftp disabled=yes
/ip service set www disabled=yes
/ip service set ssh disabled=yes
/ip service set api disabled=yes
/ip service set api-ssl disabled=yes
/ip firewall filter
add chain=forward dst-port=11211 protocol=udp action=drop comment="Memcrashed - Amplification Attacks UDP 11211"
/ip firewall filter
add chain=forward connection-state=new action=jump jump-target=block-ddos comment="Anti DDoS Attacks"
add chain=forward connection-state=new src-address-list=ddoser dst-address-list=ddosed action=drop
add chain=block-ddos dst-limit=50,50,src-and-dst-addresses/10s action=return
add chain=block-ddos action=add-dst-to-address-list address-list=ddosed address-list-timeout=10m
add chain=block-ddos action=add-src-to-address-list address-list=ddoser address-list-timeout=10m
/ip firewall filter
add chain=input protocol=tcp psd=21,3s,3,1 action=add-src-to-address-list address-list="port scanners" address-list-timeout=2w comment="Mark Source ip port scanner to Address list " disabled=no
add chain=input protocol=tcp tcp-flags=fin,!syn,!rst,!psh,!ack,!urg action=add-src-to-address-list address-list="port scanners" address-list-timeout=2w comment="NMAP FIN Stealth scan"
add chain=input protocol=tcp tcp-flags=fin,syn action=add-src-to-address-list address-list="port scanners" address-list-timeout=2w comment="SYN/FIN scan"
add chain=input protocol=tcp tcp-flags=syn,rst action=add-src-to-address-list address-list="port scanners" address-list-timeout=2w comment="SYN/RST scan"
add chain=input protocol=tcp tcp-flags=fin,psh,urg,!syn,!rst,!ack action=add-src-to-address-list address-list="port scanners" address-list-timeout=2w comment="FIN/PSH/URG scan"
add chain=input protocol=tcp tcp-flags=fin,syn,rst,psh,ack,urg action=add-src-to-address-list address-list="port scanners" address-list-timeout=2w comment="ALL/ALL scan"
add chain=input protocol=tcp tcp-flags=!fin,!syn,!rst,!psh,!ack,!urg action=add-src-to-address-list address-list="port scanners" address-list-timeout=2w comment="NMAP NULL scan"
add chain=input src-address-list="port scanners" action=drop comment="Drop port scanners" disabled=no
/ip firewall filter
add action=drop chain=input comment="drop ftp BRUTE FORCErs" dst-port=21 protocol=tcp src-address-list=ftp_blacklist
add action=accept chain=output content="530 Login incorrect" dst-limit=1/1m,9,dst-address/1m protocol=tcp
add action=add-dst-to-address-list address-list=ftp_blacklist address-list-timeout=3h chain=output content="530 Login incorrect" protocol=tcp
add action=drop chain=input comment="drop ssh BRUTE FORCErs" dst-port=22-23 protocol=tcp src-address-list=ssh_blacklist
add action=add-src-to-address-list address-list=ssh_blacklist address-list-timeout=1w3d chain=input connection-state=new dst-port=22-23 protocol=tcp src-address-list=ssh_stage3
add action=add-src-to-address-list address-list=ssh_stage3 address-list-timeout=1m chain=input connection-state=new dst-port=22-23 protocol=tcp src-address-list=ssh_stage2
add action=add-src-to-address-list address-list=ssh_stage2 address-list-timeout=1m chain=input connection-state=new dst-port=22-23 protocol=tcp src-address-list=ssh_stage1
add action=add-src-to-address-list address-list=ssh_stage1 address-list-timeout=1m chain=input connection-state=new dst-port=22-23 protocol=tcp
add action=drop chain=forward comment="drop ssh brute downstream" dst-port=22-23 protocol=tcp src-address-list=ssh_blacklist
Category: Uncategorized
Script cài đặt proxy tunnel trên mikrotik với containers.
Kích hoạt Container trên Mikrotik
Lưu ý: Mikrotik Container cần Router với dung lượng NAND từ 128MB trở lên.
- Đảm bảo đang ở phiên bản Mikrotik OS mới nhất bằng cách vào System => Packages => Check for Update.
- Download Extra packages theo OS Mikrotik của bạn tại đây. Giải nén và up file container vào File manager của Winbox. Sau đó chọn System => Reboot để cài đặt gói bổ sung Container vào Router Mikrotik OS 7.
- Sau khi reboot. Tiến hành login Winbox và nhập câu lệnh sau:
/system/device-mode/update container=yes
- Sau khi hiện dòng chữ
update: please activate by turning power off or pressing reset or mode button in...
thì rút nguồn router sau đó cắm lại (bắt buộc rút nguồn, không reboot) - Chờ router khởi động lại, vào Terminal nhập lệnh
/system/device-mode/print
. Màn hình hiệncontainer: yes
là được.
Vấn đề cấp nguồn PoE cho thiết bị Wi-Fi
Trong các hệ thống mạng Wi-Fi doanh nghiệp, việc triển khai Access Point (AP) tại các vị trí tối ưu về mặt sóng thì lại thường gặp trở ngại liên quan đến cấp nguồn. Ví dụ Access gắn trên cao, AP được gắn trên nóc nhà máy, sân vận động, hầm gửi xe Metro…Chúng ta có thể không có nguồn điện tường ở các vị trí đó. Đây là lúc Power over Ethernet (PoE) trở thành giải pháp cực kỳ hiệu quả: chỉ cần một sợi cáp mạng duy nhất để truyền cả dữ liệu lẫn nguồn điện đến thiết bị đầu cuối – các Access Point.
1. Chuẩn hóa PoE và nhu cầu công suất của AP
Ban đầu, các giải pháp cấp nguồn qua Ethernet khá lộn xộn do thiếu chuẩn hóa. Nhưng ngày nay, chúng ta dựa trên các chuẩn IEEE sau:
– IEEE 802.3af (PoE): cung cấp tối đa 15W.
– IEEE 802.3at (PoE+): nâng giới hạn lên 30W.
– IEEE 802.3bt (PoE++): chuẩn mới hứa hẹn hỗ trợ tới 90W.
– Cisco Universal PoE (UPoE): cung cấp tới 60W, chưa chuẩn IEEE nhưng đã phổ biến.
- Cách hoạt động của PoE
Switch PoE (PSE – Power Sourcing Equipment) sử dụng cơ chế phát hiện trở kháng vật lý để xác định thiết bị đầu cuối có hỗ trợ PoE hay không (PD – Powered Device) – trước khi cấp nguồn, tránh rủi ro hỏng thiết bị.
Sau đó, quá trình thương lượng công suất động được thực hiện thông qua
– CDP (Cisco Discovery Protocol)
– LLDP (Link Layer Discovery Protocol)
Thiết bị và switch trao đổi các thông tin dạng TLV (Type-Length-Value) để xác định chính xác lượng công suất cần cấp. TLV này chỉ là một loại cấu trúc dữ liệu được trao đổi qua lại giữa Switch và AP để bắt tay cho đúng. Nếu có bất kỳ sự thay đổi nào, AP sẽ khởi động lại để đồng bộ lại cấu hình cấp nguồn.
- Khi không có switch PoE: Chúng ta phải gắn thêm Bộ tiêm nguồn (Power Injector)Khi switch không hỗ trợ PoE, giải pháp phổ biến là dùng Power Injector. Thiết bị có 2 cổng RJ45: một kết nối switch, một kết nối AP.
Cắm vào nguồn điện AC, chèn nguồn điện vào cáp mạng mà không ảnh hưởng đến truyền dữ liệu.
Injector hoạt động gần như “vô hình”, nhưng vẫn cần chú ý đến công suất và chuẩn hỗ trợ.
4. Ngân sách nguồn của Switch PoE.
Lúc này bộ nguồn cho switch cũng phải mua thêm. Switch cần có nguồn công suất cao hơn thì mới cấp PoE cho thiết bị được.
Với switch PoE, ngân sách nguồn là yếu tố cực kỳ quan trọng
Một số switch nhỏ chỉ có 30W tổng, cấp được 1 cổng PoE+ hoặc 2 cổng PoE thường.
Switch lớn hơn có thể cấp 400W trở lên.
Nếu bạn gắn thêm AP khi ngân sách đã dùng hết → AP không khởi động.
Luôn kiểm tra nguồn của Switch khi lập kế hoạch triển khai Wi-Fi (Lúc lên BOM Build of Material)
- Tổn hao và thực tế tiêu thụ
Cần phân biệt giữa công suất cấp ra từ switch (PSE) và công suất tiêu thụ thực tế của AP:
Tóm lại
Power over Ethernet là công nghệ then chốt giúp triển khai Wi-Fi nhanh, gọn và hiệu quả. Là một kỹ sư mạng chuyên về wireless, bạn cần hiểu rõ:
Các chuẩn PoE và công suất tương ứng
Cách AP phản ứng khi thiếu nguồn
Ngân sách nguồn và vai trò của CDP/LLDP
Gợi ý Best practice: Luôn sử dụng switch PoE+ trở lên cho các AP hiện đại và giám sát ngân sách nguồn thường xuyên, nhất là trong các site có nhiều thiết bị IP (AP, phone, camera…).
Cài đặt và cấu hình OpenVPN Access Server
1. OpenVPN là gì ?
OpenVPN là một phần mềm thương mại mã nguồn mở thực hiện kỹ thuật mạng riêng ảo (VPN) để tạo ra các kết nối site-to-site an toàn. Nó dùng một giao thức bảo mật SSL/TLS để trao đổi khóa. OpenVPN được viết bởi James Yonan và được phát hành theo giấy phép công cộng GNU (GPL).
OpenVPN cho phép các bên xác thực lẫn nhau bằng cách sử dụng khóa chia sẻ trước, chứng thư khoá công khai (public key certificate) hoặc tên người dùng/mật khẩu.
Khi được sử dụng trong cấu hình Multiclient-server, cho phép máy chủ phát hành một chứng thư xác thực cho mỗi client. OpenVPN sử dụng thư viện mã hoá OpenSSL cũng như giao thức TLS một cách rộng rãi, và chứa nhiều tính năng kiểm soát và bảo mật.
OpenVPN có phiên bản free và bản thương mại. Bản thương mại là OpenVPN Access Server, version này có nhiều tính năng nổi trội so với bản free như:
- Có web quản trị
- Giao diện web cho enduser tự đổi password + lấy mã QRCODE OTP
- VPN client khi VPN tự nhảy popup nhập 2FA
- Chỉ cần cài 1 lần, có tất cả thành phần cơ bản của 1 hệ thống VPN hoàn chỉnh, bảo mật, ko cần tốn thêm tài nguyên tự dựng radius hay webpage như đối với các phiên bản free.
Tuy nhiên mặc định nếu không add license thì được phép sử dụng đồng thời 2 user, ko đủ để sử dụng cho bất cứ doanh nghiệp nào. Còn nếu mua license thì khá tốn kém, tầm chi phí cho nó đủ để mua các hệ thống VPN hardware chuyên nghiệp hơn như checkpoint, fortinet, pulse secure.
Sau đây mình sẽ hướng dẫn cài đặt và unlock license. (Mình không khuyến khích sử dụng việc unlock cho môi trường productions)
2. Cài đặt
Chuẩn bị 1 máy chủ centos 7, yêu cầu:
Hệ điều hành centos 7 Ram = 4GB CPU: Càng nhiều core càng tốt, ở đây sử dụng 4 core làm lab
Disable selinux
Cấu hình sysctl
cat >/etc/sysctl.d/openvpn.conf <<EOL
net.ipv4.ip_forward = 1 EOL
Cài đặt các gói cơ bản:
yum install -y epel-release vim curl wget net-tools telnet && yum update -y
systemctl disable --now firewalld
Reboot lại server, sau khi server restart, lên trang chủ openvpn cài đặt bản mới nhất, hiện tại là ver 2.9.2
Cài đặt theo hướng dẫn của trang chủ
yum -y install https://as-repository.openvpn.net/as-repo-centos7.rpm
yum -y install openvpn-as
Sau khi cài xong, làm theo hướng dẫn, đặt password cho user openvpn mặc định (do openvpn tự tạo ra trong khi cài đặt)
User này cũng sẽ là user sử dụng để đăng nhập trang quản trị
passwd openvpn
Đã cài đặt thành công, tuy nhiên, chúng ta thấy chỉ có 2 user được sử dụng đồng thời.
Giờ sẽ tiến hành sửa lại 2 –> 2048
Tắt hết openvpn service đi:
[root@openvpn ~]# systemctl stop openvpnas
[root@openvpn ~]# ps -ef | grep openvpn
root 2451 1779 0 11:31 pts/0 00:00:00 grep --color=auto openvpn
cd /usr/local/openvpn_as/lib/python
Thư mục /usr/local/openvpn_as/lib/python chứa toàn bộ thư viện openvpn-as sử dụng, bao gồm cả phần license. Phần license do thư viện pyovpn-2.0-py3.6.egg xử lý. Chúng ta tiến hành edit lại file này để unlock, backup file gốc, tạo thư mục mới để làm việc tạm
[root@openvpn python]# pwd
/usr/local/openvpn_as/lib/python
[root@openvpn python]# mkdir unlock_license
[root@openvpn python]# mv pyovpn-2.0-py3.6.egg pyovpn-2.0-py3.6.egg_bak
[root@openvpn python]# cp -rp pyovpn-2.0-py3.6.egg_bak unlock_license/pyovpn-2.0-py3.6.zip
[root@openvpn python]# cd unlock_license/
[root@openvpn unlock_license]# ll -h
total 5.7M
-rw-r--r-- 1 root root 5.7M Jul 7 20:24 pyovpn-2.0-py3.6.zip
[root@openvpn unlock_license]#
Bản chất egg là file zip, nên chỉ rename, rồi giải nén là có thể edit được nội dung.
yum install -y zip unzip
unzip pyovpn-2.0-py3.6.zip
[root@openvpn unlock_license]# ll -h
total 5.7M
drwxr-xr-x 2 root root 79 Jul 29 11:37 common
drwxr-xr-x 2 root root 106 Jul 29 11:37 EGG-INFO
drwxr-xr-x 37 root root 4.0K Jul 29 11:37 pyovpn
-rw-r--r-- 1 root root 5.7M Jul 7 20:24 pyovpn-2.0-py3.6.zip
Sửa tiếp file uprop.pyc trong thư mục pyovpn/lic
[root@openvpn unlock_license]# cd pyovpn/lic/
[root@openvpn lic]# ls -lh uprop.pyc
-rw-r--r-- 1 root root 2.8K Jul 7 13:24 uprop.pyc
File pyc là file python đã compiled, tiến hành dịch ngược ra file source code python để chỉnh sửa, cài đặt uncompyle6
[root@openvpn lic]# pip3 install uncompyle6
WARNING: Running pip install with root privileges is generally not a good idea. Try `pip3 install --user` instead.
Collecting uncompyle6
Downloading https://files.pythonhosted.org/packages/65/24/04e4e3eeb1d39c2a910f552bf0a69185a4d618924be2a98fad8e048e7cdf/uncompyle6-3.7.4-py3-none-any.whl (316kB)
100% |████████████████████████████████| 317kB 2.4MB/s
Collecting xdis<5.1.0,>=5.0.4 (from uncompyle6)
Downloading https://files.pythonhosted.org/packages/5a/d1/e6d3f51655eada8dc4628862357edaebafe7fa997ace9f51832c0389fd88/xdis-5.0.11-py2.py3-none-any.whl (129kB)
100% |████████████████████████████████| 133kB 6.0MB/s
Collecting spark-parser<1.9.0,>=1.8.9 (from uncompyle6)
Downloading https://files.pythonhosted.org/packages/e1/c3/745adc57618998882a6e120cedebfba6ebf76aa9052c8b89e49c0fe47c2e/spark_parser-1.8.9-py3-none-any.whl
Collecting click (from xdis<5.1.0,>=5.0.4->uncompyle6)
Downloading https://files.pythonhosted.org/packages/76/0a/b6c5f311e32aeb3b406e03c079ade51e905ea630fc19d1262a46249c1c86/click-8.0.1-py3-none-any.whl (97kB)
100% |████████████████████████████████| 102kB 5.1MB/s
Collecting six>=1.10.0 (from xdis<5.1.0,>=5.0.4->uncompyle6)
Downloading https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl
Collecting importlib-metadata; python_version < "3.8" (from click->xdis<5.1.0,>=5.0.4->uncompyle6)
Downloading https://files.pythonhosted.org/packages/3f/e1/e5bba549a033adf77448699a34ecafc7a32adaeeb4369396b35f56d5cc3e/importlib_metadata-4.6.1-py3-none-any.whl
Collecting zipp>=0.5 (from importlib-metadata; python_version < "3.8"->click->xdis<5.1.0,>=5.0.4->uncompyle6)
Downloading https://files.pythonhosted.org/packages/92/d9/89f433969fb8dc5b9cbdd4b4deb587720ec1aeb59a020cf15002b9593eef/zipp-3.5.0-py3-none-any.whl
Collecting typing-extensions>=3.6.4; python_version < "3.8" (from importlib-metadata; python_version < "3.8"->click->xdis<5.1.0,>=5.0.4->uncompyle6)
Downloading https://files.pythonhosted.org/packages/2e/35/6c4fff5ab443b57116cb1aad46421fb719bed2825664e8fe77d66d99bcbc/typing_extensions-3.10.0.0-py3-none-any.whl
Installing collected packages: zipp, typing-extensions, importlib-metadata, click, six, xdis, spark-parser, uncompyle6
Successfully installed click-8.0.1 importlib-metadata-4.6.1 six-1.16.0 spark-parser-1.8.9 typing-extensions-3.10.0.0 uncompyle6-3.7.4 xdis-5.0.11 zipp-3.5.0
[root@openvpn lic]#
Dịch ngược
[root@openvpn lic]# uncompyle6 uprop.pyc > uprop.py
[root@openvpn lic]# ll -h uprop.py
-rw-r--r-- 1 root root 3.5K Jul 29 11:40 uprop.py
[root@openvpn lic]#
Mở file uprop.py, tìm tới funtion figure
Nội dung funtion như sau:
def figure(self, licdict):
proplist = set(('concurrent_connections', )) good = set() ret = None if licdict: for key, props in list(licdict.items()): if 'quota_properties' not in props: print('License Manager: key %s is missing usage properties' % key) else: proplist.update(props['quota_properties'].split(',')) good.add(key) for prop in proplist: v_agg = 0 v_nonagg = 0 if licdict: for key, props in list(licdict.items()): if key in good: if prop in props: try: nonagg = int(props[prop]) except: raise Passthru('license property %s (%s)' % (prop, props.get(prop).__repr__())) v_nonagg = max(v_nonagg, nonagg) prop_agg = '%s_aggregated' % prop agg = 0 if prop_agg in props: try: agg = int(props[prop_agg]) except: raise Passthru('aggregated license property %s (%s)' % ( prop_agg, props.get(prop_agg).__repr__())) v_agg += agg if DEBUG: print('PROP=%s KEY=%s agg=%d(%d) nonagg=%d(%d)' % ( prop, key, agg, v_agg, nonagg, v_nonagg)) apc = self._apc() v_agg += apc if ret == None: ret = {} ret[prop] = max(v_agg + v_nonagg, bool('v_agg') + bool('v_nonagg')) ret['apc'] = bool(apc) if DEBUG: print("ret['%s'] = v_agg(%d) + v_nonagg(%d)" % (prop, v_agg, v_nonagg)) return ret
Để ý dòng cuối dùng return ret
Thêm 1 dòng ngay trước nó: ret[‘concurrent_connections’] = 2048
Nội dung funtion sau khi sửa đổi như sau:
def figure(self, licdict):
proplist = set(('concurrent_connections', )) good = set() ret = None if licdict: for key, props in list(licdict.items()): if 'quota_properties' not in props: print('License Manager: key %s is missing usage properties' % key) else: proplist.update(props['quota_properties'].split(',')) good.add(key) for prop in proplist: v_agg = 0 v_nonagg = 0 if licdict: for key, props in list(licdict.items()): if key in good: if prop in props: try: nonagg = int(props[prop]) except: raise Passthru('license property %s (%s)' % (prop, props.get(prop).__repr__())) v_nonagg = max(v_nonagg, nonagg) prop_agg = '%s_aggregated' % prop agg = 0 if prop_agg in props: try: agg = int(props[prop_agg]) except: raise Passthru('aggregated license property %s (%s)' % ( prop_agg, props.get(prop_agg).__repr__())) v_agg += agg if DEBUG: print('PROP=%s KEY=%s agg=%d(%d) nonagg=%d(%d)' % ( prop, key, agg, v_agg, nonagg, v_nonagg)) apc = self._apc() v_agg += apc if ret == None: ret = {} ret[prop] = max(v_agg + v_nonagg, bool('v_agg') + bool('v_nonagg')) ret['apc'] = bool(apc) if DEBUG: print("ret['%s'] = v_agg(%d) + v_nonagg(%d)" % (prop, v_agg, v_nonagg)) ret['concurrent_connections'] = 2048 return ret
Tiến hành đóng gói lại thành file pyc như cũ
[root@openvpn lic]# rm -f uprop.pyc
[root@openvpn lic]# python3 -O -m compileall uprop.py && mv __pycache__/uprop.cpython-36.opt-1.pyc uprop.pyc
Compiling 'uprop.py'...
[root@openvpn lic]# ll -h
total 116K
drwxr-xr-x 2 root root 26 Jul 29 11:37 conf
-rw-r--r-- 1 root root 7.5K Jul 7 13:24 info.pyc
-rw-r--r-- 1 root root 134 Jul 7 13:24 __init__.pyc
-rw-r--r-- 1 root root 1.4K Jul 7 13:24 ino.pyc
-rw-r--r-- 1 root root 13K Jul 7 13:24 lbcs.pyc
-rw-r--r-- 1 root root 1.8K Jul 7 13:24 lbq.pyc
-rw-r--r-- 1 root root 862 Jul 7 13:24 lic_entry.pyc
-rw-r--r-- 1 root root 441 Jul 7 13:24 licerror.pyc
-rw-r--r-- 1 root root 6.9K Jul 7 13:24 lichelper.pyc
-rw-r--r-- 1 root root 6.0K Jul 7 13:24 lickey.pyc
-rw-r--r-- 1 root root 2.3K Jul 7 13:24 licser.pyc
-rw-r--r-- 1 root root 13K Jul 7 13:24 licstore.pyc
-rw-r--r-- 1 root root 4.2K Jul 7 13:24 liman.pyc
-rw-r--r-- 1 root root 1.1K Jul 7 13:24 lspci.pyc
-rw-r--r-- 1 root root 2.5K Jul 7 13:24 prop.pyc
drwxr-xr-x 2 root root 6 Jul 29 11:45 __pycache__
-rw-r--r-- 1 root root 3.5K Jul 29 11:44 uprop.py
-rw-r--r-- 1 root root 2.8K Jul 29 11:45 uprop.pyc
-rw-r--r-- 1 root root 9.2K Jul 7 13:24 vprop.pyc
[root@openvpn lic]# rm -rf __pycache__ uprop.py
[root@openvpn lic]#
Nén lại thành file egg như cũ
[root@openvpn unlock_license]# pwd
/usr/local/openvpn_as/lib/python/unlock_license
[root@openvpn unlock_license]# ll -h
total 5.7M
drwxr-xr-x 2 root root 79 Jul 29 11:37 common
drwxr-xr-x 2 root root 106 Jul 29 11:37 EGG-INFO
drwxr-xr-x 37 root root 4.0K Jul 29 11:37 pyovpn
-rw-r--r-- 1 root root 5.7M Jul 7 20:24 pyovpn-2.0-py3.6.zip
[root@openvpn unlock_license]# zip -r pyovpn-2.0-py3.6_cracked.zip common EGG-INFO pyovpn
[root@openvpn unlock_license]# ll -h
total 12M
drwxr-xr-x 2 root root 79 Jul 29 11:37 common
drwxr-xr-x 2 root root 106 Jul 29 11:37 EGG-INFO
drwxr-xr-x 37 root root 4.0K Jul 29 11:37 pyovpn
-rw-r--r-- 1 root root 5.7M Jul 29 12:14 pyovpn-2.0-py3.6_cracked.zip
-rw-r--r-- 1 root root 5.7M Jul 7 20:24 pyovpn-2.0-py3.6.zip
[root@openvpn unlock_license]#
[root@openvpn unlock_license]#
[root@openvpn unlock_license]# mv pyovpn-2.0-py3.6_cracked.zip pyovpn-2.0-py3.6.egg
[root@openvpn unlock_license]# mv pyovpn-2.0-py3.6.egg ../ && cd ..
[root@openvpn python]# ls -lh pyovpn-2.0-py3.6.egg
-rw-r--r-- 1 root root 5.7M Jul 29 12:14 pyovpn-2.0-py3.6.egg
[root@openvpn python]#
Xoá python cache trong /usr/local/openvpn_as/lib/python
cd /usr/local/openvpn_as/lib/python
[root@openvpn python]# rm -rf __pycache__/*
Khởi tạo lại profile openvpn
[root@openvpn bin]# ./ovpn-init
Detected an existing OpenVPN-AS configuration. Continuing will delete this configuration and restart from scratch. Please enter 'DELETE' to delete existing configuration: DELETE OpenVPN Access Server Initial Configuration Tool ------------------------------------------------------ OpenVPN Access Server End User License Agreement (OpenVPN-AS EULA) ... Please enter 'yes' to indicate your agreement [no]: yes Once you provide a few initial configuration settings, OpenVPN Access Server can be configured by accessing its Admin Web UI using your Web browser. Will this be the primary Access Server node? (enter 'no' to configure as a backup or standby node) > Press ENTER for default [yes]: Please specify the network interface and IP address to be used by the Admin Web UI: (1) all interfaces: 0.0.0.0 (2) ens33: 192.168.150.132 Please enter the option number from the list above (1-2). > Press Enter for default [1]: What public/private type/algorithms do you want to use for the OpenVPN CA? Recommended choices: rsa - maximum compatibility secp384r1 - elliptic curve, higher security than rsa, allows faster connection setup and smaller user profile files showall - shows all options including non-recommended algorithms. > Press ENTER for default [rsa]: What key size do you want to use for the certificates? Key size should be between 2048 and 4096 > Press ENTER for default [ 2048 ]: What public/private type/algorithms do you want to use for the self-signed web certificate? Recommended choices: rsa - maximum compatibility secp384r1 - elliptic curve, higher security than rsa, allows faster connection setup and smaller user profile files showall - shows all options including non-recommended algorithms. > Press ENTER for default [rsa]: What key size do you want to use for the certificates? Key size should be between 2048 and 4096 > Press ENTER for default [ 2048 ]: Please specify the port number for the Admin Web UI. > Press ENTER for default [943]: Please specify the TCP port number for the OpenVPN Daemon > Press ENTER for default [443]: Should client traffic be routed by default through the VPN? > Press ENTER for default [yes]: Should client DNS traffic be routed by default through the VPN? > Press ENTER for default [yes]: Use local authentication via internal DB? > Press ENTER for default [yes]: Private subnets detected: ['192.168.150.0/24'] Should private subnets be accessible to clients by default? > Press ENTER for default [yes]: To initially login to the Admin Web UI, you must use a username and password that successfully authenticates you with the host UNIX system (you can later modify the settings so that RADIUS or LDAP is used for authentication instead). You can login to the Admin Web UI as "openvpn" or specify a different user account to use for this purpose. Do you wish to login to the Admin UI as "openvpn"? > Press ENTER for default [yes]: > Please specify your Activation key (or leave blank to specify later): Initializing OpenVPN... Removing Cluster Admin user login... userdel "admin_c" Adding new user login... useradd -s /sbin/nologin "openvpn" Writing as configuration file... Perform sa init... Wiping any previous userdb... Creating default profile... Modifying default profile... Adding new user to userdb... Modifying new user as superuser in userdb... Getting hostname... Hostname: openvpn Preparing web certificates... Getting web user account... Adding web group account... Adding web group... Adjusting license directory ownership... Initializing confdb... Generating PAM config... Enabling service Starting openvpnas... NOTE: Your system clock must be correct for OpenVPN Access Server to perform correctly. Please ensure that your time and date are correct on this system. Initial Configuration Complete! You can now continue configuring OpenVPN Access Server by directing your Web browser to this URL: https://192.168.150.132:943/admin Login as "openvpn" with the same password used to authenticate to this UNIX host. During normal operation, OpenVPN AS can be accessed via these URLs: Admin UI: https://192.168.150.132:943/admin Client UI: https://192.168.150.132:943/ See the Release Notes for this release at: https://openvpn.net/vpn-server-resources/release-notes/
Đăng nhập lại openvpn sẽ thấy license đã lên 2048 user
Iperf3 Multisession Test
Iperf3 process is single-threaded. This means all the parallel streams for one test use the same CPU core.
To run multiple iperf3 processes for a testing a high-speed host, do the following:
Start Multiple Session on iperf3 Server
iperf3 -s -p 5101&; iperf3 -s -p 5102&; iperf3 -s -p 5103 &
Run multiple clients, using the “-T” flag to label the output:
iperf3 -c hostname -T s1 -p 5101 &;
iperf3 -c hostname -T s2 -p 5102 &;
iperf3 -c hostname -T s3 -p 5103 &;
RouterOS 7 multiwan PPPoE loadbalance script
Script by nikita@tarikin.com
Last edit 04/01/2022
Please try my RouterOS 7 multiwan PPPoE loadbalance script
Main features:
1) This script allows you to send traffic from special address lists via certain pppoe connection, bypassing the load balance logic (for example your TV should always go only via pppoe-02)
2) This script supports HAIRPIN-NAT
3) This script solves the multiwan issue when you are building outgoing VPN tunnels (openvpn, wireguard, IPSec etc). Please see the pppoe profile section.
4) This script is CPU friendly
In this script I assume you have 2 pppoe WAN links:
1) ether1 with pppoe-01 (FPT)
2) ether2 with pppoe-02 (VNPT)
And 2 LAN bridges:
1) bridge-lan-01
2) bridge-lan-02
Send your feedback to nikita@tarikin.com
/interface/list/add name=WAN comment="For Internet" /interface/list/add name=LAN comment="For Local Area Networks" /interface pppoe-client add disabled=no interface=ether1 name=pppoe-01 add-default-route=no user=fpt1 password=fpt1 add disabled=no interface=ether2 name=pppoe-02 add-default-route=no user=vnpt1 password=vnpt1 /interface/bridge/ add name=bridge-lan-01 comment=LAN1 add name=bridge-lan-02 comment=LAN2 /interface/bridge/port add bridge=bridge-lan-01 interface=ether3 add bridge=bridge-lan-01 interface=ether4 add bridge=bridge-lan-01 interface=ether5 /interface/list/member/add interface=ether1 list=WAN comment="Uplink WAN for PPPoE-01" /interface/list/member/add interface=ether2 list=WAN comment="Uplink WAN for PPPoE-02" /interface/list/member/add interface=pppoe-01 list=WAN comment=PPPoE-01 /interface/list/member/add interface=pppoe-02 list=WAN comment=PPPoE-02 /interface/list/member/add interface=bridge-lan-01 list=LAN /interface/list/member/add interface=bridge-lan-02 list=LAN /ip/neighbor/discovery-settings/set discover-interface-list=!WAN /tool/mac-server/set allowed-interface-list=LAN /tool/mac-server/mac-winbox/set allowed-interface-list=LAN /ip/firewall/address-list add address=0.0.0.0/8 comment="\"This\" Network" list=BOGONS add address=10.0.0.0/8 comment="Private-Use Networks" list=BOGONS add address=100.64.0.0/10 comment="Shared Address Space. RFC 6598" list=BOGONS add address=127.0.0.0/8 comment="Loopback" list=BOGONS add address=169.254.0.0/16 comment="Link Local" list=BOGONS add address=172.16.0.0/12 comment="Private-Use Networks" list=BOGONS add address=192.0.0.0/24 comment="IETF Protocol Assignments" list=BOGONS add address=192.0.2.0/24 comment="TEST-NET-1" list=BOGONS add address=192.168.0.0/16 comment="Private-Use Networks" list=BOGONS add address=198.18.0.0/15 comment="Network Interconnect Device Benchmark Testing" list=BOGONS add address=198.51.100.0/24 comment="TEST-NET-2" list=BOGONS add address=203.0.113.0/24 comment="TEST-NET-3" list=BOGONS add address=224.0.0.0/4 comment="Multicast" list=BOGONS add address=192.88.99.0/24 comment="6to4 Relay Anycast" list=BOGONS add address=240.0.0.0/4 comment="Reserved for Future Use" list=BOGONS add address=255.255.255.255 comment="Limited Broadcast" list=BOGONS /ip/dns/set servers=1.1.1.1,8.8.8.8 /ip/address/add interface=bridge-lan-01 address=192.168.88.1/24 comment="LAN1 IP" /ip/address/add interface=bridge-lan-02 address=172.16.0.1/23 comment="LAN2 IP" /routing/rule/add dst-address=192.168.88.0/24 table=main action=lookup comment="to LAN1" /routing/rule/add dst-address=172.16.0.0/23 table=main action=lookup comment="to LAN2" /ip/firewall/nat/add action=masquerade chain=srcnat comment="Masquerade WAN (non-ipsec)" ipsec-policy=out,none out-interface-list=WAN /ip/firewall/nat/add action=src-nat chain=srcnat comment="Hairpin to LAN1" out-interface=bridge-lan-01 src-address=192.168.88.0/24 to-addresses=192.168.88.1 /ip/firewall/nat/add action=src-nat chain=srcnat comment="Hairpin to LAN2" out-interface=bridge-lan-01 src-address=172.16.0.0/23 to-addresses=172.16.0.1 /routing/table/add disabled=no fib name=rtab_pppoe-01 /routing/table/add disabled=no fib name=rtab_pppoe-02 /ip/firewall/mangle/add action=mark-connection chain=prerouting comment="Connmark in from PPPoE-01" \ connection-mark=no-mark in-interface=pppoe-01 new-connection-mark=connmark_pppoe-01 passthrough=no /ip/firewall/mangle/add action=mark-connection chain=prerouting comment="Connmark in from PPPoE-02" \ connection-mark=no-mark in-interface=pppoe-02 new-connection-mark=connmark_pppoe-02 passthrough=no /ip firewall mangle add action=mark-connection chain=prerouting connection-mark=no-mark \ comment="Address List via PPPoE-01" dst-address-list=!BOGONS dst-address-type=!local new-connection-mark=connmark_pppoe-01 \ passthrough=yes src-address-list=Via_PPPoE-01 /ip firewall mangle add action=mark-connection chain=prerouting connection-mark=no-mark \ comment="Address List via PPPoE-02" dst-address-list=!BOGONS dst-address-type=!local new-connection-mark=connmark_pppoe-02 \ passthrough=yes src-address-list=Via_PPPoE-02 /ip firewall mangle add action=mark-connection chain=prerouting connection-mark=no-mark \ comment="LoadBalance transit connections via PPPoE-01" dst-address-list=!BOGONS dst-address-type=!local new-connection-mark=connmark_pppoe-01 \ passthrough=yes per-connection-classifier=both-addresses-and-ports:2/0 /ip firewall mangle add action=mark-connection chain=prerouting connection-mark=no-mark \ comment="LoadBalance transit connections via PPPoE-02" dst-address-list=!BOGONS dst-address-type=!local new-connection-mark=connmark_pppoe-02 \ passthrough=yes per-connection-classifier=both-addresses-and-ports:2/1 /ip/firewall/mangle/add action=mark-routing chain=prerouting \ comment="Routemark transit out via PPPoE-01" connection-mark=connmark_pppoe-01 \ dst-address-type=!local in-interface-list=!WAN new-routing-mark=rtab_pppoe-01 passthrough=no /ip/firewall/mangle/add action=mark-routing chain=prerouting \ comment="Routemark transit out via PPPoE-02" connection-mark=connmark_pppoe-02 \ dst-address-type=!local in-interface-list=!WAN new-routing-mark=rtab_pppoe-02 passthrough=no /ip/firewall/mangle/add action=mark-routing chain=output \ comment="Routemark local out via PPPoE-01" connection-mark=connmark_pppoe-01 \ dst-address-type=!local new-routing-mark=rtab_pppoe-01 passthrough=no /ip/firewall/mangle/add action=mark-routing chain=output \ comment="Routemark local out via PPPoE-02" connection-mark=connmark_pppoe-02 \ dst-address-type=!local new-routing-mark=rtab_pppoe-02 passthrough=no /interface/bridge/add name=bridge-loopback comment="Loopback interface for emergency routing" /ip/route/add distance=254 gateway=bridge-loopback comment="Emergency route" /ip/route/add comment="Unmarked via PPPoE-01" distance=1 gateway=pppoe-01 /ip/route/add comment="Unmarked via PPPoE-02" distance=2 gateway=pppoe-02 /ip route add comment="Marked via PPPoE-01 Main" distance=1 gateway=pppoe-01 routing-table=rtab_pppoe-01 /ip route add comment="Marked via PPPoE-01 Backup" distance=2 gateway=pppoe-02 routing-table=rtab_pppoe-01 /ip route add comment="Marked via PPPoE-02 Main" distance=1 gateway=pppoe-02 routing-table=rtab_pppoe-02 /ip route add comment="Marked via PPPoE-02 Backup" distance=2 gateway=pppoe-01 routing-table=rtab_pppoe-02 /ppp profile add name=profile-pppoe-01 comment="Add/remove route rule for pppoe-01" on-down="/routing/rule/ remove [find comment=\"From PPPoE-01 IP to Inet\"]" on-up=":if [:tobool ([/routing/rule/ find comment=\"From PPPoE-01 IP to \ Inet\"])] do={\r\ \n /routing/rule/ set [find comment=\"From PPPoE-01 IP to Inet\"] \\\r\ \n src-address=\$\"local-address\" table=rtab_pppoe-01} else={\r\ \n /routing/rule/ add action=lookup comment=\"From PPPoE-01 IP to Inet\" src-address=\$\"local-address\" table=rtab_pppoe-01 }" /interface/pppoe-client/set pppoe-01 profile=profile-pppoe-01 /ppp profile add name=profile-pppoe-02 comment="Add/remove route rule for pppoe-02" on-down="/routing/rule/ remove [find comment=\"From PPPoE-02 IP to Inet\"]" on-up=":if [:tobool ([/routing/rule/ find comment=\"From PPPoE-02 IP to \ Inet\"])] do={\r\ \n /routing/rule/ set [find comment=\"From PPPoE-02 IP to Inet\"] \\\r\ \n src-address=\$\"local-address\" table=rtab_pppoe-02} else={\r\ \n /routing/rule/ add action=lookup comment=\"From PPPoE-02 IP to Inet\" src-address=\$\"local-address\" table=rtab_pppoe-02 }" /interface/pppoe-client/set pppoe-02 profile=profile-pppoe-02
Kiến thức cơ bản về SAN – Phần 1: Lưu trữ & Quản lý Thông tin
Chào mọi người,
Hôm nay chúng ta sẽ có một cái nhìn tổng quan về Quản lý và Lưu trữ Thông tin (ISM) và biết về các thành phần của hệ thống lưu trữ thông minh.
Giới thiệu cơ bản
Thông tin ngày càng quan trọng trong cuộc sống hàng ngày của chúng ta. Chúng ta đã trở thành những người phụ thuộc vào thông tin của thế kỷ XXI, sống trong một thế giới theo lệnh, theo yêu cầu có nghĩa là chúng ta cần thông tin khi nào và ở đâu. Chúng ta truy cập Internet mỗi ngày để thực hiện tìm kiếm, tham gia vào mạng xã hội, gửi và nhận e-mail, chia sẻ hình ảnh và video cũng như điểm số của các ứng dụng khác. Tại đây chúng ta có thể tìm hiểu về những điều cơ bản của Thông tin, Sự phát triển của công nghệ Lưu trữ và Kiến trúc và các yếu tố cốt lõi của nó.
Dữ liệu là tập hợp các dữ kiện thô mà từ đó có thể rút ra kết luận. Các bức thư viết tay, một cuốn sách in, một bức ảnh gia đình, một bộ phim trên băng video, bản sao giấy tờ thế chấp được in và ký hợp lệ, sổ cái của ngân hàng và sổ tiết kiệm của chủ tài khoản đều là những ví dụ về dữ liệu.
Ngày nay, dữ liệu tương tự có thể được chuyển đổi thành các dạng tiện lợi hơn như tin nhắn e-mail, sách điện tử, hình ảnh được ánh xạ bit, hoặc phim kỹ thuật số. Dữ liệu này có thể được tạo bằng máy tính và được lưu trữ dưới dạng chuỗi 0s và 1s.

Các loại dữ liệu. Dữ liệu có hai loại.
Dữ liệu có cấu trúc:
Dữ liệu có cấu trúc được tổ chức thành các hàng và cột theo một định dạng được xác định chặt chẽ.
Dữ liệu không có cấu trúc:
Dữ liệu không có cấu trúc nếu các phần tử của nó không thể được lưu trữ trong các hàng và cột, và do đó rất khó để truy vấn và truy xuất bởi các ứng dụng kinh doanh.
Ví dụ: Địa chỉ liên hệ của khách hàng có thể được lưu trữ dưới nhiều hình thức khác nhau như ghi chú dán, tin nhắn e-mail, danh thiếp hoặc thậm chí các tệp định dạng kỹ thuật số như .doc, .txt,và .pdf. Do tính chất phi cấu trúc của nó, rất khó để truy xuất bằng ứng dụng quản lý quan hệ khách hàng.
Thông tin
Dữ liệu, dù có cấu trúc hay không có cấu trúc, không đáp ứng bất kỳ mục đích nào cho cá nhân hoặc doanh nghiệp trừ khi nó được trình bày dưới dạng có ý nghĩa. Thông tin là trí tuệ và kiến thức thu được từ dữ liệu.

Cơ sở hạ tầng Trung tâm Dữ liệu
Các tổ chức duy trì các trung tâm dữ liệu để cung cấp khả năng xử lý dữ liệu tập trung trong toàn doanh nghiệp. Trung tâm dữ liệu lưu trữ và quản lý một lượng lớn dữ liệu quan trọng. Cơ sở hạ tầng của trung tâm dữ liệu bao gồm máy tính, hệ thống lưu trữ, thiết bị mạng, dự phòng nguồn điện chuyên dụng và kiểm soát môi trường (chẳng hạn như điều hòa không khí và ngăn chặn hỏa hoạn)
Yếu tố cốt lõi
Năm yếu tố cốt lõi cần thiết cho chức năng cơ bản của trung tâm dữ liệu:
– Ứng dụng: Ứng dụng là một chương trình máy tính cung cấp logic cho các hoạt động tính toán. Các ứng dụng, chẳng hạn như hệ thống xử lý đơn hàng, có thể được xếp lớp trên cơ sở dữ liệu, từ đó sử dụng các dịch vụ của hệ điều hành để thực hiện các thao tác đọc / ghi vào thiết bị lưu trữ.
– Cơ sở dữ liệu: Thông thường hơn, hệ quản trị cơ sở dữ liệu (DBMS) cung cấp một cách có cấu trúc để lưu trữ dữ liệu trong các bảng được tổ chức hợp lý có liên quan với nhau. DBMS tối ưu hóa việc lưu trữ và truy xuất dữ liệu.
– Máy chủ và hệ điều hành: Một nền tảng máy tính chạy các ứng dụng và cơ sở dữ liệu.
– Mạng: Đường dẫn dữ liệu tạo điều kiện giao tiếp giữa máy khách và máy chủ hoặc giữa máy chủ và bộ lưu trữ .
– Thiết bị lưu trữ: Một thiết bị lưu trữ dữ liệu liên tục cho những lần sử dụng tiếp theo.

Yêu cầu chính đối với các phần tử của trung tâm dữ liệu
Tính khả dụng: Tất cả các phần tử của trung tâm dữ liệu phải được thiết kế để đảm bảo khả năng truy cập. Việc người dùng không thể truy cập dữ liệu có thể có tác động tiêu cực đáng kể đến doanh nghiệp.
Bảo mật: Các chính sách, thủ tục và sự tích hợp thích hợp của các yếu tố cốt lõi của trung tâm dữ liệu sẽ ngăn chặn truy cập trái phép vào thông tin phải được thiết lập. Ngoài các biện pháp bảo mật để truy cập máy khách, các cơ chế cụ thể phải cho phép máy chủ chỉ truy cập vào các tài nguyên được phân bổ của chúng trên các mảng lưu trữ.
Khả năng mở rộng: Các hoạt động của trung tâm dữ liệu phải có thể phân bổ khả năng xử lý bổ sung hoặc lưu trữ theo yêu cầu mà không làm gián đoạn hoạt động kinh doanh. Tăng trưởng kinh doanh thường đòi hỏi phải triển khai thêm máy chủ, ứng dụng mới và cơ sở dữ liệu bổ sung. Giải pháp lưu trữ sẽ có thể phát triển cùng với doanh nghiệp.
Hiệu suất: Tất cả các yếu tố cốt lõi của trung tâm dữ liệu phải có thể cung cấp hiệu suất tối ưu và phục vụ tất cả các yêu cầu xử lý ở tốc độ cao. Cơ sở hạ tầng phải có thể hỗ trợ các yêu cầu về hiệu suất.
Tính toàn vẹn của dữ liệu: Tính toàn vẹn của dữ liệu đề cập đến các cơ chế như mã sửa lỗi hoặc bit chẵn lẻ đảm bảo rằng dữ liệu được ghi vào đĩa chính xác như khi nó được nhận. Bất kỳ sự thay đổi nào về dữ liệu trong quá trình truy xuất đều có nghĩa là bị hỏng, có thể ảnh hưởng đến hoạt động của tổ chức.
Dung lượng: Hoạt động của trung tâm dữ liệu yêu cầu đủ nguồn lực để lưu trữ và xử lý một lượng lớn dữ liệu một cách hiệu quả. Khi các yêu cầu về dung lượng tăng lên, trung tâm dữ liệu phải có khả năng cung cấp thêm dung lượng mà không làm gián đoạn tính khả dụng hoặc ít nhất là với sự gián đoạn tối thiểu. Năng lực có thể được quản lý bằng cách phân bổ lại các nguồn lực hiện có, thay vì bằng cách bổ sung các nguồn lực mới.
Khả năng quản lý: Một trung tâm dữ liệu phải thực hiện tất cả các hoạt động và hoạt động theo cách hiệu quả nhất. Khả năng quản lý có thể đạt được thông qua tự động hóa và giảm sự can thiệp của con người (thủ công) vào các công việc chung.

Vòng đời thông tin
Vòng đời thông tin là “ sự thay đổi giá trị của thông tin ” theo thời gian. Khi dữ liệu được tạo lần đầu tiên, nó thường có giá trị cao nhất và được sử dụng thường xuyên. Khi dữ liệu cũ đi, nó được truy cập ít thường xuyên hơn và có ít giá trị hơn đối với tổ chức. Hiểu được vòng đời thông tin giúp triển khai cơ sở hạ tầng lưu trữ thích hợp, theo giá trị thay đổi của thông tin.

Hướng dẫn về tốc độ khung hình trong camera giám sát (Frame rate in CCTV)
Đây là bài viết hướng dẫn chuyên sâu về tốc độ khung hình trong camrea giám sát. Đầu tiên, bạn cần phải biết tốc độ của vật thể, thông thường là con người.
Tốc độ của con người
Người di chuyển càng nhanh, bạn càng có nhiều cơ hội bỏ lỡ hành động, Bạn biết “tốc độ” của Frame rate là 1 khung hình / giây (1 fps), 10 khung hình / giây (10 fps), 25 khung hình/ giây (25 fps)… nhưng bạn cần tốc độ bao nhiêu khung hình để ghi hình tin cậy nhất.
Đây là cách mọi người di chuyển:
Đối với một người đi bộ, tốc độ bình thường thì thường là ~4 feet/s (khoảng 1,2 mét / giây) . Đây là video ghi lại người đi bộ bình thường 6 mét trong khoảng 5 giây:
Đối với một người đang chạy, chúng ta có video di chuyển 6 mét trong khoảng 1,25 giây, tức là anh ấy di chuyển với ~5 mét trong 1 giây:
Ví du: Nếu bạn chỉ có 1 khung hình/ giây (1 fps), một người có thể di chuyển từ 1,2 mét tới 4.8 mét trong khoảng thời gian đó. Vì thế chúng ta cần lưu ý điều này khi đánh giá lựa chọn tốc độ khung hình.
Trong hướng dẫn này, tôi xin đề cập đến:
- Tốc độ mọi người di chuyển ra sao và làm thế nào để so sánh với tốc độ khung hình.
- Đi bộ: Bạn có những rủi ro nào khi bắt hình một người đang đi bộ ở tốc độ 1, 10 và 30 khung hình / giây.
- Chạy: Bạn đã nắm bắt được ai đang chạy ở tốc độ 1, 10 và 30 khung hình / giây.
- Xoay đầu (ngó nghiêng): Bạn nhận mặt mũi rõ ràng của một người như thế nào ở 1, 10 và 30 khung hình / giây.
- Chơi bài: Bạn không nắm bắt được thông tin gì về bài chơi ở mức 1, 10 và 30 khung hình / giây.
- Tốc độ màn trập so với tốc độ khung hình: Cả hai có sự liên quan như thế nào?
- Tỷ lệ băng thông so với khung: băng thông tăng với tăng tốc độ khung hình như thế nào?
- Tỷ lệ khung hình trung bình được sử dụng: Trung bình trong camera giám sát là bao nhiêu?
Ví dụ đi bộ.
Khi người mẫu đi xuyên qua góc nhìn camera, chúng ta xem anh ấy chuyển từ khung này tới khung khác như thế nào. Trong luồng video 30 fps và 10 fps, anh ấy không hoàn thành một bước đi đầy đủ. Tuy nhiên, trong ví dụ 1fps, anh ta đã tiến tới ~1,2 mét giữa các khung hình, và phù hợp với tốc độ đi bộ của chúng ta đo được ~1,2 mét / giây.



Ví dụ khi chạy.
Khi người mẫu chạy qua góc nhìn camera, luồng 30 fps vẫn bắt kịp anh ta, trong khi ở luồng 10 khung hình / giây, anh ấy đã đi ~0,3 mét giữa các khung. Trong ví dụ 1 fps, chỉ có một khung của đối tượng bị bắt, với góc nhìn của camera giữa các khung, chỉ với chân sau của người mẫu có thể nhìn thấy trong khung thứ hai.



Chụp khuôn mặt
Cố gắng để có được một khuôn mặt rõ ràng có thể khó khăn khi mọi người di chuyển bởi vì họ tự nhiên xoay đầu của họ thường xuyên. Trong video này, chúng ta có người mẫu vừa đi bộ ở hành lang vừa lắc đầu với tốc độ khung hình khác nhau.
Hãy xem:
Chú ý, ở tốc độ 1 khung hình / giây, chỉ có một cú đánh đầu rõ ràng là bị bắt, nhưng ở tốc độ 10 khung hình / giây, bạn sẽ có nhiều hơn thế. Cuối cùng, ở tốc độ 30 khung hình / giây, bạn có thể nhận được một hoặc hai lần, nhưng không cải thiện nhiều.
Chơi bài
Trong bài kiểm tra này, chủ đề của chúng ta là xử lý một loạt các lá bài từ Át (ace) đến năm với máy ảnh được đặt thành tốc độ màn trập (shutter) mặc định (1/30).
Trong các ví dụ 30 và 10 fps, chúng ta có thể thấy mỗi lá khi nó được lấy ra từ phía trên bộ bài và đặt trên bàn. Tuy nhiên, trong ví dụ 1 fps, chúng ta chỉ thấy các thẻ xuất hiện trên bàn, không phải là chuyển động của người chơi, vì tốc độ khung hình quá thấp.
Tốc độ màn trập (Shutter) so với tốc độ khung hình (Frame rate)
Tốc độ khung hình không làm mờ hình ảnh. Đây là một quan niệm sai lầm. Điều khiển tốc độ màn trập tự động của camera.
Xử lý thẻ Át thông qua 5 lần nữa, chúng tôi tăng tốc độ màn trập tối thiểu của camera lên 1/4000 giây. Hình ảnh dưới đây so sánh hình ảnh mờ trong tay người chơi và lá bài, với 2 lá bài dễ dàng hơn nhiều trong ví dụ tốc độ màn trập nhanh.

1 / 4000s tốc độ màn trập hoàn toàn loại bỏ tất cả các dấu vết của mờ nhòa hình ảnh. 1/1000 và 1/2000 tốc độ màn trập lần thứ hai làm giảm đáng kể độ mờ, nhưng vẫn có thể thấy được xung quanh tay người chơi và các cạnh của lá bài khi xem khung ghi theo từng khung.
Nếu bạn bị mờ, bạn có vấn đề cấu hình tốc độ màn trập, chứ không phải tốc độ khung hình.
Tốc độ màn trập (Shutter) chậm và Tốc độ khung hình (Frame Rate)
Mặt khác, đôi khi người dùng muốn hoặc nhà sản xuất camera mặc định màn trập tối đa của họ với tốc độ chậm hơn tốc độ khung hình (ví dụ, màn trập 1/4 cho máy ảnh 1/30 giây). Không chỉ gây ra sự mờ của các đối tượng di chuyển , bạn sẽ mất khung hình.
Bài học chính: Tỷ lệ khung hình mỗi giây không bao giờ cao hơn số lần phơi sáng trên mỗi giây (tốc độ màn trập – Shutter). Nếu bạn có màn trập 1 / 4s, màn trập / phơi sáng chỉ mở và đóng 4 lần / giây (tức là 1 / 4s + 1 / 4s + 1 / 4s + 1 / 4s = 1s). Vì điều này chỉ xảy ra 4 lần, bạn chỉ có thể có 4 khung trong giây đó.
Một số nhà sản xuất làm giả khung hình với màn trập chậm, chỉ cần sao chép cùng một khung hình nhiều lần. Ví dụ: nếu bạn có màn trập 1/15, bạn chỉ có thể có 15 lần chụp, và do đó, 15 khung hình. Để làm cho nó có vẻ như bạn có 30 khung hình, mỗi khung có thể được gửi hai lần liên tiếp.
Hãy cẩn thận với màn trập chậm. Ngoài việc mờ, bạn có thể bị mất khung hoặc bộ nhớ bị rác.
Tỷ lệ băng thông so với khung hình
Tỷ lệ khung ảnh hưởng đến băng thông, nhưng đối với các chuẩn nén hiện đại, như H.264, nó ít tỷ lệ thuận hơn. Vì vậy, nếu bạn tăng tốc độ khung hình lên 10x, băng thông tăng có thể sẽ thấp hơn nhiều, thường chỉ có từ 3 đến 5 lần băng thông. Đây là điều chúng tôi thấy thường xuyên bị nhầm lẫn trong ngành CCTV.
Lý do của việc này là nén liên khung, làm giảm nhu cầu băng thông cho các phần của cảnh mà vẫn giữ nguyên trên các khung hình
Minh hoạ thêm điểm này, chúng tôi đã đo 30, 10 và 1 fps để chứng minh sự thay đổi tốc độ bit trong một thiết lập kiểm soát trong phòng thí nghiệm của chúng tôi. Bitrate trung bình như sau:
- 1 fps là 0.179 Mb / s
- 10 khung hình / giây, với 10x khung hình, tiêu thụ băng thông 4x nhiều hơn 1 khung hình / giây (0.693 Mb / s)
- 30 khung hình / giây, với 3x khung hình, tiêu thụ gấp đôi băng thông 10 khung hình / giây và với 30x khung, 7x băng thông 1fps (1.299 Mb / s)
Các phép đo này được thực hiện với 1 I frame trên giây, thiết lập phổ biến nhất trong camera giám sát chuyên nghiệp
Tỷ lệ khung trung bình được sử dụng
Tỷ lệ khung hình ngành công nghiệp trung bình là ~ 10 khung hình / giây, phản ánh mức độ này cung cấp đủ khung để nắm bắt hầu hết các hành động một cách chi tiết đồng thời giảm thiểu chi phí lưu trữ.

Như được hiển thị trong phần trước, đi từ 10fps đến 30fps có thể tăng gấp đôi chi phí lưu trữ nhưng chỉ cải thiện được ít chi tiết.
Juniper EX4300 Series – Configuration Template
As promised here’s the current template I’m using to configure the Juniper EX4300 series switches in my environment. Please feel free to provide corrections or updates based on your own experiences.

We’ll touch on the following configuration topics; OSPF, VLANs, DHCP relay, DHCP snooping, MAC limiting, rate limiting, BFD, TACACS+, SYSLOG, SNMP, RSTP, and BPDU filtering(blocking).
Let’s start by setting the hostname of the switch and the timezone.
set system host-name B99-SW01-EAST set system time-zone America/New_York
Let’s set the root password, we’ll also add an ‘admin’ user later.
set system root-authentication plain-text-password {enter local root password} {confirm local root password}
In this case I’m using TAC_PLUS so let’s configure TACACS+ authentication. In the example below X.X.X.X is the IP address of your our TACACS+ server and Y.Y.Y.Y is the management IP address of loopback address of the switch itself.
set system tacplus-server X.X.X.X set system tacplus-server X.X.X.X secret tac_plus_shared_secret_here set system tacplus-server X.X.X.X single-connection set system tacplus-server X.X.X.X source-address Y.Y.Y.Y
Let’s change the order of the authentication sources, making TACACS+ the first choice.
Continue reading “Juniper EX4300 Series – Configuration Template”Tiêu chuẩn suy hao mối hàn cáp quang
Tiêu chuẩn quốc gia – Tiêu chuẩn suy hao mối hàn cáp quang
TCVN 8665:2011 chuyển đổi từ TCN 68-160:1996 thành Tiêu chuẩn Quốc gia theo quy định tại khoản 1 Điều 69 của Luật Tiêu chuẩn và Quy chuẩn kỹ thuật và điểm a khoản 1 Điều 6 Nghị định số 127/2007/NĐ-CP ngày 1/8/2007 của Chính phủ quy định chi tiết thi hành một số điều của Luật Tiêu chuẩn và Quy chuẩn kỹ thuật.

TCVN 8665:2011 được xây dựng trên cơ sở Khuyến nghị G.651.1 (07/2007), G.652 (11/2009), G.653 (07/2010), G.655 (11/2009) của Liên minh Viễn thông Thế giới ITU-T.
TCVN 8665:2011 do Viện Khoa học Kỹ thuật Bưu điện biên soạn, Bộ Thông tin và Truyền thông đề nghị, Tổng cục Tiêu chuẩn Đo lường Chất lượng thẩm định, Bộ Khoa học và Công nghệ công bố.
Các bạn có thể tải file về xem rất chi tiết và đầy đủ nhé:
Một số mức suy hao cho phép:
Dưới đây là các thông số tiêu chuẩn để đánh giá của một tuyến cáp quang
- Quỹ công suất toàn tuyến (Switch to Switch): 28dBm
- Suy hao toàn tuyến: yêu cầu <28dBm (khuyến cáo nên <25dBm, 3dBm dự phòng công suất suy giảm theo thời gian.
- Mức phát của OLT là +3dBm +-2
Suy hao cho phép: cáp quang, mối hàn, đầu nối connector:
Về lý thuyết:
- Suy hao cáp quang cho phép ở bước sóng 850nm: 3.5dBm/km (Cáp quang MM)
- Suy hao cáp quang cho phép ở bước sóng 1300nm: 1.0dBm/km (Cáp quang MM)
- Suy hao cáp quang cho phép ở bước sóng 1310nm: 0.35dBm/km (Cáp quang SM)
- Suy hao cáp quang cho phép ở bước sóng 1550nm: 0.22dBm/km (Cáp quang SM)
- Suy hao mối hàn cáp quang <0.1dBm (Thực tế suy hao < 0.05dBm)
- Các suy hao do đầu nối connector: <0.5dBm (Đối với loại đầu nối SC/APC suy hao là 0.35dBm)
Tiếp theo mình sẽ hướng dẫn các bạn 2 phương pháp đo suy hao cáp quang:
1. Đo suy hao quang bằng máy đo công suất
1.1. Mục đích
Việc đo suy hao quang bằng máy đo công suất được sử dụng để xác định chính xác suy hao của cáp sợi quang.
Phương pháp đo suy hao quang bằng máy đo công suất quang sử dụng phương pháp đo suy hao xen.

1.2. Điều kiện đo
Dưới đây là những thiết bị cần để đo:
- Máy đo công suất quang.
- Nguồn sáng quang (có thể dùng converter, module quang (SFP)…)
- 02 bộ đầu nối (adapter).
- 02 dây nối (có đường kính lõi và vỏ giống như sợi cần đo).
1.3. Tiến hành đo
Bước 1: đặt tham chiếu.
Thiết lập đo

Quy trình:
– Đấu mỗi máy đo công suất và nguồn sáng với 1 dây nối và liên kết lại bằng 1 bộ nối (Hình 1.1);
– Bật nguồn máy đo công suất quang (để ở chế độ cần đo);
– Bật nguồn quang hiển thị là giá trị tuyệt đối (dBm);
– Thiết lập giá trị tuyệt đối này về giá trị tham chiếu và hiển thị giá trị tương đối (dB).
Bước 2: đo suy hao sợi quang sử dụng phương pháp đo suy hao xen.
Thiết lập đo:

Quy trình:
– Tháo một trong các dây nối, nối sợi quang cần đo vào như Hình 1.2.
– Giá trị hiển thị trên máy đo là suy hao xen của sợi quang cần đo.
2. Đo suy hao quang bằng máy đo phản xạ quang OTDR
2.1. Mục đích
Phương pháp đo suy hao bằng máy đo OTDR cáp quang sử dụng phương pháp đo suy hao phản xạ trở về.
Phương pháp này cho phép đánh giá suy hao trở về bằng đo công suất phản xạ của sợi quang.
2.2. Điều kiện đo
Máy đo OTDR
Các dây nối và phụ kiện:
- Các bộ nối thích hợp;
- Bộ ghép sợi quang;
- Chất lỏng làm phù hợp chiết suất sợi;
- Dao cắt sợi quang;
- Kìm tuốt vỏ cáp và sợi quang;
- Cuộn sợi đệm.
Trước khi tiến hành các phép đo bằng OTDR, cần phải kiểm tra máy OTDR đó để đảm bảo rằng nó có đủ khả năng đo toàn bộ chiều dài sợi quang hay không. Chiều dài tổng của cáp sợi quang được đo cần ngắn hơn phạm vi này.
2.3. Tiến hành đo
Dưới đây là các bước cần được tiến hành để thực hiện một phép đo bằng OTDR:
1. Nếu sợi quang cần đo không được nối với bộ nối, bóc cáp sợi quang ra và để cho sợi quang lộ ra khoảng 2m. Làm sạch và cắt sợi này.
2. Nối máy OTDR với sợi quang trên bằng một dây nối, cuộn sợi đệm (nếu được yêu cầu) và bộ chuyển đổi sợi quang trần (xem Hình 2.1). Nếu sợi quang đó được nối với bộ nối, thì nối máy OTDR với sợi đó bằng một dây nối và cuộn sợi đệm (nếu được yêu cầu). Cuộn sợi đệm là cuộn sợi quang trần nhỏ có độ dài sợi khoảng 1km, có thể cuộn được trên một lô nhỏ. Nó được sử dụng cho OTDR để loại vùng chết của OTDR. Vì thế sợi quang dùng làm cuộn đệm không được có bất kỳ sự dị thường nào.
3. Bật nguồn OTDR.
4. Thiết lập chế độ ứng với các tham số hoạt động thích hợp của OTDR, bao gồm bước sóng, chiết suất của sợi quang được đo và chế độ quét và phân giải của màn hiển thị.
5. Điều chỉnh độ phân giải của màn hiển thị để hiển thị toàn bộ sợi quang được đo.
6. Đo suy hao của tất cả các điểm dị thường, các mối hàn, các bộ nối và toàn bộ sợi quang.
7. Đo suy hao 2 điểm đầu-cuối của sợi quang.
8. Lặp lại tất cả các bước từ 1 đến 7 cho tất cả các bước sóng yêu cầu.
9. Ghi lại vị trí của OTDR cho những phép đo này.
10. Lặp lại các bước từ 1 đến 9 với máy đo OTDR được nối vào đầu kia của sợi quang. Sau đó tính giá trị trung bình của hai kết quả thu được. Nó sẽ cho ra một giá trị chính xác hơn:
Tổn haoOTDR = (Tổn haohướng A + Tổn haohướng B)/2