Skip to content

Commit 034cef6

Browse files
committed
tighten configuration generator to limit external dependencies and align better with secure-by-default considerations. In effect this reduces the set of enabled services unless explicitly requested. The examples in the README have been updated accordingly.
git-svn-id: svn+ssh://svn.code.sf.net/p/migrid/code/trunk@6067 b75ad72c-e7d7-11dd-a971-7dbc132099af
1 parent 5719c23 commit 034cef6

File tree

2 files changed

+43
-168
lines changed

2 files changed

+43
-168
lines changed

README

Lines changed: 31 additions & 156 deletions
Original file line numberDiff line numberDiff line change
@@ -558,13 +558,14 @@ settings:
558558

559559
All those values can also be set via environment variable, by setting the
560560
corresponding MIG_X environment variable where X is the option name in upper
561-
case. That is, instead of passing --enable_hsts=True as argument one could set
562-
MIG_ENABLE_HSTS=True in the environment.
561+
case. That is, instead of passing --enable_transfers=True as argument one could set
562+
MIG_ENABLE_TRANSFERS=True in the environment.
563563
If the same option is set both as environment variable and CLI parameter, then
564564
the CLI parameter takes precedence.
565565

566-
For one of our servers running MiG as the 'mig' user with the code
567-
checked out directly in the home directory and Debian apache 2.4 without OpenID:
566+
For a server running MiG as the 'mig' user with the code checked out directly
567+
in the home directory and Debian apache 2.4 without OpenID but with full grid
568+
jobs and resources and efficient data access services:
568569
./generateconfs.py --source=. --destination=generated-confs \
569570
--base_fqdn=migrid.org \
570571
--public_fqdn=www.migrid.org \
@@ -590,8 +591,9 @@ checked out directly in the home directory and Debian apache 2.4 without OpenID:
590591
--trac_ini_path=/home/mig/mig/server/trac.ini \
591592
--public_http_port=80 --mig_cert_port=443 --mig_oid_port=443 \
592593
--ext_oid_port=443 --sid_port=443 \
593-
--enable_openid=False --enable_wsgi=True \
594-
--enable_sftp=False --enable_sftp_subsys=True \
594+
--enable_jobs=True --enable_resources=True \
595+
--enable_ftps=True --enable_sftp_subsys=True \
596+
--enable_webdavs=True --enable_transfers=True \
595597
--enable_sandboxes=True --enable_vmachines=True \
596598
--user_clause=User --group_clause=Group \
597599
--listen_clause='#Listen' \
@@ -601,64 +603,8 @@ checked out directly in the home directory and Debian apache 2.4 without OpenID:
601603
--skin=migrid-basic \
602604
--short_title=MiG
603605

604-
or the same with HSTS, WSGI (default web), optimized SFTP,
605-
vhost-specific certificates from LetsEncrypt and OpenID with optional
606-
2FA support:
607-
./generateconfs.py --source=. --destination=generated-confs \
608-
--destination_suffix="_svn$(svnversion -n ~/)" \
609-
--base_fqdn=migrid.org \
610-
--public_fqdn=www.migrid.org \
611-
--public_alias_fqdn=dk-www.migrid.org \
612-
--mig_cert_fqdn=dk-cert.migrid.org \
613-
--ext_cert_fqdn= \
614-
--mig_oid_fqdn=dk-ext.migrid.org \
615-
--ext_oid_fqdn=dk-oid.migrid.org \
616-
--sid_fqdn=dk-sid.migrid.org \
617-
--io_fqdn=dk-io.migrid.org \
618-
--user=mig --group=mig \
619-
--apache_version=2.4 \
620-
--apache_etc=/etc/apache2 \
621-
--apache_run=/var/run/apache2 \
622-
--apache_lock=/var/lock/apache2 \
623-
--apache_log=/var/log/apache2 \
624-
--openssh_version=7.4 \
625-
--mig_code=/home/mig/mig \
626-
--mig_state=/home/mig/state \
627-
--mig_certs=/etc/apache2/MiG-certificates \
628-
--hg_path=/usr/bin/hg \
629-
--hgweb_scripts=/usr/share/doc/mercurial-common/examples \
630-
--trac_admin_path=/usr/bin/trac-admin \
631-
--trac_ini_path=/home/mig/mig/server/trac.ini \
632-
--public_http_port=80 --public_https_port=443 \
633-
--ext_cert_port=443 --mig_oid_port=443 \
634-
--ext_oid_port=443 --sid_port=443 \
635-
--mig_oid_provider=https://dk-ext.migrid.org/openid/ \
636-
--ext_oid_provider=https://openid.ku.dk/ \
637-
--enable_openid=True --enable_wsgi=True \
638-
--enable_sftp=False --enable_sftp_subsys=True \
639-
--enable_davs=True --enable_ftps=True \
640-
--enable_duplicati=False --enable_seafile=True \
641-
--enable_sandboxes=True --enable_vmachines=False \
642-
--enable_crontab=True --enable_jobs=True \
643-
--enable_resources=True --enable_notify=True \
644-
--enable_events=True --enable_imnotify=True \
645-
--enable_twofactor=True --enable_cracklib=True \
646-
--enable_hsts=True --enable_vhost_certs=True \
647-
--enable_verify_certs=True --enable_migadmin=True \
648-
--user_clause=User --group_clause=Group \
649-
--listen_clause='#Listen' \
650-
--serveralias_clause='ServerAlias' --alias_field=email \
651-
--dhparams_path=~/certs/dhparams.pem \
652-
--daemon_keycert=~/certs/combined.pem \
653-
--daemon_pubkey=~/certs/combined.pub \
654-
--daemon_pubkey_from_dns=True \
655-
--signup_methods="extoid migoid migcert" \
656-
--login_methods="extoid migoid migcert" \
657-
--skin=migrid-basic \
658-
--wsgi_procs=25 \
659-
--secscan_addr="130.226.158.3 130.225.213.72 192.38.10.137"
660-
661-
or the same on centos
606+
or a similar setup with vhost-specific certificates from LetsEncrypt,
607+
additional web apps and OpenID on CentOS:
662608
./generateconfs.py --source=. --destination=generated-confs \
663609
--destination_suffix="_svn$(svnversion -n ~/)" \
664610
--base_fqdn=migrid.org \
@@ -690,16 +636,13 @@ or the same on centos
690636
--ext_oid_port=443 --sid_port=443 \
691637
--mig_oid_provider=https://dk-ext.migrid.org/openid/ \
692638
--ext_oid_provider=https://openid.ku.dk/ \
693-
--enable_openid=True --enable_wsgi=True \
694-
--enable_sftp=False --enable_sftp_subsys=True \
639+
--enable_openid=True --enable_sftp_subsys=True \
695640
--enable_davs=True --enable_ftps=True \
696-
--enable_duplicati=False --enable_seafile=False \
697-
--enable_sandboxes=True --enable_vmachines=False \
698-
--enable_crontab=True --enable_jobs=True \
641+
--enable_sandboxes=True --enable_jobs=True \
699642
--enable_resources=True --enable_notify=True \
700643
--enable_events=True --enable_imnotify=True \
701-
--enable_twofactor=True --enable_cracklib=True \
702-
--enable_freeze=False --enable_hsts=True \
644+
--enable_cracklib=True --enable_freeze=False \
645+
--enable_transfers=True --enable_gravatars=True \
703646
--enable_vhost_certs=True --enable_verify_certs=True \
704647
--enable_migadmin=True --enable_peers=True \
705648
--peers_mandatory=True --peers_explicit_fields='full_name email' \
@@ -744,65 +687,8 @@ or the same on centos
744687
--secscan_addr="130.226.158.3 130.225.213.72 192.38.10.137"
745688

746689
and a storage-only setup with CentOS 7.x, apache 2.4, WSGI (default web),
747-
optimized SFTP, Seafile integration and OpenID login:
748-
./generateconfs.py --source=. --destination=generated-confs \
749-
--destination_suffix="_svn$(svnversion -n ~/)" \
750-
--base_fqdn=erda.dk \
751-
--public_fqdn=www.erda.dk \
752-
--public_alias_fqdn=www.erda.dk \
753-
--public_sec_fqdn=erda.ku.dk \
754-
--mig_cert_fqdn= \
755-
--ext_cert_fqdn=cert.erda.dk \
756-
--mig_oid_fqdn=ext.erda.dk \
757-
--ext_oid_fqdn=erda.dk \
758-
--sid_fqdn=sid.erda.dk \
759-
--io_fqdn=io.erda.dk \
760-
--seafile_fqdn=sid.erda.dk \
761-
--user=mig --group=mig \
762-
--apache_version=2.4 \
763-
--apache_etc=/etc/httpd \
764-
--apache_run=/var/run/httpd \
765-
--apache_lock=/var/lock/subsys/httpd \
766-
--apache_log=/var/log/httpd \
767-
--openssh_version=7.4 \
768-
--mig_code=/home/mig/mig \
769-
--mig_state=/home/mig/state \
770-
--mig_certs=/etc/httpd/MiG-certificates \
771-
--hg_path=/usr/bin/hg \
772-
--hgweb_scripts=/usr/share/doc/mercurial-2.6.2 \
773-
--trac_admin_path='' --trac_ini_path='' \
774-
--public_http_port=80 --public_https_port=443 \
775-
--ext_cert_port=443 --mig_oid_port=443 \
776-
--ext_oid_port=443 --sid_port=443 \
777-
--mig_oid_provider=https://ext.erda.dk/openid/ \
778-
--ext_oid_provider=https://openid.ku.dk/ \
779-
--enable_openid=True --enable_wsgi=True \
780-
--enable_sftp=False --enable_sftp_subsys=True \
781-
--enable_davs=True --enable_ftps=True \
782-
--enable_duplicati=True --enable_seafile=True \
783-
--enable_sandboxes=False --enable_vmachines=False \
784-
--enable_crontab=True --enable_jobs=False \
785-
--enable_resources=False --enable_events=True \
786-
--enable_freeze=True --enable_hsts=True \
787-
--enable_vhost_certs=True --enable_verify_certs=True \
788-
--user_clause=User --group_clause=Group \
789-
--listen_clause='#Listen' \
790-
--serveralias_clause='#ServerAlias' --alias_field=email \
791-
--dhparams_path=~/certs/dhparams.pem \
792-
--daemon_keycert=~/certs/combined.pem \
793-
--daemon_pubkey=~/certs/combined.pub \
794-
--daemon_pubkey_from_dns=True \
795-
--signup_methods="extoid migoid extcert" \
796-
--login_methods="extoid migoid extcert" \
797-
--distro=centos --skin=erda-ucph-science \
798-
--vgrid_label=Workgroup --wsgi_procs=25 \
799-
--default_menu="home files submitjob jobs vgrids settings setup logout" \
800-
--user_menu="sharelinks people seafile crontab transfers peers downloads docs" \
801-
--auto_add_oid_user=True --auto_add_cert_user=True \
802-
--auto_add_filter_fields=full_name --auto_add_filter_method=skip \
803-
--secscan_addr="130.226.158.3 130.225.213.72 192.38.10.137"
804-
805-
and the same with added Jupyter+cloud integration and optional 2FA support:
690+
optimized SFTP, WebDAVS FTPS, Data Transfers, external Seafile integration,
691+
local OpenID login and added Jupyter+cloud integration for data analysis:
806692
./generateconfs.py --source=. --destination=generated-confs \
807693
--destination_suffix="_svn$(svnversion -n ~/)" \
808694
--base_fqdn=erda.dk \
@@ -838,23 +724,17 @@ and the same with added Jupyter+cloud integration and optional 2FA support:
838724
--ext_oid_port=443 --sid_port=443 \
839725
--mig_oid_provider=https://ext.erda.dk/openid/ \
840726
--ext_oid_provider=https://openid.ku.dk/ \
841-
--enable_openid=True --enable_wsgi=True \
842-
--enable_sftp=False --enable_sftp_subsys=True \
727+
--enable_openid=True --enable_sftp_subsys=True \
843728
--enable_davs=True --enable_ftps=True \
844729
--enable_duplicati=True --enable_seafile=True \
845730
--seafile_fqdn=seafile.erda.dk \
846-
--seafile_ro_access=False \
847-
--enable_sandboxes=False --enable_vmachines=False \
848-
--enable_crontab=True --enable_jobs=False \
849-
--enable_resources=False --enable_events=False \
850-
--enable_freeze=True --enable_twofactor=True \
851-
--enable_cracklib=True --enable_hsts=True \
731+
--seafile_ro_access=False --enable_cracklib=True \
732+
--enable_transfers=True --enable_gravatars=True \
852733
--enable_vhost_certs=True --enable_verify_certs=True \
853734
--enable_notify=True --enable_jupyter=True \
854735
--jupyter_services='DAG.https://dag002.science DAG.https://dag003.science DAG.https://dag004.science DAG.https://dag005.science DAG.https://dag006.science DAG.https://dag007.science DAG.https://dag008.science DAG.https://dag009.science DAG.https://dag010.science DAG.https://dag203.science DAG.https://dag204.science MODI.https://dag100.science' \
855736
--jupyter_services_desc="{'DAG': '/home/mig/state/wwwpublic/dag_desc.html', 'MODI': '/home/mig/state/wwwpublic/modi_desc.html'}" \
856-
--enable_cloud=True \
857-
--enable_migadmin=True \
737+
--enable_cloud=True --enable_migadmin=True \
858738
--enable_peers=True --peers_mandatory=True \
859739
--peers_explicit_fields='full_name email' \
860740
--peers_contact_hint='employed at UCPH and authorized to invite external users' \
@@ -897,8 +777,8 @@ and the same with added Jupyter+cloud integration and optional 2FA support:
897777
--secscan_addr="130.226.158.3 130.225.213.72 192.38.10.137"
898778

899779
and a similar setup with CentOS 7.x, apache 2.4, WSGI (default web),
900-
optimized SFTP, job execution, Jupyter integration, previews and OpenID login
901-
with optional 2-FA support and legacy sftp clients:
780+
optimized SFTP, WebDAVS, FTPS, job execution, Jupyter integration, previews and
781+
local OpenID login and support for legacy sftp clients:
902782
./generateconfs.py --source=. --destination=generated-confs \
903783
--destination_suffix="_svn$(svnversion -n ~/)" \
904784
--base_fqdn=idmc.dk \
@@ -915,7 +795,7 @@ with optional 2-FA support and legacy sftp clients:
915795
--apache_run=/var/run/httpd \
916796
--apache_lock=/var/lock/subsys/httpd \
917797
--apache_log=/var/log/httpd \
918-
--openssh_version=7.4 \
798+
--openssh_version=7.3 \
919799
--mig_code=/home/mig/mig \
920800
--mig_state=/home/mig/state \
921801
--mig_certs=/etc/httpd/MiG-certificates \
@@ -927,18 +807,13 @@ with optional 2-FA support and legacy sftp clients:
927807
--ext_oid_port=443 --sid_port=443 \
928808
--mig_oid_provider=https://ext.idmc.dk/openid/ \
929809
--ext_oid_provider=https://openid.ku.dk/ \
930-
--enable_openid=True --enable_wsgi=True \
931-
--enable_sftp=False --enable_sftp_subsys=True \
810+
--enable_openid=True --enable_sftp_subsys=True \
932811
--enable_davs=True --enable_ftps=True \
933-
--enable_sharelinks=True --enable_transfers=True \
934-
--enable_duplicati=False --enable_seafile=False \
935-
--enable_sandboxes=False --enable_vmachines=False \
936-
--enable_crontab=True --enable_jobs=True \
937-
--enable_resources=True --enable_events=True \
938-
--enable_freeze=False --enable_imnotify=False \
939-
--enable_twofactor=True --enable_cracklib=True \
812+
--enable_transfers=True --enable_gravatars=True \
813+
--enable_jobs=True --enable_resources=True \
814+
--enable_events=True --enable_cracklib=True \
940815
--enable_notify=True --enable_preview=True \
941-
--enable_workflows=True --enable_hsts=True \
816+
--enable_workflows=True --enable_freeze=False \
942817
--enable_vhost_certs=True --enable_verify_certs=True \
943818
--enable_jupyter=True --enable_migadmin=True \
944819
--jupyter_services='DAG.https://dag002.science DAG.https://dag003.science DAG.https://dag004.science DAG.https://dag005.science DAG.https://dag006.science DAG.https://dag007.science DAG.https://dag008.science DAG.https://dag009.science DAG.https://dag010.science DAG.https://dag203.science DAG.https://dag204.science MODI.https://dag100.science' \
@@ -986,8 +861,8 @@ with optional 2-FA support and legacy sftp clients:
986861
--secscan_addr="130.226.158.3 130.225.213.72 192.38.10.137"
987862

988863
Finally a storage-only with CentOS 7.x, apache 2.4, WSGI (default web),
989-
optimized SFTP, strict access control and extensive logging to comply with the
990-
General Data Protection Regulation (GDPR) imposed by EU:
864+
optimized SFTP, WebDAVS, strict access control and extensive logging to comply
865+
with the General Data Protection Regulation (GDPR) imposed by EU:
991866
https://en.wikipedia.org/wiki/General_Data_Protection_Regulation
992867
./generateconfs.py --source=. --destination=generated-confs \
993868
--destination_suffix="_svn$(svnversion -n ~/)" \
@@ -1028,7 +903,7 @@ https://en.wikipedia.org/wiki/General_Data_Protection_Regulation
1028903
--ext_oid_port=443 --sid_port=443 \
1029904
--mig_oid_provider=https://sif-ext.erda.dk/openid/ \
1030905
--ext_oid_provider=https://openid.ku.dk/ \
1031-
--enable_openid=True --enable_wsgi=True \
906+
--enable_openid=True \
1032907
--enable_sftp=True --enable_sftp_subsys=False \
1033908
--enable_davs=True --enable_ftps=False \
1034909
--enable_sharelinks=False --enable_transfers=False \

mig/shared/install.py

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -239,36 +239,36 @@ def generate_confs(
239239
oidc_valid_days=365,
240240
generic_valid_days=365,
241241
enable_migadmin=False,
242-
enable_sftp=True,
243-
enable_sftp_subsys=True,
242+
enable_sftp=False,
243+
enable_sftp_subsys=False,
244244
sftp_subsys_auth_procs=10,
245-
enable_davs=True,
246-
enable_ftps=True,
245+
enable_davs=False,
246+
enable_ftps=False,
247247
enable_wsgi=True,
248248
wsgi_procs=10,
249249
enable_gdp=False,
250-
enable_jobs=True,
251-
enable_resources=True,
250+
enable_jobs=False,
251+
enable_resources=False,
252252
enable_workflows=False,
253-
enable_events=True,
253+
enable_events=False,
254254
enable_sharelinks=True,
255-
enable_transfers=True,
255+
enable_transfers=False,
256256
enable_freeze=True,
257257
enable_sandboxes=False,
258258
enable_vmachines=False,
259259
enable_preview=False,
260260
enable_jupyter=False,
261261
enable_cloud=False,
262-
enable_hsts=False,
262+
enable_hsts=True,
263263
enable_vhost_certs=False,
264264
enable_verify_certs=False,
265265
enable_seafile=False,
266266
enable_duplicati=False,
267-
enable_crontab=False,
267+
enable_crontab=True,
268268
enable_notify=False,
269269
enable_imnotify=False,
270270
enable_dev_accounts=False,
271-
enable_twofactor=False,
271+
enable_twofactor=True,
272272
twofactor_mandatory_protos='',
273273
enable_twofactor_strict_address=False,
274274
twofactor_auth_apps='',
@@ -278,7 +278,7 @@ def generate_confs(
278278
peers_contact_hint='employed here and authorized to invite external users',
279279
enable_cracklib=False,
280280
enable_openid=False,
281-
enable_gravatars=True,
281+
enable_gravatars=False,
282282
enable_sitestatus=True,
283283
enable_quota=False,
284284
prefer_python3=False,

0 commit comments

Comments
 (0)