AI가 랜섬웨어 공격의 증가와 싸울 수 있습니까?
랜섬웨어 공격이 증가하고 있지만 AI가 최신 컴퓨터 바이러스를 처리하는 데 도움이 될 수 있습니까? AI가 답인가? AI boone 또는 bane인지 여기에서 읽으십시오.
이 학습서의 목표는 공개 SSH 및 공개 RDP 연결을 제거하는 것입니다. 이 모든 것을 매우 편리한 HTML5 클라이언트 뒤에 배치함으로써 클라우드에 액세스하기위한 보안 계층을 추가 할 수 있습니다.
Guacamole은 또한 모든 원격 액세스를 기록하므로 무단 액세스가 훨씬 더 추적 가능해집니다.
참고 : 암호화하자 (옵션 B)에는 도메인 이름이 필요합니다. 계정이 없으면이 단계를 건너 뛰고 옵션 A 만 실행하면 됩니다.
원하는 Vultr 영역에서 VPS를 시작하여 시작하십시오. 1024 MB
아보카도 소스가 요구하는 것이 아니므로 VPS는 충분합니다.
VPS에서 개인 네트워크를 활성화하여 시작하십시오. 이것은 여기에 잘 문서화되어 있습니다
먼저 이미지를 조금 강화 해 봅시다. 프로비저닝 된 이미지가 ufw
활성화 되어 있는지 확인하겠습니다 .
root@vultr:~# ufw status
Status: inactive
기본적으로 비활성화되어 있으므로 몇 가지 규칙을 추가해야합니다.
이 포트 구성부터 시작하겠습니다.
ufw allow 22/tcp
ufw allow 8080/tcp
다음으로 방화벽을 활성화하십시오.
ufw enable
경고가 표시 되더라도 걱정하지 마십시오. port를 추가 22
하면 문제가 발생하지 않습니다.
root@vultr:~# ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
활성화되면 방화벽 상태를 요청하면 포트 구성이 표시됩니다.
ufw status
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
8080/tcp ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere (v6)
8080/tcp (v6) ALLOW Anywhere (v6)
설치를 시작하기 전에 repo를 업데이트하고 업그레이드해야합니다. Tomcat
Java 기반의 와 같은 패키지 에는 발견 된 버그 및 관련 버그 수정이 지속적으로 제공됩니다. 일반적으로 설치에 직접 돌진하는 대신이 작업을 먼저 수행하는 것이 좋습니다.
apt-get update
apt-get -y upgrade
다음은 모든 의존성입니다. 과카 몰리에는 그 중 상당수가 있습니다. (종속성 및 기능의 전체 목록은 여기 에서 찾을 수 있습니다 ). 계속해서 설치해 봅시다.
apt-get -y install build-essential tomcat8 freerdp libcairo2-dev libjpeg-turbo8-dev libpng12-dev libossp-uuid-dev libavcodec-dev libavutil-dev libfreerdp-dev libpango1.0-dev libssh2-1-dev libtelnet-dev libvorbis-dev libwebp-dev mysql-server mysql-client mysql-common mysql-utilities libswscale-dev libvncserver-dev libpulse-dev libssl-dev
설치 관리자가 MySQL 루트 암호를 물을 때 암호를 제공하고 기록해 두십시오. 나중에이 비밀번호를 사용하여 Guacamole 데이터베이스를 작성합니다.
이제 모든 종속성이 있으므로 Guacamole 다운로드를 계속할 수 있습니다. 아보카도 소스 자체는 대부분 바이너리가 아닌 소스 형식으로 제공됩니다. 먼저 /tmp
디스크의 다른 부분이 복잡해지지 않도록 폴더로 이동합니다 . 그런 다음 모든 소스 코드를 다운로드하십시오.
다운로드 할 네 가지 소스 / 이진 파일이 있습니다 :
guacamole-0.9.13-incubating.war
: 이것은 웹 응용 프로그램입니다. WAR
파일은 톰캣 웹 사이트에서 호스팅 하나의 웹 사이트를 제공하는 압축 된 웹 패키지guacamole-server-0.9.13-incubating.tar.gz
:이 파일은 백엔드 guacd
애플리케이션 을 제공합니다 . RDP 및 SSH를 통해 스트림을 만듭니다.guacamole-auth-jdbc-0.9.13-incubating.tar.gz
: 로컬 MySQL 데이터베이스를 사용하므로 관련 JDBC
커넥터 가 필요합니다 .mysql-connector-java-5.1.43.tar.gz
: 데이터베이스 드라이버가 없으면 JDBC 커넥터는 아무 것도 수행하지 않습니다. 이 파일은 MySQL 팀 자체에서 제공합니다.참고 : 다운로드는 가장 가까운 서버로 해결되었습니다 .
cd /tmp
wget http://apache.belnet.be/incubator/guacamole/0.9.13-incubating/binary/guacamole-0.9.13-incubating.war
wget http://apache.cu.be/incubator/guacamole/0.9.13-incubating/source/guacamole-server-0.9.13-incubating.tar.gz
wget http://apache.cu.be/incubator/guacamole/0.9.13-incubating/binary/guacamole-auth-jdbc-0.9.13-incubating.tar.gz
wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.43.tar.gz
모든 파일을 다운로드 한 후의 파일을 추출하십시오 tar.gz
.
tar -xzvf guacamole-server-0.9.13-incubating.tar.gz
tar -xzvf guacamole-auth-jdbc-0.9.13-incubating.tar.gz
tar -xzvf mysql-connector-java-5.1.43.tar.gz
이제 소스 코드를 모두 추출 했으므로 몇 개의 guacamole
폴더를 만들어 보자.이 폴더는 아보카도 소스 응용 프로그램과 그 종속 항목에서 사용됩니다.
mkdir -p /etc/guacamole/lib
mkdir -p /etc/guacamole/extensions
새로운 Guacamole 바이너리를위한 모든 준비가 완료되었습니다. 이제 컴파일 및 설치 프로세스를 시작할 수 있습니다. 추출 된 Guacamole Server 폴더로 이동하십시오.
cd /tmp/guacamole-server-0.9.13-incubating
init.d
나중에 서비스로 실행할 파일을 작성하도록 응용 프로그램을 구성하십시오 .
./configure --with-init-dir=/etc/init.d
이 명령은 모든 라이브러리 및 프로토콜에서 'yes'로 끝나야합니다. 그렇지 않은 경우 돌아가서 apt-get 명령을 확인하여 패키지를 놓치지 않았는지 확인하십시오.
------------------------------------------------
guacamole-server version 0.9.13-incubating
------------------------------------------------
Library status:
freerdp ............. yes
pango ............... yes
libavcodec .......... yes
libavutil ........... yes
libssh2 ............. yes
libssl .............. yes
libswscale .......... yes
libtelnet ........... yes
libVNCServer ........ yes
libvorbis ........... yes
libpulse ............ yes
libwebp ............. yes
Protocol support:
RDP ....... yes
SSH ....... yes
Telnet .... yes
VNC ....... yes
Services / tools:
guacd ...... yes
guacenc .... yes
Init scripts: /etc/init.d
Type "make" to compile guacamole-server.
다음으로 Gucamole 서버를 컴파일하고 설치하십시오.
make && make install
이 모든 작업이 완료되면 ldconfig
추가 된 라이브러리의 검색 경로를 다시 작성하십시오.
ldconfig
부팅시 시작 systemctl
하도록 설정 guacd
(Guacamole Daemon)을 사용하여 진행하십시오 .
systemctl enable guacd
과카 몰리 바이너리가 설치되었습니다. 이제 Tomcat에 대한 웹 응용 프로그램을 준비합니다.
war
파일을 guacamole
방금 만든 폴더 로 이동하여 시작하십시오 . 일단 완료되면 tomcat 디렉토리에 war
파일 을 가리키는 논리적 링크를 작성 하십시오.
cd /tmp
mv guacamole-0.9.13-incubating.war /etc/guacamole/guacamole.war
ln -s /etc/guacamole/guacamole.war /var/lib/tomcat8/webapps/
그런 다음 mysql 커넥터와 JDBC가 필요합니다. JDBC 드라이버는 extensions
폴더의 커넥터, lib
폴더 의 커넥터에 필요 합니다.
cp mysql-connector-java-5.1.43/mysql-connector-java-5.1.43-bin.jar /etc/guacamole/lib/
cp guacamole-auth-jdbc-0.9.13-incubating/mysql/guacamole-auth-jdbc-mysql-0.9.13-incubating.jar /etc/guacamole/extensions/
커넥터와 JDBC가 제 위치에 있으면 tocamt8
파일 을 편집해야 합니다. 이 파일에는 많은 tomcat8
설정 이 포함되어 있으며,이 경우 GUACAMOLE_HOME
파일 끝에 변수 를 추가해야 합니다.
nano /etc/default/tomcat8
다음과 같이 추가하십시오.
GUACAMOLE_HOME=/etc/guacamole
다음은 데이터베이스를 만드는 것입니다. Guacamole은 연결 구성을 파일이 아닌 데이터베이스에 저장합니다.
root password
설치 중에 사용한 것과 함께 로그인하십시오 .
mysql -u root -p
첫 번째 단계는 'guacamole_db'라는 데이터베이스를 만드는 것입니다.
create database guacamole_db;
그런 다음 create user
명령을 실행하십시오 . 이것은 암호를 가진 사용자를 만들며 mysupersecretpassword
,이 사용자는 연결 만 가능합니다 localhost
.
create user 'guacamole_user'@'localhost' identified by "mysupersecretpassword";
CRUD
이 사용자에게 데이터베이스에 대한 조작을 부여 하십시오 guacamole_db
.
GRANT SELECT,INSERT,UPDATE,DELETE ON guacamole_db.* TO 'guacamole_user'@'localhost';
권한을 플러시하고 쉘을 종료하십시오.
flush privileges;
exit
새로 작성된 데이터베이스에 Guacamole 스키마를 추가하여 완료하십시오.
cat /tmp/guacamole-auth-jdbc-0.9.13-incubating/mysql/schema/*.sql | mysql -u root -p guacamole_db
이 작업이 완료되면 guacamole.properties
파일 을 편집해야 합니다. 이 파일에는 최근에 만든 MySQL 서버 구성이 포함되어 있습니다.
nano /etc/guacamole/guacamole.properties
MySQL 연결 세부 사항 및 신임 정보를 추가하십시오.
mysql-hostname: localhost
mysql-port: 3306
mysql-database: guacamole_db
mysql-username: guacamole_user
mysql-password: mysupersecretpassword
Tomcat 공유 폴더에 대한 심볼릭 링크를 만들어서 마무리합니다.이 위치에서 WAR
파일이 이러한 속성을 검색합니다.
ln -s /etc/guacamole /usr/share/tomcat8/.guacamole
tomcat8
서버 를 다시 시작하여 종료 하고 guacd
서버 디먼을 시작하십시오 .
service tomcat8 restart
service guacd start
status 명령을 사용하여 확인할 수 있습니다.
service tomcat8 status
service guacd status
이제 포트에서 VPS를 탐색 할 수 있습니다 8080
http://<yourpublicip>:8080/guacamole/
사용자 이름 guacadmin
과 동일한 비밀번호를 사용하십시오 guacadmin
. 이렇게하면 빈 Guacamole 서버에 액세스 할 수 있습니다.
사용자 이름의 오른쪽 상단을 클릭하고을 guacadmin
선택하십시오 Settings
. 설정 페이지에 들어가면 Users
탭으로 이동 하여 사용자를 선택하십시오 guacadmin
.
이제 비밀번호를 다른 것으로 변경하거나 새 관리자를 만들고 기본 비밀번호를 삭제하십시오 guacadmin
.
다음은 마지막 단계입니다. 완료 후 정리.
다운로드 한 소스 코드와 바이너리를 /tmp
폴더 에서 삭제하십시오 .
rm -rf /tmp/guacamole-*
rm -rf /tmp/mysql-connector-java-*
또한 Guacamole 웹 애플리케이션을 기본 애플리케이션으로 설정하십시오. 바람둥이 생태계에서 ROOT
폴더 를 얻는 응용 프로그램 은 웹 사이트에 액세스 할 때 기본적으로 시작되는 응용 프로그램입니다 .
이전 ROOT
자리 표시자를 삭제합니다 .
rm -rf /var/lib/tomcat8/webapps/ROOT
그리고 과카 몰리 서버가 ROOT
하나 가되도록 심볼릭 링크를 만드십시오 .
ln -s /var/lib/tomcat8/webapps/guacamole /var/lib/tomcat8/webapps/ROOT
Tomcat을 다시 시작해야합니다.
service tomcat8 restart
tomcat8/server.xml
파일을 편집하고 커넥터 포트를 변경하십시오.
nano /etc/tomcat8/server.xml
을 검색하십시오 Connector port
.
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
URIEncoding="UTF-8"
redirectPort="8443" />
그리고 교체 8080
와 함께 80
.
기본적으로 tomcat은 아래 포트 바인딩을 허용하지 않습니다 1024
. 이를 가능하게하려면 인증 된 바인드를 작성하도록 tomcat8에 지시해야합니다.
default
tomcat8 파일을 편집하고 AUTHBIND
라인의 주석을 해제 하고 옵션을 사용하십시오yes
nano /etc/default/tomcat8
AUTHBIND=yes
이 작업이 완료되면 intall authbind
.
apt-get install authbind
80
tomcat8 이 포트 를 청구 할 수 있도록 구성하십시오 .
touch /etc/authbind/byport/80
chmod 500 /etc/authbind/byport/80
chown tomcat8 /etc/authbind/byport/80
80
방화벽을 통한 포트 를 허용 하고에 대한 규칙을 삭제하십시오 8080
.
ufw allow 80/tcp
ufw delete allow 8080/tcp
바람둥이를 다시 시작하십시오.
service tomcat8 restart
이제 Guacamole이 port에서 실행 중입니다 80
.
Tomcat은 실제로 사용할 수있는 가장 강력하고 강력한 응용 프로그램 중 하나가 아닙니다 certbot
. 운 좋게 Nginx입니다. 우리는 단지 Tomcat을 Nginx로 프록시 할 것입니다. 약간의 RAM을 희생시키면서 certbot의 기본 기능을 사용합니다.
apt-get install nginx
설치되면 기본 구성을 편집하십시오.
nano /etc/nginx/sites-available/default
모든 구성 예를 삭제하고 다음 구성을 추가하십시오.
server {
listen 0.0.0.0:80;
proxy_request_buffering off;
proxy_buffering off;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
}
}
에서 실행되는 웹 사이트에 대한 프록시가 생성됩니다 8080
. Nginx를 다시 시작하고 부팅시 활성화하십시오.
systemctl restart nginx
systemctl enable nginx
모든 것이 작동하는지 확인하십시오.
systemctl status nginx
테스트 포트를 비활성화하고 포트의 8080
트래픽을 허용하십시오 80
.
ufw allow 80/tcp
ufw delete allow 8080/tcp
를 사용하기 전에 certbot 패키지가 포함 된 시스템에 certbot
올바른 ppa
것을 추가해야 합니다.
add-apt-repository ppa:certbot/certbot
" ENTER
"를 눌러 구성 변경을 승인하십시오.
apt
새 패키지를 수집하도록 업데이트 하십시오.
apt-get update
마지막으로 인증서 할당을 위해 Nginx 모듈을 설치하십시오.
apt-get -y install python-certbot-nginx
허용하도록 방화벽을 구성하십시오 HTTPS
.
ufw allow 443/tcp
새 인증서를 요청하려면 DNS 이름이 필요합니다.
nano /etc/nginx/sites-available/default
다음 server_name
설정을 추가하십시오 .
server_name rdp.example.com;
이 새로운 설정을 반영하도록 구성을 변경하십시오.
server {
server_name rdp.example.com;
listen 0.0.0.0:80;
proxy_request_buffering off;
proxy_buffering off;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
}
}
모든 것이 작동하는지 확인하고 Nginx를 다시 시작하십시오.
nginx -t
service nginx restart
이제 certbot으로 인증서를 요청하십시오.
certbot --nginx -d rdp.example.com
이메일을 제공하고 설치 프로그램에서 질문 한 내용에 동의하십시오. ( No
이메일을 안전하게 공유하기 위해 " "을 (를) 안전하게 선택할 수 있습니다 .) Certbot은 자동으로 수행 할 작업을 묻습니다 HTTPS
. 옵션 2를 사용할 것 redirect to HTTPS
입니다.
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
우리가 할 마지막 일은 DH
매개 변수를 업데이트하는 것 입니다. 기본적으로 2017 표준에는 약간 약합니다.
새로운 것을 만드십시오.
openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
그런 다음 Nginx의 기본 사이트에 추가하십시오.
nano /etc/nginx/sites-available/default
서버 구성에 추가하십시오.
server {
server_name rdp.example.com;
listen 0.0.0.0:80;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
proxy_request_buffering off;
proxy_buffering off;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
}
}
오류를 확인하십시오.
nginx -t
서버를 다시 시작하여 변경 사항을 적용하십시오.
service nginx restart
기존 8080
규칙 정리
ufw delete allow 8080/tcp
참고 : "502 Bad Gateway"를 받으려면 tomcat8을 다시 시작해야 합니다.
service tomcat8 restart
인증서를 암호화합시다. 이를 위해 크론 작업을 만들 수 있습니다. 를 편집하여 시작하십시오 crontab
.
crontab -e
다음 줄을 추가하십시오.
00 2 * * * /usr/bin/certbot renew --quiet
인증서는 갱신이 필요한 경우 오전 2시에 확인하고 필요한 경우 갱신합니다.
Guacamole 서버로 이동하십시오 ( http://<ip>/
또는 https://rdp.example.com)
).
이 테스트를 위해서는 두 개의 인스턴스가 더 필요합니다. 하나는 Linux VM과 다른 하나는 Windows Server 2012 R2 (개인 IP가 둘 다 활성화 됨)입니다.
username
오른쪽 상단 모서리에 있는 " "를 클릭하고 " "으로 이동하십시오 Settings
. 그런 다음 " Connections
" 로 이동하여 " "를 선택하십시오 New Connection
.
다음 설정을 작성하십시오 (다른 설정은 기본값으로 둘 수 있음).
Name: Windows Server 2012 R2
Location: ROOT
Protocol: RDP
Maximum number of connections: 1
Maximum number of connections per user: 1
Parameters > Hostname: 10.99.0.12
Parameters > Port: 3389
Username: Administrator
Password: <password> (provided by Vultr)
Security mode: Any
Ignore server certificate: <checked>
" save
"를 누르고 홈 화면으로 돌아갑니다. 이제 " Windows Server 2012 R2
"연결을 클릭 하면이 컴퓨터로 RDP가 연결됩니다.
" Ctrl+Shift+Alt
"를 누릅니다 . 측면에 메뉴가 나타납니다. 여기서 Guacamole에 대한 다른 관리 작업을 연결 해제하거나 수행 할 수 있습니다.
username
메뉴 상단 의 를 클릭하고 " Settings
" 로 이동하십시오 . 그런 다음 " Connections
"탭으로 이동하여 " "를 선택하십시오 New Connection
.
다음 설정을 작성하십시오 (다른 설정은 기본값으로 둘 수 있음).
Name: Linux
Location: ROOT
Protocol: SSH
Maximum number of connections: 5
Maximum number of connections per user: 2
Parameters > Hostname: 10.99.0.11
Parameters > Port: 22
Username: root
Password: <password> (provided by Vultr)
" save
"를 누르고 홈 화면으로 돌아갑니다. 이제 새로 생성 된 연결을 클릭하고 SSH를 통해 Linux 서버에 연결할 수 있습니다.
이제 웹 RDP / SSH HTML5 게이트웨이가 있습니다. 이제 플랫폼의 공개 RDP 및 SSH 액세스를 방화벽 처리하고 최신 브라우저에서 환경에 액세스 할 수 있습니다. 과카 몰리가 제공 할 수있는 것에 대한 자세한 내용은 여기 에 플랫폼의 모든 가능성을 보여주는 훌륭한 비디오가 있습니다 .
랜섬웨어 공격이 증가하고 있지만 AI가 최신 컴퓨터 바이러스를 처리하는 데 도움이 될 수 있습니까? AI가 답인가? AI boone 또는 bane인지 여기에서 읽으십시오.
오픈 소스이자 무료 운영 체제인 ReactOS가 최신 버전과 함께 제공됩니다. 현대 Windows 사용자의 요구 사항을 충족하고 Microsoft를 무너뜨릴 수 있습니까? 이 구식이지만 더 새로운 OS 환경에 대해 자세히 알아보겠습니다.
Whatsapp은 마침내 Mac 및 Windows 사용자용 데스크톱 앱을 출시했습니다. 이제 Windows 또는 Mac에서 Whatsapp에 쉽게 액세스할 수 있습니다. Windows 8 이상 및 Mac OS 10.9 이상에서 사용 가능
인공 지능이 소규모 회사에서 어떻게 인기를 얻고 있으며 어떻게 인공 지능이 성장할 가능성을 높이고 경쟁자가 우위를 점할 수 있는지 알아보려면 이 기사를 읽으십시오.
최근 Apple은 문제를 해결하기 위해 macOS Catalina 10.15.4 추가 업데이트를 출시했지만 이 업데이트로 인해 Mac 컴퓨터의 브릭킹으로 이어지는 더 많은 문제가 발생하는 것 같습니다. 자세히 알아보려면 이 기사를 읽어보세요.
빅데이터의 13가지 상용 데이터 추출 도구
우리 컴퓨터는 모든 데이터를 저널링 파일 시스템이라고 하는 체계적인 방식으로 저장합니다. 검색을 누르는 즉시 컴퓨터에서 파일을 검색하고 표시할 수 있는 효율적인 방법입니다.https://wethegeek.com/?p=94116&preview=true
과학이 빠른 속도로 발전하고 우리의 많은 노력을 인수함에 따라 설명할 수 없는 특이점에 처할 위험도 높아집니다. 특이점이 우리에게 무엇을 의미할 수 있는지 읽어보십시오.
26가지 빅 데이터 분석 기법에 대한 통찰: 1부
의료 분야의 AI는 지난 수십 년 동안 큰 도약을 했습니다. 따라서 의료 분야에서 AI의 미래는 여전히 나날이 성장하고 있습니다.